diff --git a/Example/PNObject.xcodeproj/project.pbxproj b/Example/PNObject.xcodeproj/project.pbxproj
index 50bcefc..0589d5a 100644
--- a/Example/PNObject.xcodeproj/project.pbxproj
+++ b/Example/PNObject.xcodeproj/project.pbxproj
@@ -328,7 +328,7 @@
};
43252B3B955A9E6FDF55EF8C /* 📦 Embed Pods Frameworks */ = {
isa = PBXShellScriptBuildPhase;
- buildActionMask = 2147483647;
+ buildActionMask = 12;
files = (
);
inputPaths = (
diff --git a/Example/PNObject.xcodeproj/xcshareddata/xcschemes/PNObject-Example.xcscheme b/Example/PNObject.xcodeproj/xcshareddata/xcschemes/PNObject-Example.xcscheme
index 7af5b08..56a938b 100644
--- a/Example/PNObject.xcodeproj/xcshareddata/xcschemes/PNObject-Example.xcscheme
+++ b/Example/PNObject.xcodeproj/xcshareddata/xcschemes/PNObject-Example.xcscheme
@@ -89,26 +89,11 @@
-
-
-
-
-
-
1.0)
@@ -36,28 +37,31 @@ PODS:
- FBSnapshotTestCase/Core (2.0.7)
- FBSnapshotTestCase/SwiftSupport (2.0.7):
- FBSnapshotTestCase/Core
- - NSDate_Utils (0.1.2)
- - NSString-Helper (1.0.3)
+ - NACrypto (1.0.6)
+ - NSDate_Utils (0.1.3)
+ - NSString-Helper (1.0.4)
+ - NSUserDefaults-AESEncryptor (0.0.4):
+ - CocoaSecurity (~> 1.2.2)
- nv-ios-http-status (0.0.1)
- PEAR-FileManager-iOS (1.3.1)
- - PNObject (0.3.17):
+ - PNObject (0.3.18):
- AFNetworking
- CodFis-Helper
- FBSDKCoreKit
- FBSDKLoginKit
- FBSDKShareKit
+ - NACrypto
- NSDate_Utils
- NSString-Helper
+ - NSUserDefaults-AESEncryptor
- nv-ios-http-status
- PEAR-FileManager-iOS
- - RNCryptor
- StrongestPasswordValidator
- UIDevice-Utils
- PureLayout (3.0.1)
- - RNCryptor (4.0.0)
- Specta (1.0.5)
- - StrongestPasswordValidator (0.1.1)
- - UIDevice-Utils (0.1.4)
+ - StrongestPasswordValidator (0.1.2)
+ - UIDevice-Utils (0.1.5)
DEPENDENCIES:
- AFNetworking
@@ -85,24 +89,26 @@ EXTERNAL SOURCES:
SPEC CHECKSUMS:
AFNetworking: a0075feb321559dc78d9d85b55d11caa19eabb93
Bolts: f52a250053bb517ca874523c3913776359ab3def
- CodFis-Helper: f303810699f22dbcba8fb8c600545ac91fc3ec42
+ CocoaSecurity: d288a6f87e0f363823d2cb83e753814a6944f71a
+ CodFis-Helper: 28be4c74d7202542459d72354f59b1215871de87
Expecta: e1c022fcd33910b6be89c291d2775b3fe27a89fe
Expecta+Snapshots: 29b38dd695bc72a0ed2bea833937d78df41943ba
FBSDKCoreKit: 13bec8373fb3af94d44daf2aa1e0958687897fbd
FBSDKLoginKit: d3d4a2e9d31954deb00bfea964167a05ca1ea976
FBSDKShareKit: 54587b4624706ace1e810cf83412a918141f807a
FBSnapshotTestCase: 7e85180d0d141a0cf472352edda7e80d7eaeb547
- NSDate_Utils: 6f310af16917c48536836d4c17e1e47bf6fbe8e4
- NSString-Helper: d4c5459e8142ee6a96b070118009f08637030c2d
+ NACrypto: ce3900f1775f1b0cc27ce7c4953b94c598a74149
+ NSDate_Utils: 68669d2c81f310ee13026c791f4f0ed227b94c65
+ NSString-Helper: b4183f73f0a00c6fcd607edebb6c35a7a461376d
+ NSUserDefaults-AESEncryptor: da02cfef056f1e18ebe2748767915f08b274c9c5
nv-ios-http-status: b6c2b5fc8656cc19e0d3000dadce2080b99d0e2f
PEAR-FileManager-iOS: 3bc403f68a53483f5629aa822f4649e40275c4d3
- PNObject: ecc91ff0b61392abb7ab87b4d4c0c633f2f8520b
+ PNObject: 9c66f67c7861a646060f8dc7a550eeeb3f8bd924
PureLayout: f35f5384c9c4e4479df041dbe33ad7577b71ddfb
- RNCryptor: 59d6483908115af5c12b884db23392024e52a5fe
Specta: ac94d110b865115fe60ff2c6d7281053c6f8e8a2
- StrongestPasswordValidator: 554de9038705e18904f0337903dfd3b85a6b271b
- UIDevice-Utils: 0beb5f9d2bd256a3efe05c1e43a2a8b8702199c4
+ StrongestPasswordValidator: 921e42615bdf353513c6f925bffd4fc29865dbd7
+ UIDevice-Utils: a87bbaed53a74d503deb3e25511c9a4d865b92ea
PODFILE CHECKSUM: 2e494b482bc938579e08ab48dab20d64709c3062
-COCOAPODS: 1.0.0.beta.5
+COCOAPODS: 1.0.0.beta.6
diff --git a/Example/Pods/CocoaSecurity/CocoaSecurity/CocoaSecurity.h b/Example/Pods/CocoaSecurity/CocoaSecurity/CocoaSecurity.h
new file mode 100644
index 0000000..e574fbd
--- /dev/null
+++ b/Example/Pods/CocoaSecurity/CocoaSecurity/CocoaSecurity.h
@@ -0,0 +1,85 @@
+/*
+ CocoaSecurity 1.1
+
+ Created by Kelp on 12/5/12.
+ Copyright (c) 2012 Kelp http://kelp.phate.org/
+ MIT License
+
+ CocoaSecurity is core. It provides AES encrypt, AES decrypt, Hash(MD5, HmacMD5, SHA1~SHA512, HmacSHA1~HmacSHA512) messages.
+*/
+
+#import
+#import
+
+
+#pragma mark - CocoaSecurityResult
+@interface CocoaSecurityResult : NSObject
+
+@property (strong, nonatomic, readonly) NSData *data;
+@property (strong, nonatomic, readonly) NSString *utf8String;
+@property (strong, nonatomic, readonly) NSString *hex;
+@property (strong, nonatomic, readonly) NSString *hexLower;
+@property (strong, nonatomic, readonly) NSString *base64;
+
+- (id)initWithBytes:(unsigned char[])initData length:(NSUInteger)length;
+
+@end
+
+
+#pragma mark - CocoaSecurity
+@interface CocoaSecurity : NSObject
+#pragma mark - AES Encrypt
++ (CocoaSecurityResult *)aesEncrypt:(NSString *)data key:(NSString *)key;
++ (CocoaSecurityResult *)aesEncrypt:(NSString *)data hexKey:(NSString *)key hexIv:(NSString *)iv;
++ (CocoaSecurityResult *)aesEncrypt:(NSString *)data key:(NSData *)key iv:(NSData *)iv;
++ (CocoaSecurityResult *)aesEncryptWithData:(NSData *)data key:(NSData *)key iv:(NSData *)iv;
+#pragma mark AES Decrypt
++ (CocoaSecurityResult *)aesDecryptWithBase64:(NSString *)data key:(NSString *)key;
++ (CocoaSecurityResult *)aesDecryptWithBase64:(NSString *)data hexKey:(NSString *)key hexIv:(NSString *)iv;
++ (CocoaSecurityResult *)aesDecryptWithBase64:(NSString *)data key:(NSData *)key iv:(NSData *)iv;
++ (CocoaSecurityResult *)aesDecryptWithData:(NSData *)data key:(NSData *)key iv:(NSData *)iv;
+
+#pragma mark - MD5
++ (CocoaSecurityResult *)md5:(NSString *)hashString;
++ (CocoaSecurityResult *)md5WithData:(NSData *)hashData;
+#pragma mark HMAC-MD5
++ (CocoaSecurityResult *)hmacMd5:(NSString *)hashString hmacKey:(NSString *)key;
++ (CocoaSecurityResult *)hmacMd5WithData:(NSData *)hashData hmacKey:(NSString *)key;
+
+#pragma mark - SHA
++ (CocoaSecurityResult *)sha1:(NSString *)hashString;
++ (CocoaSecurityResult *)sha1WithData:(NSData *)hashData;
++ (CocoaSecurityResult *)sha224:(NSString *)hashString;
++ (CocoaSecurityResult *)sha224WithData:(NSData *)hashData;
++ (CocoaSecurityResult *)sha256:(NSString *)hashString;
++ (CocoaSecurityResult *)sha256WithData:(NSData *)hashData;
++ (CocoaSecurityResult *)sha384:(NSString *)hashString;
++ (CocoaSecurityResult *)sha384WithData:(NSData *)hashData;
++ (CocoaSecurityResult *)sha512:(NSString *)hashString;
++ (CocoaSecurityResult *)sha512WithData:(NSData *)hashData;
+#pragma mark HMAC-SHA
++ (CocoaSecurityResult *)hmacSha1:(NSString *)hashString hmacKey:(NSString *)key;
++ (CocoaSecurityResult *)hmacSha1WithData:(NSData *)hashData hmacKey:(NSString *)key;
++ (CocoaSecurityResult *)hmacSha224:(NSString *)hashString hmacKey:(NSString *)key;
++ (CocoaSecurityResult *)hmacSha224WithData:(NSData *)hashData hmacKey:(NSString *)key;
++ (CocoaSecurityResult *)hmacSha256:(NSString *)hashString hmacKey:(NSString *)key;
++ (CocoaSecurityResult *)hmacSha256WithData:(NSData *)hashData hmacKey:(NSString *)key;
++ (CocoaSecurityResult *)hmacSha384:(NSString *)hashString hmacKey:(NSString *)key;
++ (CocoaSecurityResult *)hmacSha384WithData:(NSData *)hashData hmacKey:(NSString *)key;
++ (CocoaSecurityResult *)hmacSha512:(NSString *)hashString hmacKey:(NSString *)key;
++ (CocoaSecurityResult *)hmacSha512WithData:(NSData *)hashData hmacKey:(NSString *)key;
+@end
+
+
+#pragma mark - CocoaSecurityEncoder
+@interface CocoaSecurityEncoder : NSObject
+- (NSString *)base64:(NSData *)data;
+- (NSString *)hex:(NSData *)data useLower:(BOOL)isOutputLower;
+@end
+
+
+#pragma mark - CocoaSecurityDecoder
+@interface CocoaSecurityDecoder : NSObject
+- (NSData *)base64:(NSString *)data;
+- (NSData *)hex:(NSString *)data;
+@end
diff --git a/Example/Pods/CocoaSecurity/CocoaSecurity/CocoaSecurity.m b/Example/Pods/CocoaSecurity/CocoaSecurity/CocoaSecurity.m
new file mode 100644
index 0000000..b519285
--- /dev/null
+++ b/Example/Pods/CocoaSecurity/CocoaSecurity/CocoaSecurity.m
@@ -0,0 +1,508 @@
+//
+// CocoaSecurity.m
+//
+// Created by Kelp on 12/5/12.
+// Copyright (c) 2012 Kelp http://kelp.phate.org/
+// MIT License
+//
+
+#import "CocoaSecurity.h"
+#import
+#import
+#import "Base64.h"
+
+#pragma mark - CocoaSecurity
+@implementation CocoaSecurity
+
+
+#pragma mark - AES Encrypt
+// default AES Encrypt, key -> SHA384(key).sub(0, 32), iv -> SHA384(key).sub(32, 16)
++ (CocoaSecurityResult *)aesEncrypt:(NSString *)data key:(NSString *)key
+{
+ CocoaSecurityResult * sha = [self sha384:key];
+ NSData *aesKey = [sha.data subdataWithRange:NSMakeRange(0, 32)];
+ NSData *aesIv = [sha.data subdataWithRange:NSMakeRange(32, 16)];
+
+ return [self aesEncrypt:data key:aesKey iv:aesIv];
+}
+#pragma mark AES Encrypt 128, 192, 256
++ (CocoaSecurityResult *)aesEncrypt:(NSString *)data hexKey:(NSString *)key hexIv:(NSString *)iv
+{
+ CocoaSecurityDecoder *decoder = [CocoaSecurityDecoder new];
+ NSData *aesKey = [decoder hex:key];
+ NSData *aesIv = [decoder hex:iv];
+
+ return [self aesEncrypt:data key:aesKey iv:aesIv];
+}
++ (CocoaSecurityResult *)aesEncrypt:(NSString *)data key:(NSData *)key iv:(NSData *)iv
+{
+ return [self aesEncryptWithData:[data dataUsingEncoding:NSUTF8StringEncoding] key:key iv:iv];
+}
++ (CocoaSecurityResult *)aesEncryptWithData:(NSData *)data key:(NSData *)key iv:(NSData *)iv
+{
+ // check length of key and iv
+ if ([iv length] != 16) {
+ @throw [NSException exceptionWithName:@"Cocoa Security"
+ reason:@"Length of iv is wrong. Length of iv should be 16(128bits)"
+ userInfo:nil];
+ }
+ if ([key length] != 16 && [key length] != 24 && [key length] != 32 ) {
+ @throw [NSException exceptionWithName:@"Cocoa Security"
+ reason:@"Length of key is wrong. Length of iv should be 16, 24 or 32(128, 192 or 256bits)"
+ userInfo:nil];
+ }
+
+ // setup output buffer
+ size_t bufferSize = [data length] + kCCBlockSizeAES128;
+ void *buffer = malloc(bufferSize);
+
+ // do encrypt
+ size_t encryptedSize = 0;
+ CCCryptorStatus cryptStatus = CCCrypt(kCCEncrypt,
+ kCCAlgorithmAES128,
+ kCCOptionPKCS7Padding,
+ [key bytes], // Key
+ [key length], // kCCKeySizeAES
+ [iv bytes], // IV
+ [data bytes],
+ [data length],
+ buffer,
+ bufferSize,
+ &encryptedSize);
+ if (cryptStatus == kCCSuccess) {
+ CocoaSecurityResult *result = [[CocoaSecurityResult alloc] initWithBytes:buffer length:encryptedSize];
+ free(buffer);
+
+ return result;
+ }
+ else {
+ free(buffer);
+ @throw [NSException exceptionWithName:@"Cocoa Security"
+ reason:@"Encrypt Error!"
+ userInfo:nil];
+ return nil;
+ }
+}
+#pragma mark - AES Decrypt
+// default AES Decrypt, key -> SHA384(key).sub(0, 32), iv -> SHA384(key).sub(32, 16)
++ (CocoaSecurityResult *)aesDecryptWithBase64:(NSString *)data key:(NSString *)key
+{
+ CocoaSecurityResult * sha = [self sha384:key];
+ NSData *aesKey = [sha.data subdataWithRange:NSMakeRange(0, 32)];
+ NSData *aesIv = [sha.data subdataWithRange:NSMakeRange(32, 16)];
+
+ return [self aesDecryptWithBase64:data key:aesKey iv:aesIv];
+}
+#pragma mark AES Decrypt 128, 192, 256
++ (CocoaSecurityResult *)aesDecryptWithBase64:(NSString *)data hexKey:(NSString *)key hexIv:(NSString *)iv
+{
+ CocoaSecurityDecoder *decoder = [CocoaSecurityDecoder new];
+ NSData *aesKey = [decoder hex:key];
+ NSData *aesIv = [decoder hex:iv];
+
+ return [self aesDecryptWithBase64:data key:aesKey iv:aesIv];
+}
++ (CocoaSecurityResult *)aesDecryptWithBase64:(NSString *)data key:(NSData *)key iv:(NSData *)iv
+{
+ CocoaSecurityDecoder *decoder = [CocoaSecurityDecoder new];
+ return [self aesDecryptWithData:[decoder base64:data] key:key iv:iv];
+}
++ (CocoaSecurityResult *)aesDecryptWithData:(NSData *)data key:(NSData *)key iv:(NSData *)iv
+{
+ // check length of key and iv
+ if ([iv length] != 16) {
+ @throw [NSException exceptionWithName:@"Cocoa Security"
+ reason:@"Length of iv is wrong. Length of iv should be 16(128bits)"
+ userInfo:nil];
+ }
+ if ([key length] != 16 && [key length] != 24 && [key length] != 32 ) {
+ @throw [NSException exceptionWithName:@"Cocoa Security"
+ reason:@"Length of key is wrong. Length of iv should be 16, 24 or 32(128, 192 or 256bits)"
+ userInfo:nil];
+ }
+
+ // setup output buffer
+ size_t bufferSize = [data length] + kCCBlockSizeAES128;
+ void *buffer = malloc(bufferSize);
+
+ // do encrypt
+ size_t encryptedSize = 0;
+ CCCryptorStatus cryptStatus = CCCrypt(kCCDecrypt,
+ kCCAlgorithmAES128,
+ kCCOptionPKCS7Padding,
+ [key bytes], // Key
+ [key length], // kCCKeySizeAES
+ [iv bytes], // IV
+ [data bytes],
+ [data length],
+ buffer,
+ bufferSize,
+ &encryptedSize);
+ if (cryptStatus == kCCSuccess) {
+ CocoaSecurityResult *result = [[CocoaSecurityResult alloc] initWithBytes:buffer length:encryptedSize];
+ free(buffer);
+
+ return result;
+ }
+ else {
+ free(buffer);
+ @throw [NSException exceptionWithName:@"Cocoa Security"
+ reason:@"Decrypt Error!"
+ userInfo:nil];
+ return nil;
+ }
+}
+
+
+#pragma mark - MD5
++ (CocoaSecurityResult *)md5:(NSString *)hashString
+{
+ return [self md5WithData:[hashString dataUsingEncoding:NSUTF8StringEncoding]];
+}
++ (CocoaSecurityResult *)md5WithData:(NSData *)hashData
+{
+ unsigned char *digest;
+ digest = malloc(CC_MD5_DIGEST_LENGTH);
+
+ CC_MD5([hashData bytes], (CC_LONG)[hashData length], digest);
+ CocoaSecurityResult *result = [[CocoaSecurityResult alloc] initWithBytes:digest length:CC_MD5_DIGEST_LENGTH];
+ free(digest);
+
+ return result;
+}
+#pragma mark - HMAC-MD5
++ (CocoaSecurityResult *)hmacMd5:(NSString *)hashString hmacKey:(NSString *)key
+{
+ return [self hmacMd5WithData:[hashString dataUsingEncoding:NSUTF8StringEncoding] hmacKey:key];
+}
++ (CocoaSecurityResult *)hmacMd5WithData:(NSData *)hashData hmacKey:(NSString *)key
+{
+ unsigned char *digest;
+ digest = malloc(CC_MD5_DIGEST_LENGTH);
+ const char *cKey = [key cStringUsingEncoding:NSUTF8StringEncoding];
+
+ CCHmac(kCCHmacAlgMD5, cKey, strlen(cKey), [hashData bytes], [hashData length], digest);
+ CocoaSecurityResult *result = [[CocoaSecurityResult alloc] initWithBytes:digest length:CC_MD5_DIGEST_LENGTH];
+ free(digest);
+ cKey = nil;
+
+ return result;
+}
+
+
+#pragma mark - SHA1
++ (CocoaSecurityResult *)sha1:(NSString *)hashString
+{
+ return [self sha1WithData:[hashString dataUsingEncoding:NSUTF8StringEncoding]];
+}
++ (CocoaSecurityResult *)sha1WithData:(NSData *)hashData
+{
+ unsigned char *digest;
+ digest = malloc(CC_SHA1_DIGEST_LENGTH);
+
+ CC_SHA1([hashData bytes], (CC_LONG)[hashData length], digest);
+ CocoaSecurityResult *result = [[CocoaSecurityResult alloc] initWithBytes:digest length:CC_SHA1_DIGEST_LENGTH];
+ free(digest);
+
+ return result;
+}
+#pragma mark SHA224
++ (CocoaSecurityResult *)sha224:(NSString *)hashString
+{
+ return [self sha224WithData:[hashString dataUsingEncoding:NSUTF8StringEncoding]];
+}
++ (CocoaSecurityResult *)sha224WithData:(NSData *)hashData
+{
+ unsigned char *digest;
+ digest = malloc(CC_SHA224_DIGEST_LENGTH);
+
+ CC_SHA224([hashData bytes], (CC_LONG)[hashData length], digest);
+ CocoaSecurityResult *result = [[CocoaSecurityResult alloc] initWithBytes:digest length:CC_SHA224_DIGEST_LENGTH];
+ free(digest);
+
+ return result;
+}
+#pragma mark SHA256
++ (CocoaSecurityResult *)sha256:(NSString *)hashString
+{
+ return [self sha256WithData:[hashString dataUsingEncoding:NSUTF8StringEncoding]];
+}
++ (CocoaSecurityResult *)sha256WithData:(NSData *)hashData
+{
+ unsigned char *digest;
+ digest = malloc(CC_SHA256_DIGEST_LENGTH);
+
+ CC_SHA256([hashData bytes], (CC_LONG)[hashData length], digest);
+ CocoaSecurityResult *result = [[CocoaSecurityResult alloc] initWithBytes:digest length:CC_SHA256_DIGEST_LENGTH];
+ free(digest);
+
+ return result;
+}
+#pragma mark SHA384
++ (CocoaSecurityResult *)sha384:(NSString *)hashString
+{
+ return [self sha384WithData:[hashString dataUsingEncoding:NSUTF8StringEncoding]];
+}
++ (CocoaSecurityResult *)sha384WithData:(NSData *)hashData
+{
+ unsigned char *digest;
+ digest = malloc(CC_SHA384_DIGEST_LENGTH);
+
+ CC_SHA384([hashData bytes], (CC_LONG)[hashData length], digest);
+ CocoaSecurityResult *result = [[CocoaSecurityResult alloc] initWithBytes:digest length:CC_SHA384_DIGEST_LENGTH];
+ free(digest);
+
+ return result;
+}
+#pragma mark SHA512
++ (CocoaSecurityResult *)sha512:(NSString *)hashString
+{
+ return [self sha512WithData:[hashString dataUsingEncoding:NSUTF8StringEncoding]];
+}
++ (CocoaSecurityResult *)sha512WithData:(NSData *)hashData
+{
+ unsigned char *digest;
+ digest = malloc(CC_SHA512_DIGEST_LENGTH);
+
+ CC_SHA512([hashData bytes], (CC_LONG)[hashData length], digest);
+ CocoaSecurityResult *result = [[CocoaSecurityResult alloc] initWithBytes:digest length:CC_SHA512_DIGEST_LENGTH];
+ free(digest);
+
+ return result;
+}
+
+
+#pragma mark - HMAC-SHA1
++ (CocoaSecurityResult *)hmacSha1:(NSString *)hashString hmacKey:(NSString *)key
+{
+ return [self hmacSha1WithData:[hashString dataUsingEncoding:NSUTF8StringEncoding] hmacKey:key];
+}
++ (CocoaSecurityResult *)hmacSha1WithData:(NSData *)hashData hmacKey:(NSString *)key
+{
+ unsigned char *digest;
+ digest = malloc(CC_SHA1_DIGEST_LENGTH);
+ const char *cKey = [key cStringUsingEncoding:NSUTF8StringEncoding];
+
+ CCHmac(kCCHmacAlgSHA1, cKey, strlen(cKey), [hashData bytes], [hashData length], digest);
+ CocoaSecurityResult *result = [[CocoaSecurityResult alloc] initWithBytes:digest length:CC_SHA1_DIGEST_LENGTH];
+ free(digest);
+ cKey = nil;
+
+ return result;
+}
+#pragma mark HMAC-SHA224
++ (CocoaSecurityResult *)hmacSha224:(NSString *)hashString hmacKey:(NSString *)key
+{
+ return [self hmacSha224WithData:[hashString dataUsingEncoding:NSUTF8StringEncoding] hmacKey:key];
+}
++ (CocoaSecurityResult *)hmacSha224WithData:(NSData *)hashData hmacKey:(NSString *)key
+{
+ unsigned char *digest;
+ digest = malloc(CC_SHA224_DIGEST_LENGTH);
+ const char *cKey = [key cStringUsingEncoding:NSUTF8StringEncoding];
+
+ CCHmac(kCCHmacAlgSHA224, cKey, strlen(cKey), [hashData bytes], [hashData length], digest);
+ CocoaSecurityResult *result = [[CocoaSecurityResult alloc] initWithBytes:digest length:CC_SHA224_DIGEST_LENGTH];
+ free(digest);
+ cKey = nil;
+
+ return result;
+}
+#pragma mark HMAC-SHA256
++ (CocoaSecurityResult *)hmacSha256:(NSString *)hashString hmacKey:(NSString *)key
+{
+ return [self hmacSha256WithData:[hashString dataUsingEncoding:NSUTF8StringEncoding] hmacKey:key];
+}
++ (CocoaSecurityResult *)hmacSha256WithData:(NSData *)hashData hmacKey:(NSString *)key
+{
+ unsigned char *digest;
+ digest = malloc(CC_SHA256_DIGEST_LENGTH);
+ const char *cKey = [key cStringUsingEncoding:NSUTF8StringEncoding];
+
+ CCHmac(kCCHmacAlgSHA256, cKey, strlen(cKey), [hashData bytes], [hashData length], digest);
+ CocoaSecurityResult *result = [[CocoaSecurityResult alloc] initWithBytes:digest length:CC_SHA256_DIGEST_LENGTH];
+ free(digest);
+ cKey = nil;
+
+ return result;
+}
+#pragma mark HMAC-SHA384
++ (CocoaSecurityResult *)hmacSha384:(NSString *)hashString hmacKey:(NSString *)key
+{
+ return [self hmacSha384WithData:[hashString dataUsingEncoding:NSUTF8StringEncoding] hmacKey:key];
+}
++ (CocoaSecurityResult *)hmacSha384WithData:(NSData *)hashData hmacKey:(NSString *)key
+{
+ unsigned char *digest;
+ digest = malloc(CC_SHA384_DIGEST_LENGTH);
+ const char *cKey = [key cStringUsingEncoding:NSUTF8StringEncoding];
+
+ CCHmac(kCCHmacAlgSHA384, cKey, strlen(cKey), [hashData bytes], [hashData length], digest);
+ CocoaSecurityResult *result = [[CocoaSecurityResult alloc] initWithBytes:digest length:CC_SHA384_DIGEST_LENGTH];
+ free(digest);
+ cKey = nil;
+
+ return result;
+}
+#pragma mark HMAC-SHA512
++ (CocoaSecurityResult *)hmacSha512:(NSString *)hashString hmacKey:(NSString *)key
+{
+ return [self hmacSha512WithData:[hashString dataUsingEncoding:NSUTF8StringEncoding] hmacKey:key];
+}
++ (CocoaSecurityResult *)hmacSha512WithData:(NSData *)hashData hmacKey:(NSString *)key
+{
+ unsigned char *digest;
+ digest = malloc(CC_SHA512_DIGEST_LENGTH);
+ const char *cKey = [key cStringUsingEncoding:NSUTF8StringEncoding];
+
+ CCHmac(kCCHmacAlgSHA512, cKey, strlen(cKey), [hashData bytes], [hashData length], digest);
+ CocoaSecurityResult *result = [[CocoaSecurityResult alloc] initWithBytes:digest length:CC_SHA512_DIGEST_LENGTH];
+ free(digest);
+ cKey = nil;
+
+ return result;
+}
+
+@end
+
+
+
+#pragma mark - CocoaSecurityResult
+@implementation CocoaSecurityResult
+
+@synthesize data = _data;
+
+#pragma mark - Init
+- (id)initWithBytes:(unsigned char[])initData length:(NSUInteger)length
+{
+ self = [super init];
+ if (self) {
+ _data = [NSData dataWithBytes:initData length:length];
+ }
+ return self;
+}
+
+#pragma mark UTF8 String
+// convert CocoaSecurityResult to UTF8 string
+- (NSString *)utf8String
+{
+ NSString *result = [[NSString alloc] initWithData:_data encoding:NSUTF8StringEncoding];
+ return result;
+}
+
+#pragma mark HEX
+// convert CocoaSecurityResult to HEX string
+- (NSString *)hex
+{
+ CocoaSecurityEncoder *encoder = [CocoaSecurityEncoder new];
+ return [encoder hex:_data useLower:false];
+}
+- (NSString *)hexLower
+{
+ CocoaSecurityEncoder *encoder = [CocoaSecurityEncoder new];
+ return [encoder hex:_data useLower:true];
+}
+
+#pragma mark Base64
+// convert CocoaSecurityResult to Base64 string
+- (NSString *)base64
+{
+ CocoaSecurityEncoder *encoder = [CocoaSecurityEncoder new];
+ return [encoder base64:_data];
+}
+
+@end
+
+
+#pragma mark - CocoaSecurityEncoder
+@implementation CocoaSecurityEncoder
+
+// convert NSData to Base64
+- (NSString *)base64:(NSData *)data
+{
+ return [data base64EncodedString];
+}
+
+// convert NSData to hex string
+- (NSString *)hex:(NSData *)data useLower:(BOOL)isOutputLower
+{
+ if (data.length == 0) { return nil; }
+
+ static const char HexEncodeCharsLower[] = "0123456789abcdef";
+ static const char HexEncodeChars[] = "0123456789ABCDEF";
+ char *resultData;
+ // malloc result data
+ resultData = malloc([data length] * 2 +1);
+ // convert imgData(NSData) to char[]
+ unsigned char *sourceData = ((unsigned char *)[data bytes]);
+ NSUInteger length = [data length];
+
+ if (isOutputLower) {
+ for (NSUInteger index = 0; index < length; index++) {
+ // set result data
+ resultData[index * 2] = HexEncodeCharsLower[(sourceData[index] >> 4)];
+ resultData[index * 2 + 1] = HexEncodeCharsLower[(sourceData[index] % 0x10)];
+ }
+ }
+ else {
+ for (NSUInteger index = 0; index < length; index++) {
+ // set result data
+ resultData[index * 2] = HexEncodeChars[(sourceData[index] >> 4)];
+ resultData[index * 2 + 1] = HexEncodeChars[(sourceData[index] % 0x10)];
+ }
+ }
+ resultData[[data length] * 2] = 0;
+
+ // convert result(char[]) to NSString
+ NSString *result = [NSString stringWithCString:resultData encoding:NSASCIIStringEncoding];
+ sourceData = nil;
+ free(resultData);
+
+ return result;
+}
+
+@end
+
+#pragma mark - CocoaSecurityDecoder
+@implementation CocoaSecurityDecoder
+- (NSData *)base64:(NSString *)string
+{
+ return [NSData dataWithBase64EncodedString:string];
+}
+- (NSData *)hex:(NSString *)data
+{
+ if (data.length == 0) { return nil; }
+
+ static const unsigned char HexDecodeChars[] =
+ {
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, //49
+ 2, 3, 4, 5, 6, 7, 8, 9, 0, 0, //59
+ 0, 0, 0, 0, 0, 10, 11, 12, 13, 14,
+ 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, //79
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 10, 11, 12, //99
+ 13, 14, 15
+ };
+
+ // convert data(NSString) to CString
+ const char *source = [data cStringUsingEncoding:NSUTF8StringEncoding];
+ // malloc buffer
+ unsigned char *buffer;
+ NSUInteger length = strlen(source) / 2;
+ buffer = malloc(length);
+ for (NSUInteger index = 0; index < length; index++) {
+ buffer[index] = (HexDecodeChars[source[index * 2]] << 4) + (HexDecodeChars[source[index * 2 + 1]]);
+ }
+ // init result NSData
+ NSData *result = [NSData dataWithBytes:buffer length:length];
+ free(buffer);
+ source = nil;
+
+ return result;
+}
+
+@end
diff --git a/Example/Pods/CocoaSecurity/LICENSE b/Example/Pods/CocoaSecurity/LICENSE
new file mode 100644
index 0000000..fcbc817
--- /dev/null
+++ b/Example/Pods/CocoaSecurity/LICENSE
@@ -0,0 +1,8 @@
+The MIT License (MIT)
+Copyright (c) 2013 Kelp https://github.com/kelp404
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/Example/Pods/CocoaSecurity/README.md b/Example/Pods/CocoaSecurity/README.md
new file mode 100644
index 0000000..aa692a1
--- /dev/null
+++ b/Example/Pods/CocoaSecurity/README.md
@@ -0,0 +1,111 @@
+#CocoaSecurity [](http://travis-ci.org/#!/kelp404/CocoaSecurity)
+
+Kelp https://twitter.com/kelp404/
+[MIT License][mit]
+[MIT]: http://www.opensource.org/licenses/mit-license.php
+
+
+CocoaSecurity include 4 classes, `CocoaSecurity`, `CocoaSecurityResult`, `CocoaSecurityEncoder` and `CocoaSecurityDecoder`.
+
+##CocoaSecurity
+CocoaSecurity is core. It provides AES encrypt, AES decrypt, Hash(MD5, HmacMD5, SHA1~SHA512, HmacSHA1~HmacSHA512) messages.
+
+**MD5:**
+```objective-c
+CocoaSecurityResult *md5 = [CocoaSecurity md5:@"kelp"];
+
+// md5.hex = 'C40C69779E15780ADAE46C45EB451E23'
+// md5.hexLower = 'c40c69779e15780adae46c45eb451e23'
+// md5.base64 = 'xAxpd54VeAra5GxF60UeIw=='
+```
+**SHA256:**
+```objective-c
+CocoaSecurityResult *sha256 = [CocoaSecurity sha256:@"kelp"];
+
+// sha256.hexLower = '280f8bb8c43d532f389ef0e2a5321220b0782b065205dcdfcb8d8f02ed5115b9'
+// sha256.base64 = 'KA+LuMQ9Uy84nvDipTISILB4KwZSBdzfy42PAu1RFbk='
+```
+**default AES Encrypt:**
+key -> SHA384(key).sub(0, 32)
+iv -> SHA384(key).sub(32, 16)
+```objective-c
+CocoaSecurityResult *aesDefault = [CocoaSecurity aesEncrypt:@"kelp" key:@"key"];
+
+// aesDefault.base64 = 'ez9uubPneV1d2+rpjnabJw=='
+```
+**AES256 Encrypt & Decrypt:**
+```objective-c
+CocoaSecurityResult *aes256 = [CocoaSecurity aesEncrypt:@"kelp"
+ hexKey:@"280f8bb8c43d532f389ef0e2a5321220b0782b065205dcdfcb8d8f02ed5115b9"
+ hexIv:@"CC0A69779E15780ADAE46C45EB451A23"];
+// aes256.base64 = 'WQYg5qvcGyCBY3IF0hPsoQ=='
+
+CocoaSecurityResult *aes256Decrypt = [CocoaSecurity aesDecryptWithBase64:@"WQYg5qvcGyCBY3IF0hPsoQ=="
+ hexKey:@"280f8bb8c43d532f389ef0e2a5321220b0782b065205dcdfcb8d8f02ed5115b9"
+ hexIv:@"CC0A69779E15780ADAE46C45EB451A23"];
+// aes256Decrypt.utf8String = 'kelp'
+```
+
+
+##CocoaSecurityResult
+CocoaSecurityResult is the result class of CocoaSecurity. It provides convert result data to NSData, NSString, HEX string, Base64 string.
+
+```objective-c
+@property (strong, nonatomic, readonly) NSData *data;
+@property (strong, nonatomic, readonly) NSString *utf8String;
+@property (strong, nonatomic, readonly) NSString *hex;
+@property (strong, nonatomic, readonly) NSString *hexLower;
+@property (strong, nonatomic, readonly) NSString *base64;
+```
+
+
+##CocoaSecurityEncoder
+CocoaSecurityEncoder provides convert NSData to HEX string, Base64 string.
+
+```objective-c
+- (NSString *)base64:(NSData *)data;
+- (NSString *)hex:(NSData *)data useLower:(BOOL)isOutputLower;
+```
+**example:**
+```objective-c
+CocoaSecurityEncoder *encoder = [CocoaSecurityEncoder new];
+NSString *str1 = [encoder hex:[@"kelp" dataUsingEncoding:NSUTF8StringEncoding] useLower:NO];
+// str1 = '6B656C70'
+NSString *str2 = [encoder base64:[@"kelp" dataUsingEncoding:NSUTF8StringEncoding]];
+// str2 = 'a2VscA=='
+```
+
+##CocoaSecurityDecoder
+CocoaSecurityEncoder provides convert HEX string or Base64 string to NSData.
+
+```objective-c
+- (NSData *)base64:(NSString *)data;
+- (NSData *)hex:(NSString *)data;
+```
+**example:**
+```objective-c
+CocoaSecurityDecoder *decoder = [CocoaSecurityDecoder new];
+NSData *data1 = [decoder hex:@"CC0A69779E15780ADAE46C45EB451A23"];
+// data1 =
+NSData *data2 = [decoder base64:@"zT1PS64MnXIUDCUiy13RRg=="];
+// data2 =
+```
+
+
+##Installation
+1. **git:**
+```
+$ git clone git://github.com/kelp404/CocoaSecurity.git
+$ cd CocoaSecurity
+$ git submodule update --init
+```
+
+2. **CocoadPods:**
+add `Podfile` in your project path
+```
+platform :ios
+pod 'CocoaSecurity'
+```
+```
+$ pod install
+```
diff --git a/Example/Pods/CocoaSecurity/submodules/Base64/Base64/Base64.h b/Example/Pods/CocoaSecurity/submodules/Base64/Base64/Base64.h
new file mode 100644
index 0000000..69154a3
--- /dev/null
+++ b/Example/Pods/CocoaSecurity/submodules/Base64/Base64/Base64.h
@@ -0,0 +1,53 @@
+//
+// Base64.h
+//
+// Version 1.2
+//
+// Created by Nick Lockwood on 12/01/2012.
+// Copyright (C) 2012 Charcoal Design
+//
+// Distributed under the permissive zlib License
+// Get the latest version from here:
+//
+// https://github.com/nicklockwood/Base64
+//
+// This software is provided 'as-is', without any express or implied
+// warranty. In no event will the authors be held liable for any damages
+// arising from the use of this software.
+//
+// Permission is granted to anyone to use this software for any purpose,
+// including commercial applications, and to alter it and redistribute it
+// freely, subject to the following restrictions:
+//
+// 1. The origin of this software must not be misrepresented; you must not
+// claim that you wrote the original software. If you use this software
+// in a product, an acknowledgment in the product documentation would be
+// appreciated but is not required.
+//
+// 2. Altered source versions must be plainly marked as such, and must not be
+// misrepresented as being the original software.
+//
+// 3. This notice may not be removed or altered from any source distribution.
+//
+
+#import
+
+
+@interface NSData (Base64)
+
++ (NSData *)dataWithBase64EncodedString:(NSString *)string;
+- (NSString *)base64EncodedStringWithWrapWidth:(NSUInteger)wrapWidth;
+- (NSString *)base64EncodedString;
+
+@end
+
+
+@interface NSString (Base64)
+
++ (NSString *)stringWithBase64EncodedString:(NSString *)string;
+- (NSString *)base64EncodedStringWithWrapWidth:(NSUInteger)wrapWidth;
+- (NSString *)base64EncodedString;
+- (NSString *)base64DecodedString;
+- (NSData *)base64DecodedData;
+
+@end
diff --git a/Example/Pods/CocoaSecurity/submodules/Base64/Base64/Base64.m b/Example/Pods/CocoaSecurity/submodules/Base64/Base64/Base64.m
new file mode 100644
index 0000000..0dffdb0
--- /dev/null
+++ b/Example/Pods/CocoaSecurity/submodules/Base64/Base64/Base64.m
@@ -0,0 +1,167 @@
+//
+// Base64.m
+//
+// Version 1.2
+//
+// Created by Nick Lockwood on 12/01/2012.
+// Copyright (C) 2012 Charcoal Design
+//
+// Distributed under the permissive zlib License
+// Get the latest version from here:
+//
+// https://github.com/nicklockwood/Base64
+//
+// This software is provided 'as-is', without any express or implied
+// warranty. In no event will the authors be held liable for any damages
+// arising from the use of this software.
+//
+// Permission is granted to anyone to use this software for any purpose,
+// including commercial applications, and to alter it and redistribute it
+// freely, subject to the following restrictions:
+//
+// 1. The origin of this software must not be misrepresented; you must not
+// claim that you wrote the original software. If you use this software
+// in a product, an aacknowledgment in the product documentation would be
+// appreciated but is not required.
+//
+// 2. Altered source versions must be plainly marked as such, and must not be
+// misrepresented as being the original software.
+//
+// 3. This notice may not be removed or altered from any source distribution.
+//
+
+#import "Base64.h"
+
+
+#pragma GCC diagnostic ignored "-Wselector"
+
+
+#import
+#if !__has_feature(objc_arc)
+#error This library requires automatic reference counting
+#endif
+
+
+@implementation NSData (Base64)
+
++ (NSData *)dataWithBase64EncodedString:(NSString *)string
+{
+ if (![string length]) return nil;
+
+ NSData *decoded = nil;
+
+#if __MAC_OS_X_VERSION_MIN_REQUIRED < __MAC_10_9 || __IPHONE_OS_VERSION_MIN_REQUIRED < __IPHONE_7_0
+
+ if (![NSData instancesRespondToSelector:@selector(initWithBase64EncodedString:options:)])
+ {
+ decoded = [[self alloc] initWithBase64Encoding:[string stringByReplacingOccurrencesOfString:@"[^A-Za-z0-9+/=]" withString:@"" options:NSRegularExpressionSearch range:NSMakeRange(0, [string length])]];
+ }
+ else
+
+#endif
+
+ {
+ decoded = [[self alloc] initWithBase64EncodedString:string options:NSDataBase64DecodingIgnoreUnknownCharacters];
+ }
+
+ return [decoded length]? decoded: nil;
+}
+
+- (NSString *)base64EncodedStringWithWrapWidth:(NSUInteger)wrapWidth
+{
+ if (![self length]) return nil;
+
+ NSString *encoded = nil;
+
+#if __MAC_OS_X_VERSION_MIN_REQUIRED < __MAC_10_9 || __IPHONE_OS_VERSION_MIN_REQUIRED < __IPHONE_7_0
+
+ if (![NSData instancesRespondToSelector:@selector(base64EncodedStringWithOptions:)])
+ {
+ encoded = [self base64Encoding];
+ }
+ else
+
+#endif
+
+ {
+ switch (wrapWidth)
+ {
+ case 64:
+ {
+ return [self base64EncodedStringWithOptions:NSDataBase64Encoding64CharacterLineLength];
+ }
+ case 76:
+ {
+ return [self base64EncodedStringWithOptions:NSDataBase64Encoding76CharacterLineLength];
+ }
+ default:
+ {
+ encoded = [self base64EncodedStringWithOptions:(NSDataBase64EncodingOptions)0];
+ }
+ }
+ }
+
+ if (!wrapWidth || wrapWidth >= [encoded length])
+ {
+ return encoded;
+ }
+
+ wrapWidth = (wrapWidth / 4) * 4;
+ NSMutableString *result = [NSMutableString string];
+ for (NSUInteger i = 0; i < [encoded length]; i+= wrapWidth)
+ {
+ if (i + wrapWidth >= [encoded length])
+ {
+ [result appendString:[encoded substringFromIndex:i]];
+ break;
+ }
+ [result appendString:[encoded substringWithRange:NSMakeRange(i, wrapWidth)]];
+ [result appendString:@"\r\n"];
+ }
+
+ return result;
+}
+
+- (NSString *)base64EncodedString
+{
+ return [self base64EncodedStringWithWrapWidth:0];
+}
+
+@end
+
+
+@implementation NSString (Base64)
+
++ (NSString *)stringWithBase64EncodedString:(NSString *)string
+{
+ NSData *data = [NSData dataWithBase64EncodedString:string];
+ if (data)
+ {
+ return [[self alloc] initWithData:data encoding:NSUTF8StringEncoding];
+ }
+ return nil;
+}
+
+- (NSString *)base64EncodedStringWithWrapWidth:(NSUInteger)wrapWidth
+{
+ NSData *data = [self dataUsingEncoding:NSUTF8StringEncoding allowLossyConversion:YES];
+ return [data base64EncodedStringWithWrapWidth:wrapWidth];
+}
+
+- (NSString *)base64EncodedString
+{
+ NSData *data = [self dataUsingEncoding:NSUTF8StringEncoding allowLossyConversion:YES];
+ return [data base64EncodedString];
+}
+
+- (NSString *)base64DecodedString
+{
+ return [NSString stringWithBase64EncodedString:self];
+}
+
+- (NSData *)base64DecodedData
+{
+ return [NSData dataWithBase64EncodedString:self];
+}
+
+@end
diff --git a/Example/Pods/Local Podspecs/PNObject.podspec.json b/Example/Pods/Local Podspecs/PNObject.podspec.json
index 3f47a39..2d4293e 100644
--- a/Example/Pods/Local Podspecs/PNObject.podspec.json
+++ b/Example/Pods/Local Podspecs/PNObject.podspec.json
@@ -1,6 +1,6 @@
{
"name": "PNObject",
- "version": "0.3.17",
+ "version": "0.3.18",
"summary": "PNObject is a simple replica of the more complex ParseObject",
"homepage": "https://github.com/giuseppenucifora/PNObject",
"license": "MIT",
@@ -9,18 +9,13 @@
},
"source": {
"git": "https://github.com/giuseppenucifora/PNObject.git",
- "tag": "0.3.17"
+ "tag": "0.3.18"
},
"platforms": {
- "ios": "7.0"
+ "ios": "8.0"
},
"requires_arc": true,
"source_files": "Pod/Classes/**/*",
- "resource_bundles": {
- "PNObject": [
- "Pod/Assets/*.png"
- ]
- },
"dependencies": {
"AFNetworking": [
@@ -55,7 +50,10 @@
"FBSDKLoginKit": [
],
- "RNCryptor": [
+ "NACrypto": [
+
+ ],
+ "NSUserDefaults-AESEncryptor": [
]
}
diff --git a/Example/Pods/Manifest.lock b/Example/Pods/Manifest.lock
index fbe41b9..6788f58 100644
--- a/Example/Pods/Manifest.lock
+++ b/Example/Pods/Manifest.lock
@@ -20,7 +20,8 @@ PODS:
- Bolts/AppLinks (1.6.0):
- Bolts/Tasks
- Bolts/Tasks (1.6.0)
- - CodFis-Helper (0.1.2)
+ - CocoaSecurity (1.2.4)
+ - CodFis-Helper (0.1.3)
- Expecta (1.0.5)
- Expecta+Snapshots (2.0.0):
- Expecta (~> 1.0)
@@ -36,28 +37,31 @@ PODS:
- FBSnapshotTestCase/Core (2.0.7)
- FBSnapshotTestCase/SwiftSupport (2.0.7):
- FBSnapshotTestCase/Core
- - NSDate_Utils (0.1.2)
- - NSString-Helper (1.0.3)
+ - NACrypto (1.0.6)
+ - NSDate_Utils (0.1.3)
+ - NSString-Helper (1.0.4)
+ - NSUserDefaults-AESEncryptor (0.0.4):
+ - CocoaSecurity (~> 1.2.2)
- nv-ios-http-status (0.0.1)
- PEAR-FileManager-iOS (1.3.1)
- - PNObject (0.3.17):
+ - PNObject (0.3.18):
- AFNetworking
- CodFis-Helper
- FBSDKCoreKit
- FBSDKLoginKit
- FBSDKShareKit
+ - NACrypto
- NSDate_Utils
- NSString-Helper
+ - NSUserDefaults-AESEncryptor
- nv-ios-http-status
- PEAR-FileManager-iOS
- - RNCryptor
- StrongestPasswordValidator
- UIDevice-Utils
- PureLayout (3.0.1)
- - RNCryptor (4.0.0)
- Specta (1.0.5)
- - StrongestPasswordValidator (0.1.1)
- - UIDevice-Utils (0.1.4)
+ - StrongestPasswordValidator (0.1.2)
+ - UIDevice-Utils (0.1.5)
DEPENDENCIES:
- AFNetworking
@@ -85,24 +89,26 @@ EXTERNAL SOURCES:
SPEC CHECKSUMS:
AFNetworking: a0075feb321559dc78d9d85b55d11caa19eabb93
Bolts: f52a250053bb517ca874523c3913776359ab3def
- CodFis-Helper: f303810699f22dbcba8fb8c600545ac91fc3ec42
+ CocoaSecurity: d288a6f87e0f363823d2cb83e753814a6944f71a
+ CodFis-Helper: 28be4c74d7202542459d72354f59b1215871de87
Expecta: e1c022fcd33910b6be89c291d2775b3fe27a89fe
Expecta+Snapshots: 29b38dd695bc72a0ed2bea833937d78df41943ba
FBSDKCoreKit: 13bec8373fb3af94d44daf2aa1e0958687897fbd
FBSDKLoginKit: d3d4a2e9d31954deb00bfea964167a05ca1ea976
FBSDKShareKit: 54587b4624706ace1e810cf83412a918141f807a
FBSnapshotTestCase: 7e85180d0d141a0cf472352edda7e80d7eaeb547
- NSDate_Utils: 6f310af16917c48536836d4c17e1e47bf6fbe8e4
- NSString-Helper: d4c5459e8142ee6a96b070118009f08637030c2d
+ NACrypto: ce3900f1775f1b0cc27ce7c4953b94c598a74149
+ NSDate_Utils: 68669d2c81f310ee13026c791f4f0ed227b94c65
+ NSString-Helper: b4183f73f0a00c6fcd607edebb6c35a7a461376d
+ NSUserDefaults-AESEncryptor: da02cfef056f1e18ebe2748767915f08b274c9c5
nv-ios-http-status: b6c2b5fc8656cc19e0d3000dadce2080b99d0e2f
PEAR-FileManager-iOS: 3bc403f68a53483f5629aa822f4649e40275c4d3
- PNObject: ecc91ff0b61392abb7ab87b4d4c0c633f2f8520b
+ PNObject: 9c66f67c7861a646060f8dc7a550eeeb3f8bd924
PureLayout: f35f5384c9c4e4479df041dbe33ad7577b71ddfb
- RNCryptor: 59d6483908115af5c12b884db23392024e52a5fe
Specta: ac94d110b865115fe60ff2c6d7281053c6f8e8a2
- StrongestPasswordValidator: 554de9038705e18904f0337903dfd3b85a6b271b
- UIDevice-Utils: 0beb5f9d2bd256a3efe05c1e43a2a8b8702199c4
+ StrongestPasswordValidator: 921e42615bdf353513c6f925bffd4fc29865dbd7
+ UIDevice-Utils: a87bbaed53a74d503deb3e25511c9a4d865b92ea
PODFILE CHECKSUM: 2e494b482bc938579e08ab48dab20d64709c3062
-COCOAPODS: 1.0.0.beta.5
+COCOAPODS: 1.0.0.beta.6
diff --git a/Example/Pods/NACrypto/LICENSE b/Example/Pods/NACrypto/LICENSE
new file mode 100644
index 0000000..24c7920
--- /dev/null
+++ b/Example/Pods/NACrypto/LICENSE
@@ -0,0 +1,22 @@
+The MIT License (MIT)
+
+Copyright (c) 2015 Gabriel Handford
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+
diff --git a/Example/Pods/NACrypto/NACrypto/NAAES.h b/Example/Pods/NACrypto/NACrypto/NAAES.h
new file mode 100644
index 0000000..c8ec754
--- /dev/null
+++ b/Example/Pods/NACrypto/NACrypto/NAAES.h
@@ -0,0 +1,25 @@
+//
+// NAAES.h
+// NACrypto
+//
+// Created by Gabriel on 6/20/14.
+// Copyright (c) 2014 Gabriel Handford. All rights reserved.
+//
+
+#import
+
+typedef NS_ENUM (NSUInteger, NAAESAlgorithm) {
+ NAAESAlgorithm256CTR = 1,
+};
+
+@interface NAAES : NSObject
+
+@property (readonly) NAAESAlgorithm algorithm;
+
+- (instancetype)initWithAlgorithm:(NAAESAlgorithm)algorithm;
+
+- (NSData *)encrypt:(NSData *)data nonce:(NSData *)nonce key:(NSData *)key error:(NSError **)error;
+
+- (NSData *)decrypt:(NSData *)data nonce:(NSData *)nonce key:(NSData *)key error:(NSError **)error;
+
+@end
diff --git a/Example/Pods/NACrypto/NACrypto/NAAES.m b/Example/Pods/NACrypto/NACrypto/NAAES.m
new file mode 100644
index 0000000..c7fd868
--- /dev/null
+++ b/Example/Pods/NACrypto/NACrypto/NAAES.m
@@ -0,0 +1,72 @@
+//
+// NAAES.m
+// NACrypto
+//
+// Created by Gabriel on 6/20/14.
+// Copyright (c) 2014 Gabriel Handford. All rights reserved.
+//
+
+#import "NAAES.h"
+
+//#include "crypto_stream_aes256estream.h"
+#include
+
+#import "NACounter.h"
+#import "NANSMutableData+Utils.h"
+
+#define AES_256_CTR_NONCE_BYTES (16)
+#define AES_256_CTR_KEY_BYTES (32)
+
+@implementation NAAES
+
+- (instancetype)initWithAlgorithm:(NAAESAlgorithm)algorithm {
+ if ((self = [super init])) {
+ _algorithm = algorithm;
+ }
+ return self;
+}
+
+- (NSData *)encrypt:(NSData *)data nonce:(NSData *)nonce key:(NSData *)key error:(NSError **)error {
+ NSAssert(_algorithm == NAAESAlgorithm256CTR, @"Unsupported algorithm");
+
+ if (!nonce || [nonce length] < AES_256_CTR_NONCE_BYTES) {
+ if (error) *error = [NSError errorWithDomain:@"NACrypto" code:600 userInfo:@{NSLocalizedDescriptionKey: @"Invalid AES nonce"}];
+ return nil;
+ }
+
+ if (!key || [key length] != AES_256_CTR_KEY_BYTES) {
+ if (error) *error = [NSError errorWithDomain:@"NACrypto" code:601 userInfo:@{NSLocalizedDescriptionKey: @"Invalid AES key"}];
+ return nil;
+ }
+
+ // This libsodium version doesn't return what I expected
+ //int retval = crypto_stream_aes256estream_xor([outData mutableBytes], [data bytes], [data length], [nonce bytes], [key bytes]);
+
+ NSMutableData *outData = [data mutableCopy];
+
+ CCCryptorStatus cryptStatus;
+ CCCryptorRef cryptor;
+ cryptStatus = CCCryptorCreateWithMode(kCCEncrypt, kCCModeCTR, kCCAlgorithmAES128, ccNoPadding, [nonce bytes], [key bytes], [key length], NULL, 0, 0, kCCModeOptionCTR_BE, &cryptor);
+
+ if (cryptStatus != kCCSuccess) {
+ if (error) *error = [NSError errorWithDomain:@"NACrypto" code:604 userInfo:@{NSLocalizedDescriptionKey: @"Failed AES (1)"}];
+ return nil;
+ }
+
+ size_t bytesEncrypted;
+ cryptStatus = CCCryptorUpdate(cryptor, [data bytes],[ data length], [outData mutableBytes], [outData length], &bytesEncrypted);
+
+ if (cryptStatus != kCCSuccess) {
+ if (error) *error = [NSError errorWithDomain:@"NACrypto" code:605 userInfo:@{NSLocalizedDescriptionKey: @"Failed AES (2)"}];
+ return nil;
+ }
+
+ return outData;
+}
+
+- (NSData *)decrypt:(NSData *)data nonce:(NSData *)nonce key:(NSData *)key error:(NSError **)error {
+ NSAssert(_algorithm == NAAESAlgorithm256CTR, @"Unsupported algorithm");
+ return [self encrypt:data nonce:nonce key:key error:error];
+}
+
+@end
diff --git a/Example/Pods/NACrypto/NACrypto/NACounter.h b/Example/Pods/NACrypto/NACrypto/NACounter.h
new file mode 100644
index 0000000..3657723
--- /dev/null
+++ b/Example/Pods/NACrypto/NACrypto/NACounter.h
@@ -0,0 +1,20 @@
+//
+// NACounter.h
+// NACrypto
+//
+// Created by Gabriel on 6/20/14.
+// Copyright (c) 2014 Gabriel Handford. All rights reserved.
+//
+
+#import
+
+// Counter for CTR mode
+@interface NACounter : NSObject
+
+- (instancetype)initWithData:(NSData *)data;
+
+- (void)increment;
+
+- (NSData *)data;
+
+@end
diff --git a/Example/Pods/NACrypto/NACrypto/NACounter.m b/Example/Pods/NACrypto/NACrypto/NACounter.m
new file mode 100644
index 0000000..3522654
--- /dev/null
+++ b/Example/Pods/NACrypto/NACrypto/NACounter.m
@@ -0,0 +1,44 @@
+//
+// NACounter.m
+// NACrypto
+//
+// Created by Gabriel on 6/20/14.
+// Copyright (c) 2014 Gabriel Handford. All rights reserved.
+//
+
+#import "NACounter.h"
+
+@interface NACounter ()
+@property NSMutableData *counterData;
+@end
+
+#define DEFAULT_LENGTH (16)
+
+@implementation NACounter
+
+- (instancetype)init {
+ NSAssert(NO, @"Use initWithData:");
+ return nil;
+}
+
+- (instancetype)initWithData:(NSData *)data {
+ if ((self = [super init])) {
+ _counterData = [data mutableCopy];
+ }
+ return self;
+}
+
+- (void)increment {
+ for (NSInteger i = [_counterData length] - 1; i >= 0; i--) {
+ uint8_t *bytes = [_counterData mutableBytes];
+ bytes[i]++;
+ if (bytes[i])
+ break;
+ }
+}
+
+- (NSData *)data {
+ return _counterData;
+}
+
+@end
diff --git a/Example/Pods/NACrypto/NACrypto/NACrypto.h b/Example/Pods/NACrypto/NACrypto/NACrypto.h
new file mode 100644
index 0000000..54ca388
--- /dev/null
+++ b/Example/Pods/NACrypto/NACrypto/NACrypto.h
@@ -0,0 +1,33 @@
+//
+// NACrypto.h
+// NACrypto
+//
+// Created by Gabriel on 6/16/15.
+// Copyright (c) 2015 Gabriel Handford. All rights reserved.
+//
+
+#import
+
+//! Project version number for NACrypto.
+FOUNDATION_EXPORT double NACryptoVersionNumber;
+
+//! Project version string for NACrypto.
+FOUNDATION_EXPORT const unsigned char NACryptoVersionString[];
+
+// In this header, you should import all the public headers of your framework using statements like #import
+
+#import
+#import
+#import
+
+#import
+#import
+#import
+
+#import
+#import
+
+#import
+#import
+#import
+
diff --git a/Example/Pods/NACrypto/NACrypto/NADigest.h b/Example/Pods/NACrypto/NACrypto/NADigest.h
new file mode 100644
index 0000000..2e0f62c
--- /dev/null
+++ b/Example/Pods/NACrypto/NACrypto/NADigest.h
@@ -0,0 +1,34 @@
+//
+// NADigest.h
+// NACrypto
+//
+// Created by Gabriel on 7/3/14.
+// Copyright (c) 2014 Gabriel Handford. All rights reserved.
+//
+
+#import
+
+typedef NS_ENUM (NSUInteger, NADigestAlgorithm) {
+ //NADigestAlgorithmSHA1 = 1, // SHA1 might not be secure enough
+ NADigestAlgorithmSHA2_224 = 2,
+ NADigestAlgorithmSHA2_256,
+ NADigestAlgorithmSHA2_384,
+ NADigestAlgorithmSHA2_512,
+
+ // SHA3
+ NADigestAlgorithmSHA3_256,
+ NADigestAlgorithmSHA3_384,
+ NADigestAlgorithmSHA3_512,
+};
+
+@interface NADigest : NSObject
+
+@property NADigestAlgorithm algorithm;
+
+- (instancetype)initWithAlgorithm:(NADigestAlgorithm)algorithm;
+
+- (NSData *)digestForData:(NSData *)data;
+
++ (NSData *)digestForData:(NSData *)data algorithm:(NADigestAlgorithm)algorithm;
+
+@end
diff --git a/Example/Pods/NACrypto/NACrypto/NADigest.m b/Example/Pods/NACrypto/NACrypto/NADigest.m
new file mode 100644
index 0000000..b62641e
--- /dev/null
+++ b/Example/Pods/NACrypto/NACrypto/NADigest.m
@@ -0,0 +1,77 @@
+//
+// NADigest.m
+// NACrypto
+//
+// Created by Gabriel on 7/3/14.
+// Copyright (c) 2014 Gabriel Handford. All rights reserved.
+//
+
+#import "NADigest.h"
+#import "NASHA3.h"
+
+#import
+
+@implementation NADigest
+
+- (instancetype)initWithAlgorithm:(NADigestAlgorithm)algorithm {
+ if ((self = [super init])) {
+ _algorithm = algorithm;
+ }
+ return self;
+}
+
+- (NSData *)digestForData:(NSData *)data {
+ return [NADigest digestForData:data algorithm:_algorithm];
+}
+
++ (NSData *)digestForData:(NSData *)data algorithm:(NADigestAlgorithm)algorithm {
+ switch (algorithm) {
+ case NADigestAlgorithmSHA2_224:
+ case NADigestAlgorithmSHA2_256:
+ case NADigestAlgorithmSHA2_384:
+ case NADigestAlgorithmSHA2_512:
+ return [self _SHAForData:data algorithm:algorithm];
+
+ case NADigestAlgorithmSHA3_256:
+ return [NASHA3 SHA3ForData:data digestBitLength:256];
+ case NADigestAlgorithmSHA3_384:
+ return [NASHA3 SHA3ForData:data digestBitLength:384];
+ case NADigestAlgorithmSHA3_512:
+ return [NASHA3 SHA3ForData:data digestBitLength:512];
+ }
+}
+
++ (NSData *)_SHAForData:(NSData *)data algorithm:(NADigestAlgorithm)algorithm {
+ switch (algorithm) {
+ case NADigestAlgorithmSHA2_224: {
+ uint8_t digest[CC_SHA224_DIGEST_LENGTH];
+ CC_SHA224(data.bytes, (CC_LONG)data.length, digest);
+ return [[NSData alloc] initWithBytes:digest length:sizeof(digest)];
+ }
+
+ case NADigestAlgorithmSHA2_256: {
+ uint8_t digest[CC_SHA256_DIGEST_LENGTH];
+ CC_SHA256(data.bytes, (CC_LONG)data.length, digest);
+ return [[NSData alloc] initWithBytes:digest length:sizeof(digest)];
+ }
+
+ case NADigestAlgorithmSHA2_384: {
+ uint8_t digest[CC_SHA384_DIGEST_LENGTH];
+ CC_SHA384(data.bytes, (CC_LONG)data.length, digest);
+ return [[NSData alloc] initWithBytes:digest length:sizeof(digest)];
+ }
+
+ case NADigestAlgorithmSHA2_512: {
+ uint8_t digest[CC_SHA512_DIGEST_LENGTH];
+ CC_SHA512(data.bytes, (CC_LONG)data.length, digest);
+ return [[NSData alloc] initWithBytes:digest length:sizeof(digest)];
+ }
+
+ default: {
+ NSAssert(NO, @"Unsupported algorithm");
+ return nil;
+ }
+ }
+}
+
+@end
diff --git a/Example/Pods/NACrypto/NACrypto/NAHMAC.h b/Example/Pods/NACrypto/NACrypto/NAHMAC.h
new file mode 100644
index 0000000..0c357ff
--- /dev/null
+++ b/Example/Pods/NACrypto/NACrypto/NAHMAC.h
@@ -0,0 +1,34 @@
+//
+// NAHMAC.h
+// NACL
+//
+// Created by Gabriel Handford on 1/16/14.
+// Copyright (c) 2014 Gabriel Handford. All rights reserved.
+//
+
+#import
+
+typedef NS_ENUM (NSUInteger, NAHMACAlgorithm) {
+ NAHMACAlgorithmSHA1,
+ NAHMACAlgorithmSHA2_224,
+ NAHMACAlgorithmSHA2_256,
+ NAHMACAlgorithmSHA2_384,
+ NAHMACAlgorithmSHA2_512,
+
+ // SHA3
+ NAHMACAlgorithmSHA3_256,
+ NAHMACAlgorithmSHA3_384,
+ NAHMACAlgorithmSHA3_512,
+};
+
+@interface NAHMAC : NSObject
+
+@property NAHMACAlgorithm algorithm;
+
+- (instancetype)initWithAlgorithm:(NAHMACAlgorithm)algorithm;
+
+- (NSData *)HMACForKey:(NSData *)key data:(NSData *)data;
+
++ (NSData *)HMACForKey:(NSData *)key data:(NSData *)data algorithm:(NAHMACAlgorithm)algorithm;
+
+@end
diff --git a/Example/Pods/NACrypto/NACrypto/NAHMAC.m b/Example/Pods/NACrypto/NACrypto/NAHMAC.m
new file mode 100644
index 0000000..5b381ce
--- /dev/null
+++ b/Example/Pods/NACrypto/NACrypto/NAHMAC.m
@@ -0,0 +1,121 @@
+//
+// NAHMAC.m
+// NACL
+//
+// Created by Gabriel Handford on 1/16/14.
+// Copyright (c) 2014 Gabriel Handford. All rights reserved.
+//
+
+#import "NAHMAC.h"
+
+#include
+#import "NANSData+Utils.h"
+#import "NANSString+Utils.h"
+#import "NASHA3.h"
+
+@implementation NAHMAC
+
+- (instancetype)initWithAlgorithm:(NAHMACAlgorithm)algorithm {
+ if ((self = [super init])) {
+ _algorithm = algorithm;
+ }
+ return self;
+}
+
+- (NSData *)HMACForKey:(NSData *)key data:(NSData *)data {
+ return [NAHMAC HMACForKey:key data:data algorithm:_algorithm];
+}
+
++ (NSData *)HMACForKey:(NSData *)key data:(NSData *)data algorithm:(NAHMACAlgorithm)algorithm {
+ NSParameterAssert(key);
+
+ switch (algorithm) {
+ case NAHMACAlgorithmSHA1:
+ case NAHMACAlgorithmSHA2_224:
+ case NAHMACAlgorithmSHA2_256:
+ case NAHMACAlgorithmSHA2_384:
+ case NAHMACAlgorithmSHA2_512:
+ return [self _HMACSHAForKey:key data:data algorithm:algorithm];
+
+ case NAHMACAlgorithmSHA3_256:
+ case NAHMACAlgorithmSHA3_384:
+ case NAHMACAlgorithmSHA3_512:
+ return [self _HMACSHA3ForKey:key data:data algorithm:algorithm];
+ }
+}
+
++ (NSData *)_HMACSHAForKey:(NSData *)key data:(NSData *)data algorithm:(NAHMACAlgorithm)algorithm {
+ CCHmacAlgorithm ccAlgorithm;
+ NSUInteger dataLength;
+ switch (algorithm) {
+ case NAHMACAlgorithmSHA1: ccAlgorithm = kCCHmacAlgSHA1; dataLength = CC_SHA1_DIGEST_LENGTH; break;
+ case NAHMACAlgorithmSHA2_224: ccAlgorithm = kCCHmacAlgSHA224; dataLength = CC_SHA224_DIGEST_LENGTH; break;
+ case NAHMACAlgorithmSHA2_256: ccAlgorithm = kCCHmacAlgSHA256; dataLength = CC_SHA256_DIGEST_LENGTH; break;
+ case NAHMACAlgorithmSHA2_384: ccAlgorithm = kCCHmacAlgSHA384; dataLength = CC_SHA384_DIGEST_LENGTH; break;
+ case NAHMACAlgorithmSHA2_512: ccAlgorithm = kCCHmacAlgSHA512; dataLength = CC_SHA512_DIGEST_LENGTH; break;
+ default:
+ NSAssert(NO, @"Unsupported algorithm");
+ return nil;
+ }
+
+ CCHmacContext ctx;
+ CCHmacInit(&ctx, ccAlgorithm, [key bytes], [key length]);
+
+ CCHmacUpdate(&ctx, [data bytes], [data length]);
+
+ NSMutableData *macOut = [NSMutableData dataWithLength:dataLength];
+ CCHmacFinal(&ctx, [macOut mutableBytes]);
+ return macOut;
+}
+
++ (NSData *)_HMACSHA3ForKey:(NSData *)key data:(NSData *)data algorithm:(NAHMACAlgorithm)algorithm {
+ NSUInteger blockLength = 72;
+ NSUInteger keyLength = [key length];
+
+ NSUInteger digestBitLength;
+ switch (algorithm) {
+ case NAHMACAlgorithmSHA3_256: digestBitLength = 256; break;
+ case NAHMACAlgorithmSHA3_384: digestBitLength = 384; break;
+ case NAHMACAlgorithmSHA3_512: digestBitLength = 512; break;
+
+ default:
+ NSAssert(NO, @"Unsupported algorithm");
+ return nil;
+ }
+
+ //
+ // Used this as a reference:
+ // http://www.opensource.apple.com/source/CommonCrypto/CommonCrypto-55010/Source/API/CommonHMAC.c
+ //
+
+ uint8_t *keyP;
+
+ if (keyLength > blockLength) {
+ key = [NASHA3 SHA3ForData:key digestBitLength:digestBitLength];
+ keyLength = [key length];
+ }
+
+ NSMutableData *keyIn = [NSMutableData dataWithLength:blockLength];
+ uint8_t *k_ipad = [keyIn mutableBytes];
+ NSMutableData *keyOut = [NSMutableData dataWithLength:blockLength];
+ uint8_t *k_opad = [keyOut mutableBytes];
+
+ keyP = (uint8_t *)[key bytes];
+ /* Copy the key into k_ipad and k_opad while doing the XOR. */
+ for (uint32_t byte = 0; byte < keyLength; byte++) {
+ k_ipad[byte] = keyP[byte] ^ 0x36;
+ k_opad[byte] = keyP[byte] ^ 0x5c;
+ }
+ /* Fill the remainder of k_ipad and k_opad with 0 XORed with the appropriate value. */
+ if (keyLength < blockLength) {
+ memset(k_ipad + keyLength, 0x36, blockLength - keyLength);
+ memset(k_opad + keyLength, 0x5c, blockLength - keyLength);
+ }
+
+ NSData *macOut = [NASHA3 SHA3ForDatas:@[keyIn, data] digestBitLength:digestBitLength];
+
+ /* Perform outer digest */
+ return [NASHA3 SHA3ForDatas:@[keyOut, macOut] digestBitLength:digestBitLength];
+}
+
+@end
diff --git a/Example/Pods/NACrypto/NACrypto/NAKeychain.h b/Example/Pods/NACrypto/NACrypto/NAKeychain.h
new file mode 100644
index 0000000..ed8a917
--- /dev/null
+++ b/Example/Pods/NACrypto/NACrypto/NAKeychain.h
@@ -0,0 +1,17 @@
+//
+// NAKeychain.h
+// NACL
+//
+// Created by Gabriel Handford on 1/21/14.
+// Copyright (c) 2014 Gabriel Handford. All rights reserved.
+//
+
+#import
+
+@interface NAKeychain : NSObject
+
++ (BOOL)addSymmetricKey:(NSData *)symmetricKey applicationLabel:(NSString *)applicationLabel tag:(NSData *)tag label:(NSString *)label;
+
++ (NSData *)symmetricKeyWithApplicationLabel:(NSString *)applicationLabel;
+
+@end
diff --git a/Example/Pods/NACrypto/NACrypto/NAKeychain.m b/Example/Pods/NACrypto/NACrypto/NAKeychain.m
new file mode 100644
index 0000000..ec60a5e
--- /dev/null
+++ b/Example/Pods/NACrypto/NACrypto/NAKeychain.m
@@ -0,0 +1,104 @@
+//
+// NAKeychain.m
+// NACL
+//
+// Created by Gabriel Handford on 1/21/14.
+// Copyright (c) 2014 Gabriel Handford. All rights reserved.
+//
+
+#import "NAKeychain.h"
+
+@implementation NAKeychain
+
++ (BOOL)addKey:(NSData *)key attributes:(NSDictionary *)attributes {
+ if (!key || attributes[(__bridge id)(kSecAttrKeyClass)] == nil || attributes[(__bridge id)(kSecAttrApplicationLabel)] == nil) {
+ return NO;
+ }
+
+ NSMutableDictionary *allAttributes = [NSMutableDictionary dictionaryWithDictionary:attributes];
+ allAttributes[(__bridge __strong id)(kSecClass)] = (__bridge id)(kSecClassKey);
+ allAttributes[(__bridge __strong id)(kSecValueData)] = key;
+ if (allAttributes[(__bridge id)(kSecAttrIsPermanent)] == nil) {
+ allAttributes[(__bridge __strong id)(kSecAttrIsPermanent)] = @(YES);
+ }
+
+ OSStatus status = SecItemAdd((__bridge CFDictionaryRef)(allAttributes), NULL);
+ if (status != errSecSuccess) {
+ return NO;
+ }
+ return YES;
+}
+
++ (BOOL)addSymmetricKey:(NSData *)symmetricKey applicationLabel:(NSString *)applicationLabel tag:(NSData *)tag label:(NSString *)label {
+
+ if (!symmetricKey || !applicationLabel) {
+ return NO;
+ }
+
+ NSMutableDictionary *attributes = [NSMutableDictionary dictionary];
+ attributes[(__bridge __strong id)kSecAttrKeyClass] = (__bridge id)kSecAttrKeyClassSymmetric;
+ attributes[(__bridge __strong id)kSecAttrAccessible] = (__bridge id)kSecAttrAccessibleWhenUnlockedThisDeviceOnly;
+ attributes[(__bridge __strong id)kSecAttrApplicationLabel] = applicationLabel;
+ if (tag) {
+ attributes[(__bridge __strong id)kSecAttrApplicationTag] = tag;
+ }
+ if (label) {
+ attributes[(__bridge __strong id)kSecAttrLabel] = label;
+ }
+
+ return [self addKey:symmetricKey attributes:attributes];
+}
+
++ (NSData *)keyWithApplicationLabel:(NSString *)applicationLabel attributes:(NSDictionary *)attributes {
+ if (!applicationLabel || !attributes[(__bridge id)(kSecAttrKeyClass)]) {
+ return nil;
+ }
+
+ NSMutableDictionary *allAttributes = [NSMutableDictionary dictionaryWithDictionary:attributes];
+ allAttributes[(__bridge __strong id)(kSecClass)] = (__bridge id)(kSecClassKey);
+ allAttributes[(__bridge __strong id)kSecAttrApplicationLabel] = applicationLabel;
+ if (allAttributes[(__bridge id)(kSecAttrIsPermanent)] == nil) {
+ allAttributes[(__bridge __strong id)(kSecAttrIsPermanent)] = @(YES);
+ }
+ allAttributes[(__bridge __strong id)(kSecReturnData)] = @(YES);
+
+ CFTypeRef keyData = nil;
+ OSStatus status = SecItemCopyMatching((__bridge CFDictionaryRef)allAttributes, &keyData);
+ if (status != errSecSuccess) {
+ return nil;
+ }
+
+ return (__bridge_transfer NSData *)keyData;
+}
+
++ (NSData *)symmetricKeyWithApplicationLabel:(NSString *)applicationLabel {
+ NSDictionary *attributes = @{(__bridge __strong id)kSecAttrKeyClass: (__bridge id)kSecAttrKeyClassSymmetric};
+ return [self keyWithApplicationLabel:applicationLabel attributes:attributes];
+}
+
++ (NSDictionary *)keyAttributesWithApplicationLabel:(NSString *)applicationLabel queryAttributes:(NSDictionary *)queryAttributes {
+ if (!applicationLabel || !queryAttributes || !queryAttributes[(__bridge id)(kSecAttrKeyClass)]) {
+ return nil;
+ }
+
+ NSMutableDictionary *allAttributes = [NSMutableDictionary dictionaryWithDictionary:queryAttributes];
+ allAttributes[(__bridge __strong id)(kSecClass)] = (__bridge id)(kSecClassKey);
+ allAttributes[(__bridge __strong id)(kSecAttrApplicationLabel)] = applicationLabel;
+ allAttributes[(__bridge __strong id)(kSecReturnData)] = @YES;
+ allAttributes[(__bridge __strong id)(kSecReturnAttributes)] = @YES;
+
+ CFTypeRef resultData = nil;
+ OSStatus status = SecItemCopyMatching((__bridge CFDictionaryRef)allAttributes, &resultData);
+ if (status != errSecSuccess) {
+ return nil;
+ }
+
+ return (__bridge_transfer NSDictionary *)resultData;
+}
+
++ (NSDictionary *)symmetricKeyAttributesWithApplicationLabel:(NSString *)applicationLabel {
+ NSDictionary *queryAttributes = @{(__bridge __strong id)(kSecAttrKeyClass): (__bridge id)(kSecAttrKeyClassSymmetric)};
+ return [self keyAttributesWithApplicationLabel:applicationLabel queryAttributes:queryAttributes];
+}
+
+@end
diff --git a/Example/Pods/NACrypto/NACrypto/NANSData+Utils.h b/Example/Pods/NACrypto/NACrypto/NANSData+Utils.h
new file mode 100644
index 0000000..cedc442
--- /dev/null
+++ b/Example/Pods/NACrypto/NACrypto/NANSData+Utils.h
@@ -0,0 +1,23 @@
+//
+// NANSData+Utils.h
+// NACL
+//
+// Created by Gabriel Handford on 1/16/14.
+// Copyright (c) 2014 Gabriel Handford. All rights reserved.
+//
+
+#import
+
+@interface NSData (NAUtils)
+
+- (NSString *)na_hexString;
+
++ (NSData *)na_dataWithDatas:(NSArray *)datas;
+
+- (BOOL)na_isEqualConstantTime:(NSData *)data;
+
+- (void)na_sliceNoCopyAtIndex:(NSUInteger)index data:(NSData **)data1 data:(NSData **)data2;
+
++ (NSData *)na_dataNoCopy:(NSData *)data offset:(NSUInteger)offset length:(NSUInteger)length;
+
+@end
diff --git a/Example/Pods/NACrypto/NACrypto/NANSData+Utils.m b/Example/Pods/NACrypto/NACrypto/NANSData+Utils.m
new file mode 100644
index 0000000..fa38c4d
--- /dev/null
+++ b/Example/Pods/NACrypto/NACrypto/NANSData+Utils.m
@@ -0,0 +1,70 @@
+//
+// NANSData+Utils.m
+// NACL
+//
+// Created by Gabriel Handford on 1/16/14.
+// Copyright (c) 2014 Gabriel Handford. All rights reserved.
+//
+
+#import "NANSData+Utils.h"
+
+@implementation NSData (NAUtils)
+
+- (NSString *)na_hexString {
+ if ([self length] == 0) return nil;
+ NSMutableString *hexString = [NSMutableString stringWithCapacity:[self length] * 2];
+ for (NSUInteger i = 0; i < [self length]; ++i) {
+ [hexString appendFormat:@"%02X", *((uint8_t *)[self bytes] + i)];
+ }
+ return [hexString lowercaseString];
+}
+
++ (NSData *)na_dataWithDatas:(NSArray *)datas {
+ NSInteger length = 0;
+ for (NSData *data in datas) {
+ length += data.length;
+ }
+ NSMutableData *combined = [NSMutableData dataWithCapacity:length];
+ for (NSData *data in datas) {
+ [combined appendData:data];
+ }
+ return combined;
+}
+
+- (BOOL)na_isEqualConstantTime:(NSData *)data {
+ if ([self length] != [data length]) return NO;
+
+ const uint8_t *dataPtr = (uint8_t *)self.bytes;
+ const uint8_t *data2Ptr = (uint8_t *)data.bytes;
+
+ uint8_t result = 0;
+ for (int i = 0; i < self.length; i++) {
+ result = result ^ (dataPtr[i] ^ data2Ptr[i]);
+ }
+ return (result == 0);
+}
+
+- (void)na_sliceNoCopyAtIndex:(NSUInteger)index data:(NSData **)data1 data:(NSData **)data2 {
+ if (index > [self length]) {
+ [NSException raise:NSRangeException format:@"Index is out of bounds"];
+ return;
+ }
+
+ if (index > 0) {
+ *data1 = [NSData dataWithBytesNoCopy:(uint8_t *)[self bytes] length:index freeWhenDone:NO];
+ } else {
+ *data1 = [NSData data];
+ }
+
+ if ([self length] > index) {
+ *data2 = [NSData dataWithBytesNoCopy:((uint8_t *)[self bytes] + index) length:([self length] - index) freeWhenDone:NO];
+ } else {
+ *data2 = [NSData data];
+ }
+}
+
++ (NSData *)na_dataNoCopy:(NSData *)data offset:(NSUInteger)offset length:(NSUInteger)length {
+ return [NSData dataWithBytesNoCopy:((uint8_t *)[data bytes] + offset) length:length freeWhenDone:NO];
+}
+
+@end
diff --git a/Example/Pods/NACrypto/NACrypto/NANSMutableData+Utils.h b/Example/Pods/NACrypto/NACrypto/NANSMutableData+Utils.h
new file mode 100644
index 0000000..60dc070
--- /dev/null
+++ b/Example/Pods/NACrypto/NACrypto/NANSMutableData+Utils.h
@@ -0,0 +1,15 @@
+//
+// NANSMutableData+Utils.h
+// NACrypto
+//
+// Created by Gabriel on 6/20/14.
+// Copyright (c) 2014 Gabriel Handford. All rights reserved.
+//
+
+#import
+
+@interface NSMutableData (NAUtils)
+
+- (void)na_XORWithData:(NSData *)data index:(NSInteger)index;
+
+@end
diff --git a/Example/Pods/NACrypto/NACrypto/NANSMutableData+Utils.m b/Example/Pods/NACrypto/NACrypto/NANSMutableData+Utils.m
new file mode 100644
index 0000000..c02b0ca
--- /dev/null
+++ b/Example/Pods/NACrypto/NACrypto/NANSMutableData+Utils.m
@@ -0,0 +1,24 @@
+//
+// NANSMutableData+Utils.m
+// NACrypto
+//
+// Created by Gabriel on 6/20/14.
+// Copyright (c) 2014 Gabriel Handford. All rights reserved.
+//
+
+#import "NANSMutableData+Utils.h"
+
+@implementation NSMutableData (NAUtils)
+
+- (void)na_XORWithData:(NSData *)data index:(NSInteger)index {
+ uint8_t *dataPtr = (uint8_t *)self.mutableBytes;
+ const uint8_t *data2Ptr = (uint8_t *)data.bytes;
+
+ NSAssert(index < self.length, @"Invalid index");
+
+ for (int i = 0; i < data.length && (i + index) < self.length; i++) {
+ dataPtr[i + index] = dataPtr[i + index] ^ data2Ptr[i];
+ }
+}
+
+@end
diff --git a/Example/Pods/NACrypto/NACrypto/NANSString+Utils.h b/Example/Pods/NACrypto/NACrypto/NANSString+Utils.h
new file mode 100644
index 0000000..2fd712d
--- /dev/null
+++ b/Example/Pods/NACrypto/NACrypto/NANSString+Utils.h
@@ -0,0 +1,15 @@
+//
+// NANSString+Utils.h
+// NACrypto
+//
+// Created by Gabriel on 6/19/14.
+// Copyright (c) 2014 Gabriel Handford. All rights reserved.
+//
+
+#import
+
+@interface NSString (NAUtils)
+
+- (NSData *)na_dataFromHexString;
+
+@end
diff --git a/Example/Pods/NACrypto/NACrypto/NANSString+Utils.m b/Example/Pods/NACrypto/NACrypto/NANSString+Utils.m
new file mode 100644
index 0000000..631035b
--- /dev/null
+++ b/Example/Pods/NACrypto/NACrypto/NANSString+Utils.m
@@ -0,0 +1,33 @@
+//
+// NANSString+Utils.m
+// NACrypto
+//
+// Created by Gabriel on 6/19/14.
+// Copyright (c) 2014 Gabriel Handford. All rights reserved.
+//
+
+#import "NANSString+Utils.h"
+
+@implementation NSString (NAUtils)
+
+- (NSData *)na_dataFromHexString {
+ if ((self.length % 2) != 0) {
+ return nil;
+ }
+
+ const char *chars = [self UTF8String];
+ NSMutableData *data = [NSMutableData dataWithCapacity:self.length / 2];
+ char byteChars[3] = {0, 0, 0};
+ unsigned long wholeByte;
+
+ for (int i = 0; i < self.length; i += 2) {
+ byteChars[0] = chars[i];
+ byteChars[1] = chars[i + 1];
+ wholeByte = strtoul(byteChars, NULL, 16);
+ [data appendBytes:&wholeByte length:1];
+ }
+
+ return data;
+}
+
+@end
diff --git a/Example/Pods/NACrypto/NACrypto/NASHA3.h b/Example/Pods/NACrypto/NACrypto/NASHA3.h
new file mode 100644
index 0000000..d503672
--- /dev/null
+++ b/Example/Pods/NACrypto/NACrypto/NASHA3.h
@@ -0,0 +1,17 @@
+//
+// NASHA3.h
+// NACrypto
+//
+// Created by Gabriel on 6/23/14.
+// Copyright (c) 2014 Gabriel Handford. All rights reserved.
+//
+
+#import
+
+@interface NASHA3 : NSObject
+
++ (NSData *)SHA3ForData:(NSData *)data digestBitLength:(NSUInteger)digestBitLength;
+
++ (NSData *)SHA3ForDatas:(NSArray *)datas digestBitLength:(NSUInteger)digestBitLength;
+
+@end
diff --git a/Example/Pods/NACrypto/NACrypto/NASHA3.m b/Example/Pods/NACrypto/NACrypto/NASHA3.m
new file mode 100644
index 0000000..a8b98db
--- /dev/null
+++ b/Example/Pods/NACrypto/NACrypto/NASHA3.m
@@ -0,0 +1,37 @@
+//
+// NASHA3.m
+// NACrypto
+//
+// Created by Gabriel on 6/23/14.
+// Copyright (c) 2014 Gabriel Handford. All rights reserved.
+//
+
+#import "NASHA3.h"
+
+#import "KeccakNISTInterface.h"
+
+@implementation NASHA3
+
++ (NSData *)SHA3ForData:(NSData *)data digestBitLength:(NSUInteger)digestBitLength {
+ return [self SHA3ForDatas:@[data] digestBitLength:digestBitLength];
+}
+
++ (NSData *)SHA3ForDatas:(NSArray *)datas digestBitLength:(NSUInteger)digestBitLength {
+ NSUInteger digestLength = digestBitLength/8;
+ NSMutableData *outData = [NSMutableData dataWithLength:digestLength];
+
+ hashState state;
+ int result;
+ result = Init(&state, (int)digestBitLength); // Bit length
+ NSAssert(result == 0, @"Failed to init");
+ for (NSData *data in datas) {
+ result = Update(&state, (const BitSequence *)[data bytes], [data length] * 8); // Bit length
+ NSAssert(result == 0, @"Failed to update");
+ }
+ result = Final(&state, [outData mutableBytes]);
+ NSAssert(result == 0, @"Failed to finalize");
+
+ return outData;
+}
+
+@end
diff --git a/Example/Pods/NACrypto/NACrypto/NASecRandom.h b/Example/Pods/NACrypto/NACrypto/NASecRandom.h
new file mode 100644
index 0000000..e1415d3
--- /dev/null
+++ b/Example/Pods/NACrypto/NACrypto/NASecRandom.h
@@ -0,0 +1,27 @@
+//
+// NASecRandom.h
+//
+// Created by Gabriel Handford on 1/16/14.
+// Copyright (c) 2014 Gabriel Handford. All rights reserved.
+//
+
+#import
+
+@interface NASecRandom : NSObject
+
+/*!
+ Generate random data.
+ The source code of SecRandomCopyBytes() is located at
+ http://opensource.apple.com/source/Security/Security-55179.11/sec/Security/SecFramework.c
+
+ @param len Number of random bytes to generate
+ @result NSData of length bytes, or nil if an error occurred
+ */
++ (NSData *)randomData:(size_t)numBytes error:(NSError **)error;
+
+/*!
+ Generate random base64 string.
+ */
++ (NSString *)randomBase64String:(size_t)length error:(NSError **)error;
+
+@end
diff --git a/Example/Pods/NACrypto/NACrypto/NASecRandom.m b/Example/Pods/NACrypto/NACrypto/NASecRandom.m
new file mode 100644
index 0000000..7f0008b
--- /dev/null
+++ b/Example/Pods/NACrypto/NACrypto/NASecRandom.m
@@ -0,0 +1,35 @@
+//
+// NASecRandom.m
+//
+// Created by Gabriel Handford on 1/16/14.
+// Copyright (c) 2014 Gabriel Handford. All rights reserved.
+//
+
+#import "NASecRandom.h"
+#import "NANSData+Utils.h"
+
+#include
+
+@implementation NASecRandom
+
++ (NSData *)randomData:(size_t)numBytes error:(NSError **)error {
+ NSMutableData *data = [NSMutableData dataWithLength:numBytes];
+ int ret = SecRandomCopyBytes(kSecRandomDefault, numBytes, [data mutableBytes]);
+ if (ret == -1) {
+ if (error) *error = [NSError errorWithDomain:@"NACrypto" code:50 userInfo:@{NSLocalizedDescriptionKey: @"Unable to generate random data"}];
+ return nil;
+ }
+ return data;
+}
+
++ (NSString *)randomBase64String:(size_t)length error:(NSError **)error {
+ size_t numBytes = (size_t)ceil((length * 8.0) / 6.0);
+ NSData *data = [self randomData:numBytes error:error];
+ if (!data) return nil;
+
+ NSString *base64String = [data base64EncodedStringWithOptions:0];
+ if ([base64String length] > length) base64String = [base64String substringToIndex:length];
+ return base64String;
+}
+
+@end
diff --git a/Example/Pods/NACrypto/NACrypto/NATwoFish.h b/Example/Pods/NACrypto/NACrypto/NATwoFish.h
new file mode 100644
index 0000000..55ff7b3
--- /dev/null
+++ b/Example/Pods/NACrypto/NACrypto/NATwoFish.h
@@ -0,0 +1,17 @@
+//
+// NATwoFish.h
+// NACrypto
+//
+// Created by Gabriel on 6/20/14.
+// Copyright (c) 2014 Gabriel Handford. All rights reserved.
+//
+
+#import
+
+@interface NATwoFish : NSObject
+
+- (NSData *)encrypt:(NSData *)data nonce:(NSData *)nonce key:(NSData *)key error:(NSError **)error;
+
+- (NSData *)decrypt:(NSData *)data nonce:(NSData *)nonce key:(NSData *)key error:(NSError **)error;
+
+@end
diff --git a/Example/Pods/NACrypto/NACrypto/NATwoFish.m b/Example/Pods/NACrypto/NACrypto/NATwoFish.m
new file mode 100644
index 0000000..d964e43
--- /dev/null
+++ b/Example/Pods/NACrypto/NACrypto/NATwoFish.m
@@ -0,0 +1,58 @@
+//
+// NATwoFish.m
+// NACrypto
+//
+// Created by Gabriel on 6/20/14.
+// Copyright (c) 2014 Gabriel Handford. All rights reserved.
+//
+
+#import "NATwoFish.h"
+
+#import "NACounter.h"
+#import "NANSMutableData+Utils.h"
+#import "NANSData+Utils.h"
+
+#include "twofish.h"
+
+@implementation NATwoFish
+
+static dispatch_once_t twoFishInit;
+
+- (NSData *)encrypt:(NSData *)data nonce:(NSData *)nonce key:(NSData *)key error:(NSError **)error {
+ if (!nonce || [nonce length] < 16) {
+ if (error) *error = [NSError errorWithDomain:@"NACrypto" code:700 userInfo:@{NSLocalizedDescriptionKey: @"Invalid TwoFish nonce"}];
+ return nil;
+ }
+
+ if (!key || [key length] != 32) {
+ if (error) *error = [NSError errorWithDomain:@"NACrypto" code:701 userInfo:@{NSLocalizedDescriptionKey: @"Invalid TwoFish key"}];
+ return nil;
+ }
+
+ dispatch_once(&twoFishInit, ^{ Twofish_initialise(); });
+
+ Twofish_key xkey;
+ Twofish_prepare_key((uint8_t *)[key bytes], (int)[key length], &xkey);
+
+ NACounter *counter = [[NACounter alloc] initWithData:nonce];
+
+ NSInteger blockLength = [nonce length];
+
+ NSMutableData *outData = [data mutableCopy];
+
+ NSMutableData *blockOutData = [NSMutableData dataWithLength:blockLength];
+
+ for (NSInteger index = 0; index < [data length]; index += blockLength) {
+ Twofish_encrypt(&xkey, (uint8_t *)[counter.data bytes], [blockOutData mutableBytes]);
+ [outData na_XORWithData:blockOutData index:index];
+ [counter increment];
+ }
+
+ return outData;
+}
+
+- (NSData *)decrypt:(NSData *)data nonce:(NSData *)nonce key:(NSData *)key error:(NSError **)error {
+ return [self encrypt:data nonce:nonce key:key error:error];
+}
+
+@end
diff --git a/Example/Pods/NACrypto/NACrypto/TwoFish/twofish.c b/Example/Pods/NACrypto/NACrypto/TwoFish/twofish.c
new file mode 100644
index 0000000..17937ec
--- /dev/null
+++ b/Example/Pods/NACrypto/NACrypto/TwoFish/twofish.c
@@ -0,0 +1,1691 @@
+/*
+ * Fast, portable, and easy-to-use Twofish implementation,
+ * Version 0.3.
+ * Copyright (c) 2002 by Niels Ferguson.
+ * (See further down for the almost-unrestricted licensing terms.)
+ *
+ * --------------------------------------------------------------------------
+ * There are two files for this implementation:
+ * - twofish.h, the header file.
+ * - twofish.c, the code file.
+ *
+ * To incorporate this code into your program you should:
+ * - Check the licensing terms further down in this comment.
+ * - Fix the two type definitions in twofish.h to suit your platform.
+ * - Fix a few definitions in twofish.c in the section marked
+ * PLATFORM FIXES. There is one important ones that affects
+ * functionality, and then a few definitions that you can optimise
+ * for efficiency but those have no effect on the functionality.
+ * Don't change anything else.
+ * - Put the code in your project and compile it.
+ *
+ * To use this library you should:
+ * - Call Twofish_initialise() in your program before any other function in
+ * this library.
+ * - Use Twofish_prepare_key(...) to convert a key to internal form.
+ * - Use Twofish_encrypt(...) and Twofish_decrypt(...) to encrypt and decrypt
+ * data.
+ * See the comments in the header file for details on these functions.
+ * --------------------------------------------------------------------------
+ *
+ * There are many Twofish implementation available for free on the web.
+ * Most of them are hard to integrate into your own program.
+ * As we like people to use our cipher, I thought I would make it easier.
+ * Here is a free and easy-to-integrate Twofish implementation in C.
+ * The latest version is always available from my personal home page at
+ * http://niels.ferguson.net/
+ *
+ * Integrating library code into a project is difficult because the library
+ * header files interfere with the project's header files and code.
+ * And of course the project's header files interfere with the library code.
+ * I've tried to resolve these problems here.
+ * The header file of this implementation is very light-weight.
+ * It contains two typedefs, a structure, and a few function declarations.
+ * All names it defines start with "Twofish_".
+ * The header file is therefore unlikely to cause problems in your project.
+ * The code file of this implementation doesn't need to include the header
+ * files of the project. There is thus no danger of the project interfering
+ * with all the definitions and macros of the Twofish code.
+ * In most situations, all you need to do is fill in a few platform-specific
+ * definitions in the header file and code file,
+ * and you should be able to run the Twofish code in your project.
+ * I estimate it should take you less than an hour to integrate this code
+ * into your project, most of it spent reading the comments telling you what
+ * to do.
+ *
+ * For people using C++: it is very easy to wrap this library into a
+ * TwofishKey class. One of the big advantages is that you can automate the
+ * wiping of the key material in the destructor. I have not provided a C++
+ * class because the interface depends too much on the abstract base class
+ * you use for block ciphers in your program, which I don't know about.
+ *
+ * This implementation is designed for use on PC-class machines. It uses the
+ * Twofish 'full' keying option which uses large tables. Total table size is
+ * around 5-6 kB for static tables plus 4.5 kB for each pre-processed key.
+ * If you need an implementation that uses less memory,
+ * take a look at Brian Gladman's code on his web site:
+ * http://fp.gladman.plus.com/cryptography_technology/aes/
+ * He has code for all AES candidates.
+ * His Twofish code has lots of options trading off table size vs. speed.
+ * You can also take a look at the optimised code by Doug Whiting on the
+ * Twofish web site
+ * http://www.counterpane.com/twofish.html
+ * which has loads of options.
+ * I believe these existing implementations are harder to re-use because they
+ * are not clean libraries and they impose requirements on the environment.
+ * This implementation is very careful to minimise those,
+ * and should be easier to integrate into any larger program.
+ *
+ * The default mode of this implementation is fully portable as it uses no
+ * behaviour not defined in the C standard. (This is harder than you think.)
+ * If you have any problems porting the default mode, please let me know
+ * so that I can fix the problem. (But only if this code is at fault, I
+ * don't fix compilers.)
+ * Most of the platform fixes are related to non-portable but faster ways
+ * of implementing certain functions.
+ *
+ * In general I've tried to make the code as fast as possible, at the expense
+ * of memory and code size. However, C does impose limits, and this
+ * implementation will be slower than an optimised assembler implementation.
+ * But beware of assembler implementations: a good Pentium implementation
+ * uses completely different code than a good Pentium II implementation.
+ * You basically have to re-write the assembly code for every generation of
+ * processor. Unless you are severely pressed for speed, stick with C.
+ *
+ * The initialisation routine of this implementation contains a self-test.
+ * If initialisation succeeds without calling the fatal routine, then
+ * the implementation works. I don't think you can break the implementation
+ * in such a way that it still passes the tests, unless you are malicious.
+ * In other words: if the initialisation routine returns,
+ * you have successfully ported the implementation.
+ * (Or not implemented the fatal routine properly, but that is your problem.)
+ *
+ * I'm indebted to many people who helped me in one way or another to write
+ * this code. During the design of Twofish and the AES process I had very
+ * extensive discussions of all implementation issues with various people.
+ * Doug Whiting in particular provided a wealth of information. The Twofish
+ * team spent untold hours discussion various cipher features, and their
+ * implementation. Brian Gladman implemented all AES candidates in C,
+ * and we had some fruitful discussions on how to implement Twofish in C.
+ * Jan Nieuwenhuizen tested this code on Linux using GCC.
+ *
+ * Now for the license:
+ * The author hereby grants a perpetual license to everybody to
+ * use this code for any purpose as long as the copyright message is included
+ * in the source code of this or any derived work.
+ *
+ * Yes, this means that you, your company, your club, and anyone else
+ * can use this code anywhere you want. You can change it and distribute it
+ * under the GPL, include it in your commercial product without releasing
+ * the source code, put it on the web, etc.
+ * The only thing you cannot do is remove my copyright message,
+ * or distribute any source code based on this implementation that does not
+ * include my copyright message.
+ *
+ * I appreciate a mention in the documentation or credits,
+ * but I understand if that is difficult to do.
+ * I also appreciate it if you tell me where and why you used my code.
+ *
+ * Please send any questions or comments to niels@ferguson.net
+ *
+ * Have Fun!
+ *
+ * Niels
+ */
+
+/*
+ * DISCLAIMER: As I'm giving away my work for free, I'm of course not going
+ * to accept any liability of any form. This code, or the Twofish cipher,
+ * might very well be flawed; you have been warned.
+ * This software is provided as-is, without any kind of warrenty or
+ * guarantee. And that is really all you can expect when you download
+ * code for free from the Internet.
+ *
+ * I think it is really sad that disclaimers like this seem to be necessary.
+ * If people only had a little bit more common sense, and didn't come
+ * whining like little children every time something happens....
+ */
+
+/*
+ * Version history:
+ * Version 0.0, 2002-08-30
+ * First written.
+ * Version 0.1, 2002-09-03
+ * Added disclaimer. Improved self-tests.
+ * Version 0.2, 2002-09-09
+ * Removed last non-portabilities. Default now works completely within
+ * the C standard. UInt32 can be larger than 32 bits without problems.
+ * Version 0.3, 2002-09-28
+ * Bugfix: use instead of to adhere to ANSI/ISO.
+ * Rename BIG_ENDIAN macro to CPU_IS_BIG_ENDIAN. The gcc library
+ * header already defines BIG_ENDIAN, even though it is not
+ * supposed to.
+ */
+
+
+/*
+ * Minimum set of include files.
+ * You should not need any application-specific include files for this code.
+ * In fact, adding you own header files could break one of the many macros or
+ * functions in this file. Be very careful.
+ * Standard include files will probably be ok.
+ */
+#include /* for memset(), memcpy(), and memcmp() */
+#include "twofish.h"
+
+
+/*
+ * PLATFORM FIXES
+ * ==============
+ *
+ * Fix the type definitions in twofish.h first!
+ *
+ * The following definitions have to be fixed for each particular platform
+ * you work on. If you have a multi-platform program, you no doubt have
+ * portable definitions that you can substitute here without changing the
+ * rest of the code.
+ */
+
+
+/*
+ * Function called if something is fatally wrong with the implementation.
+ * This fatal function is called when a coding error is detected in the
+ * Twofish implementation, or when somebody passes an obviously erroneous
+ * parameter to this implementation. There is not much you can do when
+ * the code contains bugs, so we just stop.
+ *
+ * The argument is a string. Ideally the fatal function prints this string
+ * as an error message. Whatever else this function does, it should never
+ * return. A typical implementation would stop the program completely after
+ * printing the error message.
+ *
+ * This default implementation is not very useful,
+ * but does not assume anything about your environment.
+ * It will at least let you know something is wrong....
+ * I didn't want to include any libraries to print and error or so,
+ * as this makes the code much harder to integrate in a project.
+ *
+ * Note that the Twofish_fatal function may not return to the caller.
+ * Unfortunately this is not something the self-test can test for,
+ * so you have to make sure of this yourself.
+ *
+ * If you want to call an external function, be careful about including
+ * your own header files here. This code uses a lot of macros, and your
+ * header file could easily break it. Maybe the best solution is to use
+ * a separate extern statement for your fatal function.
+ */
+#define Twofish_fatal( msg ) {for(;;);}
+
+
+/*
+ * The rest of the settings are not important for the functionality
+ * of this Twofish implementation. That is, their default settings
+ * work on all platforms. You can change them to improve the
+ * speed of the implementation on your platform. Erroneous settings
+ * will result in erroneous implementations, but the self-test should
+ * catch those.
+ */
+
+
+/*
+ * Macros to rotate a Twofish_UInt32 value left or right by the
+ * specified number of bits. This should be a 32-bit rotation,
+ * and not rotation of, say, 64-bit values.
+ *
+ * Every encryption or decryption operation uses 32 of these rotations,
+ * so it is a good idea to make these macros efficient.
+ *
+ * This fully portable definition has one piece of tricky stuff.
+ * The UInt32 might be larger than 32 bits, so we have to mask
+ * any higher bits off. The simplest way to do this is to 'and' the
+ * value first with 0xffffffff and then shift it right. An optimising
+ * compiler that has a 32-bit type can optimise this 'and' away.
+ *
+ * Unfortunately there is no portable way of writing the constant
+ * 0xffffffff. You don't know which suffix to use (U, or UL?)
+ * The UINT32_MASK definition uses a bit of trickery. Shift-left
+ * is only defined if the shift amount is strictly less than the size
+ * of the UInt32, so we can't use (1<<32). The answer it to take the value
+ * 2, cast it to a UInt32, shift it left 31 positions, and subtract one.
+ * Another example of how to make something very simple extremely difficult.
+ * I hate C.
+ *
+ * The rotation macros are straightforward.
+ * They are only applied to UInt32 values, which are _unsigned_
+ * so the >> operator must do a logical shift that brings in zeroes.
+ * On most platforms you will only need to optimise the ROL32 macro; the
+ * ROR32 macro is not inefficient on an optimising compiler as all rotation
+ * amounts in this code are known at compile time.
+ *
+ * On many platforms there is a faster solution.
+ * For example, MS compilers have the __rotl and __rotr functions
+ * that generate x86 rotation instructions.
+ */
+#define UINT32_MASK ( (((UInt32)2)<<31) - 1 )
+#define ROL32( x, n ) ( (x)<<(n) | ((x) & UINT32_MASK) >> (32-(n)) )
+#define ROR32( x, n ) ROL32( (x), 32-(n) )
+
+
+/*
+ * Select data type for q-table entries.
+ *
+ * Larger entry types cost more memory (1.5 kB), and might be faster
+ * or slower depending on the CPU and compiler details.
+ *
+ * This choice only affects the static data size and the key setup speed.
+ * Functionality, expanded key size, or encryption speed are not affected.
+ * Define to 1 to get large q-table entries.
+ */
+#define LARGE_Q_TABLE 0 /* default = 0 */
+
+
+/*
+ * Method to select a single byte from a UInt32.
+ * WARNING: non-portable code if set; might not work on all platforms.
+ *
+ * Inside the inner loop of Twofish it is necessary to access the 4
+ * individual bytes of a UInt32. This can be done using either shifts
+ * and masks, or memory accesses.
+ *
+ * Set to 0 to use shift and mask operations for the byte selection.
+ * This is more ALU intensive. It is also fully portable.
+ *
+ * Set to 1 to use memory accesses. The UInt32 is stored in memory and
+ * the individual bytes are read from memory one at a time.
+ * This solution is more memory-intensive, and not fully portable.
+ * It might be faster on your platform, or not. If you use this option,
+ * make sure you set the CPU_IS_BIG_ENDIAN flag appropriately.
+ *
+ * This macro does not affect the conversion of the inputs and outputs
+ * of the cipher. See the CONVERT_USING_CASTS macro for that.
+ */
+#define SELECT_BYTE_FROM_UINT32_IN_MEMORY 0 /* default = 0 */
+
+
+/*
+ * Method used to read the input and write the output.
+ * WARNING: non-portable code if set; might not work on all platforms.
+ *
+ * Twofish operates on 32-bit words. The input to the cipher is
+ * a byte array, as is the output. The portable method of doing the
+ * conversion is a bunch of rotate and mask operations, but on many
+ * platforms it can be done faster using a cast.
+ * This only works if your CPU allows UInt32 accesses to arbitrary Byte
+ * addresses.
+ *
+ * Set to 0 to use the shift and mask operations. This is fully
+ * portable. .
+ *
+ * Set to 1 to use a cast. The Byte * is cast to a UInt32 *, and a
+ * UInt32 is read. If necessary (as indicated by the CPU_IS_BIG_ENDIAN
+ * macro) the byte order in the UInt32 is swapped. The reverse is done
+ * to write the output of the encryption/decryption. Make sure you set
+ * the CPU_IS_BIG_ENDIAN flag appropriately.
+ * This option does not work unless a UInt32 is exactly 32 bits.
+ *
+ * This macro only changes the reading/writing of the plaintext/ciphertext.
+ * See the SELECT_BYTE_FROM_UINT32_IN_MEMORY to affect the way in which
+ * a UInt32 is split into 4 bytes for the S-box selection.
+ */
+#define CONVERT_USING_CASTS 0 /* default = 0 */
+
+
+/*
+ * Endianness switch.
+ * Only relevant if SELECT_BYTE_FROM_UINT32_IN_MEMORY or
+ * CONVERT_USING_CASTS is set.
+ *
+ * Set to 1 on a big-endian machine, and to 0 on a little-endian machine.
+ * Twofish uses the little-endian convention (least significant byte first)
+ * and big-endian machines (using most significant byte first)
+ * have to do a few conversions.
+ *
+ * CAUTION: This code has never been tested on a big-endian machine,
+ * because I don't have access to one. Feedback appreciated.
+ */
+#define CPU_IS_BIG_ENDIAN 0
+
+
+/*
+ * Macro to reverse the order of the bytes in a UInt32.
+ * Used to convert to little-endian on big-endian machines.
+ * This macro is always tested, but only used in the encryption and
+ * decryption if CONVERT_USING_CASTS, and CPU_IS_BIG_ENDIAN
+ * are both set. In other words: this macro is only speed-critical if
+ * both these flags have been set.
+ *
+ * This default definition of SWAP works, but on many platforms there is a
+ * more efficient implementation.
+ */
+#define BSWAP(x) ((ROL32((x),8) & 0x00ff00ff) | (ROR32((x),8) & 0xff00ff00))
+
+
+/*
+ * END OF PLATFORM FIXES
+ * =====================
+ *
+ * You should not have to touch the rest of this file.
+ */
+
+
+/*
+ * Convert the external type names to some that are easier to use inside
+ * this file. I didn't want to use the names Byte and UInt32 in the
+ * header file, because many programs already define them and using two
+ * conventions at once can be very difficult.
+ * Don't change these definitions! Change the originals
+ * in twofish.h instead.
+ */
+/* A Byte must be an unsigned integer, 8 bits long. */
+typedef Twofish_Byte Byte;
+/* A UInt32 must be an unsigned integer at least 32 bits long. */
+typedef Twofish_UInt32 UInt32;
+
+
+/*
+ * Define a macro ENDIAN_CONVERT.
+ *
+ * We define a macro ENDIAN_CONVERT that performs a BSWAP on big-endian
+ * machines, and is the identity function on little-endian machines.
+ * The code then uses this macro without considering the endianness.
+ */
+#if CPU_IS_BIG_ENDIAN
+#define ENDIAN_CONVERT(x) BSWAP(x)
+#else
+#define ENDIAN_CONVERT(x) (x)
+#endif
+
+
+/*
+ * Compute byte offset within a UInt32 stored in memory.
+ *
+ * This is only used when SELECT_BYTE_FROM_UINT32_IN_MEMORY is set.
+ *
+ * The input is the byte number 0..3, 0 for least significant.
+ * Note the use of sizeof() to support UInt32 types that are larger
+ * than 4 bytes.
+ */
+#if CPU_IS_BIG_ENDIAN
+#define BYTE_OFFSET( n ) (sizeof(UInt32) - 1 - (n) )
+#else
+#define BYTE_OFFSET( n ) (n)
+#endif
+
+
+/*
+ * Macro to get Byte no. b from UInt32 value X.
+ * We use two different definition, depending on the settings.
+ */
+#if SELECT_BYTE_FROM_UINT32_IN_MEMORY
+ /* Pick the byte from the memory in which X is stored. */
+#define SELECT_BYTE( X, b ) (((Byte *)(&(X)))[BYTE_OFFSET(b)])
+#else
+ /* Portable solution: Pick the byte directly from the X value. */
+#define SELECT_BYTE( X, b ) (((X) >> 8*(b)) & 0xff)
+#endif
+
+
+/* Some shorthands because we use byte selection in large formulae. */
+#define b0(X) SELECT_BYTE((X),0)
+#define b1(X) SELECT_BYTE((X),1)
+#define b2(X) SELECT_BYTE((X),2)
+#define b3(X) SELECT_BYTE((X),3)
+
+
+/*
+ * We need macros to load and store UInt32 from/to byte arrays
+ * using the least-significant-byte-first convention.
+ *
+ * GET32( p ) gets a UInt32 in lsb-first form from four bytes pointed to
+ * by p.
+ * PUT32( v, p ) writes the UInt32 value v at address p in lsb-first form.
+ */
+#if CONVERT_USING_CASTS
+
+ /* Get UInt32 from four bytes pointed to by p. */
+#define GET32( p ) ENDIAN_CONVERT( *((UInt32 *)(p)) )
+ /* Put UInt32 into four bytes pointed to by p */
+#define PUT32( v, p ) *((UInt32 *)(p)) = ENDIAN_CONVERT(v)
+
+#else
+
+ /* Get UInt32 from four bytes pointed to by p. */
+#define GET32( p ) \
+ ( \
+ (UInt32)((p)[0]) \
+ | (UInt32)((p)[1])<< 8\
+ | (UInt32)((p)[2])<<16\
+ | (UInt32)((p)[3])<<24\
+ )
+ /* Put UInt32 into four bytes pointed to by p */
+#define PUT32( v, p ) \
+ (p)[0] = (Byte)(((v) ) & 0xff);\
+ (p)[1] = (Byte)(((v) >> 8) & 0xff);\
+ (p)[2] = (Byte)(((v) >> 16) & 0xff);\
+ (p)[3] = (Byte)(((v) >> 24) & 0xff)
+
+#endif
+
+
+/*
+ * Test the platform-specific macros.
+ * This function tests the macros defined so far to make sure the
+ * definitions are appropriate for this platform.
+ * If you make any mistake in the platform configuration, this should detect
+ * that and inform you what went wrong.
+ * Somewhere, someday, this is going to save somebody a lot of time,
+ * because misbehaving macros are hard to debug.
+ */
+static void test_platform()
+ {
+ /* Buffer with test values. */
+ Byte buf[] = {0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0};
+ UInt32 C;
+ UInt32 x,y;
+ int i;
+
+ /*
+ * Some sanity checks on the types that can't be done in compile time.
+ * A smart compiler will just optimise these tests away.
+ * The pre-processor doesn't understand different types, so we cannot
+ * do these checks in compile-time.
+ *
+ * I hate C.
+ *
+ * The first check in each case is to make sure the size is correct.
+ * The second check is to ensure that it is an unsigned type.
+ */
+ if( ((UInt32) ((UInt32)1 << 31) == 0) || ((UInt32)-1 < 0) )
+ {
+ Twofish_fatal( "Twofish code: Twofish_UInt32 type not suitable" );
+ }
+ if( (sizeof( Byte ) != 1) || ((Byte)-1 < 0) )
+ {
+ Twofish_fatal( "Twofish code: Twofish_Byte type not suitable" );
+ }
+
+ /*
+ * Sanity-check the endianness conversions.
+ * This is just an aid to find problems. If you do the endianness
+ * conversion macros wrong you will fail the full cipher test,
+ * but that does not help you find the error.
+ * Always make it easy to find the bugs!
+ *
+ * Detail: There is no fully portable way of writing UInt32 constants,
+ * as you don't know whether to use the U or UL suffix. Using only U you
+ * might only be allowed 16-bit constants. Using UL you might get 64-bit
+ * constants which cannot be stored in a UInt32 without warnings, and
+ * which generally behave subtly different from a true UInt32.
+ * As long as we're just comparing with the constant,
+ * we can always use the UL suffix and at worst lose some efficiency.
+ * I use a separate '32-bit constant' macro in most of my other code.
+ *
+ * I hate C.
+ *
+ * Start with testing GET32. We test it on all positions modulo 4
+ * to make sure we can handly any position of inputs. (Some CPUs
+ * do not allow non-aligned accesses which we would do if you used
+ * the CONVERT_USING_CASTS option.
+ */
+ if( GET32( buf ) != 0x78563412UL || GET32(buf+1) != 0x9a785634UL
+ || GET32( buf+2 ) != 0xbc9a7856UL || GET32(buf+3) != 0xdebc9a78UL )
+ {
+ Twofish_fatal( "Twofish code: GET32 not implemented properly" );
+ }
+
+ /*
+ * We can now use GET32 to test PUT32.
+ * We don't test the shifted versions. If GET32 can do that then
+ * so should PUT32.
+ */
+ C = GET32( buf );
+ PUT32( 3*C, buf );
+ if( GET32( buf ) != 0x69029c36UL )
+ {
+ Twofish_fatal( "Twofish code: PUT32 not implemented properly" );
+ }
+
+
+ /* Test ROL and ROR */
+ for( i=1; i<32; i++ )
+ {
+ /* Just a simple test. */
+ x = ROR32( C, i );
+ y = ROL32( C, i );
+ x ^= (C>>i) ^ (C<<(32-i));
+ y ^= (C<>(32-i));
+ x |= y;
+ /*
+ * Now all we check is that x is zero in the least significant
+ * 32 bits. Using the UL suffix is safe here, as it doesn't matter
+ * if we get a larger type.
+ */
+ if( (x & 0xffffffffUL) != 0 )
+ {
+ Twofish_fatal( "Twofish ROL or ROR not properly defined." );
+ }
+ }
+
+ /* Test the BSWAP macro */
+ if( (BSWAP(C)) != 0x12345678UL )
+ {
+ /*
+ * The BSWAP macro should always work, even if you are not using it.
+ * A smart optimising compiler will just remove this entire test.
+ */
+ Twofish_fatal( "BSWAP not properly defined." );
+ }
+
+ /* And we can test the b macros which use SELECT_BYTE. */
+ if( (b0(C)!=0x12) || (b1(C) != 0x34) || (b2(C) != 0x56) || (b3(C) != 0x78) )
+ {
+ /*
+ * There are many reasons why this could fail.
+ * Most likely is that CPU_IS_BIG_ENDIAN has the wrong value.
+ */
+ Twofish_fatal( "Twofish code: SELECT_BYTE not implemented properly" );
+ }
+ }
+
+
+/*
+ * Finally, we can start on the Twofish-related code.
+ * You really need the Twofish specifications to understand this code. The
+ * best source is the Twofish book:
+ * "The Twofish Encryption Algorithm", by Bruce Schneier, John Kelsey,
+ * Doug Whiting, David Wagner, Chris Hall, and Niels Ferguson.
+ * you can also use the AES submission document of Twofish, which is
+ * available from my list of publications on my personal web site at
+ * http://niels.ferguson.net/.
+ *
+ * The first thing we do is write the testing routines. This is what the
+ * implementation has to satisfy in the end. We only test the external
+ * behaviour of the implementation of course.
+ */
+
+
+/*
+ * Perform a single self test on a (plaintext,ciphertext,key) triple.
+ * Arguments:
+ * key array of key bytes
+ * key_len length of key in bytes
+ * p plaintext
+ * c ciphertext
+ */
+static void test_vector( Byte key[], int key_len, Byte p[16], Byte c[16] )
+ {
+ Byte tmp[16]; /* scratch pad. */
+ Twofish_key xkey; /* The expanded key */
+ int i;
+
+
+ /* Prepare the key */
+ Twofish_prepare_key( key, key_len, &xkey );
+
+ /*
+ * We run the test twice to ensure that the xkey structure
+ * is not damaged by the first encryption.
+ * Those are hideous bugs to find if you get them in an application.
+ */
+ for( i=0; i<2; i++ )
+ {
+ /* Encrypt and test */
+ Twofish_encrypt( &xkey, p, tmp );
+ if( memcmp( c, tmp, 16 ) != 0 )
+ {
+ Twofish_fatal( "Twofish encryption failure" );
+ }
+
+ /* Decrypt and test */
+ Twofish_decrypt( &xkey, c, tmp );
+ if( memcmp( p, tmp, 16 ) != 0 )
+ {
+ Twofish_fatal( "Twofish decryption failure" );
+ }
+ }
+
+ /* The test keys are not secret, so we don't need to wipe xkey. */
+ }
+
+
+/*
+ * Check implementation using three (key,plaintext,ciphertext)
+ * test vectors, one for each major key length.
+ *
+ * This is an absolutely minimal self-test.
+ * This routine does not test odd-sized keys.
+ */
+static void test_vectors()
+ {
+ /*
+ * We run three tests, one for each major key length.
+ * These test vectors come from the Twofish specification.
+ * One encryption and one decryption using randomish data and key
+ * will detect almost any error, especially since we generate the
+ * tables ourselves, so we don't have the problem of a single
+ * damaged table entry in the source.
+ */
+
+ /* 128-bit test is the I=3 case of section B.2 of the Twofish book. */
+ static Byte k128[] = {
+ 0x9F, 0x58, 0x9F, 0x5C, 0xF6, 0x12, 0x2C, 0x32,
+ 0xB6, 0xBF, 0xEC, 0x2F, 0x2A, 0xE8, 0xC3, 0x5A,
+ };
+ static Byte p128[] = {
+ 0xD4, 0x91, 0xDB, 0x16, 0xE7, 0xB1, 0xC3, 0x9E,
+ 0x86, 0xCB, 0x08, 0x6B, 0x78, 0x9F, 0x54, 0x19
+ };
+ static Byte c128[] = {
+ 0x01, 0x9F, 0x98, 0x09, 0xDE, 0x17, 0x11, 0x85,
+ 0x8F, 0xAA, 0xC3, 0xA3, 0xBA, 0x20, 0xFB, 0xC3
+ };
+
+ /* 192-bit test is the I=4 case of section B.2 of the Twofish book. */
+ static Byte k192[] = {
+ 0x88, 0xB2, 0xB2, 0x70, 0x6B, 0x10, 0x5E, 0x36,
+ 0xB4, 0x46, 0xBB, 0x6D, 0x73, 0x1A, 0x1E, 0x88,
+ 0xEF, 0xA7, 0x1F, 0x78, 0x89, 0x65, 0xBD, 0x44
+ };
+ static Byte p192[] = {
+ 0x39, 0xDA, 0x69, 0xD6, 0xBA, 0x49, 0x97, 0xD5,
+ 0x85, 0xB6, 0xDC, 0x07, 0x3C, 0xA3, 0x41, 0xB2
+ };
+ static Byte c192[] = {
+ 0x18, 0x2B, 0x02, 0xD8, 0x14, 0x97, 0xEA, 0x45,
+ 0xF9, 0xDA, 0xAC, 0xDC, 0x29, 0x19, 0x3A, 0x65
+ };
+
+ /* 256-bit test is the I=4 case of section B.2 of the Twofish book. */
+ static Byte k256[] = {
+ 0xD4, 0x3B, 0xB7, 0x55, 0x6E, 0xA3, 0x2E, 0x46,
+ 0xF2, 0xA2, 0x82, 0xB7, 0xD4, 0x5B, 0x4E, 0x0D,
+ 0x57, 0xFF, 0x73, 0x9D, 0x4D, 0xC9, 0x2C, 0x1B,
+ 0xD7, 0xFC, 0x01, 0x70, 0x0C, 0xC8, 0x21, 0x6F
+ };
+ static Byte p256[] = {
+ 0x90, 0xAF, 0xE9, 0x1B, 0xB2, 0x88, 0x54, 0x4F,
+ 0x2C, 0x32, 0xDC, 0x23, 0x9B, 0x26, 0x35, 0xE6
+ };
+ static Byte c256[] = {
+ 0x6C, 0xB4, 0x56, 0x1C, 0x40, 0xBF, 0x0A, 0x97,
+ 0x05, 0x93, 0x1C, 0xB6, 0xD4, 0x08, 0xE7, 0xFA
+ };
+
+ /* Run the actual tests. */
+ test_vector( k128, 16, p128, c128 );
+ test_vector( k192, 24, p192, c192 );
+ test_vector( k256, 32, p256, c256 );
+ }
+
+
+/*
+ * Perform extensive test for a single key size.
+ *
+ * Test a single key size against the test vectors from section
+ * B.2 in the Twofish book. This is a sequence of 49 encryptions
+ * and decryptions. Each plaintext is equal to the ciphertext of
+ * the previous encryption. The key is made up from the ciphertext
+ * two and three encryptions ago. Both plaintext and key start
+ * at the zero value.
+ * We should have designed a cleaner recurrence relation for
+ * these tests, but it is too late for that now. At least we learned
+ * how to do it better next time.
+ * For details see appendix B of the book.
+ *
+ * Arguments:
+ * key_len Number of bytes of key
+ * final_value Final plaintext value after 49 iterations
+ */
+static void test_sequence( int key_len, Byte final_value[] )
+ {
+ Byte buf[ (50+3)*16 ]; /* Buffer to hold our computation values. */
+ Byte tmp[16]; /* Temp for testing the decryption. */
+ Twofish_key xkey; /* The expanded key */
+ int i;
+ Byte * p;
+
+ /* Wipe the buffer */
+ memset( buf, 0, sizeof( buf ) );
+
+ /*
+ * Because the recurrence relation is done in an inconvenient manner
+ * we end up looping backwards over the buffer.
+ */
+
+ /* Pointer in buffer points to current plaintext. */
+ p = &buf[50*16];
+ for( i=1; i<50; i++ )
+ {
+ /*
+ * Prepare a key.
+ * This automatically checks that key_len is valid.
+ */
+ Twofish_prepare_key( p+16, key_len, &xkey );
+
+ /* Compute the next 16 bytes in the buffer */
+ Twofish_encrypt( &xkey, p, p-16 );
+
+ /* Check that the decryption is correct. */
+ Twofish_decrypt( &xkey, p-16, tmp );
+ if( memcmp( tmp, p, 16 ) != 0 )
+ {
+ Twofish_fatal( "Twofish decryption failure in sequence" );
+ }
+ /* Move on to next 16 bytes in the buffer. */
+ p -= 16;
+ }
+
+ /* And check the final value. */
+ if( memcmp( p, final_value, 16 ) != 0 )
+ {
+ Twofish_fatal( "Twofish encryption failure in sequence" );
+ }
+
+ /* None of the data was secret, so there is no need to wipe anything. */
+ }
+
+
+/*
+ * Run all three sequence tests from the Twofish test vectors.
+ *
+ * This checks the most extensive test vectors currently available
+ * for Twofish. The data is from the Twofish book, appendix B.2.
+ */
+static void test_sequences()
+ {
+ static Byte r128[] = {
+ 0x5D, 0x9D, 0x4E, 0xEF, 0xFA, 0x91, 0x51, 0x57,
+ 0x55, 0x24, 0xF1, 0x15, 0x81, 0x5A, 0x12, 0xE0
+ };
+ static Byte r192[] = {
+ 0xE7, 0x54, 0x49, 0x21, 0x2B, 0xEE, 0xF9, 0xF4,
+ 0xA3, 0x90, 0xBD, 0x86, 0x0A, 0x64, 0x09, 0x41
+ };
+ static Byte r256[] = {
+ 0x37, 0xFE, 0x26, 0xFF, 0x1C, 0xF6, 0x61, 0x75,
+ 0xF5, 0xDD, 0xF4, 0xC3, 0x3B, 0x97, 0xA2, 0x05
+ };
+
+ /* Run the three sequence test vectors */
+ test_sequence( 16, r128 );
+ test_sequence( 24, r192 );
+ test_sequence( 32, r256 );
+ }
+
+
+/*
+ * Test the odd-sized keys.
+ *
+ * Every odd-sized key is equivalent to a one of 128, 192, or 256 bits.
+ * The equivalent key is found by padding at the end with zero bytes
+ * until a regular key size is reached.
+ *
+ * We just test that the key expansion routine behaves properly.
+ * If the expanded keys are identical, then the encryptions and decryptions
+ * will behave the same.
+ */
+static void test_odd_sized_keys()
+ {
+ Byte buf[32];
+ Twofish_key xkey;
+ Twofish_key xkey_two;
+ int i;
+
+ /*
+ * We first create an all-zero key to use as PRNG key.
+ * Normally we would not have to fill the buffer with zeroes, as we could
+ * just pass a zero key length to the Twofish_prepare_key function.
+ * However, this relies on using odd-sized keys, and those are just the
+ * ones we are testing here. We can't use an untested function to test
+ * itself.
+ */
+ memset( buf, 0, sizeof( buf ) );
+ Twofish_prepare_key( buf, 16, &xkey );
+
+ /* Fill buffer with pseudo-random data derived from two encryptions */
+ Twofish_encrypt( &xkey, buf, buf );
+ Twofish_encrypt( &xkey, buf, buf+16 );
+
+ /* Create all possible shorter keys that are prefixes of the buffer. */
+ for( i=31; i>=0; i-- )
+ {
+ /* Set a byte to zero. This is the new padding byte */
+ buf[i] = 0;
+
+ /* Expand the key with only i bytes of length */
+ Twofish_prepare_key( buf, i, &xkey );
+
+ /* Expand the corresponding padded key of regular length */
+ Twofish_prepare_key( buf, i<=16 ? 16 : i<= 24 ? 24 : 32, &xkey_two );
+
+ /* Compare the two */
+ if( memcmp( &xkey, &xkey_two, sizeof( xkey ) ) != 0 )
+ {
+ Twofish_fatal( "Odd sized keys do not expand properly" );
+ }
+ }
+
+ /* None of the key values are secret, so we don't need to wipe them. */
+ }
+
+
+/*
+ * Test the Twofish implementation.
+ *
+ * This routine runs all the self tests, in order of importance.
+ * It is called by the Twofish_initialise routine.
+ *
+ * In almost all applications the cost of running the self tests during
+ * initialisation is insignificant, especially
+ * compared to the time it takes to load the application from disk.
+ * If you are very pressed for initialisation performance,
+ * you could remove some of the tests. Make sure you did run them
+ * once in the software and hardware configuration you are using.
+ */
+static void self_test()
+ {
+ /* The three test vectors form an absolute minimal test set. */
+ test_vectors();
+
+ /*
+ * If at all possible you should run these tests too. They take
+ * more time, but provide a more thorough coverage.
+ */
+ test_sequences();
+
+ /* Test the odd-sized keys. */
+ test_odd_sized_keys();
+ }
+
+
+/*
+ * And now, the actual Twofish implementation.
+ *
+ * This implementation generates all the tables during initialisation.
+ * I don't like large tables in the code, especially since they are easily
+ * damaged in the source without anyone noticing it. You need code to
+ * generate them anyway, and this way all the code is close together.
+ * Generating them in the application leads to a smaller executable
+ * (the code is smaller than the tables it generates) and a
+ * larger static memory footprint.
+ *
+ * Twofish can be implemented in many ways. I have chosen to
+ * use large tables with a relatively long key setup time.
+ * If you encrypt more than a few blocks of data it pays to pre-compute
+ * as much as possible. This implementation is relatively inefficient for
+ * applications that need to re-key every block or so.
+ */
+
+/*
+ * We start with the t-tables, directly from the Twofish definition.
+ * These are nibble-tables, but merging them and putting them two nibbles
+ * in one byte is more work than it is worth.
+ */
+static Byte t_table[2][4][16] = {
+ {
+ {0x8,0x1,0x7,0xD,0x6,0xF,0x3,0x2,0x0,0xB,0x5,0x9,0xE,0xC,0xA,0x4},
+ {0xE,0xC,0xB,0x8,0x1,0x2,0x3,0x5,0xF,0x4,0xA,0x6,0x7,0x0,0x9,0xD},
+ {0xB,0xA,0x5,0xE,0x6,0xD,0x9,0x0,0xC,0x8,0xF,0x3,0x2,0x4,0x7,0x1},
+ {0xD,0x7,0xF,0x4,0x1,0x2,0x6,0xE,0x9,0xB,0x3,0x0,0x8,0x5,0xC,0xA}
+ },
+ {
+ {0x2,0x8,0xB,0xD,0xF,0x7,0x6,0xE,0x3,0x1,0x9,0x4,0x0,0xA,0xC,0x5},
+ {0x1,0xE,0x2,0xB,0x4,0xC,0x3,0x7,0x6,0xD,0xA,0x5,0xF,0x9,0x0,0x8},
+ {0x4,0xC,0x7,0x5,0x1,0x6,0x9,0xA,0x0,0xE,0xD,0x8,0x2,0xB,0x3,0xF},
+ {0xB,0x9,0x5,0x1,0xC,0x3,0xD,0xE,0x6,0x4,0x7,0xF,0x2,0x0,0x8,0xA}
+ }
+};
+
+
+/* A 1-bit rotation of 4-bit values. Input must be in range 0..15 */
+#define ROR4BY1( x ) (((x)>>1) | (((x)<<3) & 0x8) )
+
+/*
+ * The q-boxes are only used during the key schedule computations.
+ * These are 8->8 bit lookup tables. Some CPUs prefer to have 8->32 bit
+ * lookup tables as it is faster to load a 32-bit value than to load an
+ * 8-bit value and zero the rest of the register.
+ * The LARGE_Q_TABLE switch allows you to choose 32-bit entries in
+ * the q-tables. Here we just define the Qtype which is used to store
+ * the entries of the q-tables.
+ */
+#if LARGE_Q_TABLE
+typedef UInt32 Qtype;
+#else
+typedef Byte Qtype;
+#endif
+
+/*
+ * The actual q-box tables.
+ * There are two q-boxes, each having 256 entries.
+ */
+static Qtype q_table[2][256];
+
+
+/*
+ * Now the function that converts a single t-table into a q-table.
+ *
+ * Arguments:
+ * t[4][16] : four 4->4bit lookup tables that define the q-box
+ * q[256] : output parameter: the resulting q-box as a lookup table.
+ */
+static void make_q_table( Byte t[4][16], Qtype q[256] )
+ {
+ int ae,be,ao,bo; /* Some temporaries. */
+ int i;
+ /* Loop over all input values and compute the q-box result. */
+ for( i=0; i<256; i++ ) {
+ /*
+ * This is straight from the Twofish specifications.
+ *
+ * The ae variable is used for the a_i values from the specs
+ * with even i, and ao for the odd i's. Similarly for the b's.
+ */
+ ae = i>>4; be = i&0xf;
+ ao = ae ^ be; bo = ae ^ ROR4BY1(be) ^ ((ae<<3)&8);
+ ae = t[0][ao]; be = t[1][bo];
+ ao = ae ^ be; bo = ae ^ ROR4BY1(be) ^ ((ae<<3)&8);
+ ae = t[2][ao]; be = t[3][bo];
+
+ /* Store the result in the q-box table, the cast avoids a warning. */
+ q[i] = (Qtype) ((be<<4) | ae);
+ }
+ }
+
+
+/*
+ * Initialise both q-box tables.
+ */
+static void initialise_q_boxes() {
+ /* Initialise each of the q-boxes using the t-tables */
+ make_q_table( t_table[0], q_table[0] );
+ make_q_table( t_table[1], q_table[1] );
+ }
+
+
+/*
+ * Next up is the MDS matrix multiplication.
+ * The MDS matrix multiplication operates in the field
+ * GF(2)[x]/p(x) with p(x)=x^8+x^6+x^5+x^3+1.
+ * If you don't understand this, read a book on finite fields. You cannot
+ * follow the finite-field computations without some background.
+ *
+ * In this field, multiplication by x is easy: shift left one bit
+ * and if bit 8 is set then xor the result with 0x169.
+ *
+ * The MDS coefficients use a multiplication by 1/x,
+ * or rather a division by x. This is easy too: first make the
+ * value 'even' (i.e. bit 0 is zero) by xorring with 0x169 if necessary,
+ * and then shift right one position.
+ * Even easier: shift right and xor with 0xb4 if the lsbit was set.
+ *
+ * The MDS coefficients are 1, EF, and 5B, and we use the fact that
+ * EF = 1 + 1/x + 1/x^2
+ * 5B = 1 + 1/x^2
+ * in this field. This makes multiplication by EF and 5B relatively easy.
+ *
+ * This property is no accident, the MDS matrix was designed to allow
+ * this implementation technique to be used.
+ *
+ * We have four MDS tables, each mapping 8 bits to 32 bits.
+ * Each table performs one column of the matrix multiplication.
+ * As the MDS is always preceded by q-boxes, each of these tables
+ * also implements the q-box just previous to that column.
+ */
+
+/* The actual MDS tables. */
+static UInt32 MDS_table[4][256];
+
+/* A small table to get easy conditional access to the 0xb4 constant. */
+static UInt32 mds_poly_divx_const[] = {0,0xb4};
+
+/* Function to initialise the MDS tables. */
+static void initialise_mds_tables()
+ {
+ int i;
+ UInt32 q,qef,q5b; /* Temporary variables. */
+
+ /* Loop over all 8-bit input values */
+ for( i=0; i<256; i++ )
+ {
+ /*
+ * To save some work during the key expansion we include the last
+ * of the q-box layers from the h() function in these MDS tables.
+ */
+
+ /* We first do the inputs that are mapped through the q0 table. */
+ q = q_table[0][i];
+ /*
+ * Here we divide by x, note the table to get 0xb4 only if the
+ * lsbit is set.
+ * This sets qef = (1/x)*q in the finite field
+ */
+ qef = (q >> 1) ^ mds_poly_divx_const[ q & 1 ];
+ /*
+ * Divide by x again, and add q to get (1+1/x^2)*q.
+ * Note that (1+1/x^2) = 5B in the field, and addition in the field
+ * is exclusive or on the bits.
+ */
+ q5b = (qef >> 1) ^ mds_poly_divx_const[ qef & 1 ] ^ q;
+ /*
+ * Add q5b to qef to set qef = (1+1/x+1/x^2)*q.
+ * Again, (1+1/x+1/x^2) = EF in the field.
+ */
+ qef ^= q5b;
+
+ /*
+ * Now that we have q5b = 5B * q and qef = EF * q
+ * we can fill two of the entries in the MDS matrix table.
+ * See the Twofish specifications for the order of the constants.
+ */
+ MDS_table[1][i] = q <<24 | q5b<<16 | qef<<8 | qef;
+ MDS_table[3][i] = q5b<<24 | qef<<16 | q <<8 | q5b;
+
+ /* Now we do it all again for the two columns that have a q1 box. */
+ q = q_table[1][i];
+ qef = (q >> 1) ^ mds_poly_divx_const[ q & 1 ];
+ q5b = (qef >> 1) ^ mds_poly_divx_const[ qef & 1 ] ^ q;
+ qef ^= q5b;
+
+ /* The other two columns use the coefficient in a different order. */
+ MDS_table[0][i] = qef<<24 | qef<<16 | q5b<<8 | q ;
+ MDS_table[2][i] = qef<<24 | q <<16 | qef<<8 | q5b;
+ }
+ }
+
+
+/*
+ * The h() function is the heart of the Twofish cipher.
+ * It is a complicated sequence of q-box lookups, key material xors,
+ * and finally the MDS matrix.
+ * We use lots of macros to make this reasonably fast.
+ */
+
+/* First a shorthand for the two q-tables */
+#define q0 q_table[0]
+#define q1 q_table[1]
+
+/*
+ * Each macro computes one column of the h for either 2, 3, or 4 stages.
+ * As there are 4 columns, we have 12 macros in all.
+ *
+ * The key bytes are stored in the Byte array L at offset
+ * 0,1,2,3, 8,9,10,11, [16,17,18,19, [24,25,26,27]] as this is the
+ * order we get the bytes from the user. If you look at the Twofish
+ * specs, you'll see that h() is applied to the even key words or the
+ * odd key words. The bytes of the even words appear in this spacing,
+ * and those of the odd key words too.
+ *
+ * These macros are the only place where the q-boxes and the MDS table
+ * are used.
+ */
+#define H02( y, L ) MDS_table[0][q0[q0[y]^L[ 8]]^L[0]]
+#define H12( y, L ) MDS_table[1][q0[q1[y]^L[ 9]]^L[1]]
+#define H22( y, L ) MDS_table[2][q1[q0[y]^L[10]]^L[2]]
+#define H32( y, L ) MDS_table[3][q1[q1[y]^L[11]]^L[3]]
+#define H03( y, L ) H02( q1[y]^L[16], L )
+#define H13( y, L ) H12( q1[y]^L[17], L )
+#define H23( y, L ) H22( q0[y]^L[18], L )
+#define H33( y, L ) H32( q0[y]^L[19], L )
+#define H04( y, L ) H03( q1[y]^L[24], L )
+#define H14( y, L ) H13( q0[y]^L[25], L )
+#define H24( y, L ) H23( q0[y]^L[26], L )
+#define H34( y, L ) H33( q1[y]^L[27], L )
+
+/*
+ * Now we can define the h() function given an array of key bytes.
+ * This function is only used in the key schedule, and not to pre-compute
+ * the keyed S-boxes.
+ *
+ * In the key schedule, the input is always of the form k*(1+2^8+2^16+2^24)
+ * so we only provide k as an argument.
+ *
+ * Arguments:
+ * k input to the h() function.
+ * L pointer to array of key bytes at
+ * offsets 0,1,2,3, ... 8,9,10,11, [16,17,18,19, [24,25,26,27]]
+ * kCycles # key cycles, 2, 3, or 4.
+ */
+static UInt32 h( int k, Byte L[], int kCycles )
+ {
+ switch( kCycles ) {
+ /* We code all 3 cases separately for speed reasons. */
+ case 2:
+ return H02(k,L) ^ H12(k,L) ^ H22(k,L) ^ H32(k,L);
+ case 3:
+ return H03(k,L) ^ H13(k,L) ^ H23(k,L) ^ H33(k,L);
+ case 4:
+ return H04(k,L) ^ H14(k,L) ^ H24(k,L) ^ H34(k,L);
+ default:
+ /* This is always a coding error, which is fatal. */
+ Twofish_fatal( "Twofish h(): Illegal argument" );
+ }
+ }
+
+
+/*
+ * Pre-compute the keyed S-boxes.
+ * Fill the pre-computed S-box array in the expanded key structure.
+ * Each pre-computed S-box maps 8 bits to 32 bits.
+ *
+ * The S argument contains half the number of bytes of the full key, but is
+ * derived from the full key. (See Twofish specifications for details.)
+ * S has the weird byte input order used by the Hxx macros.
+ *
+ * This function takes most of the time of a key expansion.
+ *
+ * Arguments:
+ * S pointer to array of 8*kCycles Bytes containing the S vector.
+ * kCycles number of key words, must be in the set {2,3,4}
+ * xkey pointer to Twofish_key structure that will contain the S-boxes.
+ */
+static void fill_keyed_sboxes( Byte S[], int kCycles, Twofish_key * xkey )
+ {
+ int i;
+ switch( kCycles ) {
+ /* We code all 3 cases separately for speed reasons. */
+ case 2:
+ for( i=0; i<256; i++ )
+ {
+ xkey->s[0][i]= H02( i, S );
+ xkey->s[1][i]= H12( i, S );
+ xkey->s[2][i]= H22( i, S );
+ xkey->s[3][i]= H32( i, S );
+ }
+ break;
+ case 3:
+ for( i=0; i<256; i++ )
+ {
+ xkey->s[0][i]= H03( i, S );
+ xkey->s[1][i]= H13( i, S );
+ xkey->s[2][i]= H23( i, S );
+ xkey->s[3][i]= H33( i, S );
+ }
+ break;
+ case 4:
+ for( i=0; i<256; i++ )
+ {
+ xkey->s[0][i]= H04( i, S );
+ xkey->s[1][i]= H14( i, S );
+ xkey->s[2][i]= H24( i, S );
+ xkey->s[3][i]= H34( i, S );
+ }
+ break;
+ default:
+ /* This is always a coding error, which is fatal. */
+ Twofish_fatal( "Twofish fill_keyed_sboxes(): Illegal argument" );
+ }
+ }
+
+
+/* A flag to keep track of whether we have been initialised or not. */
+static int Twofish_initialised = 0;
+
+/*
+ * Initialise the Twofish implementation.
+ * This function must be called before any other function in the
+ * Twofish implementation is called.
+ * This routine also does some sanity checks, to make sure that
+ * all the macros behave, and it tests the whole cipher.
+ */
+void Twofish_initialise()
+ {
+ /* First test the various platform-specific definitions. */
+ test_platform();
+
+ /* We can now generate our tables, in the right order of course. */
+ initialise_q_boxes();
+ initialise_mds_tables();
+
+ /* We're finished with the initialisation itself. */
+ Twofish_initialised = 1;
+
+ /*
+ * And run some tests on the whole cipher.
+ * Yes, you need to do this every time you start your program.
+ * It is called assurance; you have to be certain that your program
+ * still works properly.
+ */
+ self_test();
+ }
+
+
+/*
+ * The Twofish key schedule uses an Reed-Solomon code matrix multiply.
+ * Just like the MDS matrix, the RS-matrix is designed to be easy
+ * to implement. Details are below in the code.
+ *
+ * These constants make it easy to compute in the finite field used
+ * for the RS code.
+ *
+ * We use Bytes for the RS computation, but these are automatically
+ * widened to unsigned integers in the expressions. Having unsigned
+ * ints in these tables therefore provides the fastest access.
+ */
+static unsigned int rs_poly_const[] = {0, 0x14d};
+static unsigned int rs_poly_div_const[] = {0, 0xa6 };
+
+
+/*
+ * Prepare a key for use in encryption and decryption.
+ * Like most block ciphers, Twofish allows the key schedule
+ * to be pre-computed given only the key.
+ * Twofish has a fairly 'heavy' key schedule that takes a lot of time
+ * to compute. The main work is pre-computing the S-boxes used in the
+ * encryption and decryption. We feel that this makes the cipher much
+ * harder to attack. The attacker doesn't even know what the S-boxes
+ * contain without including the entire key schedule in the analysis.
+ *
+ * Unlike most Twofish implementations, this one allows any key size from
+ * 0 to 32 bytes. Odd key sizes are defined for Twofish (see the
+ * specifications); the key is simply padded with zeroes to the next real
+ * key size of 16, 24, or 32 bytes.
+ * Each odd-sized key is thus equivalent to a single normal-sized key.
+ *
+ * Arguments:
+ * key array of key bytes
+ * key_len number of bytes in the key, must be in the range 0,...,32.
+ * xkey Pointer to an Twofish_key structure that will be filled
+ * with the internal form of the cipher key.
+ */
+void Twofish_prepare_key( Byte key[], int key_len, Twofish_key * xkey )
+ {
+ /* We use a single array to store all key material in,
+ * to simplify the wiping of the key material at the end.
+ * The first 32 bytes contain the actual (padded) cipher key.
+ * The next 32 bytes contain the S-vector in its weird format,
+ * and we have 4 bytes of overrun necessary for the RS-reduction.
+ */
+ Byte K[32+32+4];
+
+ int kCycles; /* # key cycles, 2,3, or 4. */
+
+ int i;
+ UInt32 A, B; /* Used to compute the round keys. */
+
+ Byte * kptr; /* Three pointers for the RS computation. */
+ Byte * sptr;
+ Byte * t;
+
+ Byte b,bx,bxx; /* Some more temporaries for the RS computation. */
+
+ /* Check that the Twofish implementation was initialised. */
+ if( Twofish_initialised == 0 )
+ {
+ /*
+ * You didn't call Twofish_initialise before calling this routine.
+ * This is a programming error, and therefore we call the fatal
+ * routine.
+ *
+ * I could of course call the initialisation routine here,
+ * but there are a few reasons why I don't. First of all, the
+ * self-tests have to be done at startup. It is no good to inform
+ * the user that the cipher implementation fails when he wants to
+ * write his data to disk in encrypted form. You have to warn him
+ * before he spends time typing his data. Second, the initialisation
+ * and self test are much slower than a single key expansion.
+ * Calling the initialisation here makes the performance of the
+ * cipher unpredictable. This can lead to really weird problems
+ * if you use the cipher for a real-time task. Suddenly it fails
+ * once in a while the first time you try to use it. Things like
+ * that are almost impossible to debug.
+ */
+ Twofish_fatal( "Twofish implementation was not initialised." );
+
+ /*
+ * There is always a danger that the Twofish_fatal routine returns,
+ * in spite of the specifications that it should not.
+ * (A good programming rule: don't trust the rest of the code.)
+ * This would be disasterous. If the q-tables and MDS-tables have
+ * not been initialised, they are probably still filled with zeroes.
+ * Suppose the MDS-tables are all zero. The key expansion would then
+ * generate all-zero round keys, and all-zero s-boxes. The danger
+ * is that nobody would notice as the encryption function still
+ * mangles the input, and the decryption still 'decrypts' it,
+ * but now in a completely key-independent manner.
+ * To stop such security disasters, we use blunt force.
+ * If your program hangs here: fix the fatal routine!
+ */
+ //for(;;); /* Infinite loop, which beats being insecure. */
+ return;
+ }
+
+ /* Check for valid key length. */
+ if( key_len < 0 || key_len > 32 )
+ {
+ /*
+ * This can only happen if a programmer didn't read the limitations
+ * on the key size.
+ */
+ Twofish_fatal( "Twofish_prepare_key: illegal key length" );
+ /*
+ * A return statement just in case the fatal macro returns.
+ * The rest of the code assumes that key_len is in range, and would
+ * buffer-overflow if it wasn't.
+ *
+ * Why do we still use a programming language that has problems like
+ * buffer overflows, when these problems were solved in 1960 with
+ * the development of Algol? Have we not leared anything?
+ */
+ return;
+ }
+
+ /* Pad the key with zeroes to the next suitable key length. */
+ memcpy( K, key, key_len );
+ memset( K+key_len, 0, sizeof(K)-key_len );
+
+ /*
+ * Compute kCycles: the number of key cycles used in the cipher.
+ * 2 for 128-bit keys, 3 for 192-bit keys, and 4 for 256-bit keys.
+ */
+ kCycles = (key_len + 7) >> 3;
+ /* Handle the special case of very short keys: minimum 2 cycles. */
+ if( kCycles < 2 )
+ {
+ kCycles = 2;
+ }
+
+ /*
+ * From now on we just pretend to have 8*kCycles bytes of
+ * key material in K. This handles all the key size cases.
+ */
+
+ /*
+ * We first compute the 40 expanded key words,
+ * formulas straight from the Twofish specifications.
+ */
+ for( i=0; i<40; i+=2 )
+ {
+ /*
+ * Due to the byte spacing expected by the h() function
+ * we can pick the bytes directly from the key K.
+ * As we use bytes, we never have the little/big endian
+ * problem.
+ *
+ * Note that we apply the rotation function only to simple
+ * variables, as the rotation macro might evaluate its argument
+ * more than once.
+ */
+ A = h( i , K , kCycles );
+ B = h( i+1, K+4, kCycles );
+ B = ROL32( B, 8 );
+
+ /* Compute and store the round keys. */
+ A += B;
+ B += A;
+ xkey->K[i] = A;
+ xkey->K[i+1] = ROL32( B, 9 );
+ }
+
+ /* Wipe variables that contained key material. */
+ A=B=0;
+
+ /*
+ * And now the dreaded RS multiplication that few seem to understand.
+ * The RS matrix is not random, and is specially designed to compute the
+ * RS matrix multiplication in a simple way.
+ *
+ * We work in the field GF(2)[x]/x^8+x^6+x^3+x^2+1. Note that this is a
+ * different field than used for the MDS matrix.
+ * (At least, it is a different representation because all GF(2^8)
+ * representations are equivalent in some form.)
+ *
+ * We take 8 consecutive bytes of the key and interpret them as
+ * a polynomial k_0 + k_1 y + k_2 y^2 + ... + k_7 y^7 where
+ * the k_i bytes are the key bytes and are elements of the finite field.
+ * We multiply this polynomial by y^4 and reduce it modulo
+ * y^4 + (x + 1/x)y^3 + (x)y^2 + (x + 1/x)y + 1.
+ * using straightforward polynomial modulo reduction.
+ * The coefficients of the result are the result of the RS
+ * matrix multiplication. When we wrote the Twofish specification,
+ * the original RS definition used the polynomials,
+ * but that requires much more mathematical knowledge.
+ * We were already using matrix multiplication in a finite field for
+ * the MDS matrix, so I re-wrote the RS operation as a matrix
+ * multiplication to reduce the difficulty of understanding it.
+ * Some implementors have not picked up on this simpler method of
+ * computing the RS operation, even though it is mentioned in the
+ * specifications.
+ *
+ * It is possible to perform these computations faster by using 32-bit
+ * word operations, but that is not portable and this is not a speed-
+ * critical area.
+ *
+ * We explained the 1/x computation when we did the MDS matrix.
+ *
+ * The S vector is stored in K[32..64].
+ * The S vector has to be reversed, so we loop cross-wise.
+ *
+ * Note the weird byte spacing of the S-vector, to match the even
+ * or odd key words arrays. See the discussion at the Hxx macros for
+ * details.
+ */
+ kptr = K + 8*kCycles; /* Start at end of key */
+ sptr = K + 32; /* Start at start of S */
+
+ /* Loop over all key material */
+ while( kptr > K )
+ {
+ kptr -= 8;
+ /*
+ * Initialise the polynimial in sptr[0..12]
+ * The first four coefficients are 0 as we have to multiply by y^4.
+ * The next 8 coefficients are from the key material.
+ */
+ memset( sptr, 0, 4 );
+ memcpy( sptr+4, kptr, 8 );
+
+ /*
+ * The 12 bytes starting at sptr are now the coefficients of
+ * the polynomial we need to reduce.
+ */
+
+ /* Loop over the polynomial coefficients from high to low */
+ t = sptr+11;
+ /* Keep looping until polynomial is degree 3; */
+ while( t > sptr+3 )
+ {
+ /* Pick up the highest coefficient of the poly. */
+ b = *t;
+
+ /*
+ * Compute x and (x+1/x) times this coefficient.
+ * See the MDS matrix implementation for a discussion of
+ * multiplication by x and 1/x. We just use different
+ * constants here as we are in a
+ * different finite field representation.
+ *
+ * These two statements set
+ * bx = (x) * b
+ * bxx= (x + 1/x) * b
+ */
+ bx = (Byte)((b<<1) ^ rs_poly_const[ b>>7 ]);
+ bxx= (Byte)((b>>1) ^ rs_poly_div_const[ b&1 ] ^ bx);
+
+ /*
+ * Subtract suitable multiple of
+ * y^4 + (x + 1/x)y^3 + (x)y^2 + (x + 1/x)y + 1
+ * from the polynomial, except that we don't bother
+ * updating t[0] as it will become zero anyway.
+ */
+ t[-1] ^= bxx;
+ t[-2] ^= bx;
+ t[-3] ^= bxx;
+ t[-4] ^= b;
+
+ /* Go to the next coefficient. */
+ t--;
+ }
+
+ /* Go to next S-vector word, obeying the weird spacing rules. */
+ sptr += 8;
+ }
+
+ /* Wipe variables that contained key material. */
+ b = bx = bxx = 0;
+
+ /* And finally, we can compute the key-dependent S-boxes. */
+ fill_keyed_sboxes( &K[32], kCycles, xkey );
+
+ /* Wipe array that contained key material. */
+ memset( K, 0, sizeof( K ) );
+ }
+
+
+/*
+ * We can now start on the actual encryption and decryption code.
+ * As these are often speed-critical we will use a lot of macros.
+ */
+
+/*
+ * The g() function is the heart of the round function.
+ * We have two versions of the g() function, one without an input
+ * rotation and one with.
+ * The pre-computed S-boxes make this pretty simple.
+ */
+#define g0(X,xkey) \
+ (xkey->s[0][b0(X)]^xkey->s[1][b1(X)]^xkey->s[2][b2(X)]^xkey->s[3][b3(X)])
+
+#define g1(X,xkey) \
+ (xkey->s[0][b3(X)]^xkey->s[1][b0(X)]^xkey->s[2][b1(X)]^xkey->s[3][b2(X)])
+
+/*
+ * A single round of Twofish. The A,B,C,D are the four state variables,
+ * T0 and T1 are temporaries, xkey is the expanded key, and r the
+ * round number.
+ *
+ * Note that this macro does not implement the swap at the end of the round.
+ */
+#define ENCRYPT_RND( A,B,C,D, T0, T1, xkey, r ) \
+ T0 = g0(A,xkey); T1 = g1(B,xkey);\
+ C ^= T0+T1+xkey->K[8+2*(r)]; C = ROR32(C,1);\
+ D = ROL32(D,1); D ^= T0+2*T1+xkey->K[8+2*(r)+1]
+
+/*
+ * Encrypt a single cycle, consisting of two rounds.
+ * This avoids the swapping of the two halves.
+ * Parameter r is now the cycle number.
+ */
+#define ENCRYPT_CYCLE( A, B, C, D, T0, T1, xkey, r ) \
+ ENCRYPT_RND( A,B,C,D,T0,T1,xkey,2*(r) );\
+ ENCRYPT_RND( C,D,A,B,T0,T1,xkey,2*(r)+1 )
+
+/* Full 16-round encryption */
+#define ENCRYPT( A,B,C,D,T0,T1,xkey ) \
+ ENCRYPT_CYCLE( A,B,C,D,T0,T1,xkey, 0 );\
+ ENCRYPT_CYCLE( A,B,C,D,T0,T1,xkey, 1 );\
+ ENCRYPT_CYCLE( A,B,C,D,T0,T1,xkey, 2 );\
+ ENCRYPT_CYCLE( A,B,C,D,T0,T1,xkey, 3 );\
+ ENCRYPT_CYCLE( A,B,C,D,T0,T1,xkey, 4 );\
+ ENCRYPT_CYCLE( A,B,C,D,T0,T1,xkey, 5 );\
+ ENCRYPT_CYCLE( A,B,C,D,T0,T1,xkey, 6 );\
+ ENCRYPT_CYCLE( A,B,C,D,T0,T1,xkey, 7 )
+
+/*
+ * A single round of Twofish for decryption. It differs from
+ * ENCRYTP_RND only because of the 1-bit rotations.
+ */
+#define DECRYPT_RND( A,B,C,D, T0, T1, xkey, r ) \
+ T0 = g0(A,xkey); T1 = g1(B,xkey);\
+ C = ROL32(C,1); C ^= T0+T1+xkey->K[8+2*(r)];\
+ D ^= T0+2*T1+xkey->K[8+2*(r)+1]; D = ROR32(D,1)
+
+/*
+ * Decrypt a single cycle, consisting of two rounds.
+ * This avoids the swapping of the two halves.
+ * Parameter r is now the cycle number.
+ */
+#define DECRYPT_CYCLE( A, B, C, D, T0, T1, xkey, r ) \
+ DECRYPT_RND( A,B,C,D,T0,T1,xkey,2*(r)+1 );\
+ DECRYPT_RND( C,D,A,B,T0,T1,xkey,2*(r) )
+
+/* Full 16-round decryption. */
+#define DECRYPT( A,B,C,D,T0,T1, xkey ) \
+ DECRYPT_CYCLE( A,B,C,D,T0,T1,xkey, 7 );\
+ DECRYPT_CYCLE( A,B,C,D,T0,T1,xkey, 6 );\
+ DECRYPT_CYCLE( A,B,C,D,T0,T1,xkey, 5 );\
+ DECRYPT_CYCLE( A,B,C,D,T0,T1,xkey, 4 );\
+ DECRYPT_CYCLE( A,B,C,D,T0,T1,xkey, 3 );\
+ DECRYPT_CYCLE( A,B,C,D,T0,T1,xkey, 2 );\
+ DECRYPT_CYCLE( A,B,C,D,T0,T1,xkey, 1 );\
+ DECRYPT_CYCLE( A,B,C,D,T0,T1,xkey, 0 )
+
+/*
+ * A macro to read the state from the plaintext and do the initial key xors.
+ * The koff argument allows us to use the same macro
+ * for the decryption which uses different key words at the start.
+ */
+#define GET_INPUT( src, A,B,C,D, xkey, koff ) \
+ A = GET32(src )^xkey->K[ koff]; B = GET32(src+ 4)^xkey->K[1+koff]; \
+ C = GET32(src+ 8)^xkey->K[2+koff]; D = GET32(src+12)^xkey->K[3+koff]
+
+/*
+ * Similar macro to put the ciphertext in the output buffer.
+ * We xor the keys into the state variables before we use the PUT32
+ * macro as the macro might use its argument multiple times.
+ */
+#define PUT_OUTPUT( A,B,C,D, dst, xkey, koff ) \
+ A ^= xkey->K[ koff]; B ^= xkey->K[1+koff]; \
+ C ^= xkey->K[2+koff]; D ^= xkey->K[3+koff]; \
+ PUT32( A, dst ); PUT32( B, dst+ 4 ); \
+ PUT32( C, dst+8 ); PUT32( D, dst+12 )
+
+
+/*
+ * Twofish block encryption
+ *
+ * Arguments:
+ * xkey expanded key array
+ * p 16 bytes of plaintext
+ * c 16 bytes in which to store the ciphertext
+ */
+void Twofish_encrypt( Twofish_key * xkey, Byte p[16], Byte c[16])
+ {
+ UInt32 A,B,C,D,T0,T1; /* Working variables */
+
+ /* Get the four plaintext words xorred with the key */
+ GET_INPUT( p, A,B,C,D, xkey, 0 );
+
+ /* Do 8 cycles (= 16 rounds) */
+ ENCRYPT( A,B,C,D,T0,T1,xkey );
+
+ /* Store them with the final swap and the output whitening. */
+ PUT_OUTPUT( C,D,A,B, c, xkey, 4 );
+ }
+
+
+/*
+ * Twofish block decryption.
+ *
+ * Arguments:
+ * xkey expanded key array
+ * p 16 bytes of plaintext
+ * c 16 bytes in which to store the ciphertext
+ */
+void Twofish_decrypt( Twofish_key * xkey, Byte c[16], Byte p[16])
+ {
+ UInt32 A,B,C,D,T0,T1; /* Working variables */
+
+ /* Get the four plaintext words xorred with the key */
+ GET_INPUT( c, A,B,C,D, xkey, 4 );
+
+ /* Do 8 cycles (= 16 rounds) */
+ DECRYPT( A,B,C,D,T0,T1,xkey );
+
+ /* Store them with the final swap and the output whitening. */
+ PUT_OUTPUT( C,D,A,B, p, xkey, 0 );
+ }
+
+/*
+ * Using the macros it is easy to make special routines for
+ * CBC mode, CTR mode etc. The only thing you might want to
+ * add is a XOR_PUT_OUTPUT which xors the outputs into the
+ * destinationa instead of overwriting the data. This requires
+ * a XOR_PUT32 macro as well, but that should all be trivial.
+ *
+ * I thought about including routines for the separate cipher
+ * modes here, but it is unclear which modes should be included,
+ * and each encryption or decryption routine takes up a lot of code space.
+ * Also, I don't have any test vectors for any cipher modes
+ * with Twofish.
+ */
diff --git a/Example/Pods/NACrypto/NACrypto/TwoFish/twofish.h b/Example/Pods/NACrypto/NACrypto/TwoFish/twofish.h
new file mode 100644
index 0000000..839be45
--- /dev/null
+++ b/Example/Pods/NACrypto/NACrypto/TwoFish/twofish.h
@@ -0,0 +1,180 @@
+/*
+ * Fast, portable, and easy-to-use Twofish implementation,
+ * Version 0.3.
+ * Copyright (c) 2002 by Niels Ferguson.
+ *
+ * See the twofish.c file for the details of the how and why of this code.
+ *
+ * The author hereby grants a perpetual license to everybody to
+ * use this code for any purpose as long as the copyright message is included
+ * in the source code of this or any derived work.
+ */
+
+#include
+
+/*
+ * PLATFORM FIXES
+ * ==============
+ *
+ * The following definitions have to be fixed for each particular platform
+ * you work on. If you have a multi-platform program, you no doubt have
+ * portable definitions that you can substitute here without changing
+ * the rest of the code.
+ *
+ * The defaults provided here should work on most PC compilers.
+ */
+
+
+/*
+ * A Twofish_Byte must be an unsigned 8-bit integer.
+ * It must also be the elementary data size of your C platform,
+ * i.e. sizeof( Twofish_Byte ) == 1.
+ */
+typedef uint8_t Twofish_Byte;
+
+/*
+ * A Twofish_UInt32 must be an unsigned integer of at least 32 bits.
+ *
+ * This type is used only internally in the implementation, so ideally it
+ * would not appear in the header file, but it is used inside the
+ * Twofish_key structure which means it has to be included here.
+ */
+typedef uint32_t Twofish_UInt32;
+
+
+/*
+ * END OF PLATFORM FIXES
+ * =====================
+ *
+ * You should not have to touch the rest of this file, but the code
+ * in twofish.c has a few things you need to fix too.
+ */
+
+
+/*
+ * Structure that contains a prepared Twofish key.
+ * A cipher key is used in two stages. In the first stage it is converted
+ * form the original form to an internal representation.
+ * This internal form is then used to encrypt and decrypt data.
+ * This structure contains the internal form. It is rather large: 4256 bytes
+ * on a platform with 32-bit unsigned values.
+ *
+ * Treat this as an opague structure, and don't try to manipulate the
+ * elements in it. I wish I could hide the inside of the structure,
+ * but C doesn't allow that.
+ */
+typedef
+ struct
+ {
+ Twofish_UInt32 s[4][256]; /* pre-computed S-boxes */
+ Twofish_UInt32 K[40]; /* Round key words */
+ }
+ Twofish_key;
+
+
+/*
+ * Initialise and test the Twofish implementation.
+ *
+ * This function MUST be called before any other function in the
+ * Twofish implementation is called.
+ * It only needs to be called once.
+ *
+ * Apart from initialising the implementation it performs a self test.
+ * If the Twofish_fatal function is not called, the code passed the test.
+ * (See the twofish.c file for details on the Twofish_fatal function.)
+ */
+extern void Twofish_initialise();
+
+
+/*
+ * Convert a cipher key to the internal form used for
+ * encryption and decryption.
+ *
+ * The cipher key is an array of bytes; the Twofish_Byte type is
+ * defined above to a type suitable on your platform.
+ *
+ * Any key must be converted to an internal form in the Twofisk_key structure
+ * before it can be used.
+ * The encryption and decryption functions only work with the internal form.
+ * The conversion to internal form need only be done once for each key value.
+ *
+ * Be sure to wipe all key storage, including the Twofish_key structure,
+ * once you are done with the key data.
+ * A simple memset( TwofishKey, 0, sizeof( TwofishKey ) ) will do just fine.
+ *
+ * Unlike most implementations, this one allows any key size from 0 bytes
+ * to 32 bytes. According to the Twofish specifications,
+ * irregular key sizes are handled by padding the key with zeroes at the end
+ * until the key size is 16, 24, or 32 bytes, whichever
+ * comes first. Note that each key of irregular size is equivalent to exactly
+ * one key of 16, 24, or 32 bytes.
+ *
+ * WARNING: Short keys have low entropy, and result in low security.
+ * Anything less than 8 bytes is utterly insecure. For good security
+ * use at least 16 bytes. I prefer to use 32-byte keys to prevent
+ * any collision attacks on the key.
+ *
+ * The key length argument key_len must be in the proper range.
+ * If key_len is not in the range 0,...,32 this routine attempts to generate
+ * a fatal error (depending on the code environment),
+ * and at best (or worst) returns without having done anything.
+ *
+ * Arguments:
+ * key Array of key bytes
+ * key_len Number of key bytes, must be in the range 0,1,...,32.
+ * xkey Pointer to an Twofish_key structure that will be filled
+ * with the internal form of the cipher key.
+ */
+extern void Twofish_prepare_key(
+ Twofish_Byte key[],
+ int key_len,
+ Twofish_key * xkey
+ );
+
+
+/*
+ * Encrypt a single block of data.
+ *
+ * This function encrypts a single block of 16 bytes of data.
+ * If you want to encrypt a larger or variable-length message,
+ * you will have to use a cipher mode, such as CBC or CTR.
+ * These are outside the scope of this implementation.
+ *
+ * The xkey structure is not modified by this routine, and can be
+ * used for further encryption and decryption operations.
+ *
+ * Arguments:
+ * xkey pointer to Twofish_key, internal form of the key
+ * produces by Twofish_prepare_key()
+ * p Plaintext to be encrypted
+ * c Place to store the ciphertext
+ */
+extern void Twofish_encrypt(
+ Twofish_key * xkey,
+ Twofish_Byte p[16],
+ Twofish_Byte c[16]
+ );
+
+
+/*
+ * Decrypt a single block of data.
+ *
+ * This function decrypts a single block of 16 bytes of data.
+ * If you want to decrypt a larger or variable-length message,
+ * you will have to use a cipher mode, such as CBC or CTR.
+ * These are outside the scope of this implementation.
+ *
+ * The xkey structure is not modified by this routine, and can be
+ * used for further encryption and decryption operations.
+ *
+ * Arguments:
+ * xkey pointer to Twofish_key, internal form of the key
+ * produces by Twofish_prepare_key()
+ * c Ciphertext to be decrypted
+ * p Place to store the plaintext
+ */
+extern void Twofish_decrypt(
+ Twofish_key * xkey,
+ Twofish_Byte c[16],
+ Twofish_Byte p[16]
+ );
diff --git a/Example/Pods/NACrypto/NACrypto/keccak/KeccakF-1600-32-rvk.h b/Example/Pods/NACrypto/NACrypto/keccak/KeccakF-1600-32-rvk.h
new file mode 100644
index 0000000..b59db4c
--- /dev/null
+++ b/Example/Pods/NACrypto/NACrypto/keccak/KeccakF-1600-32-rvk.h
@@ -0,0 +1,562 @@
+/*
+The Keccak sponge function, designed by Guido Bertoni, Joan Daemen,
+Michaël Peeters and Gilles Van Assche. For more information, feedback or
+questions, please refer to our website: http://keccak.noekeon.org/
+
+Implementation by Ronny Van Keer,
+hereby denoted as "the implementer".
+
+To the extent possible under law, the implementer has waived all copyright
+and related or neighboring rights to the source code in this file.
+http://creativecommons.org/publicdomain/zero/1.0/
+*/
+
+#include "KeccakF-1600-interface.h"
+
+#ifndef _Keccak1600_32_rvk_h_
+#define _Keccak1600_32_rvk_h_
+
+static const UINT32 KeccakF1600RoundConstants_int2[2*24] =
+{
+ 0x00000001UL, 0x00000000UL,
+ 0x00000000UL, 0x00000089UL,
+ 0x00000000UL, 0x8000008bUL,
+ 0x00000000UL, 0x80008080UL,
+ 0x00000001UL, 0x0000008bUL,
+ 0x00000001UL, 0x00008000UL,
+ 0x00000001UL, 0x80008088UL,
+ 0x00000001UL, 0x80000082UL,
+ 0x00000000UL, 0x0000000bUL,
+ 0x00000000UL, 0x0000000aUL,
+ 0x00000001UL, 0x00008082UL,
+ 0x00000000UL, 0x00008003UL,
+ 0x00000001UL, 0x0000808bUL,
+ 0x00000001UL, 0x8000000bUL,
+ 0x00000001UL, 0x8000008aUL,
+ 0x00000001UL, 0x80000081UL,
+ 0x00000000UL, 0x80000081UL,
+ 0x00000000UL, 0x80000008UL,
+ 0x00000000UL, 0x00000083UL,
+ 0x00000000UL, 0x80008003UL,
+ 0x00000001UL, 0x80008088UL,
+ 0x00000000UL, 0x80000088UL,
+ 0x00000001UL, 0x00008000UL,
+ 0x00000000UL, 0x80008082UL
+};
+
+#undef rounds
+
+#define rounds \
+{ \
+ UINT32 Da0, De0, Di0, Do0, Du0; \
+ UINT32 Da1, De1, Di1, Do1, Du1; \
+ UINT32 Ba, Be, Bi, Bo, Bu; \
+ UINT32 Aba0, Abe0, Abi0, Abo0, Abu0; \
+ UINT32 Aba1, Abe1, Abi1, Abo1, Abu1; \
+ UINT32 Aga0, Age0, Agi0, Ago0, Agu0; \
+ UINT32 Aga1, Age1, Agi1, Ago1, Agu1; \
+ UINT32 Aka0, Ake0, Aki0, Ako0, Aku0; \
+ UINT32 Aka1, Ake1, Aki1, Ako1, Aku1; \
+ UINT32 Ama0, Ame0, Ami0, Amo0, Amu0; \
+ UINT32 Ama1, Ame1, Ami1, Amo1, Amu1; \
+ UINT32 Asa0, Ase0, Asi0, Aso0, Asu0; \
+ UINT32 Asa1, Ase1, Asi1, Aso1, Asu1; \
+ UINT32 Cw, Cx, Cy, Cz; \
+ UINT32 Eba0, Ebe0, Ebi0, Ebo0, Ebu0; \
+ UINT32 Eba1, Ebe1, Ebi1, Ebo1, Ebu1; \
+ UINT32 Ega0, Ege0, Egi0, Ego0, Egu0; \
+ UINT32 Ega1, Ege1, Egi1, Ego1, Egu1; \
+ UINT32 Eka0, Eke0, Eki0, Eko0, Eku0; \
+ UINT32 Eka1, Eke1, Eki1, Eko1, Eku1; \
+ UINT32 Ema0, Eme0, Emi0, Emo0, Emu0; \
+ UINT32 Ema1, Eme1, Emi1, Emo1, Emu1; \
+ UINT32 Esa0, Ese0, Esi0, Eso0, Esu0; \
+ UINT32 Esa1, Ese1, Esi1, Eso1, Esu1; \
+ const UINT32 * pRoundConstants = KeccakF1600RoundConstants_int2; \
+ UINT32 i; \
+\
+ copyFromState(A, state) \
+\
+ for( i = 12; i != 0; --i ) { \
+ Cx = Abu0^Agu0^Aku0^Amu0^Asu0; \
+ Du1 = Abe1^Age1^Ake1^Ame1^Ase1; \
+ Da0 = Cx^ROL32(Du1, 1); \
+ Cz = Abu1^Agu1^Aku1^Amu1^Asu1; \
+ Du0 = Abe0^Age0^Ake0^Ame0^Ase0; \
+ Da1 = Cz^Du0; \
+\
+ Cw = Abi0^Agi0^Aki0^Ami0^Asi0; \
+ Do0 = Cw^ROL32(Cz, 1); \
+ Cy = Abi1^Agi1^Aki1^Ami1^Asi1; \
+ Do1 = Cy^Cx; \
+\
+ Cx = Aba0^Aga0^Aka0^Ama0^Asa0; \
+ De0 = Cx^ROL32(Cy, 1); \
+ Cz = Aba1^Aga1^Aka1^Ama1^Asa1; \
+ De1 = Cz^Cw; \
+\
+ Cy = Abo1^Ago1^Ako1^Amo1^Aso1; \
+ Di0 = Du0^ROL32(Cy, 1); \
+ Cw = Abo0^Ago0^Ako0^Amo0^Aso0; \
+ Di1 = Du1^Cw; \
+\
+ Du0 = Cw^ROL32(Cz, 1); \
+ Du1 = Cy^Cx; \
+\
+ Aba0 ^= Da0; \
+ Ba = Aba0; \
+ Age0 ^= De0; \
+ Be = ROL32(Age0, 22); \
+ Aki1 ^= Di1; \
+ Bi = ROL32(Aki1, 22); \
+ Amo1 ^= Do1; \
+ Bo = ROL32(Amo1, 11); \
+ Asu0 ^= Du0; \
+ Bu = ROL32(Asu0, 7); \
+ Eba0 = Ba ^((~Be)& Bi ) ^ *(pRoundConstants++); \
+ Ebe0 = Be ^((~Bi)& Bo ); \
+ Ebi0 = Bi ^((~Bo)& Bu ); \
+ Ebo0 = Bo ^((~Bu)& Ba ); \
+ Ebu0 = Bu ^((~Ba)& Be ); \
+\
+ Abo0 ^= Do0; \
+ Ba = ROL32(Abo0, 14); \
+ Agu0 ^= Du0; \
+ Be = ROL32(Agu0, 10); \
+ Aka1 ^= Da1; \
+ Bi = ROL32(Aka1, 2); \
+ Ame1 ^= De1; \
+ Bo = ROL32(Ame1, 23); \
+ Asi1 ^= Di1; \
+ Bu = ROL32(Asi1, 31); \
+ Ega0 = Ba ^((~Be)& Bi ); \
+ Ege0 = Be ^((~Bi)& Bo ); \
+ Egi0 = Bi ^((~Bo)& Bu ); \
+ Ego0 = Bo ^((~Bu)& Ba ); \
+ Egu0 = Bu ^((~Ba)& Be ); \
+\
+ Abe1 ^= De1; \
+ Ba = ROL32(Abe1, 1); \
+ Agi0 ^= Di0; \
+ Be = ROL32(Agi0, 3); \
+ Ako1 ^= Do1; \
+ Bi = ROL32(Ako1, 13); \
+ Amu0 ^= Du0; \
+ Bo = ROL32(Amu0, 4); \
+ Asa0 ^= Da0; \
+ Bu = ROL32(Asa0, 9); \
+ Eka0 = Ba ^((~Be)& Bi ); \
+ Eke0 = Be ^((~Bi)& Bo ); \
+ Eki0 = Bi ^((~Bo)& Bu ); \
+ Eko0 = Bo ^((~Bu)& Ba ); \
+ Eku0 = Bu ^((~Ba)& Be ); \
+\
+ Abu1 ^= Du1; \
+ Ba = ROL32(Abu1, 14); \
+ Aga0 ^= Da0; \
+ Be = ROL32(Aga0, 18); \
+ Ake0 ^= De0; \
+ Bi = ROL32(Ake0, 5); \
+ Ami1 ^= Di1; \
+ Bo = ROL32(Ami1, 8); \
+ Aso0 ^= Do0; \
+ Bu = ROL32(Aso0, 28); \
+ Ema0 = Ba ^((~Be)& Bi ); \
+ Eme0 = Be ^((~Bi)& Bo ); \
+ Emi0 = Bi ^((~Bo)& Bu ); \
+ Emo0 = Bo ^((~Bu)& Ba ); \
+ Emu0 = Bu ^((~Ba)& Be ); \
+\
+ Abi0 ^= Di0; \
+ Ba = ROL32(Abi0, 31); \
+ Ago1 ^= Do1; \
+ Be = ROL32(Ago1, 28); \
+ Aku1 ^= Du1; \
+ Bi = ROL32(Aku1, 20); \
+ Ama1 ^= Da1; \
+ Bo = ROL32(Ama1, 21); \
+ Ase0 ^= De0; \
+ Bu = ROL32(Ase0, 1); \
+ Esa0 = Ba ^((~Be)& Bi ); \
+ Ese0 = Be ^((~Bi)& Bo ); \
+ Esi0 = Bi ^((~Bo)& Bu ); \
+ Eso0 = Bo ^((~Bu)& Ba ); \
+ Esu0 = Bu ^((~Ba)& Be ); \
+\
+ Aba1 ^= Da1; \
+ Ba = Aba1; \
+ Age1 ^= De1; \
+ Be = ROL32(Age1, 22); \
+ Aki0 ^= Di0; \
+ Bi = ROL32(Aki0, 21); \
+ Amo0 ^= Do0; \
+ Bo = ROL32(Amo0, 10); \
+ Asu1 ^= Du1; \
+ Bu = ROL32(Asu1, 7); \
+ Eba1 = Ba ^((~Be)& Bi ); \
+ Eba1 ^= *(pRoundConstants++); \
+ Ebe1 = Be ^((~Bi)& Bo ); \
+ Ebi1 = Bi ^((~Bo)& Bu ); \
+ Ebo1 = Bo ^((~Bu)& Ba ); \
+ Ebu1 = Bu ^((~Ba)& Be ); \
+\
+ Abo1 ^= Do1; \
+ Ba = ROL32(Abo1, 14); \
+ Agu1 ^= Du1; \
+ Be = ROL32(Agu1, 10); \
+ Aka0 ^= Da0; \
+ Bi = ROL32(Aka0, 1); \
+ Ame0 ^= De0; \
+ Bo = ROL32(Ame0, 22); \
+ Asi0 ^= Di0; \
+ Bu = ROL32(Asi0, 30); \
+ Ega1 = Ba ^((~Be)& Bi ); \
+ Ege1 = Be ^((~Bi)& Bo ); \
+ Egi1 = Bi ^((~Bo)& Bu ); \
+ Ego1 = Bo ^((~Bu)& Ba ); \
+ Egu1 = Bu ^((~Ba)& Be ); \
+\
+ Abe0 ^= De0; \
+ Ba = Abe0; \
+ Agi1 ^= Di1; \
+ Be = ROL32(Agi1, 3); \
+ Ako0 ^= Do0; \
+ Bi = ROL32(Ako0, 12); \
+ Amu1 ^= Du1; \
+ Bo = ROL32(Amu1, 4); \
+ Asa1 ^= Da1; \
+ Bu = ROL32(Asa1, 9); \
+ Eka1 = Ba ^((~Be)& Bi ); \
+ Eke1 = Be ^((~Bi)& Bo ); \
+ Eki1 = Bi ^((~Bo)& Bu ); \
+ Eko1 = Bo ^((~Bu)& Ba ); \
+ Eku1 = Bu ^((~Ba)& Be ); \
+\
+ Abu0 ^= Du0; \
+ Ba = ROL32(Abu0, 13); \
+ Aga1 ^= Da1; \
+ Be = ROL32(Aga1, 18); \
+ Ake1 ^= De1; \
+ Bi = ROL32(Ake1, 5); \
+ Ami0 ^= Di0; \
+ Bo = ROL32(Ami0, 7); \
+ Aso1 ^= Do1; \
+ Bu = ROL32(Aso1, 28); \
+ Ema1 = Ba ^((~Be)& Bi ); \
+ Eme1 = Be ^((~Bi)& Bo ); \
+ Emi1 = Bi ^((~Bo)& Bu ); \
+ Emo1 = Bo ^((~Bu)& Ba ); \
+ Emu1 = Bu ^((~Ba)& Be ); \
+\
+ Abi1 ^= Di1; \
+ Ba = ROL32(Abi1, 31); \
+ Ago0 ^= Do0; \
+ Be = ROL32(Ago0, 27); \
+ Aku0 ^= Du0; \
+ Bi = ROL32(Aku0, 19); \
+ Ama0 ^= Da0; \
+ Bo = ROL32(Ama0, 20); \
+ Ase1 ^= De1; \
+ Bu = ROL32(Ase1, 1); \
+ Esa1 = Ba ^((~Be)& Bi ); \
+ Ese1 = Be ^((~Bi)& Bo ); \
+ Esi1 = Bi ^((~Bo)& Bu ); \
+ Eso1 = Bo ^((~Bu)& Ba ); \
+ Esu1 = Bu ^((~Ba)& Be ); \
+\
+ Cx = Ebu0^Egu0^Eku0^Emu0^Esu0; \
+ Du1 = Ebe1^Ege1^Eke1^Eme1^Ese1; \
+ Da0 = Cx^ROL32(Du1, 1); \
+ Cz = Ebu1^Egu1^Eku1^Emu1^Esu1; \
+ Du0 = Ebe0^Ege0^Eke0^Eme0^Ese0; \
+ Da1 = Cz^Du0; \
+\
+ Cw = Ebi0^Egi0^Eki0^Emi0^Esi0; \
+ Do0 = Cw^ROL32(Cz, 1); \
+ Cy = Ebi1^Egi1^Eki1^Emi1^Esi1; \
+ Do1 = Cy^Cx; \
+\
+ Cx = Eba0^Ega0^Eka0^Ema0^Esa0; \
+ De0 = Cx^ROL32(Cy, 1); \
+ Cz = Eba1^Ega1^Eka1^Ema1^Esa1; \
+ De1 = Cz^Cw; \
+\
+ Cy = Ebo1^Ego1^Eko1^Emo1^Eso1; \
+ Di0 = Du0^ROL32(Cy, 1); \
+ Cw = Ebo0^Ego0^Eko0^Emo0^Eso0; \
+ Di1 = Du1^Cw; \
+\
+ Du0 = Cw^ROL32(Cz, 1); \
+ Du1 = Cy^Cx; \
+\
+ Eba0 ^= Da0; \
+ Ba = Eba0; \
+ Ege0 ^= De0; \
+ Be = ROL32(Ege0, 22); \
+ Eki1 ^= Di1; \
+ Bi = ROL32(Eki1, 22); \
+ Emo1 ^= Do1; \
+ Bo = ROL32(Emo1, 11); \
+ Esu0 ^= Du0; \
+ Bu = ROL32(Esu0, 7); \
+ Aba0 = Ba ^((~Be)& Bi ); \
+ Aba0 ^= *(pRoundConstants++); \
+ Abe0 = Be ^((~Bi)& Bo ); \
+ Abi0 = Bi ^((~Bo)& Bu ); \
+ Abo0 = Bo ^((~Bu)& Ba ); \
+ Abu0 = Bu ^((~Ba)& Be ); \
+\
+ Ebo0 ^= Do0; \
+ Ba = ROL32(Ebo0, 14); \
+ Egu0 ^= Du0; \
+ Be = ROL32(Egu0, 10); \
+ Eka1 ^= Da1; \
+ Bi = ROL32(Eka1, 2); \
+ Eme1 ^= De1; \
+ Bo = ROL32(Eme1, 23); \
+ Esi1 ^= Di1; \
+ Bu = ROL32(Esi1, 31); \
+ Aga0 = Ba ^((~Be)& Bi ); \
+ Age0 = Be ^((~Bi)& Bo ); \
+ Agi0 = Bi ^((~Bo)& Bu ); \
+ Ago0 = Bo ^((~Bu)& Ba ); \
+ Agu0 = Bu ^((~Ba)& Be ); \
+\
+ Ebe1 ^= De1; \
+ Ba = ROL32(Ebe1, 1); \
+ Egi0 ^= Di0; \
+ Be = ROL32(Egi0, 3); \
+ Eko1 ^= Do1; \
+ Bi = ROL32(Eko1, 13); \
+ Emu0 ^= Du0; \
+ Bo = ROL32(Emu0, 4); \
+ Esa0 ^= Da0; \
+ Bu = ROL32(Esa0, 9); \
+ Aka0 = Ba ^((~Be)& Bi ); \
+ Ake0 = Be ^((~Bi)& Bo ); \
+ Aki0 = Bi ^((~Bo)& Bu ); \
+ Ako0 = Bo ^((~Bu)& Ba ); \
+ Aku0 = Bu ^((~Ba)& Be ); \
+\
+ Ebu1 ^= Du1; \
+ Ba = ROL32(Ebu1, 14); \
+ Ega0 ^= Da0; \
+ Be = ROL32(Ega0, 18); \
+ Eke0 ^= De0; \
+ Bi = ROL32(Eke0, 5); \
+ Emi1 ^= Di1; \
+ Bo = ROL32(Emi1, 8); \
+ Eso0 ^= Do0; \
+ Bu = ROL32(Eso0, 28); \
+ Ama0 = Ba ^((~Be)& Bi ); \
+ Ame0 = Be ^((~Bi)& Bo ); \
+ Ami0 = Bi ^((~Bo)& Bu ); \
+ Amo0 = Bo ^((~Bu)& Ba ); \
+ Amu0 = Bu ^((~Ba)& Be ); \
+\
+ Ebi0 ^= Di0; \
+ Ba = ROL32(Ebi0, 31); \
+ Ego1 ^= Do1; \
+ Be = ROL32(Ego1, 28); \
+ Eku1 ^= Du1; \
+ Bi = ROL32(Eku1, 20); \
+ Ema1 ^= Da1; \
+ Bo = ROL32(Ema1, 21); \
+ Ese0 ^= De0; \
+ Bu = ROL32(Ese0, 1); \
+ Asa0 = Ba ^((~Be)& Bi ); \
+ Ase0 = Be ^((~Bi)& Bo ); \
+ Asi0 = Bi ^((~Bo)& Bu ); \
+ Aso0 = Bo ^((~Bu)& Ba ); \
+ Asu0 = Bu ^((~Ba)& Be ); \
+\
+ Eba1 ^= Da1; \
+ Ba = Eba1; \
+ Ege1 ^= De1; \
+ Be = ROL32(Ege1, 22); \
+ Eki0 ^= Di0; \
+ Bi = ROL32(Eki0, 21); \
+ Emo0 ^= Do0; \
+ Bo = ROL32(Emo0, 10); \
+ Esu1 ^= Du1; \
+ Bu = ROL32(Esu1, 7); \
+ Aba1 = Ba ^((~Be)& Bi ); \
+ Aba1 ^= *(pRoundConstants++); \
+ Abe1 = Be ^((~Bi)& Bo ); \
+ Abi1 = Bi ^((~Bo)& Bu ); \
+ Abo1 = Bo ^((~Bu)& Ba ); \
+ Abu1 = Bu ^((~Ba)& Be ); \
+\
+ Ebo1 ^= Do1; \
+ Ba = ROL32(Ebo1, 14); \
+ Egu1 ^= Du1; \
+ Be = ROL32(Egu1, 10); \
+ Eka0 ^= Da0; \
+ Bi = ROL32(Eka0, 1); \
+ Eme0 ^= De0; \
+ Bo = ROL32(Eme0, 22); \
+ Esi0 ^= Di0; \
+ Bu = ROL32(Esi0, 30); \
+ Aga1 = Ba ^((~Be)& Bi ); \
+ Age1 = Be ^((~Bi)& Bo ); \
+ Agi1 = Bi ^((~Bo)& Bu ); \
+ Ago1 = Bo ^((~Bu)& Ba ); \
+ Agu1 = Bu ^((~Ba)& Be ); \
+\
+ Ebe0 ^= De0; \
+ Ba = Ebe0; \
+ Egi1 ^= Di1; \
+ Be = ROL32(Egi1, 3); \
+ Eko0 ^= Do0; \
+ Bi = ROL32(Eko0, 12); \
+ Emu1 ^= Du1; \
+ Bo = ROL32(Emu1, 4); \
+ Esa1 ^= Da1; \
+ Bu = ROL32(Esa1, 9); \
+ Aka1 = Ba ^((~Be)& Bi ); \
+ Ake1 = Be ^((~Bi)& Bo ); \
+ Aki1 = Bi ^((~Bo)& Bu ); \
+ Ako1 = Bo ^((~Bu)& Ba ); \
+ Aku1 = Bu ^((~Ba)& Be ); \
+\
+ Ebu0 ^= Du0; \
+ Ba = ROL32(Ebu0, 13); \
+ Ega1 ^= Da1; \
+ Be = ROL32(Ega1, 18); \
+ Eke1 ^= De1; \
+ Bi = ROL32(Eke1, 5); \
+ Emi0 ^= Di0; \
+ Bo = ROL32(Emi0, 7); \
+ Eso1 ^= Do1; \
+ Bu = ROL32(Eso1, 28); \
+ Ama1 = Ba ^((~Be)& Bi ); \
+ Ame1 = Be ^((~Bi)& Bo ); \
+ Ami1 = Bi ^((~Bo)& Bu ); \
+ Amo1 = Bo ^((~Bu)& Ba ); \
+ Amu1 = Bu ^((~Ba)& Be ); \
+\
+ Ebi1 ^= Di1; \
+ Ba = ROL32(Ebi1, 31); \
+ Ego0 ^= Do0; \
+ Be = ROL32(Ego0, 27); \
+ Eku0 ^= Du0; \
+ Bi = ROL32(Eku0, 19); \
+ Ema0 ^= Da0; \
+ Bo = ROL32(Ema0, 20); \
+ Ese1 ^= De1; \
+ Bu = ROL32(Ese1, 1); \
+ Asa1 = Ba ^((~Be)& Bi ); \
+ Ase1 = Be ^((~Bi)& Bo ); \
+ Asi1 = Bi ^((~Bo)& Bu ); \
+ Aso1 = Bo ^((~Bu)& Ba ); \
+ Asu1 = Bu ^((~Ba)& Be ); \
+ } \
+ copyToState(state, A) \
+}
+
+#define copyFromState(X, state) \
+ X##ba0 = state[ 0]; \
+ X##ba1 = state[ 1]; \
+ X##be0 = state[ 2]; \
+ X##be1 = state[ 3]; \
+ X##bi0 = state[ 4]; \
+ X##bi1 = state[ 5]; \
+ X##bo0 = state[ 6]; \
+ X##bo1 = state[ 7]; \
+ X##bu0 = state[ 8]; \
+ X##bu1 = state[ 9]; \
+ X##ga0 = state[10]; \
+ X##ga1 = state[11]; \
+ X##ge0 = state[12]; \
+ X##ge1 = state[13]; \
+ X##gi0 = state[14]; \
+ X##gi1 = state[15]; \
+ X##go0 = state[16]; \
+ X##go1 = state[17]; \
+ X##gu0 = state[18]; \
+ X##gu1 = state[19]; \
+ X##ka0 = state[20]; \
+ X##ka1 = state[21]; \
+ X##ke0 = state[22]; \
+ X##ke1 = state[23]; \
+ X##ki0 = state[24]; \
+ X##ki1 = state[25]; \
+ X##ko0 = state[26]; \
+ X##ko1 = state[27]; \
+ X##ku0 = state[28]; \
+ X##ku1 = state[29]; \
+ X##ma0 = state[30]; \
+ X##ma1 = state[31]; \
+ X##me0 = state[32]; \
+ X##me1 = state[33]; \
+ X##mi0 = state[34]; \
+ X##mi1 = state[35]; \
+ X##mo0 = state[36]; \
+ X##mo1 = state[37]; \
+ X##mu0 = state[38]; \
+ X##mu1 = state[39]; \
+ X##sa0 = state[40]; \
+ X##sa1 = state[41]; \
+ X##se0 = state[42]; \
+ X##se1 = state[43]; \
+ X##si0 = state[44]; \
+ X##si1 = state[45]; \
+ X##so0 = state[46]; \
+ X##so1 = state[47]; \
+ X##su0 = state[48]; \
+ X##su1 = state[49]; \
+
+#define copyToState(state, X) \
+ state[ 0] = X##ba0; \
+ state[ 1] = X##ba1; \
+ state[ 2] = X##be0; \
+ state[ 3] = X##be1; \
+ state[ 4] = X##bi0; \
+ state[ 5] = X##bi1; \
+ state[ 6] = X##bo0; \
+ state[ 7] = X##bo1; \
+ state[ 8] = X##bu0; \
+ state[ 9] = X##bu1; \
+ state[10] = X##ga0; \
+ state[11] = X##ga1; \
+ state[12] = X##ge0; \
+ state[13] = X##ge1; \
+ state[14] = X##gi0; \
+ state[15] = X##gi1; \
+ state[16] = X##go0; \
+ state[17] = X##go1; \
+ state[18] = X##gu0; \
+ state[19] = X##gu1; \
+ state[20] = X##ka0; \
+ state[21] = X##ka1; \
+ state[22] = X##ke0; \
+ state[23] = X##ke1; \
+ state[24] = X##ki0; \
+ state[25] = X##ki1; \
+ state[26] = X##ko0; \
+ state[27] = X##ko1; \
+ state[28] = X##ku0; \
+ state[29] = X##ku1; \
+ state[30] = X##ma0; \
+ state[31] = X##ma1; \
+ state[32] = X##me0; \
+ state[33] = X##me1; \
+ state[34] = X##mi0; \
+ state[35] = X##mi1; \
+ state[36] = X##mo0; \
+ state[37] = X##mo1; \
+ state[38] = X##mu0; \
+ state[39] = X##mu1; \
+ state[40] = X##sa0; \
+ state[41] = X##sa1; \
+ state[42] = X##se0; \
+ state[43] = X##se1; \
+ state[44] = X##si0; \
+ state[45] = X##si1; \
+ state[46] = X##so0; \
+ state[47] = X##so1; \
+ state[48] = X##su0; \
+ state[49] = X##su1; \
+
+
+#endif
\ No newline at end of file
diff --git a/Example/Pods/NACrypto/NACrypto/keccak/KeccakF-1600-32-s1.h b/Example/Pods/NACrypto/NACrypto/keccak/KeccakF-1600-32-s1.h
new file mode 100644
index 0000000..7c93036
--- /dev/null
+++ b/Example/Pods/NACrypto/NACrypto/keccak/KeccakF-1600-32-s1.h
@@ -0,0 +1,1191 @@
+/*
+Code automatically generated by KeccakTools!
+
+The Keccak sponge function, designed by Guido Bertoni, Joan Daemen,
+Michaël Peeters and Gilles Van Assche. For more information, feedback or
+questions, please refer to our website: http://keccak.noekeon.org/
+
+Implementation by the designers,
+hereby denoted as "the implementer".
+
+To the extent possible under law, the implementer has waived all copyright
+and related or neighboring rights to the source code in this file.
+http://creativecommons.org/publicdomain/zero/1.0/
+*/
+
+#ifndef _Keccak1600_32_s1_h_
+#define _Keccak1600_32_s1_h_
+
+#define declareABCDE \
+ UINT32 Aba0, Abe0, Abi0, Abo0, Abu0; \
+ UINT32 Aba1, Abe1, Abi1, Abo1, Abu1; \
+ UINT32 Aga0, Age0, Agi0, Ago0, Agu0; \
+ UINT32 Aga1, Age1, Agi1, Ago1, Agu1; \
+ UINT32 Aka0, Ake0, Aki0, Ako0, Aku0; \
+ UINT32 Aka1, Ake1, Aki1, Ako1, Aku1; \
+ UINT32 Ama0, Ame0, Ami0, Amo0, Amu0; \
+ UINT32 Ama1, Ame1, Ami1, Amo1, Amu1; \
+ UINT32 Asa0, Ase0, Asi0, Aso0, Asu0; \
+ UINT32 Asa1, Ase1, Asi1, Aso1, Asu1; \
+ UINT32 Bba0, Bbe0, Bbi0, Bbo0, Bbu0; \
+ UINT32 Bba1, Bbe1, Bbi1, Bbo1, Bbu1; \
+ UINT32 Bga0, Bge0, Bgi0, Bgo0, Bgu0; \
+ UINT32 Bga1, Bge1, Bgi1, Bgo1, Bgu1; \
+ UINT32 Bka0, Bke0, Bki0, Bko0, Bku0; \
+ UINT32 Bka1, Bke1, Bki1, Bko1, Bku1; \
+ UINT32 Bma0, Bme0, Bmi0, Bmo0, Bmu0; \
+ UINT32 Bma1, Bme1, Bmi1, Bmo1, Bmu1; \
+ UINT32 Bsa0, Bse0, Bsi0, Bso0, Bsu0; \
+ UINT32 Bsa1, Bse1, Bsi1, Bso1, Bsu1; \
+ UINT32 Ca0, Ce0, Ci0, Co0, Cu0; \
+ UINT32 Ca1, Ce1, Ci1, Co1, Cu1; \
+ UINT32 Da0, De0, Di0, Do0, Du0; \
+ UINT32 Da1, De1, Di1, Do1, Du1; \
+ UINT32 Eba0, Ebe0, Ebi0, Ebo0, Ebu0; \
+ UINT32 Eba1, Ebe1, Ebi1, Ebo1, Ebu1; \
+ UINT32 Ega0, Ege0, Egi0, Ego0, Egu0; \
+ UINT32 Ega1, Ege1, Egi1, Ego1, Egu1; \
+ UINT32 Eka0, Eke0, Eki0, Eko0, Eku0; \
+ UINT32 Eka1, Eke1, Eki1, Eko1, Eku1; \
+ UINT32 Ema0, Eme0, Emi0, Emo0, Emu0; \
+ UINT32 Ema1, Eme1, Emi1, Emo1, Emu1; \
+ UINT32 Esa0, Ese0, Esi0, Eso0, Esu0; \
+ UINT32 Esa1, Ese1, Esi1, Eso1, Esu1; \
+
+#define prepareTheta \
+ Ca0 = Aba0^Aga0^Aka0^Ama0^Asa0; \
+ Ca1 = Aba1^Aga1^Aka1^Ama1^Asa1; \
+ Ce0 = Abe0^Age0^Ake0^Ame0^Ase0; \
+ Ce1 = Abe1^Age1^Ake1^Ame1^Ase1; \
+ Ci0 = Abi0^Agi0^Aki0^Ami0^Asi0; \
+ Ci1 = Abi1^Agi1^Aki1^Ami1^Asi1; \
+ Co0 = Abo0^Ago0^Ako0^Amo0^Aso0; \
+ Co1 = Abo1^Ago1^Ako1^Amo1^Aso1; \
+ Cu0 = Abu0^Agu0^Aku0^Amu0^Asu0; \
+ Cu1 = Abu1^Agu1^Aku1^Amu1^Asu1; \
+
+#ifdef UseBebigokimisa
+/* --- Code for round, with prepare-theta (lane complementing pattern 'bebigokimisa') */
+/* --- using factor 2 interleaving, 64-bit lanes mapped to 32-bit words */
+#define thetaRhoPiChiIotaPrepareTheta(i, A, E) \
+ Da0 = Cu0^ROL32(Ce1, 1); \
+ Da1 = Cu1^Ce0; \
+ De0 = Ca0^ROL32(Ci1, 1); \
+ De1 = Ca1^Ci0; \
+ Di0 = Ce0^ROL32(Co1, 1); \
+ Di1 = Ce1^Co0; \
+ Do0 = Ci0^ROL32(Cu1, 1); \
+ Do1 = Ci1^Cu0; \
+ Du0 = Co0^ROL32(Ca1, 1); \
+ Du1 = Co1^Ca0; \
+\
+ A##ba0 ^= Da0; \
+ Bba0 = A##ba0; \
+ A##ge0 ^= De0; \
+ Bbe0 = ROL32(A##ge0, 22); \
+ A##ki1 ^= Di1; \
+ Bbi0 = ROL32(A##ki1, 22); \
+ A##mo1 ^= Do1; \
+ Bbo0 = ROL32(A##mo1, 11); \
+ A##su0 ^= Du0; \
+ Bbu0 = ROL32(A##su0, 7); \
+ E##ba0 = Bba0 ^( Bbe0 | Bbi0 ); \
+ E##ba0 ^= KeccakF1600RoundConstants_int2_0[i]; \
+ Ca0 = E##ba0; \
+ E##be0 = Bbe0 ^((~Bbi0)| Bbo0 ); \
+ Ce0 = E##be0; \
+ E##bi0 = Bbi0 ^( Bbo0 & Bbu0 ); \
+ Ci0 = E##bi0; \
+ E##bo0 = Bbo0 ^( Bbu0 | Bba0 ); \
+ Co0 = E##bo0; \
+ E##bu0 = Bbu0 ^( Bba0 & Bbe0 ); \
+ Cu0 = E##bu0; \
+\
+ A##ba1 ^= Da1; \
+ Bba1 = A##ba1; \
+ A##ge1 ^= De1; \
+ Bbe1 = ROL32(A##ge1, 22); \
+ A##ki0 ^= Di0; \
+ Bbi1 = ROL32(A##ki0, 21); \
+ A##mo0 ^= Do0; \
+ Bbo1 = ROL32(A##mo0, 10); \
+ A##su1 ^= Du1; \
+ Bbu1 = ROL32(A##su1, 7); \
+ E##ba1 = Bba1 ^( Bbe1 | Bbi1 ); \
+ E##ba1 ^= KeccakF1600RoundConstants_int2_1[i]; \
+ Ca1 = E##ba1; \
+ E##be1 = Bbe1 ^((~Bbi1)| Bbo1 ); \
+ Ce1 = E##be1; \
+ E##bi1 = Bbi1 ^( Bbo1 & Bbu1 ); \
+ Ci1 = E##bi1; \
+ E##bo1 = Bbo1 ^( Bbu1 | Bba1 ); \
+ Co1 = E##bo1; \
+ E##bu1 = Bbu1 ^( Bba1 & Bbe1 ); \
+ Cu1 = E##bu1; \
+\
+ A##bo0 ^= Do0; \
+ Bga0 = ROL32(A##bo0, 14); \
+ A##gu0 ^= Du0; \
+ Bge0 = ROL32(A##gu0, 10); \
+ A##ka1 ^= Da1; \
+ Bgi0 = ROL32(A##ka1, 2); \
+ A##me1 ^= De1; \
+ Bgo0 = ROL32(A##me1, 23); \
+ A##si1 ^= Di1; \
+ Bgu0 = ROL32(A##si1, 31); \
+ E##ga0 = Bga0 ^( Bge0 | Bgi0 ); \
+ Ca0 ^= E##ga0; \
+ E##ge0 = Bge0 ^( Bgi0 & Bgo0 ); \
+ Ce0 ^= E##ge0; \
+ E##gi0 = Bgi0 ^( Bgo0 |(~Bgu0)); \
+ Ci0 ^= E##gi0; \
+ E##go0 = Bgo0 ^( Bgu0 | Bga0 ); \
+ Co0 ^= E##go0; \
+ E##gu0 = Bgu0 ^( Bga0 & Bge0 ); \
+ Cu0 ^= E##gu0; \
+\
+ A##bo1 ^= Do1; \
+ Bga1 = ROL32(A##bo1, 14); \
+ A##gu1 ^= Du1; \
+ Bge1 = ROL32(A##gu1, 10); \
+ A##ka0 ^= Da0; \
+ Bgi1 = ROL32(A##ka0, 1); \
+ A##me0 ^= De0; \
+ Bgo1 = ROL32(A##me0, 22); \
+ A##si0 ^= Di0; \
+ Bgu1 = ROL32(A##si0, 30); \
+ E##ga1 = Bga1 ^( Bge1 | Bgi1 ); \
+ Ca1 ^= E##ga1; \
+ E##ge1 = Bge1 ^( Bgi1 & Bgo1 ); \
+ Ce1 ^= E##ge1; \
+ E##gi1 = Bgi1 ^( Bgo1 |(~Bgu1)); \
+ Ci1 ^= E##gi1; \
+ E##go1 = Bgo1 ^( Bgu1 | Bga1 ); \
+ Co1 ^= E##go1; \
+ E##gu1 = Bgu1 ^( Bga1 & Bge1 ); \
+ Cu1 ^= E##gu1; \
+\
+ A##be1 ^= De1; \
+ Bka0 = ROL32(A##be1, 1); \
+ A##gi0 ^= Di0; \
+ Bke0 = ROL32(A##gi0, 3); \
+ A##ko1 ^= Do1; \
+ Bki0 = ROL32(A##ko1, 13); \
+ A##mu0 ^= Du0; \
+ Bko0 = ROL32(A##mu0, 4); \
+ A##sa0 ^= Da0; \
+ Bku0 = ROL32(A##sa0, 9); \
+ E##ka0 = Bka0 ^( Bke0 | Bki0 ); \
+ Ca0 ^= E##ka0; \
+ E##ke0 = Bke0 ^( Bki0 & Bko0 ); \
+ Ce0 ^= E##ke0; \
+ E##ki0 = Bki0 ^((~Bko0)& Bku0 ); \
+ Ci0 ^= E##ki0; \
+ E##ko0 = (~Bko0)^( Bku0 | Bka0 ); \
+ Co0 ^= E##ko0; \
+ E##ku0 = Bku0 ^( Bka0 & Bke0 ); \
+ Cu0 ^= E##ku0; \
+\
+ A##be0 ^= De0; \
+ Bka1 = A##be0; \
+ A##gi1 ^= Di1; \
+ Bke1 = ROL32(A##gi1, 3); \
+ A##ko0 ^= Do0; \
+ Bki1 = ROL32(A##ko0, 12); \
+ A##mu1 ^= Du1; \
+ Bko1 = ROL32(A##mu1, 4); \
+ A##sa1 ^= Da1; \
+ Bku1 = ROL32(A##sa1, 9); \
+ E##ka1 = Bka1 ^( Bke1 | Bki1 ); \
+ Ca1 ^= E##ka1; \
+ E##ke1 = Bke1 ^( Bki1 & Bko1 ); \
+ Ce1 ^= E##ke1; \
+ E##ki1 = Bki1 ^((~Bko1)& Bku1 ); \
+ Ci1 ^= E##ki1; \
+ E##ko1 = (~Bko1)^( Bku1 | Bka1 ); \
+ Co1 ^= E##ko1; \
+ E##ku1 = Bku1 ^( Bka1 & Bke1 ); \
+ Cu1 ^= E##ku1; \
+\
+ A##bu1 ^= Du1; \
+ Bma0 = ROL32(A##bu1, 14); \
+ A##ga0 ^= Da0; \
+ Bme0 = ROL32(A##ga0, 18); \
+ A##ke0 ^= De0; \
+ Bmi0 = ROL32(A##ke0, 5); \
+ A##mi1 ^= Di1; \
+ Bmo0 = ROL32(A##mi1, 8); \
+ A##so0 ^= Do0; \
+ Bmu0 = ROL32(A##so0, 28); \
+ E##ma0 = Bma0 ^( Bme0 & Bmi0 ); \
+ Ca0 ^= E##ma0; \
+ E##me0 = Bme0 ^( Bmi0 | Bmo0 ); \
+ Ce0 ^= E##me0; \
+ E##mi0 = Bmi0 ^((~Bmo0)| Bmu0 ); \
+ Ci0 ^= E##mi0; \
+ E##mo0 = (~Bmo0)^( Bmu0 & Bma0 ); \
+ Co0 ^= E##mo0; \
+ E##mu0 = Bmu0 ^( Bma0 | Bme0 ); \
+ Cu0 ^= E##mu0; \
+\
+ A##bu0 ^= Du0; \
+ Bma1 = ROL32(A##bu0, 13); \
+ A##ga1 ^= Da1; \
+ Bme1 = ROL32(A##ga1, 18); \
+ A##ke1 ^= De1; \
+ Bmi1 = ROL32(A##ke1, 5); \
+ A##mi0 ^= Di0; \
+ Bmo1 = ROL32(A##mi0, 7); \
+ A##so1 ^= Do1; \
+ Bmu1 = ROL32(A##so1, 28); \
+ E##ma1 = Bma1 ^( Bme1 & Bmi1 ); \
+ Ca1 ^= E##ma1; \
+ E##me1 = Bme1 ^( Bmi1 | Bmo1 ); \
+ Ce1 ^= E##me1; \
+ E##mi1 = Bmi1 ^((~Bmo1)| Bmu1 ); \
+ Ci1 ^= E##mi1; \
+ E##mo1 = (~Bmo1)^( Bmu1 & Bma1 ); \
+ Co1 ^= E##mo1; \
+ E##mu1 = Bmu1 ^( Bma1 | Bme1 ); \
+ Cu1 ^= E##mu1; \
+\
+ A##bi0 ^= Di0; \
+ Bsa0 = ROL32(A##bi0, 31); \
+ A##go1 ^= Do1; \
+ Bse0 = ROL32(A##go1, 28); \
+ A##ku1 ^= Du1; \
+ Bsi0 = ROL32(A##ku1, 20); \
+ A##ma1 ^= Da1; \
+ Bso0 = ROL32(A##ma1, 21); \
+ A##se0 ^= De0; \
+ Bsu0 = ROL32(A##se0, 1); \
+ E##sa0 = Bsa0 ^((~Bse0)& Bsi0 ); \
+ Ca0 ^= E##sa0; \
+ E##se0 = (~Bse0)^( Bsi0 | Bso0 ); \
+ Ce0 ^= E##se0; \
+ E##si0 = Bsi0 ^( Bso0 & Bsu0 ); \
+ Ci0 ^= E##si0; \
+ E##so0 = Bso0 ^( Bsu0 | Bsa0 ); \
+ Co0 ^= E##so0; \
+ E##su0 = Bsu0 ^( Bsa0 & Bse0 ); \
+ Cu0 ^= E##su0; \
+\
+ A##bi1 ^= Di1; \
+ Bsa1 = ROL32(A##bi1, 31); \
+ A##go0 ^= Do0; \
+ Bse1 = ROL32(A##go0, 27); \
+ A##ku0 ^= Du0; \
+ Bsi1 = ROL32(A##ku0, 19); \
+ A##ma0 ^= Da0; \
+ Bso1 = ROL32(A##ma0, 20); \
+ A##se1 ^= De1; \
+ Bsu1 = ROL32(A##se1, 1); \
+ E##sa1 = Bsa1 ^((~Bse1)& Bsi1 ); \
+ Ca1 ^= E##sa1; \
+ E##se1 = (~Bse1)^( Bsi1 | Bso1 ); \
+ Ce1 ^= E##se1; \
+ E##si1 = Bsi1 ^( Bso1 & Bsu1 ); \
+ Ci1 ^= E##si1; \
+ E##so1 = Bso1 ^( Bsu1 | Bsa1 ); \
+ Co1 ^= E##so1; \
+ E##su1 = Bsu1 ^( Bsa1 & Bse1 ); \
+ Cu1 ^= E##su1; \
+\
+
+/* --- Code for round (lane complementing pattern 'bebigokimisa') */
+/* --- using factor 2 interleaving, 64-bit lanes mapped to 32-bit words */
+#define thetaRhoPiChiIota(i, A, E) \
+ Da0 = Cu0^ROL32(Ce1, 1); \
+ Da1 = Cu1^Ce0; \
+ De0 = Ca0^ROL32(Ci1, 1); \
+ De1 = Ca1^Ci0; \
+ Di0 = Ce0^ROL32(Co1, 1); \
+ Di1 = Ce1^Co0; \
+ Do0 = Ci0^ROL32(Cu1, 1); \
+ Do1 = Ci1^Cu0; \
+ Du0 = Co0^ROL32(Ca1, 1); \
+ Du1 = Co1^Ca0; \
+\
+ A##ba0 ^= Da0; \
+ Bba0 = A##ba0; \
+ A##ge0 ^= De0; \
+ Bbe0 = ROL32(A##ge0, 22); \
+ A##ki1 ^= Di1; \
+ Bbi0 = ROL32(A##ki1, 22); \
+ A##mo1 ^= Do1; \
+ Bbo0 = ROL32(A##mo1, 11); \
+ A##su0 ^= Du0; \
+ Bbu0 = ROL32(A##su0, 7); \
+ E##ba0 = Bba0 ^( Bbe0 | Bbi0 ); \
+ E##ba0 ^= KeccakF1600RoundConstants_int2_0[i]; \
+ E##be0 = Bbe0 ^((~Bbi0)| Bbo0 ); \
+ E##bi0 = Bbi0 ^( Bbo0 & Bbu0 ); \
+ E##bo0 = Bbo0 ^( Bbu0 | Bba0 ); \
+ E##bu0 = Bbu0 ^( Bba0 & Bbe0 ); \
+\
+ A##ba1 ^= Da1; \
+ Bba1 = A##ba1; \
+ A##ge1 ^= De1; \
+ Bbe1 = ROL32(A##ge1, 22); \
+ A##ki0 ^= Di0; \
+ Bbi1 = ROL32(A##ki0, 21); \
+ A##mo0 ^= Do0; \
+ Bbo1 = ROL32(A##mo0, 10); \
+ A##su1 ^= Du1; \
+ Bbu1 = ROL32(A##su1, 7); \
+ E##ba1 = Bba1 ^( Bbe1 | Bbi1 ); \
+ E##ba1 ^= KeccakF1600RoundConstants_int2_1[i]; \
+ E##be1 = Bbe1 ^((~Bbi1)| Bbo1 ); \
+ E##bi1 = Bbi1 ^( Bbo1 & Bbu1 ); \
+ E##bo1 = Bbo1 ^( Bbu1 | Bba1 ); \
+ E##bu1 = Bbu1 ^( Bba1 & Bbe1 ); \
+\
+ A##bo0 ^= Do0; \
+ Bga0 = ROL32(A##bo0, 14); \
+ A##gu0 ^= Du0; \
+ Bge0 = ROL32(A##gu0, 10); \
+ A##ka1 ^= Da1; \
+ Bgi0 = ROL32(A##ka1, 2); \
+ A##me1 ^= De1; \
+ Bgo0 = ROL32(A##me1, 23); \
+ A##si1 ^= Di1; \
+ Bgu0 = ROL32(A##si1, 31); \
+ E##ga0 = Bga0 ^( Bge0 | Bgi0 ); \
+ E##ge0 = Bge0 ^( Bgi0 & Bgo0 ); \
+ E##gi0 = Bgi0 ^( Bgo0 |(~Bgu0)); \
+ E##go0 = Bgo0 ^( Bgu0 | Bga0 ); \
+ E##gu0 = Bgu0 ^( Bga0 & Bge0 ); \
+\
+ A##bo1 ^= Do1; \
+ Bga1 = ROL32(A##bo1, 14); \
+ A##gu1 ^= Du1; \
+ Bge1 = ROL32(A##gu1, 10); \
+ A##ka0 ^= Da0; \
+ Bgi1 = ROL32(A##ka0, 1); \
+ A##me0 ^= De0; \
+ Bgo1 = ROL32(A##me0, 22); \
+ A##si0 ^= Di0; \
+ Bgu1 = ROL32(A##si0, 30); \
+ E##ga1 = Bga1 ^( Bge1 | Bgi1 ); \
+ E##ge1 = Bge1 ^( Bgi1 & Bgo1 ); \
+ E##gi1 = Bgi1 ^( Bgo1 |(~Bgu1)); \
+ E##go1 = Bgo1 ^( Bgu1 | Bga1 ); \
+ E##gu1 = Bgu1 ^( Bga1 & Bge1 ); \
+\
+ A##be1 ^= De1; \
+ Bka0 = ROL32(A##be1, 1); \
+ A##gi0 ^= Di0; \
+ Bke0 = ROL32(A##gi0, 3); \
+ A##ko1 ^= Do1; \
+ Bki0 = ROL32(A##ko1, 13); \
+ A##mu0 ^= Du0; \
+ Bko0 = ROL32(A##mu0, 4); \
+ A##sa0 ^= Da0; \
+ Bku0 = ROL32(A##sa0, 9); \
+ E##ka0 = Bka0 ^( Bke0 | Bki0 ); \
+ E##ke0 = Bke0 ^( Bki0 & Bko0 ); \
+ E##ki0 = Bki0 ^((~Bko0)& Bku0 ); \
+ E##ko0 = (~Bko0)^( Bku0 | Bka0 ); \
+ E##ku0 = Bku0 ^( Bka0 & Bke0 ); \
+\
+ A##be0 ^= De0; \
+ Bka1 = A##be0; \
+ A##gi1 ^= Di1; \
+ Bke1 = ROL32(A##gi1, 3); \
+ A##ko0 ^= Do0; \
+ Bki1 = ROL32(A##ko0, 12); \
+ A##mu1 ^= Du1; \
+ Bko1 = ROL32(A##mu1, 4); \
+ A##sa1 ^= Da1; \
+ Bku1 = ROL32(A##sa1, 9); \
+ E##ka1 = Bka1 ^( Bke1 | Bki1 ); \
+ E##ke1 = Bke1 ^( Bki1 & Bko1 ); \
+ E##ki1 = Bki1 ^((~Bko1)& Bku1 ); \
+ E##ko1 = (~Bko1)^( Bku1 | Bka1 ); \
+ E##ku1 = Bku1 ^( Bka1 & Bke1 ); \
+\
+ A##bu1 ^= Du1; \
+ Bma0 = ROL32(A##bu1, 14); \
+ A##ga0 ^= Da0; \
+ Bme0 = ROL32(A##ga0, 18); \
+ A##ke0 ^= De0; \
+ Bmi0 = ROL32(A##ke0, 5); \
+ A##mi1 ^= Di1; \
+ Bmo0 = ROL32(A##mi1, 8); \
+ A##so0 ^= Do0; \
+ Bmu0 = ROL32(A##so0, 28); \
+ E##ma0 = Bma0 ^( Bme0 & Bmi0 ); \
+ E##me0 = Bme0 ^( Bmi0 | Bmo0 ); \
+ E##mi0 = Bmi0 ^((~Bmo0)| Bmu0 ); \
+ E##mo0 = (~Bmo0)^( Bmu0 & Bma0 ); \
+ E##mu0 = Bmu0 ^( Bma0 | Bme0 ); \
+\
+ A##bu0 ^= Du0; \
+ Bma1 = ROL32(A##bu0, 13); \
+ A##ga1 ^= Da1; \
+ Bme1 = ROL32(A##ga1, 18); \
+ A##ke1 ^= De1; \
+ Bmi1 = ROL32(A##ke1, 5); \
+ A##mi0 ^= Di0; \
+ Bmo1 = ROL32(A##mi0, 7); \
+ A##so1 ^= Do1; \
+ Bmu1 = ROL32(A##so1, 28); \
+ E##ma1 = Bma1 ^( Bme1 & Bmi1 ); \
+ E##me1 = Bme1 ^( Bmi1 | Bmo1 ); \
+ E##mi1 = Bmi1 ^((~Bmo1)| Bmu1 ); \
+ E##mo1 = (~Bmo1)^( Bmu1 & Bma1 ); \
+ E##mu1 = Bmu1 ^( Bma1 | Bme1 ); \
+\
+ A##bi0 ^= Di0; \
+ Bsa0 = ROL32(A##bi0, 31); \
+ A##go1 ^= Do1; \
+ Bse0 = ROL32(A##go1, 28); \
+ A##ku1 ^= Du1; \
+ Bsi0 = ROL32(A##ku1, 20); \
+ A##ma1 ^= Da1; \
+ Bso0 = ROL32(A##ma1, 21); \
+ A##se0 ^= De0; \
+ Bsu0 = ROL32(A##se0, 1); \
+ E##sa0 = Bsa0 ^((~Bse0)& Bsi0 ); \
+ E##se0 = (~Bse0)^( Bsi0 | Bso0 ); \
+ E##si0 = Bsi0 ^( Bso0 & Bsu0 ); \
+ E##so0 = Bso0 ^( Bsu0 | Bsa0 ); \
+ E##su0 = Bsu0 ^( Bsa0 & Bse0 ); \
+\
+ A##bi1 ^= Di1; \
+ Bsa1 = ROL32(A##bi1, 31); \
+ A##go0 ^= Do0; \
+ Bse1 = ROL32(A##go0, 27); \
+ A##ku0 ^= Du0; \
+ Bsi1 = ROL32(A##ku0, 19); \
+ A##ma0 ^= Da0; \
+ Bso1 = ROL32(A##ma0, 20); \
+ A##se1 ^= De1; \
+ Bsu1 = ROL32(A##se1, 1); \
+ E##sa1 = Bsa1 ^((~Bse1)& Bsi1 ); \
+ E##se1 = (~Bse1)^( Bsi1 | Bso1 ); \
+ E##si1 = Bsi1 ^( Bso1 & Bsu1 ); \
+ E##so1 = Bso1 ^( Bsu1 | Bsa1 ); \
+ E##su1 = Bsu1 ^( Bsa1 & Bse1 ); \
+\
+
+#else /* UseBebigokimisa */
+/* --- Code for round, with prepare-theta */
+/* --- using factor 2 interleaving, 64-bit lanes mapped to 32-bit words */
+#define thetaRhoPiChiIotaPrepareTheta(i, A, E) \
+ Da0 = Cu0^ROL32(Ce1, 1); \
+ Da1 = Cu1^Ce0; \
+ De0 = Ca0^ROL32(Ci1, 1); \
+ De1 = Ca1^Ci0; \
+ Di0 = Ce0^ROL32(Co1, 1); \
+ Di1 = Ce1^Co0; \
+ Do0 = Ci0^ROL32(Cu1, 1); \
+ Do1 = Ci1^Cu0; \
+ Du0 = Co0^ROL32(Ca1, 1); \
+ Du1 = Co1^Ca0; \
+\
+ A##ba0 ^= Da0; \
+ Bba0 = A##ba0; \
+ A##ge0 ^= De0; \
+ Bbe0 = ROL32(A##ge0, 22); \
+ A##ki1 ^= Di1; \
+ Bbi0 = ROL32(A##ki1, 22); \
+ A##mo1 ^= Do1; \
+ Bbo0 = ROL32(A##mo1, 11); \
+ A##su0 ^= Du0; \
+ Bbu0 = ROL32(A##su0, 7); \
+ E##ba0 = Bba0 ^((~Bbe0)& Bbi0 ); \
+ E##ba0 ^= KeccakF1600RoundConstants_int2_0[i]; \
+ Ca0 = E##ba0; \
+ E##be0 = Bbe0 ^((~Bbi0)& Bbo0 ); \
+ Ce0 = E##be0; \
+ E##bi0 = Bbi0 ^((~Bbo0)& Bbu0 ); \
+ Ci0 = E##bi0; \
+ E##bo0 = Bbo0 ^((~Bbu0)& Bba0 ); \
+ Co0 = E##bo0; \
+ E##bu0 = Bbu0 ^((~Bba0)& Bbe0 ); \
+ Cu0 = E##bu0; \
+\
+ A##ba1 ^= Da1; \
+ Bba1 = A##ba1; \
+ A##ge1 ^= De1; \
+ Bbe1 = ROL32(A##ge1, 22); \
+ A##ki0 ^= Di0; \
+ Bbi1 = ROL32(A##ki0, 21); \
+ A##mo0 ^= Do0; \
+ Bbo1 = ROL32(A##mo0, 10); \
+ A##su1 ^= Du1; \
+ Bbu1 = ROL32(A##su1, 7); \
+ E##ba1 = Bba1 ^((~Bbe1)& Bbi1 ); \
+ E##ba1 ^= KeccakF1600RoundConstants_int2_1[i]; \
+ Ca1 = E##ba1; \
+ E##be1 = Bbe1 ^((~Bbi1)& Bbo1 ); \
+ Ce1 = E##be1; \
+ E##bi1 = Bbi1 ^((~Bbo1)& Bbu1 ); \
+ Ci1 = E##bi1; \
+ E##bo1 = Bbo1 ^((~Bbu1)& Bba1 ); \
+ Co1 = E##bo1; \
+ E##bu1 = Bbu1 ^((~Bba1)& Bbe1 ); \
+ Cu1 = E##bu1; \
+\
+ A##bo0 ^= Do0; \
+ Bga0 = ROL32(A##bo0, 14); \
+ A##gu0 ^= Du0; \
+ Bge0 = ROL32(A##gu0, 10); \
+ A##ka1 ^= Da1; \
+ Bgi0 = ROL32(A##ka1, 2); \
+ A##me1 ^= De1; \
+ Bgo0 = ROL32(A##me1, 23); \
+ A##si1 ^= Di1; \
+ Bgu0 = ROL32(A##si1, 31); \
+ E##ga0 = Bga0 ^((~Bge0)& Bgi0 ); \
+ Ca0 ^= E##ga0; \
+ E##ge0 = Bge0 ^((~Bgi0)& Bgo0 ); \
+ Ce0 ^= E##ge0; \
+ E##gi0 = Bgi0 ^((~Bgo0)& Bgu0 ); \
+ Ci0 ^= E##gi0; \
+ E##go0 = Bgo0 ^((~Bgu0)& Bga0 ); \
+ Co0 ^= E##go0; \
+ E##gu0 = Bgu0 ^((~Bga0)& Bge0 ); \
+ Cu0 ^= E##gu0; \
+\
+ A##bo1 ^= Do1; \
+ Bga1 = ROL32(A##bo1, 14); \
+ A##gu1 ^= Du1; \
+ Bge1 = ROL32(A##gu1, 10); \
+ A##ka0 ^= Da0; \
+ Bgi1 = ROL32(A##ka0, 1); \
+ A##me0 ^= De0; \
+ Bgo1 = ROL32(A##me0, 22); \
+ A##si0 ^= Di0; \
+ Bgu1 = ROL32(A##si0, 30); \
+ E##ga1 = Bga1 ^((~Bge1)& Bgi1 ); \
+ Ca1 ^= E##ga1; \
+ E##ge1 = Bge1 ^((~Bgi1)& Bgo1 ); \
+ Ce1 ^= E##ge1; \
+ E##gi1 = Bgi1 ^((~Bgo1)& Bgu1 ); \
+ Ci1 ^= E##gi1; \
+ E##go1 = Bgo1 ^((~Bgu1)& Bga1 ); \
+ Co1 ^= E##go1; \
+ E##gu1 = Bgu1 ^((~Bga1)& Bge1 ); \
+ Cu1 ^= E##gu1; \
+\
+ A##be1 ^= De1; \
+ Bka0 = ROL32(A##be1, 1); \
+ A##gi0 ^= Di0; \
+ Bke0 = ROL32(A##gi0, 3); \
+ A##ko1 ^= Do1; \
+ Bki0 = ROL32(A##ko1, 13); \
+ A##mu0 ^= Du0; \
+ Bko0 = ROL32(A##mu0, 4); \
+ A##sa0 ^= Da0; \
+ Bku0 = ROL32(A##sa0, 9); \
+ E##ka0 = Bka0 ^((~Bke0)& Bki0 ); \
+ Ca0 ^= E##ka0; \
+ E##ke0 = Bke0 ^((~Bki0)& Bko0 ); \
+ Ce0 ^= E##ke0; \
+ E##ki0 = Bki0 ^((~Bko0)& Bku0 ); \
+ Ci0 ^= E##ki0; \
+ E##ko0 = Bko0 ^((~Bku0)& Bka0 ); \
+ Co0 ^= E##ko0; \
+ E##ku0 = Bku0 ^((~Bka0)& Bke0 ); \
+ Cu0 ^= E##ku0; \
+\
+ A##be0 ^= De0; \
+ Bka1 = A##be0; \
+ A##gi1 ^= Di1; \
+ Bke1 = ROL32(A##gi1, 3); \
+ A##ko0 ^= Do0; \
+ Bki1 = ROL32(A##ko0, 12); \
+ A##mu1 ^= Du1; \
+ Bko1 = ROL32(A##mu1, 4); \
+ A##sa1 ^= Da1; \
+ Bku1 = ROL32(A##sa1, 9); \
+ E##ka1 = Bka1 ^((~Bke1)& Bki1 ); \
+ Ca1 ^= E##ka1; \
+ E##ke1 = Bke1 ^((~Bki1)& Bko1 ); \
+ Ce1 ^= E##ke1; \
+ E##ki1 = Bki1 ^((~Bko1)& Bku1 ); \
+ Ci1 ^= E##ki1; \
+ E##ko1 = Bko1 ^((~Bku1)& Bka1 ); \
+ Co1 ^= E##ko1; \
+ E##ku1 = Bku1 ^((~Bka1)& Bke1 ); \
+ Cu1 ^= E##ku1; \
+\
+ A##bu1 ^= Du1; \
+ Bma0 = ROL32(A##bu1, 14); \
+ A##ga0 ^= Da0; \
+ Bme0 = ROL32(A##ga0, 18); \
+ A##ke0 ^= De0; \
+ Bmi0 = ROL32(A##ke0, 5); \
+ A##mi1 ^= Di1; \
+ Bmo0 = ROL32(A##mi1, 8); \
+ A##so0 ^= Do0; \
+ Bmu0 = ROL32(A##so0, 28); \
+ E##ma0 = Bma0 ^((~Bme0)& Bmi0 ); \
+ Ca0 ^= E##ma0; \
+ E##me0 = Bme0 ^((~Bmi0)& Bmo0 ); \
+ Ce0 ^= E##me0; \
+ E##mi0 = Bmi0 ^((~Bmo0)& Bmu0 ); \
+ Ci0 ^= E##mi0; \
+ E##mo0 = Bmo0 ^((~Bmu0)& Bma0 ); \
+ Co0 ^= E##mo0; \
+ E##mu0 = Bmu0 ^((~Bma0)& Bme0 ); \
+ Cu0 ^= E##mu0; \
+\
+ A##bu0 ^= Du0; \
+ Bma1 = ROL32(A##bu0, 13); \
+ A##ga1 ^= Da1; \
+ Bme1 = ROL32(A##ga1, 18); \
+ A##ke1 ^= De1; \
+ Bmi1 = ROL32(A##ke1, 5); \
+ A##mi0 ^= Di0; \
+ Bmo1 = ROL32(A##mi0, 7); \
+ A##so1 ^= Do1; \
+ Bmu1 = ROL32(A##so1, 28); \
+ E##ma1 = Bma1 ^((~Bme1)& Bmi1 ); \
+ Ca1 ^= E##ma1; \
+ E##me1 = Bme1 ^((~Bmi1)& Bmo1 ); \
+ Ce1 ^= E##me1; \
+ E##mi1 = Bmi1 ^((~Bmo1)& Bmu1 ); \
+ Ci1 ^= E##mi1; \
+ E##mo1 = Bmo1 ^((~Bmu1)& Bma1 ); \
+ Co1 ^= E##mo1; \
+ E##mu1 = Bmu1 ^((~Bma1)& Bme1 ); \
+ Cu1 ^= E##mu1; \
+\
+ A##bi0 ^= Di0; \
+ Bsa0 = ROL32(A##bi0, 31); \
+ A##go1 ^= Do1; \
+ Bse0 = ROL32(A##go1, 28); \
+ A##ku1 ^= Du1; \
+ Bsi0 = ROL32(A##ku1, 20); \
+ A##ma1 ^= Da1; \
+ Bso0 = ROL32(A##ma1, 21); \
+ A##se0 ^= De0; \
+ Bsu0 = ROL32(A##se0, 1); \
+ E##sa0 = Bsa0 ^((~Bse0)& Bsi0 ); \
+ Ca0 ^= E##sa0; \
+ E##se0 = Bse0 ^((~Bsi0)& Bso0 ); \
+ Ce0 ^= E##se0; \
+ E##si0 = Bsi0 ^((~Bso0)& Bsu0 ); \
+ Ci0 ^= E##si0; \
+ E##so0 = Bso0 ^((~Bsu0)& Bsa0 ); \
+ Co0 ^= E##so0; \
+ E##su0 = Bsu0 ^((~Bsa0)& Bse0 ); \
+ Cu0 ^= E##su0; \
+\
+ A##bi1 ^= Di1; \
+ Bsa1 = ROL32(A##bi1, 31); \
+ A##go0 ^= Do0; \
+ Bse1 = ROL32(A##go0, 27); \
+ A##ku0 ^= Du0; \
+ Bsi1 = ROL32(A##ku0, 19); \
+ A##ma0 ^= Da0; \
+ Bso1 = ROL32(A##ma0, 20); \
+ A##se1 ^= De1; \
+ Bsu1 = ROL32(A##se1, 1); \
+ E##sa1 = Bsa1 ^((~Bse1)& Bsi1 ); \
+ Ca1 ^= E##sa1; \
+ E##se1 = Bse1 ^((~Bsi1)& Bso1 ); \
+ Ce1 ^= E##se1; \
+ E##si1 = Bsi1 ^((~Bso1)& Bsu1 ); \
+ Ci1 ^= E##si1; \
+ E##so1 = Bso1 ^((~Bsu1)& Bsa1 ); \
+ Co1 ^= E##so1; \
+ E##su1 = Bsu1 ^((~Bsa1)& Bse1 ); \
+ Cu1 ^= E##su1; \
+\
+
+/* --- Code for round */
+/* --- using factor 2 interleaving, 64-bit lanes mapped to 32-bit words */
+#define thetaRhoPiChiIota(i, A, E) \
+ Da0 = Cu0^ROL32(Ce1, 1); \
+ Da1 = Cu1^Ce0; \
+ De0 = Ca0^ROL32(Ci1, 1); \
+ De1 = Ca1^Ci0; \
+ Di0 = Ce0^ROL32(Co1, 1); \
+ Di1 = Ce1^Co0; \
+ Do0 = Ci0^ROL32(Cu1, 1); \
+ Do1 = Ci1^Cu0; \
+ Du0 = Co0^ROL32(Ca1, 1); \
+ Du1 = Co1^Ca0; \
+\
+ A##ba0 ^= Da0; \
+ Bba0 = A##ba0; \
+ A##ge0 ^= De0; \
+ Bbe0 = ROL32(A##ge0, 22); \
+ A##ki1 ^= Di1; \
+ Bbi0 = ROL32(A##ki1, 22); \
+ A##mo1 ^= Do1; \
+ Bbo0 = ROL32(A##mo1, 11); \
+ A##su0 ^= Du0; \
+ Bbu0 = ROL32(A##su0, 7); \
+ E##ba0 = Bba0 ^((~Bbe0)& Bbi0 ); \
+ E##ba0 ^= KeccakF1600RoundConstants_int2_0[i]; \
+ E##be0 = Bbe0 ^((~Bbi0)& Bbo0 ); \
+ E##bi0 = Bbi0 ^((~Bbo0)& Bbu0 ); \
+ E##bo0 = Bbo0 ^((~Bbu0)& Bba0 ); \
+ E##bu0 = Bbu0 ^((~Bba0)& Bbe0 ); \
+\
+ A##ba1 ^= Da1; \
+ Bba1 = A##ba1; \
+ A##ge1 ^= De1; \
+ Bbe1 = ROL32(A##ge1, 22); \
+ A##ki0 ^= Di0; \
+ Bbi1 = ROL32(A##ki0, 21); \
+ A##mo0 ^= Do0; \
+ Bbo1 = ROL32(A##mo0, 10); \
+ A##su1 ^= Du1; \
+ Bbu1 = ROL32(A##su1, 7); \
+ E##ba1 = Bba1 ^((~Bbe1)& Bbi1 ); \
+ E##ba1 ^= KeccakF1600RoundConstants_int2_1[i]; \
+ E##be1 = Bbe1 ^((~Bbi1)& Bbo1 ); \
+ E##bi1 = Bbi1 ^((~Bbo1)& Bbu1 ); \
+ E##bo1 = Bbo1 ^((~Bbu1)& Bba1 ); \
+ E##bu1 = Bbu1 ^((~Bba1)& Bbe1 ); \
+\
+ A##bo0 ^= Do0; \
+ Bga0 = ROL32(A##bo0, 14); \
+ A##gu0 ^= Du0; \
+ Bge0 = ROL32(A##gu0, 10); \
+ A##ka1 ^= Da1; \
+ Bgi0 = ROL32(A##ka1, 2); \
+ A##me1 ^= De1; \
+ Bgo0 = ROL32(A##me1, 23); \
+ A##si1 ^= Di1; \
+ Bgu0 = ROL32(A##si1, 31); \
+ E##ga0 = Bga0 ^((~Bge0)& Bgi0 ); \
+ E##ge0 = Bge0 ^((~Bgi0)& Bgo0 ); \
+ E##gi0 = Bgi0 ^((~Bgo0)& Bgu0 ); \
+ E##go0 = Bgo0 ^((~Bgu0)& Bga0 ); \
+ E##gu0 = Bgu0 ^((~Bga0)& Bge0 ); \
+\
+ A##bo1 ^= Do1; \
+ Bga1 = ROL32(A##bo1, 14); \
+ A##gu1 ^= Du1; \
+ Bge1 = ROL32(A##gu1, 10); \
+ A##ka0 ^= Da0; \
+ Bgi1 = ROL32(A##ka0, 1); \
+ A##me0 ^= De0; \
+ Bgo1 = ROL32(A##me0, 22); \
+ A##si0 ^= Di0; \
+ Bgu1 = ROL32(A##si0, 30); \
+ E##ga1 = Bga1 ^((~Bge1)& Bgi1 ); \
+ E##ge1 = Bge1 ^((~Bgi1)& Bgo1 ); \
+ E##gi1 = Bgi1 ^((~Bgo1)& Bgu1 ); \
+ E##go1 = Bgo1 ^((~Bgu1)& Bga1 ); \
+ E##gu1 = Bgu1 ^((~Bga1)& Bge1 ); \
+\
+ A##be1 ^= De1; \
+ Bka0 = ROL32(A##be1, 1); \
+ A##gi0 ^= Di0; \
+ Bke0 = ROL32(A##gi0, 3); \
+ A##ko1 ^= Do1; \
+ Bki0 = ROL32(A##ko1, 13); \
+ A##mu0 ^= Du0; \
+ Bko0 = ROL32(A##mu0, 4); \
+ A##sa0 ^= Da0; \
+ Bku0 = ROL32(A##sa0, 9); \
+ E##ka0 = Bka0 ^((~Bke0)& Bki0 ); \
+ E##ke0 = Bke0 ^((~Bki0)& Bko0 ); \
+ E##ki0 = Bki0 ^((~Bko0)& Bku0 ); \
+ E##ko0 = Bko0 ^((~Bku0)& Bka0 ); \
+ E##ku0 = Bku0 ^((~Bka0)& Bke0 ); \
+\
+ A##be0 ^= De0; \
+ Bka1 = A##be0; \
+ A##gi1 ^= Di1; \
+ Bke1 = ROL32(A##gi1, 3); \
+ A##ko0 ^= Do0; \
+ Bki1 = ROL32(A##ko0, 12); \
+ A##mu1 ^= Du1; \
+ Bko1 = ROL32(A##mu1, 4); \
+ A##sa1 ^= Da1; \
+ Bku1 = ROL32(A##sa1, 9); \
+ E##ka1 = Bka1 ^((~Bke1)& Bki1 ); \
+ E##ke1 = Bke1 ^((~Bki1)& Bko1 ); \
+ E##ki1 = Bki1 ^((~Bko1)& Bku1 ); \
+ E##ko1 = Bko1 ^((~Bku1)& Bka1 ); \
+ E##ku1 = Bku1 ^((~Bka1)& Bke1 ); \
+\
+ A##bu1 ^= Du1; \
+ Bma0 = ROL32(A##bu1, 14); \
+ A##ga0 ^= Da0; \
+ Bme0 = ROL32(A##ga0, 18); \
+ A##ke0 ^= De0; \
+ Bmi0 = ROL32(A##ke0, 5); \
+ A##mi1 ^= Di1; \
+ Bmo0 = ROL32(A##mi1, 8); \
+ A##so0 ^= Do0; \
+ Bmu0 = ROL32(A##so0, 28); \
+ E##ma0 = Bma0 ^((~Bme0)& Bmi0 ); \
+ E##me0 = Bme0 ^((~Bmi0)& Bmo0 ); \
+ E##mi0 = Bmi0 ^((~Bmo0)& Bmu0 ); \
+ E##mo0 = Bmo0 ^((~Bmu0)& Bma0 ); \
+ E##mu0 = Bmu0 ^((~Bma0)& Bme0 ); \
+\
+ A##bu0 ^= Du0; \
+ Bma1 = ROL32(A##bu0, 13); \
+ A##ga1 ^= Da1; \
+ Bme1 = ROL32(A##ga1, 18); \
+ A##ke1 ^= De1; \
+ Bmi1 = ROL32(A##ke1, 5); \
+ A##mi0 ^= Di0; \
+ Bmo1 = ROL32(A##mi0, 7); \
+ A##so1 ^= Do1; \
+ Bmu1 = ROL32(A##so1, 28); \
+ E##ma1 = Bma1 ^((~Bme1)& Bmi1 ); \
+ E##me1 = Bme1 ^((~Bmi1)& Bmo1 ); \
+ E##mi1 = Bmi1 ^((~Bmo1)& Bmu1 ); \
+ E##mo1 = Bmo1 ^((~Bmu1)& Bma1 ); \
+ E##mu1 = Bmu1 ^((~Bma1)& Bme1 ); \
+\
+ A##bi0 ^= Di0; \
+ Bsa0 = ROL32(A##bi0, 31); \
+ A##go1 ^= Do1; \
+ Bse0 = ROL32(A##go1, 28); \
+ A##ku1 ^= Du1; \
+ Bsi0 = ROL32(A##ku1, 20); \
+ A##ma1 ^= Da1; \
+ Bso0 = ROL32(A##ma1, 21); \
+ A##se0 ^= De0; \
+ Bsu0 = ROL32(A##se0, 1); \
+ E##sa0 = Bsa0 ^((~Bse0)& Bsi0 ); \
+ E##se0 = Bse0 ^((~Bsi0)& Bso0 ); \
+ E##si0 = Bsi0 ^((~Bso0)& Bsu0 ); \
+ E##so0 = Bso0 ^((~Bsu0)& Bsa0 ); \
+ E##su0 = Bsu0 ^((~Bsa0)& Bse0 ); \
+\
+ A##bi1 ^= Di1; \
+ Bsa1 = ROL32(A##bi1, 31); \
+ A##go0 ^= Do0; \
+ Bse1 = ROL32(A##go0, 27); \
+ A##ku0 ^= Du0; \
+ Bsi1 = ROL32(A##ku0, 19); \
+ A##ma0 ^= Da0; \
+ Bso1 = ROL32(A##ma0, 20); \
+ A##se1 ^= De1; \
+ Bsu1 = ROL32(A##se1, 1); \
+ E##sa1 = Bsa1 ^((~Bse1)& Bsi1 ); \
+ E##se1 = Bse1 ^((~Bsi1)& Bso1 ); \
+ E##si1 = Bsi1 ^((~Bso1)& Bsu1 ); \
+ E##so1 = Bso1 ^((~Bsu1)& Bsa1 ); \
+ E##su1 = Bsu1 ^((~Bsa1)& Bse1 ); \
+\
+
+#endif /* UseBebigokimisa */
+
+const UINT32 KeccakF1600RoundConstants_int2_0[24] = {
+ 0x00000001UL,
+ 0x00000000UL,
+ 0x00000000UL,
+ 0x00000000UL,
+ 0x00000001UL,
+ 0x00000001UL,
+ 0x00000001UL,
+ 0x00000001UL,
+ 0x00000000UL,
+ 0x00000000UL,
+ 0x00000001UL,
+ 0x00000000UL,
+ 0x00000001UL,
+ 0x00000001UL,
+ 0x00000001UL,
+ 0x00000001UL,
+ 0x00000000UL,
+ 0x00000000UL,
+ 0x00000000UL,
+ 0x00000000UL,
+ 0x00000001UL,
+ 0x00000000UL,
+ 0x00000001UL,
+ 0x00000000UL };
+
+const UINT32 KeccakF1600RoundConstants_int2_1[24] = {
+ 0x00000000UL,
+ 0x00000089UL,
+ 0x8000008bUL,
+ 0x80008080UL,
+ 0x0000008bUL,
+ 0x00008000UL,
+ 0x80008088UL,
+ 0x80000082UL,
+ 0x0000000bUL,
+ 0x0000000aUL,
+ 0x00008082UL,
+ 0x00008003UL,
+ 0x0000808bUL,
+ 0x8000000bUL,
+ 0x8000008aUL,
+ 0x80000081UL,
+ 0x80000081UL,
+ 0x80000008UL,
+ 0x00000083UL,
+ 0x80008003UL,
+ 0x80008088UL,
+ 0x80000088UL,
+ 0x00008000UL,
+ 0x80008082UL };
+
+#define copyFromStateAndXor1024bits(X, state, input) \
+ X##ba0 = state[ 0]^input[ 0]; \
+ X##ba1 = state[ 1]^input[ 1]; \
+ X##be0 = state[ 2]^input[ 2]; \
+ X##be1 = state[ 3]^input[ 3]; \
+ X##bi0 = state[ 4]^input[ 4]; \
+ X##bi1 = state[ 5]^input[ 5]; \
+ X##bo0 = state[ 6]^input[ 6]; \
+ X##bo1 = state[ 7]^input[ 7]; \
+ X##bu0 = state[ 8]^input[ 8]; \
+ X##bu1 = state[ 9]^input[ 9]; \
+ X##ga0 = state[10]^input[10]; \
+ X##ga1 = state[11]^input[11]; \
+ X##ge0 = state[12]^input[12]; \
+ X##ge1 = state[13]^input[13]; \
+ X##gi0 = state[14]^input[14]; \
+ X##gi1 = state[15]^input[15]; \
+ X##go0 = state[16]^input[16]; \
+ X##go1 = state[17]^input[17]; \
+ X##gu0 = state[18]^input[18]; \
+ X##gu1 = state[19]^input[19]; \
+ X##ka0 = state[20]^input[20]; \
+ X##ka1 = state[21]^input[21]; \
+ X##ke0 = state[22]^input[22]; \
+ X##ke1 = state[23]^input[23]; \
+ X##ki0 = state[24]^input[24]; \
+ X##ki1 = state[25]^input[25]; \
+ X##ko0 = state[26]^input[26]; \
+ X##ko1 = state[27]^input[27]; \
+ X##ku0 = state[28]^input[28]; \
+ X##ku1 = state[29]^input[29]; \
+ X##ma0 = state[30]^input[30]; \
+ X##ma1 = state[31]^input[31]; \
+ X##me0 = state[32]; \
+ X##me1 = state[33]; \
+ X##mi0 = state[34]; \
+ X##mi1 = state[35]; \
+ X##mo0 = state[36]; \
+ X##mo1 = state[37]; \
+ X##mu0 = state[38]; \
+ X##mu1 = state[39]; \
+ X##sa0 = state[40]; \
+ X##sa1 = state[41]; \
+ X##se0 = state[42]; \
+ X##se1 = state[43]; \
+ X##si0 = state[44]; \
+ X##si1 = state[45]; \
+ X##so0 = state[46]; \
+ X##so1 = state[47]; \
+ X##su0 = state[48]; \
+ X##su1 = state[49]; \
+
+#define copyFromStateAndXor1088bits(X, state, input) \
+ X##ba0 = state[ 0]^input[ 0]; \
+ X##ba1 = state[ 1]^input[ 1]; \
+ X##be0 = state[ 2]^input[ 2]; \
+ X##be1 = state[ 3]^input[ 3]; \
+ X##bi0 = state[ 4]^input[ 4]; \
+ X##bi1 = state[ 5]^input[ 5]; \
+ X##bo0 = state[ 6]^input[ 6]; \
+ X##bo1 = state[ 7]^input[ 7]; \
+ X##bu0 = state[ 8]^input[ 8]; \
+ X##bu1 = state[ 9]^input[ 9]; \
+ X##ga0 = state[10]^input[10]; \
+ X##ga1 = state[11]^input[11]; \
+ X##ge0 = state[12]^input[12]; \
+ X##ge1 = state[13]^input[13]; \
+ X##gi0 = state[14]^input[14]; \
+ X##gi1 = state[15]^input[15]; \
+ X##go0 = state[16]^input[16]; \
+ X##go1 = state[17]^input[17]; \
+ X##gu0 = state[18]^input[18]; \
+ X##gu1 = state[19]^input[19]; \
+ X##ka0 = state[20]^input[20]; \
+ X##ka1 = state[21]^input[21]; \
+ X##ke0 = state[22]^input[22]; \
+ X##ke1 = state[23]^input[23]; \
+ X##ki0 = state[24]^input[24]; \
+ X##ki1 = state[25]^input[25]; \
+ X##ko0 = state[26]^input[26]; \
+ X##ko1 = state[27]^input[27]; \
+ X##ku0 = state[28]^input[28]; \
+ X##ku1 = state[29]^input[29]; \
+ X##ma0 = state[30]^input[30]; \
+ X##ma1 = state[31]^input[31]; \
+ X##me0 = state[32]^input[32]; \
+ X##me1 = state[33]^input[33]; \
+ X##mi0 = state[34]; \
+ X##mi1 = state[35]; \
+ X##mo0 = state[36]; \
+ X##mo1 = state[37]; \
+ X##mu0 = state[38]; \
+ X##mu1 = state[39]; \
+ X##sa0 = state[40]; \
+ X##sa1 = state[41]; \
+ X##se0 = state[42]; \
+ X##se1 = state[43]; \
+ X##si0 = state[44]; \
+ X##si1 = state[45]; \
+ X##so0 = state[46]; \
+ X##so1 = state[47]; \
+ X##su0 = state[48]; \
+ X##su1 = state[49]; \
+
+#define copyFromState(X, state) \
+ X##ba0 = state[ 0]; \
+ X##ba1 = state[ 1]; \
+ X##be0 = state[ 2]; \
+ X##be1 = state[ 3]; \
+ X##bi0 = state[ 4]; \
+ X##bi1 = state[ 5]; \
+ X##bo0 = state[ 6]; \
+ X##bo1 = state[ 7]; \
+ X##bu0 = state[ 8]; \
+ X##bu1 = state[ 9]; \
+ X##ga0 = state[10]; \
+ X##ga1 = state[11]; \
+ X##ge0 = state[12]; \
+ X##ge1 = state[13]; \
+ X##gi0 = state[14]; \
+ X##gi1 = state[15]; \
+ X##go0 = state[16]; \
+ X##go1 = state[17]; \
+ X##gu0 = state[18]; \
+ X##gu1 = state[19]; \
+ X##ka0 = state[20]; \
+ X##ka1 = state[21]; \
+ X##ke0 = state[22]; \
+ X##ke1 = state[23]; \
+ X##ki0 = state[24]; \
+ X##ki1 = state[25]; \
+ X##ko0 = state[26]; \
+ X##ko1 = state[27]; \
+ X##ku0 = state[28]; \
+ X##ku1 = state[29]; \
+ X##ma0 = state[30]; \
+ X##ma1 = state[31]; \
+ X##me0 = state[32]; \
+ X##me1 = state[33]; \
+ X##mi0 = state[34]; \
+ X##mi1 = state[35]; \
+ X##mo0 = state[36]; \
+ X##mo1 = state[37]; \
+ X##mu0 = state[38]; \
+ X##mu1 = state[39]; \
+ X##sa0 = state[40]; \
+ X##sa1 = state[41]; \
+ X##se0 = state[42]; \
+ X##se1 = state[43]; \
+ X##si0 = state[44]; \
+ X##si1 = state[45]; \
+ X##so0 = state[46]; \
+ X##so1 = state[47]; \
+ X##su0 = state[48]; \
+ X##su1 = state[49]; \
+
+#define copyToState(state, X) \
+ state[ 0] = X##ba0; \
+ state[ 1] = X##ba1; \
+ state[ 2] = X##be0; \
+ state[ 3] = X##be1; \
+ state[ 4] = X##bi0; \
+ state[ 5] = X##bi1; \
+ state[ 6] = X##bo0; \
+ state[ 7] = X##bo1; \
+ state[ 8] = X##bu0; \
+ state[ 9] = X##bu1; \
+ state[10] = X##ga0; \
+ state[11] = X##ga1; \
+ state[12] = X##ge0; \
+ state[13] = X##ge1; \
+ state[14] = X##gi0; \
+ state[15] = X##gi1; \
+ state[16] = X##go0; \
+ state[17] = X##go1; \
+ state[18] = X##gu0; \
+ state[19] = X##gu1; \
+ state[20] = X##ka0; \
+ state[21] = X##ka1; \
+ state[22] = X##ke0; \
+ state[23] = X##ke1; \
+ state[24] = X##ki0; \
+ state[25] = X##ki1; \
+ state[26] = X##ko0; \
+ state[27] = X##ko1; \
+ state[28] = X##ku0; \
+ state[29] = X##ku1; \
+ state[30] = X##ma0; \
+ state[31] = X##ma1; \
+ state[32] = X##me0; \
+ state[33] = X##me1; \
+ state[34] = X##mi0; \
+ state[35] = X##mi1; \
+ state[36] = X##mo0; \
+ state[37] = X##mo1; \
+ state[38] = X##mu0; \
+ state[39] = X##mu1; \
+ state[40] = X##sa0; \
+ state[41] = X##sa1; \
+ state[42] = X##se0; \
+ state[43] = X##se1; \
+ state[44] = X##si0; \
+ state[45] = X##si1; \
+ state[46] = X##so0; \
+ state[47] = X##so1; \
+ state[48] = X##su0; \
+ state[49] = X##su1; \
+
+#define copyStateVariables(X, Y) \
+ X##ba0 = Y##ba0; \
+ X##ba1 = Y##ba1; \
+ X##be0 = Y##be0; \
+ X##be1 = Y##be1; \
+ X##bi0 = Y##bi0; \
+ X##bi1 = Y##bi1; \
+ X##bo0 = Y##bo0; \
+ X##bo1 = Y##bo1; \
+ X##bu0 = Y##bu0; \
+ X##bu1 = Y##bu1; \
+ X##ga0 = Y##ga0; \
+ X##ga1 = Y##ga1; \
+ X##ge0 = Y##ge0; \
+ X##ge1 = Y##ge1; \
+ X##gi0 = Y##gi0; \
+ X##gi1 = Y##gi1; \
+ X##go0 = Y##go0; \
+ X##go1 = Y##go1; \
+ X##gu0 = Y##gu0; \
+ X##gu1 = Y##gu1; \
+ X##ka0 = Y##ka0; \
+ X##ka1 = Y##ka1; \
+ X##ke0 = Y##ke0; \
+ X##ke1 = Y##ke1; \
+ X##ki0 = Y##ki0; \
+ X##ki1 = Y##ki1; \
+ X##ko0 = Y##ko0; \
+ X##ko1 = Y##ko1; \
+ X##ku0 = Y##ku0; \
+ X##ku1 = Y##ku1; \
+ X##ma0 = Y##ma0; \
+ X##ma1 = Y##ma1; \
+ X##me0 = Y##me0; \
+ X##me1 = Y##me1; \
+ X##mi0 = Y##mi0; \
+ X##mi1 = Y##mi1; \
+ X##mo0 = Y##mo0; \
+ X##mo1 = Y##mo1; \
+ X##mu0 = Y##mu0; \
+ X##mu1 = Y##mu1; \
+ X##sa0 = Y##sa0; \
+ X##sa1 = Y##sa1; \
+ X##se0 = Y##se0; \
+ X##se1 = Y##se1; \
+ X##si0 = Y##si0; \
+ X##si1 = Y##si1; \
+ X##so0 = Y##so0; \
+ X##so1 = Y##so1; \
+ X##su0 = Y##su0; \
+ X##su1 = Y##su1; \
+
+#endif
\ No newline at end of file
diff --git a/Example/Pods/NACrypto/NACrypto/keccak/KeccakF-1600-32-s2.h b/Example/Pods/NACrypto/NACrypto/keccak/KeccakF-1600-32-s2.h
new file mode 100644
index 0000000..347aaec
--- /dev/null
+++ b/Example/Pods/NACrypto/NACrypto/keccak/KeccakF-1600-32-s2.h
@@ -0,0 +1,1140 @@
+/*
+Code automatically generated by KeccakTools!
+
+The Keccak sponge function, designed by Guido Bertoni, Joan Daemen,
+Michaël Peeters and Gilles Van Assche. For more information, feedback or
+questions, please refer to our website: http://keccak.noekeon.org/
+
+Implementation by the designers,
+hereby denoted as "the implementer".
+
+To the extent possible under law, the implementer has waived all copyright
+and related or neighboring rights to the source code in this file.
+http://creativecommons.org/publicdomain/zero/1.0/
+*/
+
+#ifndef _Keccak1600_32_s2_h_
+#define _Keccak1600_32_s2_h_
+
+#define declareABCDE \
+ UINT32 Aba0, Abe0, Abi0, Abo0, Abu0; \
+ UINT32 Aba1, Abe1, Abi1, Abo1, Abu1; \
+ UINT32 Aga0, Age0, Agi0, Ago0, Agu0; \
+ UINT32 Aga1, Age1, Agi1, Ago1, Agu1; \
+ UINT32 Aka0, Ake0, Aki0, Ako0, Aku0; \
+ UINT32 Aka1, Ake1, Aki1, Ako1, Aku1; \
+ UINT32 Ama0, Ame0, Ami0, Amo0, Amu0; \
+ UINT32 Ama1, Ame1, Ami1, Amo1, Amu1; \
+ UINT32 Asa0, Ase0, Asi0, Aso0, Asu0; \
+ UINT32 Asa1, Ase1, Asi1, Aso1, Asu1; \
+ UINT32 Bba0, Bbe0, Bbi0, Bbo0, Bbu0; \
+ UINT32 Bba1, Bbe1, Bbi1, Bbo1, Bbu1; \
+ UINT32 Bga0, Bge0, Bgi0, Bgo0, Bgu0; \
+ UINT32 Bga1, Bge1, Bgi1, Bgo1, Bgu1; \
+ UINT32 Bka0, Bke0, Bki0, Bko0, Bku0; \
+ UINT32 Bka1, Bke1, Bki1, Bko1, Bku1; \
+ UINT32 Bma0, Bme0, Bmi0, Bmo0, Bmu0; \
+ UINT32 Bma1, Bme1, Bmi1, Bmo1, Bmu1; \
+ UINT32 Bsa0, Bse0, Bsi0, Bso0, Bsu0; \
+ UINT32 Bsa1, Bse1, Bsi1, Bso1, Bsu1; \
+ UINT32 Ca0, Ce0, Ci0, Co0, Cu0; \
+ UINT32 Ca1, Ce1, Ci1, Co1, Cu1; \
+ UINT32 Da0, De0, Di0, Do0, Du0; \
+ UINT32 Da1, De1, Di1, Do1, Du1; \
+ UINT32 Eba0, Ebe0, Ebi0, Ebo0, Ebu0; \
+ UINT32 Eba1, Ebe1, Ebi1, Ebo1, Ebu1; \
+ UINT32 Ega0, Ege0, Egi0, Ego0, Egu0; \
+ UINT32 Ega1, Ege1, Egi1, Ego1, Egu1; \
+ UINT32 Eka0, Eke0, Eki0, Eko0, Eku0; \
+ UINT32 Eka1, Eke1, Eki1, Eko1, Eku1; \
+ UINT32 Ema0, Eme0, Emi0, Emo0, Emu0; \
+ UINT32 Ema1, Eme1, Emi1, Emo1, Emu1; \
+ UINT32 Esa0, Ese0, Esi0, Eso0, Esu0; \
+ UINT32 Esa1, Ese1, Esi1, Eso1, Esu1; \
+
+#define prepareTheta \
+ Ca0 = Aba0^Aga0^Aka0^Ama0^Asa0; \
+ Ca1 = Aba1^Aga1^Aka1^Ama1^Asa1; \
+ Ce0 = Abe0^Age0^Ake0^Ame0^Ase0; \
+ Ce1 = Abe1^Age1^Ake1^Ame1^Ase1; \
+ Ci0 = Abi0^Agi0^Aki0^Ami0^Asi0; \
+ Ci1 = Abi1^Agi1^Aki1^Ami1^Asi1; \
+ Co0 = Abo0^Ago0^Ako0^Amo0^Aso0; \
+ Co1 = Abo1^Ago1^Ako1^Amo1^Aso1; \
+ Cu0 = Abu0^Agu0^Aku0^Amu0^Asu0; \
+ Cu1 = Abu1^Agu1^Aku1^Amu1^Asu1; \
+
+#ifdef UseBebigokimisa
+/* --- Code for round, with prepare-theta (lane complementing pattern 'bebigokimisa') */
+/* --- using factor 2 interleaving, 64-bit lanes mapped to 32-bit words */
+#define thetaRhoPiChiIotaPrepareTheta(i, A, E) \
+ Da0 = Cu0^ROL32(Ce1, 1); \
+ Da1 = Cu1^Ce0; \
+ De0 = Ca0^ROL32(Ci1, 1); \
+ De1 = Ca1^Ci0; \
+ Di0 = Ce0^ROL32(Co1, 1); \
+ Di1 = Ce1^Co0; \
+ Do0 = Ci0^ROL32(Cu1, 1); \
+ Do1 = Ci1^Cu0; \
+ Du0 = Co0^ROL32(Ca1, 1); \
+ Du1 = Co1^Ca0; \
+\
+ A##ba0 ^= Da0; \
+ Bba0 = A##ba0; \
+ A##ge0 ^= De0; \
+ Bbe0 = ROL32(A##ge0, 22); \
+ A##ki1 ^= Di1; \
+ Bbi0 = ROL32(A##ki1, 22); \
+ E##ba0 = Bba0 ^( Bbe0 | Bbi0 ); \
+ E##ba0 ^= KeccakF1600RoundConstants_int2_0[i]; \
+ Ca0 = E##ba0; \
+ A##mo1 ^= Do1; \
+ Bbo0 = ROL32(A##mo1, 11); \
+ E##be0 = Bbe0 ^((~Bbi0)| Bbo0 ); \
+ Ce0 = E##be0; \
+ A##su0 ^= Du0; \
+ Bbu0 = ROL32(A##su0, 7); \
+ E##bi0 = Bbi0 ^( Bbo0 & Bbu0 ); \
+ Ci0 = E##bi0; \
+ E##bo0 = Bbo0 ^( Bbu0 | Bba0 ); \
+ Co0 = E##bo0; \
+ E##bu0 = Bbu0 ^( Bba0 & Bbe0 ); \
+ Cu0 = E##bu0; \
+\
+ A##ba1 ^= Da1; \
+ Bba1 = A##ba1; \
+ A##ge1 ^= De1; \
+ Bbe1 = ROL32(A##ge1, 22); \
+ A##ki0 ^= Di0; \
+ Bbi1 = ROL32(A##ki0, 21); \
+ E##ba1 = Bba1 ^( Bbe1 | Bbi1 ); \
+ E##ba1 ^= KeccakF1600RoundConstants_int2_1[i]; \
+ Ca1 = E##ba1; \
+ A##mo0 ^= Do0; \
+ Bbo1 = ROL32(A##mo0, 10); \
+ E##be1 = Bbe1 ^((~Bbi1)| Bbo1 ); \
+ Ce1 = E##be1; \
+ A##su1 ^= Du1; \
+ Bbu1 = ROL32(A##su1, 7); \
+ E##bi1 = Bbi1 ^( Bbo1 & Bbu1 ); \
+ Ci1 = E##bi1; \
+ E##bo1 = Bbo1 ^( Bbu1 | Bba1 ); \
+ Co1 = E##bo1; \
+ E##bu1 = Bbu1 ^( Bba1 & Bbe1 ); \
+ Cu1 = E##bu1; \
+\
+ A##bo0 ^= Do0; \
+ Bga0 = ROL32(A##bo0, 14); \
+ A##gu0 ^= Du0; \
+ Bge0 = ROL32(A##gu0, 10); \
+ A##ka1 ^= Da1; \
+ Bgi0 = ROL32(A##ka1, 2); \
+ E##ga0 = Bga0 ^( Bge0 | Bgi0 ); \
+ Ca0 ^= E##ga0; \
+ A##me1 ^= De1; \
+ Bgo0 = ROL32(A##me1, 23); \
+ E##ge0 = Bge0 ^( Bgi0 & Bgo0 ); \
+ Ce0 ^= E##ge0; \
+ A##si1 ^= Di1; \
+ Bgu0 = ROL32(A##si1, 31); \
+ E##gi0 = Bgi0 ^( Bgo0 |(~Bgu0)); \
+ Ci0 ^= E##gi0; \
+ E##go0 = Bgo0 ^( Bgu0 | Bga0 ); \
+ Co0 ^= E##go0; \
+ E##gu0 = Bgu0 ^( Bga0 & Bge0 ); \
+ Cu0 ^= E##gu0; \
+\
+ A##bo1 ^= Do1; \
+ Bga1 = ROL32(A##bo1, 14); \
+ A##gu1 ^= Du1; \
+ Bge1 = ROL32(A##gu1, 10); \
+ A##ka0 ^= Da0; \
+ Bgi1 = ROL32(A##ka0, 1); \
+ E##ga1 = Bga1 ^( Bge1 | Bgi1 ); \
+ Ca1 ^= E##ga1; \
+ A##me0 ^= De0; \
+ Bgo1 = ROL32(A##me0, 22); \
+ E##ge1 = Bge1 ^( Bgi1 & Bgo1 ); \
+ Ce1 ^= E##ge1; \
+ A##si0 ^= Di0; \
+ Bgu1 = ROL32(A##si0, 30); \
+ E##gi1 = Bgi1 ^( Bgo1 |(~Bgu1)); \
+ Ci1 ^= E##gi1; \
+ E##go1 = Bgo1 ^( Bgu1 | Bga1 ); \
+ Co1 ^= E##go1; \
+ E##gu1 = Bgu1 ^( Bga1 & Bge1 ); \
+ Cu1 ^= E##gu1; \
+\
+ A##be1 ^= De1; \
+ Bka0 = ROL32(A##be1, 1); \
+ A##gi0 ^= Di0; \
+ Bke0 = ROL32(A##gi0, 3); \
+ A##ko1 ^= Do1; \
+ Bki0 = ROL32(A##ko1, 13); \
+ E##ka0 = Bka0 ^( Bke0 | Bki0 ); \
+ Ca0 ^= E##ka0; \
+ A##mu0 ^= Du0; \
+ Bko0 = ROL32(A##mu0, 4); \
+ E##ke0 = Bke0 ^( Bki0 & Bko0 ); \
+ Ce0 ^= E##ke0; \
+ A##sa0 ^= Da0; \
+ Bku0 = ROL32(A##sa0, 9); \
+ E##ki0 = Bki0 ^((~Bko0)& Bku0 ); \
+ Ci0 ^= E##ki0; \
+ E##ko0 = (~Bko0)^( Bku0 | Bka0 ); \
+ Co0 ^= E##ko0; \
+ E##ku0 = Bku0 ^( Bka0 & Bke0 ); \
+ Cu0 ^= E##ku0; \
+\
+ A##be0 ^= De0; \
+ Bka1 = A##be0; \
+ A##gi1 ^= Di1; \
+ Bke1 = ROL32(A##gi1, 3); \
+ A##ko0 ^= Do0; \
+ Bki1 = ROL32(A##ko0, 12); \
+ E##ka1 = Bka1 ^( Bke1 | Bki1 ); \
+ Ca1 ^= E##ka1; \
+ A##mu1 ^= Du1; \
+ Bko1 = ROL32(A##mu1, 4); \
+ E##ke1 = Bke1 ^( Bki1 & Bko1 ); \
+ Ce1 ^= E##ke1; \
+ A##sa1 ^= Da1; \
+ Bku1 = ROL32(A##sa1, 9); \
+ E##ki1 = Bki1 ^((~Bko1)& Bku1 ); \
+ Ci1 ^= E##ki1; \
+ E##ko1 = (~Bko1)^( Bku1 | Bka1 ); \
+ Co1 ^= E##ko1; \
+ E##ku1 = Bku1 ^( Bka1 & Bke1 ); \
+ Cu1 ^= E##ku1; \
+\
+ A##bu1 ^= Du1; \
+ Bma0 = ROL32(A##bu1, 14); \
+ A##ga0 ^= Da0; \
+ Bme0 = ROL32(A##ga0, 18); \
+ A##ke0 ^= De0; \
+ Bmi0 = ROL32(A##ke0, 5); \
+ E##ma0 = Bma0 ^( Bme0 & Bmi0 ); \
+ Ca0 ^= E##ma0; \
+ A##mi1 ^= Di1; \
+ Bmo0 = ROL32(A##mi1, 8); \
+ E##me0 = Bme0 ^( Bmi0 | Bmo0 ); \
+ Ce0 ^= E##me0; \
+ A##so0 ^= Do0; \
+ Bmu0 = ROL32(A##so0, 28); \
+ E##mi0 = Bmi0 ^((~Bmo0)| Bmu0 ); \
+ Ci0 ^= E##mi0; \
+ E##mo0 = (~Bmo0)^( Bmu0 & Bma0 ); \
+ Co0 ^= E##mo0; \
+ E##mu0 = Bmu0 ^( Bma0 | Bme0 ); \
+ Cu0 ^= E##mu0; \
+\
+ A##bu0 ^= Du0; \
+ Bma1 = ROL32(A##bu0, 13); \
+ A##ga1 ^= Da1; \
+ Bme1 = ROL32(A##ga1, 18); \
+ A##ke1 ^= De1; \
+ Bmi1 = ROL32(A##ke1, 5); \
+ E##ma1 = Bma1 ^( Bme1 & Bmi1 ); \
+ Ca1 ^= E##ma1; \
+ A##mi0 ^= Di0; \
+ Bmo1 = ROL32(A##mi0, 7); \
+ E##me1 = Bme1 ^( Bmi1 | Bmo1 ); \
+ Ce1 ^= E##me1; \
+ A##so1 ^= Do1; \
+ Bmu1 = ROL32(A##so1, 28); \
+ E##mi1 = Bmi1 ^((~Bmo1)| Bmu1 ); \
+ Ci1 ^= E##mi1; \
+ E##mo1 = (~Bmo1)^( Bmu1 & Bma1 ); \
+ Co1 ^= E##mo1; \
+ E##mu1 = Bmu1 ^( Bma1 | Bme1 ); \
+ Cu1 ^= E##mu1; \
+\
+ A##bi0 ^= Di0; \
+ Bsa0 = ROL32(A##bi0, 31); \
+ A##go1 ^= Do1; \
+ Bse0 = ROL32(A##go1, 28); \
+ A##ku1 ^= Du1; \
+ Bsi0 = ROL32(A##ku1, 20); \
+ E##sa0 = Bsa0 ^((~Bse0)& Bsi0 ); \
+ Ca0 ^= E##sa0; \
+ A##ma1 ^= Da1; \
+ Bso0 = ROL32(A##ma1, 21); \
+ E##se0 = (~Bse0)^( Bsi0 | Bso0 ); \
+ Ce0 ^= E##se0; \
+ A##se0 ^= De0; \
+ Bsu0 = ROL32(A##se0, 1); \
+ E##si0 = Bsi0 ^( Bso0 & Bsu0 ); \
+ Ci0 ^= E##si0; \
+ E##so0 = Bso0 ^( Bsu0 | Bsa0 ); \
+ Co0 ^= E##so0; \
+ E##su0 = Bsu0 ^( Bsa0 & Bse0 ); \
+ Cu0 ^= E##su0; \
+\
+ A##bi1 ^= Di1; \
+ Bsa1 = ROL32(A##bi1, 31); \
+ A##go0 ^= Do0; \
+ Bse1 = ROL32(A##go0, 27); \
+ A##ku0 ^= Du0; \
+ Bsi1 = ROL32(A##ku0, 19); \
+ E##sa1 = Bsa1 ^((~Bse1)& Bsi1 ); \
+ Ca1 ^= E##sa1; \
+ A##ma0 ^= Da0; \
+ Bso1 = ROL32(A##ma0, 20); \
+ E##se1 = (~Bse1)^( Bsi1 | Bso1 ); \
+ Ce1 ^= E##se1; \
+ A##se1 ^= De1; \
+ Bsu1 = ROL32(A##se1, 1); \
+ E##si1 = Bsi1 ^( Bso1 & Bsu1 ); \
+ Ci1 ^= E##si1; \
+ E##so1 = Bso1 ^( Bsu1 | Bsa1 ); \
+ Co1 ^= E##so1; \
+ E##su1 = Bsu1 ^( Bsa1 & Bse1 ); \
+ Cu1 ^= E##su1; \
+\
+
+/* --- Code for round (lane complementing pattern 'bebigokimisa') */
+/* --- using factor 2 interleaving, 64-bit lanes mapped to 32-bit words */
+#define thetaRhoPiChiIota(i, A, E) \
+ Da0 = Cu0^ROL32(Ce1, 1); \
+ Da1 = Cu1^Ce0; \
+ De0 = Ca0^ROL32(Ci1, 1); \
+ De1 = Ca1^Ci0; \
+ Di0 = Ce0^ROL32(Co1, 1); \
+ Di1 = Ce1^Co0; \
+ Do0 = Ci0^ROL32(Cu1, 1); \
+ Do1 = Ci1^Cu0; \
+ Du0 = Co0^ROL32(Ca1, 1); \
+ Du1 = Co1^Ca0; \
+\
+ A##ba0 ^= Da0; \
+ Bba0 = A##ba0; \
+ A##ge0 ^= De0; \
+ Bbe0 = ROL32(A##ge0, 22); \
+ A##ki1 ^= Di1; \
+ Bbi0 = ROL32(A##ki1, 22); \
+ E##ba0 = Bba0 ^( Bbe0 | Bbi0 ); \
+ E##ba0 ^= KeccakF1600RoundConstants_int2_0[i]; \
+ A##mo1 ^= Do1; \
+ Bbo0 = ROL32(A##mo1, 11); \
+ E##be0 = Bbe0 ^((~Bbi0)| Bbo0 ); \
+ A##su0 ^= Du0; \
+ Bbu0 = ROL32(A##su0, 7); \
+ E##bi0 = Bbi0 ^( Bbo0 & Bbu0 ); \
+ E##bo0 = Bbo0 ^( Bbu0 | Bba0 ); \
+ E##bu0 = Bbu0 ^( Bba0 & Bbe0 ); \
+\
+ A##ba1 ^= Da1; \
+ Bba1 = A##ba1; \
+ A##ge1 ^= De1; \
+ Bbe1 = ROL32(A##ge1, 22); \
+ A##ki0 ^= Di0; \
+ Bbi1 = ROL32(A##ki0, 21); \
+ E##ba1 = Bba1 ^( Bbe1 | Bbi1 ); \
+ E##ba1 ^= KeccakF1600RoundConstants_int2_1[i]; \
+ A##mo0 ^= Do0; \
+ Bbo1 = ROL32(A##mo0, 10); \
+ E##be1 = Bbe1 ^((~Bbi1)| Bbo1 ); \
+ A##su1 ^= Du1; \
+ Bbu1 = ROL32(A##su1, 7); \
+ E##bi1 = Bbi1 ^( Bbo1 & Bbu1 ); \
+ E##bo1 = Bbo1 ^( Bbu1 | Bba1 ); \
+ E##bu1 = Bbu1 ^( Bba1 & Bbe1 ); \
+\
+ A##bo0 ^= Do0; \
+ Bga0 = ROL32(A##bo0, 14); \
+ A##gu0 ^= Du0; \
+ Bge0 = ROL32(A##gu0, 10); \
+ A##ka1 ^= Da1; \
+ Bgi0 = ROL32(A##ka1, 2); \
+ E##ga0 = Bga0 ^( Bge0 | Bgi0 ); \
+ A##me1 ^= De1; \
+ Bgo0 = ROL32(A##me1, 23); \
+ E##ge0 = Bge0 ^( Bgi0 & Bgo0 ); \
+ A##si1 ^= Di1; \
+ Bgu0 = ROL32(A##si1, 31); \
+ E##gi0 = Bgi0 ^( Bgo0 |(~Bgu0)); \
+ E##go0 = Bgo0 ^( Bgu0 | Bga0 ); \
+ E##gu0 = Bgu0 ^( Bga0 & Bge0 ); \
+\
+ A##bo1 ^= Do1; \
+ Bga1 = ROL32(A##bo1, 14); \
+ A##gu1 ^= Du1; \
+ Bge1 = ROL32(A##gu1, 10); \
+ A##ka0 ^= Da0; \
+ Bgi1 = ROL32(A##ka0, 1); \
+ E##ga1 = Bga1 ^( Bge1 | Bgi1 ); \
+ A##me0 ^= De0; \
+ Bgo1 = ROL32(A##me0, 22); \
+ E##ge1 = Bge1 ^( Bgi1 & Bgo1 ); \
+ A##si0 ^= Di0; \
+ Bgu1 = ROL32(A##si0, 30); \
+ E##gi1 = Bgi1 ^( Bgo1 |(~Bgu1)); \
+ E##go1 = Bgo1 ^( Bgu1 | Bga1 ); \
+ E##gu1 = Bgu1 ^( Bga1 & Bge1 ); \
+\
+ A##be1 ^= De1; \
+ Bka0 = ROL32(A##be1, 1); \
+ A##gi0 ^= Di0; \
+ Bke0 = ROL32(A##gi0, 3); \
+ A##ko1 ^= Do1; \
+ Bki0 = ROL32(A##ko1, 13); \
+ E##ka0 = Bka0 ^( Bke0 | Bki0 ); \
+ A##mu0 ^= Du0; \
+ Bko0 = ROL32(A##mu0, 4); \
+ E##ke0 = Bke0 ^( Bki0 & Bko0 ); \
+ A##sa0 ^= Da0; \
+ Bku0 = ROL32(A##sa0, 9); \
+ E##ki0 = Bki0 ^((~Bko0)& Bku0 ); \
+ E##ko0 = (~Bko0)^( Bku0 | Bka0 ); \
+ E##ku0 = Bku0 ^( Bka0 & Bke0 ); \
+\
+ A##be0 ^= De0; \
+ Bka1 = A##be0; \
+ A##gi1 ^= Di1; \
+ Bke1 = ROL32(A##gi1, 3); \
+ A##ko0 ^= Do0; \
+ Bki1 = ROL32(A##ko0, 12); \
+ E##ka1 = Bka1 ^( Bke1 | Bki1 ); \
+ A##mu1 ^= Du1; \
+ Bko1 = ROL32(A##mu1, 4); \
+ E##ke1 = Bke1 ^( Bki1 & Bko1 ); \
+ A##sa1 ^= Da1; \
+ Bku1 = ROL32(A##sa1, 9); \
+ E##ki1 = Bki1 ^((~Bko1)& Bku1 ); \
+ E##ko1 = (~Bko1)^( Bku1 | Bka1 ); \
+ E##ku1 = Bku1 ^( Bka1 & Bke1 ); \
+\
+ A##bu1 ^= Du1; \
+ Bma0 = ROL32(A##bu1, 14); \
+ A##ga0 ^= Da0; \
+ Bme0 = ROL32(A##ga0, 18); \
+ A##ke0 ^= De0; \
+ Bmi0 = ROL32(A##ke0, 5); \
+ E##ma0 = Bma0 ^( Bme0 & Bmi0 ); \
+ A##mi1 ^= Di1; \
+ Bmo0 = ROL32(A##mi1, 8); \
+ E##me0 = Bme0 ^( Bmi0 | Bmo0 ); \
+ A##so0 ^= Do0; \
+ Bmu0 = ROL32(A##so0, 28); \
+ E##mi0 = Bmi0 ^((~Bmo0)| Bmu0 ); \
+ E##mo0 = (~Bmo0)^( Bmu0 & Bma0 ); \
+ E##mu0 = Bmu0 ^( Bma0 | Bme0 ); \
+\
+ A##bu0 ^= Du0; \
+ Bma1 = ROL32(A##bu0, 13); \
+ A##ga1 ^= Da1; \
+ Bme1 = ROL32(A##ga1, 18); \
+ A##ke1 ^= De1; \
+ Bmi1 = ROL32(A##ke1, 5); \
+ E##ma1 = Bma1 ^( Bme1 & Bmi1 ); \
+ A##mi0 ^= Di0; \
+ Bmo1 = ROL32(A##mi0, 7); \
+ E##me1 = Bme1 ^( Bmi1 | Bmo1 ); \
+ A##so1 ^= Do1; \
+ Bmu1 = ROL32(A##so1, 28); \
+ E##mi1 = Bmi1 ^((~Bmo1)| Bmu1 ); \
+ E##mo1 = (~Bmo1)^( Bmu1 & Bma1 ); \
+ E##mu1 = Bmu1 ^( Bma1 | Bme1 ); \
+\
+ A##bi0 ^= Di0; \
+ Bsa0 = ROL32(A##bi0, 31); \
+ A##go1 ^= Do1; \
+ Bse0 = ROL32(A##go1, 28); \
+ A##ku1 ^= Du1; \
+ Bsi0 = ROL32(A##ku1, 20); \
+ E##sa0 = Bsa0 ^((~Bse0)& Bsi0 ); \
+ A##ma1 ^= Da1; \
+ Bso0 = ROL32(A##ma1, 21); \
+ E##se0 = (~Bse0)^( Bsi0 | Bso0 ); \
+ A##se0 ^= De0; \
+ Bsu0 = ROL32(A##se0, 1); \
+ E##si0 = Bsi0 ^( Bso0 & Bsu0 ); \
+ E##so0 = Bso0 ^( Bsu0 | Bsa0 ); \
+ E##su0 = Bsu0 ^( Bsa0 & Bse0 ); \
+\
+ A##bi1 ^= Di1; \
+ Bsa1 = ROL32(A##bi1, 31); \
+ A##go0 ^= Do0; \
+ Bse1 = ROL32(A##go0, 27); \
+ A##ku0 ^= Du0; \
+ Bsi1 = ROL32(A##ku0, 19); \
+ E##sa1 = Bsa1 ^((~Bse1)& Bsi1 ); \
+ A##ma0 ^= Da0; \
+ Bso1 = ROL32(A##ma0, 20); \
+ E##se1 = (~Bse1)^( Bsi1 | Bso1 ); \
+ A##se1 ^= De1; \
+ Bsu1 = ROL32(A##se1, 1); \
+ E##si1 = Bsi1 ^( Bso1 & Bsu1 ); \
+ E##so1 = Bso1 ^( Bsu1 | Bsa1 ); \
+ E##su1 = Bsu1 ^( Bsa1 & Bse1 ); \
+\
+
+#else /* UseBebigokimisa */
+/* --- Code for round, with prepare-theta */
+/* --- using factor 2 interleaving, 64-bit lanes mapped to 32-bit words */
+#define thetaRhoPiChiIotaPrepareTheta(i, A, E) \
+ Da0 = Cu0^ROL32(Ce1, 1); \
+ Da1 = Cu1^Ce0; \
+ De0 = Ca0^ROL32(Ci1, 1); \
+ De1 = Ca1^Ci0; \
+ Di0 = Ce0^ROL32(Co1, 1); \
+ Di1 = Ce1^Co0; \
+ Do0 = Ci0^ROL32(Cu1, 1); \
+ Do1 = Ci1^Cu0; \
+ Du0 = Co0^ROL32(Ca1, 1); \
+ Du1 = Co1^Ca0; \
+\
+ A##ba0 ^= Da0; \
+ Bba0 = A##ba0; \
+ A##ge0 ^= De0; \
+ Bbe0 = ROL32(A##ge0, 22); \
+ A##ki1 ^= Di1; \
+ Bbi0 = ROL32(A##ki1, 22); \
+ E##ba0 = Bba0 ^((~Bbe0)& Bbi0 ); \
+ E##ba0 ^= KeccakF1600RoundConstants_int2_0[i]; \
+ Ca0 = E##ba0; \
+ A##mo1 ^= Do1; \
+ Bbo0 = ROL32(A##mo1, 11); \
+ E##be0 = Bbe0 ^((~Bbi0)& Bbo0 ); \
+ Ce0 = E##be0; \
+ A##su0 ^= Du0; \
+ Bbu0 = ROL32(A##su0, 7); \
+ E##bi0 = Bbi0 ^((~Bbo0)& Bbu0 ); \
+ Ci0 = E##bi0; \
+ E##bo0 = Bbo0 ^((~Bbu0)& Bba0 ); \
+ Co0 = E##bo0; \
+ E##bu0 = Bbu0 ^((~Bba0)& Bbe0 ); \
+ Cu0 = E##bu0; \
+\
+ A##ba1 ^= Da1; \
+ Bba1 = A##ba1; \
+ A##ge1 ^= De1; \
+ Bbe1 = ROL32(A##ge1, 22); \
+ A##ki0 ^= Di0; \
+ Bbi1 = ROL32(A##ki0, 21); \
+ E##ba1 = Bba1 ^((~Bbe1)& Bbi1 ); \
+ E##ba1 ^= KeccakF1600RoundConstants_int2_1[i]; \
+ Ca1 = E##ba1; \
+ A##mo0 ^= Do0; \
+ Bbo1 = ROL32(A##mo0, 10); \
+ E##be1 = Bbe1 ^((~Bbi1)& Bbo1 ); \
+ Ce1 = E##be1; \
+ A##su1 ^= Du1; \
+ Bbu1 = ROL32(A##su1, 7); \
+ E##bi1 = Bbi1 ^((~Bbo1)& Bbu1 ); \
+ Ci1 = E##bi1; \
+ E##bo1 = Bbo1 ^((~Bbu1)& Bba1 ); \
+ Co1 = E##bo1; \
+ E##bu1 = Bbu1 ^((~Bba1)& Bbe1 ); \
+ Cu1 = E##bu1; \
+\
+ A##bo0 ^= Do0; \
+ Bga0 = ROL32(A##bo0, 14); \
+ A##gu0 ^= Du0; \
+ Bge0 = ROL32(A##gu0, 10); \
+ A##ka1 ^= Da1; \
+ Bgi0 = ROL32(A##ka1, 2); \
+ E##ga0 = Bga0 ^((~Bge0)& Bgi0 ); \
+ Ca0 ^= E##ga0; \
+ A##me1 ^= De1; \
+ Bgo0 = ROL32(A##me1, 23); \
+ E##ge0 = Bge0 ^((~Bgi0)& Bgo0 ); \
+ Ce0 ^= E##ge0; \
+ A##si1 ^= Di1; \
+ Bgu0 = ROL32(A##si1, 31); \
+ E##gi0 = Bgi0 ^((~Bgo0)& Bgu0 ); \
+ Ci0 ^= E##gi0; \
+ E##go0 = Bgo0 ^((~Bgu0)& Bga0 ); \
+ Co0 ^= E##go0; \
+ E##gu0 = Bgu0 ^((~Bga0)& Bge0 ); \
+ Cu0 ^= E##gu0; \
+\
+ A##bo1 ^= Do1; \
+ Bga1 = ROL32(A##bo1, 14); \
+ A##gu1 ^= Du1; \
+ Bge1 = ROL32(A##gu1, 10); \
+ A##ka0 ^= Da0; \
+ Bgi1 = ROL32(A##ka0, 1); \
+ E##ga1 = Bga1 ^((~Bge1)& Bgi1 ); \
+ Ca1 ^= E##ga1; \
+ A##me0 ^= De0; \
+ Bgo1 = ROL32(A##me0, 22); \
+ E##ge1 = Bge1 ^((~Bgi1)& Bgo1 ); \
+ Ce1 ^= E##ge1; \
+ A##si0 ^= Di0; \
+ Bgu1 = ROL32(A##si0, 30); \
+ E##gi1 = Bgi1 ^((~Bgo1)& Bgu1 ); \
+ Ci1 ^= E##gi1; \
+ E##go1 = Bgo1 ^((~Bgu1)& Bga1 ); \
+ Co1 ^= E##go1; \
+ E##gu1 = Bgu1 ^((~Bga1)& Bge1 ); \
+ Cu1 ^= E##gu1; \
+\
+ A##be1 ^= De1; \
+ Bka0 = ROL32(A##be1, 1); \
+ A##gi0 ^= Di0; \
+ Bke0 = ROL32(A##gi0, 3); \
+ A##ko1 ^= Do1; \
+ Bki0 = ROL32(A##ko1, 13); \
+ E##ka0 = Bka0 ^((~Bke0)& Bki0 ); \
+ Ca0 ^= E##ka0; \
+ A##mu0 ^= Du0; \
+ Bko0 = ROL32(A##mu0, 4); \
+ E##ke0 = Bke0 ^((~Bki0)& Bko0 ); \
+ Ce0 ^= E##ke0; \
+ A##sa0 ^= Da0; \
+ Bku0 = ROL32(A##sa0, 9); \
+ E##ki0 = Bki0 ^((~Bko0)& Bku0 ); \
+ Ci0 ^= E##ki0; \
+ E##ko0 = Bko0 ^((~Bku0)& Bka0 ); \
+ Co0 ^= E##ko0; \
+ E##ku0 = Bku0 ^((~Bka0)& Bke0 ); \
+ Cu0 ^= E##ku0; \
+\
+ A##be0 ^= De0; \
+ Bka1 = A##be0; \
+ A##gi1 ^= Di1; \
+ Bke1 = ROL32(A##gi1, 3); \
+ A##ko0 ^= Do0; \
+ Bki1 = ROL32(A##ko0, 12); \
+ E##ka1 = Bka1 ^((~Bke1)& Bki1 ); \
+ Ca1 ^= E##ka1; \
+ A##mu1 ^= Du1; \
+ Bko1 = ROL32(A##mu1, 4); \
+ E##ke1 = Bke1 ^((~Bki1)& Bko1 ); \
+ Ce1 ^= E##ke1; \
+ A##sa1 ^= Da1; \
+ Bku1 = ROL32(A##sa1, 9); \
+ E##ki1 = Bki1 ^((~Bko1)& Bku1 ); \
+ Ci1 ^= E##ki1; \
+ E##ko1 = Bko1 ^((~Bku1)& Bka1 ); \
+ Co1 ^= E##ko1; \
+ E##ku1 = Bku1 ^((~Bka1)& Bke1 ); \
+ Cu1 ^= E##ku1; \
+\
+ A##bu1 ^= Du1; \
+ Bma0 = ROL32(A##bu1, 14); \
+ A##ga0 ^= Da0; \
+ Bme0 = ROL32(A##ga0, 18); \
+ A##ke0 ^= De0; \
+ Bmi0 = ROL32(A##ke0, 5); \
+ E##ma0 = Bma0 ^((~Bme0)& Bmi0 ); \
+ Ca0 ^= E##ma0; \
+ A##mi1 ^= Di1; \
+ Bmo0 = ROL32(A##mi1, 8); \
+ E##me0 = Bme0 ^((~Bmi0)& Bmo0 ); \
+ Ce0 ^= E##me0; \
+ A##so0 ^= Do0; \
+ Bmu0 = ROL32(A##so0, 28); \
+ E##mi0 = Bmi0 ^((~Bmo0)& Bmu0 ); \
+ Ci0 ^= E##mi0; \
+ E##mo0 = Bmo0 ^((~Bmu0)& Bma0 ); \
+ Co0 ^= E##mo0; \
+ E##mu0 = Bmu0 ^((~Bma0)& Bme0 ); \
+ Cu0 ^= E##mu0; \
+\
+ A##bu0 ^= Du0; \
+ Bma1 = ROL32(A##bu0, 13); \
+ A##ga1 ^= Da1; \
+ Bme1 = ROL32(A##ga1, 18); \
+ A##ke1 ^= De1; \
+ Bmi1 = ROL32(A##ke1, 5); \
+ E##ma1 = Bma1 ^((~Bme1)& Bmi1 ); \
+ Ca1 ^= E##ma1; \
+ A##mi0 ^= Di0; \
+ Bmo1 = ROL32(A##mi0, 7); \
+ E##me1 = Bme1 ^((~Bmi1)& Bmo1 ); \
+ Ce1 ^= E##me1; \
+ A##so1 ^= Do1; \
+ Bmu1 = ROL32(A##so1, 28); \
+ E##mi1 = Bmi1 ^((~Bmo1)& Bmu1 ); \
+ Ci1 ^= E##mi1; \
+ E##mo1 = Bmo1 ^((~Bmu1)& Bma1 ); \
+ Co1 ^= E##mo1; \
+ E##mu1 = Bmu1 ^((~Bma1)& Bme1 ); \
+ Cu1 ^= E##mu1; \
+\
+ A##bi0 ^= Di0; \
+ Bsa0 = ROL32(A##bi0, 31); \
+ A##go1 ^= Do1; \
+ Bse0 = ROL32(A##go1, 28); \
+ A##ku1 ^= Du1; \
+ Bsi0 = ROL32(A##ku1, 20); \
+ E##sa0 = Bsa0 ^((~Bse0)& Bsi0 ); \
+ Ca0 ^= E##sa0; \
+ A##ma1 ^= Da1; \
+ Bso0 = ROL32(A##ma1, 21); \
+ E##se0 = Bse0 ^((~Bsi0)& Bso0 ); \
+ Ce0 ^= E##se0; \
+ A##se0 ^= De0; \
+ Bsu0 = ROL32(A##se0, 1); \
+ E##si0 = Bsi0 ^((~Bso0)& Bsu0 ); \
+ Ci0 ^= E##si0; \
+ E##so0 = Bso0 ^((~Bsu0)& Bsa0 ); \
+ Co0 ^= E##so0; \
+ E##su0 = Bsu0 ^((~Bsa0)& Bse0 ); \
+ Cu0 ^= E##su0; \
+\
+ A##bi1 ^= Di1; \
+ Bsa1 = ROL32(A##bi1, 31); \
+ A##go0 ^= Do0; \
+ Bse1 = ROL32(A##go0, 27); \
+ A##ku0 ^= Du0; \
+ Bsi1 = ROL32(A##ku0, 19); \
+ E##sa1 = Bsa1 ^((~Bse1)& Bsi1 ); \
+ Ca1 ^= E##sa1; \
+ A##ma0 ^= Da0; \
+ Bso1 = ROL32(A##ma0, 20); \
+ E##se1 = Bse1 ^((~Bsi1)& Bso1 ); \
+ Ce1 ^= E##se1; \
+ A##se1 ^= De1; \
+ Bsu1 = ROL32(A##se1, 1); \
+ E##si1 = Bsi1 ^((~Bso1)& Bsu1 ); \
+ Ci1 ^= E##si1; \
+ E##so1 = Bso1 ^((~Bsu1)& Bsa1 ); \
+ Co1 ^= E##so1; \
+ E##su1 = Bsu1 ^((~Bsa1)& Bse1 ); \
+ Cu1 ^= E##su1; \
+\
+
+/* --- Code for round */
+/* --- using factor 2 interleaving, 64-bit lanes mapped to 32-bit words */
+#define thetaRhoPiChiIota(i, A, E) \
+ Da0 = Cu0^ROL32(Ce1, 1); \
+ Da1 = Cu1^Ce0; \
+ De0 = Ca0^ROL32(Ci1, 1); \
+ De1 = Ca1^Ci0; \
+ Di0 = Ce0^ROL32(Co1, 1); \
+ Di1 = Ce1^Co0; \
+ Do0 = Ci0^ROL32(Cu1, 1); \
+ Do1 = Ci1^Cu0; \
+ Du0 = Co0^ROL32(Ca1, 1); \
+ Du1 = Co1^Ca0; \
+\
+ A##ba0 ^= Da0; \
+ Bba0 = A##ba0; \
+ A##ge0 ^= De0; \
+ Bbe0 = ROL32(A##ge0, 22); \
+ A##ki1 ^= Di1; \
+ Bbi0 = ROL32(A##ki1, 22); \
+ E##ba0 = Bba0 ^((~Bbe0)& Bbi0 ); \
+ E##ba0 ^= KeccakF1600RoundConstants_int2_0[i]; \
+ A##mo1 ^= Do1; \
+ Bbo0 = ROL32(A##mo1, 11); \
+ E##be0 = Bbe0 ^((~Bbi0)& Bbo0 ); \
+ A##su0 ^= Du0; \
+ Bbu0 = ROL32(A##su0, 7); \
+ E##bi0 = Bbi0 ^((~Bbo0)& Bbu0 ); \
+ E##bo0 = Bbo0 ^((~Bbu0)& Bba0 ); \
+ E##bu0 = Bbu0 ^((~Bba0)& Bbe0 ); \
+\
+ A##ba1 ^= Da1; \
+ Bba1 = A##ba1; \
+ A##ge1 ^= De1; \
+ Bbe1 = ROL32(A##ge1, 22); \
+ A##ki0 ^= Di0; \
+ Bbi1 = ROL32(A##ki0, 21); \
+ E##ba1 = Bba1 ^((~Bbe1)& Bbi1 ); \
+ E##ba1 ^= KeccakF1600RoundConstants_int2_1[i]; \
+ A##mo0 ^= Do0; \
+ Bbo1 = ROL32(A##mo0, 10); \
+ E##be1 = Bbe1 ^((~Bbi1)& Bbo1 ); \
+ A##su1 ^= Du1; \
+ Bbu1 = ROL32(A##su1, 7); \
+ E##bi1 = Bbi1 ^((~Bbo1)& Bbu1 ); \
+ E##bo1 = Bbo1 ^((~Bbu1)& Bba1 ); \
+ E##bu1 = Bbu1 ^((~Bba1)& Bbe1 ); \
+\
+ A##bo0 ^= Do0; \
+ Bga0 = ROL32(A##bo0, 14); \
+ A##gu0 ^= Du0; \
+ Bge0 = ROL32(A##gu0, 10); \
+ A##ka1 ^= Da1; \
+ Bgi0 = ROL32(A##ka1, 2); \
+ E##ga0 = Bga0 ^((~Bge0)& Bgi0 ); \
+ A##me1 ^= De1; \
+ Bgo0 = ROL32(A##me1, 23); \
+ E##ge0 = Bge0 ^((~Bgi0)& Bgo0 ); \
+ A##si1 ^= Di1; \
+ Bgu0 = ROL32(A##si1, 31); \
+ E##gi0 = Bgi0 ^((~Bgo0)& Bgu0 ); \
+ E##go0 = Bgo0 ^((~Bgu0)& Bga0 ); \
+ E##gu0 = Bgu0 ^((~Bga0)& Bge0 ); \
+\
+ A##bo1 ^= Do1; \
+ Bga1 = ROL32(A##bo1, 14); \
+ A##gu1 ^= Du1; \
+ Bge1 = ROL32(A##gu1, 10); \
+ A##ka0 ^= Da0; \
+ Bgi1 = ROL32(A##ka0, 1); \
+ E##ga1 = Bga1 ^((~Bge1)& Bgi1 ); \
+ A##me0 ^= De0; \
+ Bgo1 = ROL32(A##me0, 22); \
+ E##ge1 = Bge1 ^((~Bgi1)& Bgo1 ); \
+ A##si0 ^= Di0; \
+ Bgu1 = ROL32(A##si0, 30); \
+ E##gi1 = Bgi1 ^((~Bgo1)& Bgu1 ); \
+ E##go1 = Bgo1 ^((~Bgu1)& Bga1 ); \
+ E##gu1 = Bgu1 ^((~Bga1)& Bge1 ); \
+\
+ A##be1 ^= De1; \
+ Bka0 = ROL32(A##be1, 1); \
+ A##gi0 ^= Di0; \
+ Bke0 = ROL32(A##gi0, 3); \
+ A##ko1 ^= Do1; \
+ Bki0 = ROL32(A##ko1, 13); \
+ E##ka0 = Bka0 ^((~Bke0)& Bki0 ); \
+ A##mu0 ^= Du0; \
+ Bko0 = ROL32(A##mu0, 4); \
+ E##ke0 = Bke0 ^((~Bki0)& Bko0 ); \
+ A##sa0 ^= Da0; \
+ Bku0 = ROL32(A##sa0, 9); \
+ E##ki0 = Bki0 ^((~Bko0)& Bku0 ); \
+ E##ko0 = Bko0 ^((~Bku0)& Bka0 ); \
+ E##ku0 = Bku0 ^((~Bka0)& Bke0 ); \
+\
+ A##be0 ^= De0; \
+ Bka1 = A##be0; \
+ A##gi1 ^= Di1; \
+ Bke1 = ROL32(A##gi1, 3); \
+ A##ko0 ^= Do0; \
+ Bki1 = ROL32(A##ko0, 12); \
+ E##ka1 = Bka1 ^((~Bke1)& Bki1 ); \
+ A##mu1 ^= Du1; \
+ Bko1 = ROL32(A##mu1, 4); \
+ E##ke1 = Bke1 ^((~Bki1)& Bko1 ); \
+ A##sa1 ^= Da1; \
+ Bku1 = ROL32(A##sa1, 9); \
+ E##ki1 = Bki1 ^((~Bko1)& Bku1 ); \
+ E##ko1 = Bko1 ^((~Bku1)& Bka1 ); \
+ E##ku1 = Bku1 ^((~Bka1)& Bke1 ); \
+\
+ A##bu1 ^= Du1; \
+ Bma0 = ROL32(A##bu1, 14); \
+ A##ga0 ^= Da0; \
+ Bme0 = ROL32(A##ga0, 18); \
+ A##ke0 ^= De0; \
+ Bmi0 = ROL32(A##ke0, 5); \
+ E##ma0 = Bma0 ^((~Bme0)& Bmi0 ); \
+ A##mi1 ^= Di1; \
+ Bmo0 = ROL32(A##mi1, 8); \
+ E##me0 = Bme0 ^((~Bmi0)& Bmo0 ); \
+ A##so0 ^= Do0; \
+ Bmu0 = ROL32(A##so0, 28); \
+ E##mi0 = Bmi0 ^((~Bmo0)& Bmu0 ); \
+ E##mo0 = Bmo0 ^((~Bmu0)& Bma0 ); \
+ E##mu0 = Bmu0 ^((~Bma0)& Bme0 ); \
+\
+ A##bu0 ^= Du0; \
+ Bma1 = ROL32(A##bu0, 13); \
+ A##ga1 ^= Da1; \
+ Bme1 = ROL32(A##ga1, 18); \
+ A##ke1 ^= De1; \
+ Bmi1 = ROL32(A##ke1, 5); \
+ E##ma1 = Bma1 ^((~Bme1)& Bmi1 ); \
+ A##mi0 ^= Di0; \
+ Bmo1 = ROL32(A##mi0, 7); \
+ E##me1 = Bme1 ^((~Bmi1)& Bmo1 ); \
+ A##so1 ^= Do1; \
+ Bmu1 = ROL32(A##so1, 28); \
+ E##mi1 = Bmi1 ^((~Bmo1)& Bmu1 ); \
+ E##mo1 = Bmo1 ^((~Bmu1)& Bma1 ); \
+ E##mu1 = Bmu1 ^((~Bma1)& Bme1 ); \
+\
+ A##bi0 ^= Di0; \
+ Bsa0 = ROL32(A##bi0, 31); \
+ A##go1 ^= Do1; \
+ Bse0 = ROL32(A##go1, 28); \
+ A##ku1 ^= Du1; \
+ Bsi0 = ROL32(A##ku1, 20); \
+ E##sa0 = Bsa0 ^((~Bse0)& Bsi0 ); \
+ A##ma1 ^= Da1; \
+ Bso0 = ROL32(A##ma1, 21); \
+ E##se0 = Bse0 ^((~Bsi0)& Bso0 ); \
+ A##se0 ^= De0; \
+ Bsu0 = ROL32(A##se0, 1); \
+ E##si0 = Bsi0 ^((~Bso0)& Bsu0 ); \
+ E##so0 = Bso0 ^((~Bsu0)& Bsa0 ); \
+ E##su0 = Bsu0 ^((~Bsa0)& Bse0 ); \
+\
+ A##bi1 ^= Di1; \
+ Bsa1 = ROL32(A##bi1, 31); \
+ A##go0 ^= Do0; \
+ Bse1 = ROL32(A##go0, 27); \
+ A##ku0 ^= Du0; \
+ Bsi1 = ROL32(A##ku0, 19); \
+ E##sa1 = Bsa1 ^((~Bse1)& Bsi1 ); \
+ A##ma0 ^= Da0; \
+ Bso1 = ROL32(A##ma0, 20); \
+ E##se1 = Bse1 ^((~Bsi1)& Bso1 ); \
+ A##se1 ^= De1; \
+ Bsu1 = ROL32(A##se1, 1); \
+ E##si1 = Bsi1 ^((~Bso1)& Bsu1 ); \
+ E##so1 = Bso1 ^((~Bsu1)& Bsa1 ); \
+ E##su1 = Bsu1 ^((~Bsa1)& Bse1 ); \
+\
+
+#endif /* UseBebigokimisa */
+
+#define copyFromStateAndXor1024bits(X, state, input) \
+ X##ba0 = state[ 0]^input[ 0]; \
+ X##ba1 = state[ 1]^input[ 1]; \
+ X##be0 = state[ 2]^input[ 2]; \
+ X##be1 = state[ 3]^input[ 3]; \
+ X##bi0 = state[ 4]^input[ 4]; \
+ X##bi1 = state[ 5]^input[ 5]; \
+ X##bo0 = state[ 6]^input[ 6]; \
+ X##bo1 = state[ 7]^input[ 7]; \
+ X##bu0 = state[ 8]^input[ 8]; \
+ X##bu1 = state[ 9]^input[ 9]; \
+ X##ga0 = state[10]^input[10]; \
+ X##ga1 = state[11]^input[11]; \
+ X##ge0 = state[12]^input[12]; \
+ X##ge1 = state[13]^input[13]; \
+ X##gi0 = state[14]^input[14]; \
+ X##gi1 = state[15]^input[15]; \
+ X##go0 = state[16]^input[16]; \
+ X##go1 = state[17]^input[17]; \
+ X##gu0 = state[18]^input[18]; \
+ X##gu1 = state[19]^input[19]; \
+ X##ka0 = state[20]^input[20]; \
+ X##ka1 = state[21]^input[21]; \
+ X##ke0 = state[22]^input[22]; \
+ X##ke1 = state[23]^input[23]; \
+ X##ki0 = state[24]^input[24]; \
+ X##ki1 = state[25]^input[25]; \
+ X##ko0 = state[26]^input[26]; \
+ X##ko1 = state[27]^input[27]; \
+ X##ku0 = state[28]^input[28]; \
+ X##ku1 = state[29]^input[29]; \
+ X##ma0 = state[30]^input[30]; \
+ X##ma1 = state[31]^input[31]; \
+ X##me0 = state[32]; \
+ X##me1 = state[33]; \
+ X##mi0 = state[34]; \
+ X##mi1 = state[35]; \
+ X##mo0 = state[36]; \
+ X##mo1 = state[37]; \
+ X##mu0 = state[38]; \
+ X##mu1 = state[39]; \
+ X##sa0 = state[40]; \
+ X##sa1 = state[41]; \
+ X##se0 = state[42]; \
+ X##se1 = state[43]; \
+ X##si0 = state[44]; \
+ X##si1 = state[45]; \
+ X##so0 = state[46]; \
+ X##so1 = state[47]; \
+ X##su0 = state[48]; \
+ X##su1 = state[49]; \
+
+#define copyFromStateAndXor1088bits(X, state, input) \
+ X##ba0 = state[ 0]^input[ 0]; \
+ X##ba1 = state[ 1]^input[ 1]; \
+ X##be0 = state[ 2]^input[ 2]; \
+ X##be1 = state[ 3]^input[ 3]; \
+ X##bi0 = state[ 4]^input[ 4]; \
+ X##bi1 = state[ 5]^input[ 5]; \
+ X##bo0 = state[ 6]^input[ 6]; \
+ X##bo1 = state[ 7]^input[ 7]; \
+ X##bu0 = state[ 8]^input[ 8]; \
+ X##bu1 = state[ 9]^input[ 9]; \
+ X##ga0 = state[10]^input[10]; \
+ X##ga1 = state[11]^input[11]; \
+ X##ge0 = state[12]^input[12]; \
+ X##ge1 = state[13]^input[13]; \
+ X##gi0 = state[14]^input[14]; \
+ X##gi1 = state[15]^input[15]; \
+ X##go0 = state[16]^input[16]; \
+ X##go1 = state[17]^input[17]; \
+ X##gu0 = state[18]^input[18]; \
+ X##gu1 = state[19]^input[19]; \
+ X##ka0 = state[20]^input[20]; \
+ X##ka1 = state[21]^input[21]; \
+ X##ke0 = state[22]^input[22]; \
+ X##ke1 = state[23]^input[23]; \
+ X##ki0 = state[24]^input[24]; \
+ X##ki1 = state[25]^input[25]; \
+ X##ko0 = state[26]^input[26]; \
+ X##ko1 = state[27]^input[27]; \
+ X##ku0 = state[28]^input[28]; \
+ X##ku1 = state[29]^input[29]; \
+ X##ma0 = state[30]^input[30]; \
+ X##ma1 = state[31]^input[31]; \
+ X##me0 = state[32]^input[32]; \
+ X##me1 = state[33]^input[33]; \
+ X##mi0 = state[34]; \
+ X##mi1 = state[35]; \
+ X##mo0 = state[36]; \
+ X##mo1 = state[37]; \
+ X##mu0 = state[38]; \
+ X##mu1 = state[39]; \
+ X##sa0 = state[40]; \
+ X##sa1 = state[41]; \
+ X##se0 = state[42]; \
+ X##se1 = state[43]; \
+ X##si0 = state[44]; \
+ X##si1 = state[45]; \
+ X##so0 = state[46]; \
+ X##so1 = state[47]; \
+ X##su0 = state[48]; \
+ X##su1 = state[49]; \
+
+#define copyFromState(X, state) \
+ X##ba0 = state[ 0]; \
+ X##ba1 = state[ 1]; \
+ X##be0 = state[ 2]; \
+ X##be1 = state[ 3]; \
+ X##bi0 = state[ 4]; \
+ X##bi1 = state[ 5]; \
+ X##bo0 = state[ 6]; \
+ X##bo1 = state[ 7]; \
+ X##bu0 = state[ 8]; \
+ X##bu1 = state[ 9]; \
+ X##ga0 = state[10]; \
+ X##ga1 = state[11]; \
+ X##ge0 = state[12]; \
+ X##ge1 = state[13]; \
+ X##gi0 = state[14]; \
+ X##gi1 = state[15]; \
+ X##go0 = state[16]; \
+ X##go1 = state[17]; \
+ X##gu0 = state[18]; \
+ X##gu1 = state[19]; \
+ X##ka0 = state[20]; \
+ X##ka1 = state[21]; \
+ X##ke0 = state[22]; \
+ X##ke1 = state[23]; \
+ X##ki0 = state[24]; \
+ X##ki1 = state[25]; \
+ X##ko0 = state[26]; \
+ X##ko1 = state[27]; \
+ X##ku0 = state[28]; \
+ X##ku1 = state[29]; \
+ X##ma0 = state[30]; \
+ X##ma1 = state[31]; \
+ X##me0 = state[32]; \
+ X##me1 = state[33]; \
+ X##mi0 = state[34]; \
+ X##mi1 = state[35]; \
+ X##mo0 = state[36]; \
+ X##mo1 = state[37]; \
+ X##mu0 = state[38]; \
+ X##mu1 = state[39]; \
+ X##sa0 = state[40]; \
+ X##sa1 = state[41]; \
+ X##se0 = state[42]; \
+ X##se1 = state[43]; \
+ X##si0 = state[44]; \
+ X##si1 = state[45]; \
+ X##so0 = state[46]; \
+ X##so1 = state[47]; \
+ X##su0 = state[48]; \
+ X##su1 = state[49]; \
+
+#define copyToState(state, X) \
+ state[ 0] = X##ba0; \
+ state[ 1] = X##ba1; \
+ state[ 2] = X##be0; \
+ state[ 3] = X##be1; \
+ state[ 4] = X##bi0; \
+ state[ 5] = X##bi1; \
+ state[ 6] = X##bo0; \
+ state[ 7] = X##bo1; \
+ state[ 8] = X##bu0; \
+ state[ 9] = X##bu1; \
+ state[10] = X##ga0; \
+ state[11] = X##ga1; \
+ state[12] = X##ge0; \
+ state[13] = X##ge1; \
+ state[14] = X##gi0; \
+ state[15] = X##gi1; \
+ state[16] = X##go0; \
+ state[17] = X##go1; \
+ state[18] = X##gu0; \
+ state[19] = X##gu1; \
+ state[20] = X##ka0; \
+ state[21] = X##ka1; \
+ state[22] = X##ke0; \
+ state[23] = X##ke1; \
+ state[24] = X##ki0; \
+ state[25] = X##ki1; \
+ state[26] = X##ko0; \
+ state[27] = X##ko1; \
+ state[28] = X##ku0; \
+ state[29] = X##ku1; \
+ state[30] = X##ma0; \
+ state[31] = X##ma1; \
+ state[32] = X##me0; \
+ state[33] = X##me1; \
+ state[34] = X##mi0; \
+ state[35] = X##mi1; \
+ state[36] = X##mo0; \
+ state[37] = X##mo1; \
+ state[38] = X##mu0; \
+ state[39] = X##mu1; \
+ state[40] = X##sa0; \
+ state[41] = X##sa1; \
+ state[42] = X##se0; \
+ state[43] = X##se1; \
+ state[44] = X##si0; \
+ state[45] = X##si1; \
+ state[46] = X##so0; \
+ state[47] = X##so1; \
+ state[48] = X##su0; \
+ state[49] = X##su1; \
+
+#define copyStateVariables(X, Y) \
+ X##ba0 = Y##ba0; \
+ X##ba1 = Y##ba1; \
+ X##be0 = Y##be0; \
+ X##be1 = Y##be1; \
+ X##bi0 = Y##bi0; \
+ X##bi1 = Y##bi1; \
+ X##bo0 = Y##bo0; \
+ X##bo1 = Y##bo1; \
+ X##bu0 = Y##bu0; \
+ X##bu1 = Y##bu1; \
+ X##ga0 = Y##ga0; \
+ X##ga1 = Y##ga1; \
+ X##ge0 = Y##ge0; \
+ X##ge1 = Y##ge1; \
+ X##gi0 = Y##gi0; \
+ X##gi1 = Y##gi1; \
+ X##go0 = Y##go0; \
+ X##go1 = Y##go1; \
+ X##gu0 = Y##gu0; \
+ X##gu1 = Y##gu1; \
+ X##ka0 = Y##ka0; \
+ X##ka1 = Y##ka1; \
+ X##ke0 = Y##ke0; \
+ X##ke1 = Y##ke1; \
+ X##ki0 = Y##ki0; \
+ X##ki1 = Y##ki1; \
+ X##ko0 = Y##ko0; \
+ X##ko1 = Y##ko1; \
+ X##ku0 = Y##ku0; \
+ X##ku1 = Y##ku1; \
+ X##ma0 = Y##ma0; \
+ X##ma1 = Y##ma1; \
+ X##me0 = Y##me0; \
+ X##me1 = Y##me1; \
+ X##mi0 = Y##mi0; \
+ X##mi1 = Y##mi1; \
+ X##mo0 = Y##mo0; \
+ X##mo1 = Y##mo1; \
+ X##mu0 = Y##mu0; \
+ X##mu1 = Y##mu1; \
+ X##sa0 = Y##sa0; \
+ X##sa1 = Y##sa1; \
+ X##se0 = Y##se0; \
+ X##se1 = Y##se1; \
+ X##si0 = Y##si0; \
+ X##si1 = Y##si1; \
+ X##so0 = Y##so0; \
+ X##so1 = Y##so1; \
+ X##su0 = Y##su0; \
+ X##su1 = Y##su1; \
+
+
+#endif
\ No newline at end of file
diff --git a/Example/Pods/NACrypto/NACrypto/keccak/KeccakF-1600-32.h b/Example/Pods/NACrypto/NACrypto/keccak/KeccakF-1600-32.h
new file mode 100644
index 0000000..e62e8f0
--- /dev/null
+++ b/Example/Pods/NACrypto/NACrypto/keccak/KeccakF-1600-32.h
@@ -0,0 +1,26 @@
+/*
+The Keccak sponge function, designed by Guido Bertoni, Joan Daemen,
+Michaël Peeters and Gilles Van Assche. For more information, feedback or
+questions, please refer to our website: http://keccak.noekeon.org/
+
+Implementation by the designers,
+hereby denoted as "the implementer".
+
+To the extent possible under law, the implementer has waived all copyright
+and related or neighboring rights to the source code in this file.
+http://creativecommons.org/publicdomain/zero/1.0/
+*/
+
+#ifdef UseSchedule
+ #if (UseSchedule == 1)
+ #include "KeccakF-1600-32-s1.h"
+ #elif (UseSchedule == 2)
+ #include "KeccakF-1600-32-s2.h"
+ #elif (UseSchedule == 3)
+ #include "KeccakF-1600-32-rvk.h"
+ #else
+ #error "This schedule is not supported."
+ #endif
+#else
+ #include "KeccakF-1600-32-s1.h"
+#endif
diff --git a/Example/Pods/NACrypto/NACrypto/keccak/KeccakF-1600-int-set.h b/Example/Pods/NACrypto/NACrypto/keccak/KeccakF-1600-int-set.h
new file mode 100644
index 0000000..0ed1d80
--- /dev/null
+++ b/Example/Pods/NACrypto/NACrypto/keccak/KeccakF-1600-int-set.h
@@ -0,0 +1,6 @@
+#define ProvideFast576
+#define ProvideFast832
+#define ProvideFast1024
+#define ProvideFast1088
+#define ProvideFast1152
+#define ProvideFast1344
diff --git a/Example/Pods/NACrypto/NACrypto/keccak/KeccakF-1600-interface.h b/Example/Pods/NACrypto/NACrypto/keccak/KeccakF-1600-interface.h
new file mode 100644
index 0000000..a2c98f3
--- /dev/null
+++ b/Example/Pods/NACrypto/NACrypto/keccak/KeccakF-1600-interface.h
@@ -0,0 +1,51 @@
+/*
+The Keccak sponge function, designed by Guido Bertoni, Joan Daemen,
+Michaël Peeters and Gilles Van Assche. For more information, feedback or
+questions, please refer to our website: http://keccak.noekeon.org/
+
+Implementation by the designers,
+hereby denoted as "the implementer".
+
+To the extent possible under law, the implementer has waived all copyright
+and related or neighboring rights to the source code in this file.
+http://creativecommons.org/publicdomain/zero/1.0/
+*/
+
+#ifndef _KeccakPermutationInterface_h_
+#define _KeccakPermutationInterface_h_
+
+typedef unsigned char UINT8;
+typedef unsigned short UINT16;
+typedef unsigned int UINT32;
+typedef uint64_t UINT64;
+
+#include "KeccakF-1600-int-set.h"
+
+void KeccakInitialize( void );
+void KeccakInitializeState(unsigned char *state);
+void KeccakPermutation(unsigned char *state);
+#ifdef ProvideFast576
+void KeccakAbsorb576bits(unsigned char *state, const unsigned char *data);
+#endif
+#ifdef ProvideFast832
+void KeccakAbsorb832bits(unsigned char *state, const unsigned char *data);
+#endif
+#ifdef ProvideFast1024
+void KeccakAbsorb1024bits(unsigned char *state, const unsigned char *data);
+#endif
+#ifdef ProvideFast1088
+void KeccakAbsorb1088bits(unsigned char *state, const unsigned char *data);
+#endif
+#ifdef ProvideFast1152
+void KeccakAbsorb1152bits(unsigned char *state, const unsigned char *data);
+#endif
+#ifdef ProvideFast1344
+void KeccakAbsorb1344bits(unsigned char *state, const unsigned char *data);
+#endif
+void KeccakAbsorb(unsigned char *state, const unsigned char *data, unsigned int laneCount);
+#ifdef ProvideFast1024
+void KeccakExtract1024bits(const unsigned char *state, unsigned char *data);
+#endif
+void KeccakExtract(const unsigned char *state, unsigned char *data, unsigned int laneCount);
+
+#endif
diff --git a/Example/Pods/NACrypto/NACrypto/keccak/KeccakF-1600-opt32-settings.h b/Example/Pods/NACrypto/NACrypto/keccak/KeccakF-1600-opt32-settings.h
new file mode 100644
index 0000000..fa0d5e5
--- /dev/null
+++ b/Example/Pods/NACrypto/NACrypto/keccak/KeccakF-1600-opt32-settings.h
@@ -0,0 +1,6 @@
+#define Unrolling 2
+#define UseSchedule 3
+/*
+#define UseBebigokimisa
+#define UseInterleaveTables
+*/
diff --git a/Example/Pods/NACrypto/NACrypto/keccak/KeccakF-1600-opt32.c b/Example/Pods/NACrypto/NACrypto/keccak/KeccakF-1600-opt32.c
new file mode 100644
index 0000000..f00ba73
--- /dev/null
+++ b/Example/Pods/NACrypto/NACrypto/keccak/KeccakF-1600-opt32.c
@@ -0,0 +1,519 @@
+/*
+The Keccak sponge function, designed by Guido Bertoni, Joan Daemen,
+Michaël Peeters and Gilles Van Assche. For more information, feedback or
+questions, please refer to our website: http://keccak.noekeon.org/
+
+Implementation by the designers,
+hereby denoted as "the implementer".
+
+To the extent possible under law, the implementer has waived all copyright
+and related or neighboring rights to the source code in this file.
+http://creativecommons.org/publicdomain/zero/1.0/
+*/
+
+#include
+#include "brg_endian.h"
+#include "KeccakF-1600-opt32-settings.h"
+#include "KeccakF-1600-interface.h"
+
+#ifdef UseInterleaveTables
+static int interleaveTablesBuilt = 0;
+static UINT16 interleaveTable[65536];
+static UINT16 deinterleaveTable[65536];
+
+static void buildInterleaveTables()
+{
+ UINT32 i, j;
+ UINT16 x;
+
+ if (!interleaveTablesBuilt) {
+ for(i=0; i<65536; i++) {
+ x = 0;
+ for(j=0; j<16; j++) {
+ if (i & (1 << j))
+ x |= (1 << (j/2 + 8*(j%2)));
+ }
+ interleaveTable[i] = x;
+ deinterleaveTable[x] = (UINT16)i;
+ }
+ interleaveTablesBuilt = 1;
+ }
+}
+
+#if (PLATFORM_BYTE_ORDER == IS_LITTLE_ENDIAN)
+
+#define xor2bytesIntoInterleavedWords(even, odd, source, j) \
+ i##j = interleaveTable[((const UINT16*)source)[j]]; \
+ ((UINT8*)even)[j] ^= i##j & 0xFF; \
+ ((UINT8*)odd)[j] ^= i##j >> 8;
+
+#define setInterleavedWordsInto2bytes(dest, even, odd, j) \
+ d##j = deinterleaveTable[((even >> (j*8)) & 0xFF) ^ (((odd >> (j*8)) & 0xFF) << 8)]; \
+ ((UINT16*)dest)[j] = d##j;
+
+#else /* (PLATFORM_BYTE_ORDER == IS_BIG_ENDIAN) */
+
+#define xor2bytesIntoInterleavedWords(even, odd, source, j) \
+ i##j = interleaveTable[source[2*j] ^ ((UINT16)source[2*j+1] << 8)]; \
+ *even ^= (i##j & 0xFF) << (j*8); \
+ *odd ^= ((i##j >> 8) & 0xFF) << (j*8);
+
+#define setInterleavedWordsInto2bytes(dest, even, odd, j) \
+ d##j = deinterleaveTable[((even >> (j*8)) & 0xFF) ^ (((odd >> (j*8)) & 0xFF) << 8)]; \
+ dest[2*j] = d##j & 0xFF; \
+ dest[2*j+1] = d##j >> 8;
+
+#endif /* Endianness */
+
+static void xor8bytesIntoInterleavedWords(UINT32 *even, UINT32 *odd, const UINT8* source)
+{
+ UINT16 i0, i1, i2, i3;
+
+ xor2bytesIntoInterleavedWords(even, odd, source, 0)
+ xor2bytesIntoInterleavedWords(even, odd, source, 1)
+ xor2bytesIntoInterleavedWords(even, odd, source, 2)
+ xor2bytesIntoInterleavedWords(even, odd, source, 3)
+}
+
+#define xorLanesIntoState(laneCount, state, input) \
+ { \
+ int i; \
+ for(i=0; i<(laneCount); i++) \
+ xor8bytesIntoInterleavedWords(state+i*2, state+i*2+1, input+i*8); \
+ }
+
+static void setInterleavedWordsInto8bytes(UINT8* dest, UINT32 even, UINT32 odd)
+{
+ UINT16 d0, d1, d2, d3;
+
+ setInterleavedWordsInto2bytes(dest, even, odd, 0)
+ setInterleavedWordsInto2bytes(dest, even, odd, 1)
+ setInterleavedWordsInto2bytes(dest, even, odd, 2)
+ setInterleavedWordsInto2bytes(dest, even, odd, 3)
+}
+
+#define extractLanes(laneCount, state, data) \
+ { \
+ int i; \
+ for(i=0; i<(laneCount); i++) \
+ setInterleavedWordsInto8bytes(data+i*8, ((UINT32*)state)[i*2], ((UINT32*)state)[i*2+1]); \
+ }
+
+#else /* No interleaving tables */
+
+#if (PLATFORM_BYTE_ORDER == IS_LITTLE_ENDIAN)
+
+/* Credit: Henry S. Warren, Hacker's Delight, Addison-Wesley, 2002 */
+#define xorInterleavedLE(rateInLanes, state, input) \
+ { \
+ const UINT32 * pI = (const UINT32 *)input; \
+ UINT32 * pS = state; \
+ UINT32 t, x0, x1; \
+ int i; \
+ for (i = (rateInLanes)-1; i >= 0; --i) \
+ { \
+ x0 = *(pI++); \
+ t = (x0 ^ (x0 >> 1)) & 0x22222222UL; x0 = x0 ^ t ^ (t << 1); \
+ t = (x0 ^ (x0 >> 2)) & 0x0C0C0C0CUL; x0 = x0 ^ t ^ (t << 2); \
+ t = (x0 ^ (x0 >> 4)) & 0x00F000F0UL; x0 = x0 ^ t ^ (t << 4); \
+ t = (x0 ^ (x0 >> 8)) & 0x0000FF00UL; x0 = x0 ^ t ^ (t << 8); \
+ x1 = *(pI++); \
+ t = (x1 ^ (x1 >> 1)) & 0x22222222UL; x1 = x1 ^ t ^ (t << 1); \
+ t = (x1 ^ (x1 >> 2)) & 0x0C0C0C0CUL; x1 = x1 ^ t ^ (t << 2); \
+ t = (x1 ^ (x1 >> 4)) & 0x00F000F0UL; x1 = x1 ^ t ^ (t << 4); \
+ t = (x1 ^ (x1 >> 8)) & 0x0000FF00UL; x1 = x1 ^ t ^ (t << 8); \
+ *(pS++) ^= (UINT16)x0 | (x1 << 16); \
+ *(pS++) ^= (x0 >> 16) | (x1 & 0xFFFF0000); \
+ } \
+ }
+
+#define xorLanesIntoState(laneCount, state, input) \
+ xorInterleavedLE(laneCount, state, input)
+
+#else /* (PLATFORM_BYTE_ORDER == IS_BIG_ENDIAN) */
+
+/* Credit: Henry S. Warren, Hacker's Delight, Addison-Wesley, 2002 */
+UINT64 toInterleaving(UINT64 x)
+{
+ UINT64 t;
+
+ t = (x ^ (x >> 1)) & 0x2222222222222222ULL; x = x ^ t ^ (t << 1);
+ t = (x ^ (x >> 2)) & 0x0C0C0C0C0C0C0C0CULL; x = x ^ t ^ (t << 2);
+ t = (x ^ (x >> 4)) & 0x00F000F000F000F0ULL; x = x ^ t ^ (t << 4);
+ t = (x ^ (x >> 8)) & 0x0000FF000000FF00ULL; x = x ^ t ^ (t << 8);
+ t = (x ^ (x >> 16)) & 0x00000000FFFF0000ULL; x = x ^ t ^ (t << 16);
+
+ return x;
+}
+
+static void xor8bytesIntoInterleavedWords(UINT32* evenAndOdd, const UINT8* source)
+{
+ /* This can be optimized */
+ UINT64 sourceWord =
+ (UINT64)source[0]
+ ^ (((UINT64)source[1]) << 8)
+ ^ (((UINT64)source[2]) << 16)
+ ^ (((UINT64)source[3]) << 24)
+ ^ (((UINT64)source[4]) << 32)
+ ^ (((UINT64)source[5]) << 40)
+ ^ (((UINT64)source[6]) << 48)
+ ^ (((UINT64)source[7]) << 56);
+ UINT64 evenAndOddWord = toInterleaving(sourceWord);
+ evenAndOdd[0] ^= (UINT32)evenAndOddWord;
+ evenAndOdd[1] ^= (UINT32)(evenAndOddWord >> 32);
+}
+
+#define xorLanesIntoState(laneCount, state, input) \
+ { \
+ int i; \
+ for(i=0; i<(laneCount); i++) \
+ xor8bytesIntoInterleavedWords(state+i*2, input+i*8); \
+ }
+
+#endif /* Endianness */
+
+/* Credit: Henry S. Warren, Hacker's Delight, Addison-Wesley, 2002 */
+UINT64 fromInterleaving(UINT64 x)
+{
+ UINT64 t;
+
+ t = (x ^ (x >> 16)) & 0x00000000FFFF0000ULL; x = x ^ t ^ (t << 16);
+ t = (x ^ (x >> 8)) & 0x0000FF000000FF00ULL; x = x ^ t ^ (t << 8);
+ t = (x ^ (x >> 4)) & 0x00F000F000F000F0ULL; x = x ^ t ^ (t << 4);
+ t = (x ^ (x >> 2)) & 0x0C0C0C0C0C0C0C0CULL; x = x ^ t ^ (t << 2);
+ t = (x ^ (x >> 1)) & 0x2222222222222222ULL; x = x ^ t ^ (t << 1);
+
+ return x;
+}
+
+static void setInterleavedWordsInto8bytes(UINT8* dest, UINT32* evenAndOdd)
+{
+#if (PLATFORM_BYTE_ORDER == IS_LITTLE_ENDIAN)
+ ((UINT64*)dest)[0] = fromInterleaving(*(UINT64*)evenAndOdd);
+#else /* (PLATFORM_BYTE_ORDER == IS_BIG_ENDIAN) */
+ /* This can be optimized */
+ UINT64 evenAndOddWord = (UINT64)evenAndOdd[0] ^ ((UINT64)evenAndOdd[1] << 32);
+ UINT64 destWord = fromInterleaving(evenAndOddWord);
+ dest[0] = destWord & 0xFF;
+ dest[1] = (destWord >> 8) & 0xFF;
+ dest[2] = (destWord >> 16) & 0xFF;
+ dest[3] = (destWord >> 24) & 0xFF;
+ dest[4] = (destWord >> 32) & 0xFF;
+ dest[5] = (destWord >> 40) & 0xFF;
+ dest[6] = (destWord >> 48) & 0xFF;
+ dest[7] = (destWord >> 56) & 0xFF;
+#endif /* Endianness */
+}
+
+#define extractLanes(laneCount, state, data) \
+ { \
+ int i; \
+ for(i=0; i<(laneCount); i++) \
+ setInterleavedWordsInto8bytes(data+i*8, (UINT32*)state+i*2); \
+ }
+
+#endif /* With or without interleaving tables */
+
+#if defined(_MSC_VER)
+#define ROL32(a, offset) _rotl(a, offset)
+#elif (defined (__arm__) && defined(__ARMCC_VERSION))
+#define ROL32(a, offset) __ror(a, 32-(offset))
+#else
+#define ROL32(a, offset) ((((UINT32)a) << (offset)) ^ (((UINT32)a) >> (32-(offset))))
+#endif
+
+#include "KeccakF-1600-unrolling.h"
+#include "KeccakF-1600-32.h"
+
+#if (UseSchedule == 3)
+
+#ifdef UseBebigokimisa
+#error "No lane complementing with schedule 3."
+#endif
+
+#if (Unrolling != 2)
+#error "Only unrolling 2 is supported by schedule 3."
+#endif
+
+static void KeccakPermutationOnWords(UINT32 *state)
+{
+ rounds
+}
+
+static void KeccakPermutationOnWordsAfterXoring(UINT32 *state, const UINT8 *input, unsigned int laneCount)
+{
+ xorLanesIntoState(laneCount, state, input)
+ rounds
+}
+
+#ifdef ProvideFast576
+static void KeccakPermutationOnWordsAfterXoring576bits(UINT32 *state, const UINT8 *input)
+{
+ xorLanesIntoState(9, state, input)
+ rounds
+}
+#endif
+
+#ifdef ProvideFast832
+static void KeccakPermutationOnWordsAfterXoring832bits(UINT32 *state, const UINT8 *input)
+{
+ xorLanesIntoState(13, state, input)
+ rounds
+}
+#endif
+
+#ifdef ProvideFast1024
+static void KeccakPermutationOnWordsAfterXoring1024bits(UINT32 *state, const UINT8 *input)
+{
+ xorLanesIntoState(16, state, input)
+ rounds
+}
+#endif
+
+#ifdef ProvideFast1088
+static void KeccakPermutationOnWordsAfterXoring1088bits(UINT32 *state, const UINT8 *input)
+{
+ xorLanesIntoState(17, state, input)
+ rounds
+}
+#endif
+
+#ifdef ProvideFast1152
+static void KeccakPermutationOnWordsAfterXoring1152bits(UINT32 *state, const UINT8 *input)
+{
+ xorLanesIntoState(18, state, input)
+ rounds
+}
+#endif
+
+#ifdef ProvideFast1344
+static void KeccakPermutationOnWordsAfterXoring1344bits(UINT32 *state, const UINT8 *input)
+{
+ xorLanesIntoState(21, state, input)
+ rounds
+}
+#endif
+
+#else /* (Schedule != 3) */
+
+static void KeccakPermutationOnWords(UINT32 *state)
+{
+ declareABCDE
+#if (Unrolling != 24)
+ unsigned int i;
+#endif
+
+ copyFromState(A, state)
+ rounds
+}
+
+static void KeccakPermutationOnWordsAfterXoring(UINT32 *state, const UINT8 *input, unsigned int laneCount)
+{
+ declareABCDE
+ unsigned int i;
+
+ xorLanesIntoState(laneCount, state, input)
+ copyFromState(A, state)
+ rounds
+}
+
+#ifdef ProvideFast576
+static void KeccakPermutationOnWordsAfterXoring576bits(UINT32 *state, const UINT8 *input)
+{
+ declareABCDE
+ unsigned int i;
+
+ xorLanesIntoState(9, state, input)
+ copyFromState(A, state)
+ rounds
+}
+#endif
+
+#ifdef ProvideFast832
+static void KeccakPermutationOnWordsAfterXoring832bits(UINT32 *state, const UINT8 *input)
+{
+ declareABCDE
+ unsigned int i;
+
+ xorLanesIntoState(13, state, input)
+ copyFromState(A, state)
+ rounds
+}
+#endif
+
+#ifdef ProvideFast1024
+static void KeccakPermutationOnWordsAfterXoring1024bits(UINT32 *state, const UINT8 *input)
+{
+ declareABCDE
+ unsigned int i;
+
+ xorLanesIntoState(16, state, input)
+ copyFromState(A, state)
+ rounds
+}
+#endif
+
+#ifdef ProvideFast1088
+static void KeccakPermutationOnWordsAfterXoring1088bits(UINT32 *state, const UINT8 *input)
+{
+ declareABCDE
+ unsigned int i;
+
+ xorLanesIntoState(17, state, input)
+ copyFromState(A, state)
+ rounds
+}
+#endif
+
+#ifdef ProvideFast1152
+static void KeccakPermutationOnWordsAfterXoring1152bits(UINT32 *state, const UINT8 *input)
+{
+ declareABCDE
+ unsigned int i;
+
+ xorLanesIntoState(18, state, input)
+ copyFromState(A, state)
+ rounds
+}
+#endif
+
+#ifdef ProvideFast1344
+static void KeccakPermutationOnWordsAfterXoring1344bits(UINT32 *state, const UINT8 *input)
+{
+ declareABCDE
+ unsigned int i;
+
+ xorLanesIntoState(21, state, input)
+ copyFromState(A, state)
+ rounds
+}
+#endif
+
+#endif
+
+void KeccakInitialize()
+{
+#ifdef UseInterleaveTables
+ buildInterleaveTables();
+#endif
+}
+
+void KeccakInitializeState(unsigned char *state)
+{
+ memset(state, 0, 200);
+#ifdef UseBebigokimisa
+ ((UINT32*)state)[ 2] = ~(UINT32)0;
+ ((UINT32*)state)[ 3] = ~(UINT32)0;
+ ((UINT32*)state)[ 4] = ~(UINT32)0;
+ ((UINT32*)state)[ 5] = ~(UINT32)0;
+ ((UINT32*)state)[16] = ~(UINT32)0;
+ ((UINT32*)state)[17] = ~(UINT32)0;
+ ((UINT32*)state)[24] = ~(UINT32)0;
+ ((UINT32*)state)[25] = ~(UINT32)0;
+ ((UINT32*)state)[34] = ~(UINT32)0;
+ ((UINT32*)state)[35] = ~(UINT32)0;
+ ((UINT32*)state)[40] = ~(UINT32)0;
+ ((UINT32*)state)[41] = ~(UINT32)0;
+#endif
+}
+
+void KeccakPermutation(unsigned char *state)
+{
+ /* We assume the state is always stored as interleaved 32-bit words */
+ KeccakPermutationOnWords((UINT32*)state);
+}
+
+#ifdef ProvideFast576
+void KeccakAbsorb576bits(unsigned char *state, const unsigned char *data)
+{
+ KeccakPermutationOnWordsAfterXoring576bits((UINT32*)state, data);
+}
+#endif
+
+#ifdef ProvideFast832
+void KeccakAbsorb832bits(unsigned char *state, const unsigned char *data)
+{
+ KeccakPermutationOnWordsAfterXoring832bits((UINT32*)state, data);
+}
+#endif
+
+#ifdef ProvideFast1024
+void KeccakAbsorb1024bits(unsigned char *state, const unsigned char *data)
+{
+ KeccakPermutationOnWordsAfterXoring1024bits((UINT32*)state, data);
+}
+#endif
+
+#ifdef ProvideFast1088
+void KeccakAbsorb1088bits(unsigned char *state, const unsigned char *data)
+{
+ KeccakPermutationOnWordsAfterXoring1088bits((UINT32*)state, data);
+}
+#endif
+
+#ifdef ProvideFast1152
+void KeccakAbsorb1152bits(unsigned char *state, const unsigned char *data)
+{
+ KeccakPermutationOnWordsAfterXoring1152bits((UINT32*)state, data);
+}
+#endif
+
+#ifdef ProvideFast1344
+void KeccakAbsorb1344bits(unsigned char *state, const unsigned char *data)
+{
+ KeccakPermutationOnWordsAfterXoring1344bits((UINT32*)state, data);
+}
+#endif
+
+void KeccakAbsorb(unsigned char *state, const unsigned char *data, unsigned int laneCount)
+{
+ KeccakPermutationOnWordsAfterXoring((UINT32*)state, data, laneCount);
+}
+
+#ifdef ProvideFast1024
+void KeccakExtract1024bits(const unsigned char *state, unsigned char *data)
+{
+ extractLanes(16, state, data)
+#ifdef UseBebigokimisa
+ ((UINT32*)data)[ 2] = ~((UINT32*)data)[ 2];
+ ((UINT32*)data)[ 3] = ~((UINT32*)data)[ 3];
+ ((UINT32*)data)[ 4] = ~((UINT32*)data)[ 4];
+ ((UINT32*)data)[ 5] = ~((UINT32*)data)[ 5];
+ ((UINT32*)data)[16] = ~((UINT32*)data)[16];
+ ((UINT32*)data)[17] = ~((UINT32*)data)[17];
+ ((UINT32*)data)[24] = ~((UINT32*)data)[24];
+ ((UINT32*)data)[25] = ~((UINT32*)data)[25];
+#endif
+}
+#endif
+
+void KeccakExtract(const unsigned char *state, unsigned char *data, unsigned int laneCount)
+{
+ extractLanes(laneCount, state, data)
+#ifdef UseBebigokimisa
+ if (laneCount > 1) {
+ ((UINT32*)data)[ 2] = ~((UINT32*)data)[ 2];
+ ((UINT32*)data)[ 3] = ~((UINT32*)data)[ 3];
+ if (laneCount > 2) {
+ ((UINT32*)data)[ 4] = ~((UINT32*)data)[ 4];
+ ((UINT32*)data)[ 5] = ~((UINT32*)data)[ 5];
+ if (laneCount > 8) {
+ ((UINT32*)data)[16] = ~((UINT32*)data)[16];
+ ((UINT32*)data)[17] = ~((UINT32*)data)[17];
+ if (laneCount > 12) {
+ ((UINT32*)data)[24] = ~((UINT32*)data)[24];
+ ((UINT32*)data)[25] = ~((UINT32*)data)[25];
+ if (laneCount > 17) {
+ ((UINT32*)data)[34] = ~((UINT32*)data)[34];
+ ((UINT32*)data)[35] = ~((UINT32*)data)[35];
+ if (laneCount > 20) {
+ ((UINT32*)data)[40] = ~((UINT32*)data)[40];
+ ((UINT32*)data)[41] = ~((UINT32*)data)[41];
+ }
+ }
+ }
+ }
+ }
+ }
+#endif
+}
diff --git a/Example/Pods/NACrypto/NACrypto/keccak/KeccakF-1600-unrolling.h b/Example/Pods/NACrypto/NACrypto/keccak/KeccakF-1600-unrolling.h
new file mode 100644
index 0000000..c2de385
--- /dev/null
+++ b/Example/Pods/NACrypto/NACrypto/keccak/KeccakF-1600-unrolling.h
@@ -0,0 +1,128 @@
+/*
+The Keccak sponge function, designed by Guido Bertoni, Joan Daemen,
+Michaël Peeters and Gilles Van Assche. For more information, feedback or
+questions, please refer to our website: http://keccak.noekeon.org/
+
+Implementation by the designers,
+hereby denoted as "the implementer".
+
+To the extent possible under law, the implementer has waived all copyright
+and related or neighboring rights to the source code in this file.
+http://creativecommons.org/publicdomain/zero/1.0/
+*/
+#ifndef _Keccak1600_unrolling_h_
+#define _Keccak1600_unrolling_h_
+
+#if (Unrolling == 24)
+#define rounds \
+ prepareTheta \
+ thetaRhoPiChiIotaPrepareTheta( 0, A, E) \
+ thetaRhoPiChiIotaPrepareTheta( 1, E, A) \
+ thetaRhoPiChiIotaPrepareTheta( 2, A, E) \
+ thetaRhoPiChiIotaPrepareTheta( 3, E, A) \
+ thetaRhoPiChiIotaPrepareTheta( 4, A, E) \
+ thetaRhoPiChiIotaPrepareTheta( 5, E, A) \
+ thetaRhoPiChiIotaPrepareTheta( 6, A, E) \
+ thetaRhoPiChiIotaPrepareTheta( 7, E, A) \
+ thetaRhoPiChiIotaPrepareTheta( 8, A, E) \
+ thetaRhoPiChiIotaPrepareTheta( 9, E, A) \
+ thetaRhoPiChiIotaPrepareTheta(10, A, E) \
+ thetaRhoPiChiIotaPrepareTheta(11, E, A) \
+ thetaRhoPiChiIotaPrepareTheta(12, A, E) \
+ thetaRhoPiChiIotaPrepareTheta(13, E, A) \
+ thetaRhoPiChiIotaPrepareTheta(14, A, E) \
+ thetaRhoPiChiIotaPrepareTheta(15, E, A) \
+ thetaRhoPiChiIotaPrepareTheta(16, A, E) \
+ thetaRhoPiChiIotaPrepareTheta(17, E, A) \
+ thetaRhoPiChiIotaPrepareTheta(18, A, E) \
+ thetaRhoPiChiIotaPrepareTheta(19, E, A) \
+ thetaRhoPiChiIotaPrepareTheta(20, A, E) \
+ thetaRhoPiChiIotaPrepareTheta(21, E, A) \
+ thetaRhoPiChiIotaPrepareTheta(22, A, E) \
+ thetaRhoPiChiIota(23, E, A) \
+ copyToState(state, A)
+#elif (Unrolling == 12)
+#define rounds \
+ prepareTheta \
+ for(i=0; i<24; i+=12) { \
+ thetaRhoPiChiIotaPrepareTheta(i , A, E) \
+ thetaRhoPiChiIotaPrepareTheta(i+ 1, E, A) \
+ thetaRhoPiChiIotaPrepareTheta(i+ 2, A, E) \
+ thetaRhoPiChiIotaPrepareTheta(i+ 3, E, A) \
+ thetaRhoPiChiIotaPrepareTheta(i+ 4, A, E) \
+ thetaRhoPiChiIotaPrepareTheta(i+ 5, E, A) \
+ thetaRhoPiChiIotaPrepareTheta(i+ 6, A, E) \
+ thetaRhoPiChiIotaPrepareTheta(i+ 7, E, A) \
+ thetaRhoPiChiIotaPrepareTheta(i+ 8, A, E) \
+ thetaRhoPiChiIotaPrepareTheta(i+ 9, E, A) \
+ thetaRhoPiChiIotaPrepareTheta(i+10, A, E) \
+ thetaRhoPiChiIotaPrepareTheta(i+11, E, A) \
+ } \
+ copyToState(state, A)
+#elif (Unrolling == 8)
+#define rounds \
+ prepareTheta \
+ for(i=0; i<24; i+=8) { \
+ thetaRhoPiChiIotaPrepareTheta(i , A, E) \
+ thetaRhoPiChiIotaPrepareTheta(i+1, E, A) \
+ thetaRhoPiChiIotaPrepareTheta(i+2, A, E) \
+ thetaRhoPiChiIotaPrepareTheta(i+3, E, A) \
+ thetaRhoPiChiIotaPrepareTheta(i+4, A, E) \
+ thetaRhoPiChiIotaPrepareTheta(i+5, E, A) \
+ thetaRhoPiChiIotaPrepareTheta(i+6, A, E) \
+ thetaRhoPiChiIotaPrepareTheta(i+7, E, A) \
+ } \
+ copyToState(state, A)
+#elif (Unrolling == 6)
+#define rounds \
+ prepareTheta \
+ for(i=0; i<24; i+=6) { \
+ thetaRhoPiChiIotaPrepareTheta(i , A, E) \
+ thetaRhoPiChiIotaPrepareTheta(i+1, E, A) \
+ thetaRhoPiChiIotaPrepareTheta(i+2, A, E) \
+ thetaRhoPiChiIotaPrepareTheta(i+3, E, A) \
+ thetaRhoPiChiIotaPrepareTheta(i+4, A, E) \
+ thetaRhoPiChiIotaPrepareTheta(i+5, E, A) \
+ } \
+ copyToState(state, A)
+#elif (Unrolling == 4)
+#define rounds \
+ prepareTheta \
+ for(i=0; i<24; i+=4) { \
+ thetaRhoPiChiIotaPrepareTheta(i , A, E) \
+ thetaRhoPiChiIotaPrepareTheta(i+1, E, A) \
+ thetaRhoPiChiIotaPrepareTheta(i+2, A, E) \
+ thetaRhoPiChiIotaPrepareTheta(i+3, E, A) \
+ } \
+ copyToState(state, A)
+#elif (Unrolling == 3)
+#define rounds \
+ prepareTheta \
+ for(i=0; i<24; i+=3) { \
+ thetaRhoPiChiIotaPrepareTheta(i , A, E) \
+ thetaRhoPiChiIotaPrepareTheta(i+1, E, A) \
+ thetaRhoPiChiIotaPrepareTheta(i+2, A, E) \
+ copyStateVariables(A, E) \
+ } \
+ copyToState(state, A)
+#elif (Unrolling == 2)
+#define rounds \
+ prepareTheta \
+ for(i=0; i<24; i+=2) { \
+ thetaRhoPiChiIotaPrepareTheta(i , A, E) \
+ thetaRhoPiChiIotaPrepareTheta(i+1, E, A) \
+ } \
+ copyToState(state, A)
+#elif (Unrolling == 1)
+#define rounds \
+ prepareTheta \
+ for(i=0; i<24; i++) { \
+ thetaRhoPiChiIotaPrepareTheta(i , A, E) \
+ copyStateVariables(A, E) \
+ } \
+ copyToState(state, A)
+#else
+#error "Unrolling is not correctly specified!"
+#endif
+
+#endif
\ No newline at end of file
diff --git a/Example/Pods/NACrypto/NACrypto/keccak/KeccakNISTInterface.c b/Example/Pods/NACrypto/NACrypto/keccak/KeccakNISTInterface.c
new file mode 100644
index 0000000..ee6d2cc
--- /dev/null
+++ b/Example/Pods/NACrypto/NACrypto/keccak/KeccakNISTInterface.c
@@ -0,0 +1,83 @@
+/*
+The Keccak sponge function, designed by Guido Bertoni, Joan Daemen,
+Michaël Peeters and Gilles Van Assche. For more information, feedback or
+questions, please refer to our website: http://keccak.noekeon.org/
+
+Implementation by the designers,
+hereby denoted as "the implementer".
+
+To the extent possible under law, the implementer has waived all copyright
+and related or neighboring rights to the source code in this file.
+http://creativecommons.org/publicdomain/zero/1.0/
+*/
+
+#include
+#include "KeccakNISTInterface.h"
+#include "KeccakF-1600-interface.h"
+
+HashReturn Init(hashState *state, int hashbitlen)
+{
+ switch(hashbitlen) {
+ case 0: /* Default parameters, arbitrary length output */
+ InitSponge((spongeState*)state, 1024, 576);
+ break;
+ case 224:
+ InitSponge((spongeState*)state, 1152, 448);
+ break;
+ case 256:
+ InitSponge((spongeState*)state, 1088, 512);
+ break;
+ case 384:
+ InitSponge((spongeState*)state, 832, 768);
+ break;
+ case 512:
+ InitSponge((spongeState*)state, 576, 1024);
+ break;
+ default:
+ return BAD_HASHLEN;
+ }
+ state->fixedOutputLength = hashbitlen;
+ return SUCCESS;
+}
+
+HashReturn Update(hashState *state, const BitSequence *data, DataLength databitlen)
+{
+ if ((databitlen % 8) == 0)
+ return Absorb((spongeState*)state, data, databitlen);
+ else {
+ HashReturn ret = Absorb((spongeState*)state, data, databitlen - (databitlen % 8));
+ if (ret == SUCCESS) {
+ unsigned char lastByte;
+ /* Align the last partial byte to the least significant bits */
+ lastByte = data[databitlen/8] >> (8 - (databitlen % 8));
+ return Absorb((spongeState*)state, &lastByte, databitlen % 8);
+ }
+ else
+ return ret;
+ }
+}
+
+HashReturn Final(hashState *state, BitSequence *hashval)
+{
+ return Squeeze(state, hashval, state->fixedOutputLength);
+}
+
+/*
+static HashReturn Hash(int hashbitlen, const BitSequence *data, DataLength databitlen, BitSequence *hashval)
+{
+ hashState state;
+ HashReturn result;
+
+ if ((hashbitlen != 224) && (hashbitlen != 256) && (hashbitlen != 384) && (hashbitlen != 512))
+ return BAD_HASHLEN; * Only the four fixed output lengths available through this API *
+ result = Init(&state, hashbitlen);
+ if (result != SUCCESS)
+ return result;
+ result = Update(&state, data, databitlen);
+ if (result != SUCCESS)
+ return result;
+ result = Final(&state, hashval);
+ return result;
+}
+*/
+
diff --git a/Example/Pods/NACrypto/NACrypto/keccak/KeccakNISTInterface.h b/Example/Pods/NACrypto/NACrypto/keccak/KeccakNISTInterface.h
new file mode 100644
index 0000000..13d127c
--- /dev/null
+++ b/Example/Pods/NACrypto/NACrypto/keccak/KeccakNISTInterface.h
@@ -0,0 +1,72 @@
+/*
+The Keccak sponge function, designed by Guido Bertoni, Joan Daemen,
+Michaël Peeters and Gilles Van Assche. For more information, feedback or
+questions, please refer to our website: http://keccak.noekeon.org/
+
+Implementation by the designers,
+hereby denoted as "the implementer".
+
+To the extent possible under law, the implementer has waived all copyright
+and related or neighboring rights to the source code in this file.
+http://creativecommons.org/publicdomain/zero/1.0/
+*/
+
+#ifndef _KeccakNISTInterface_h_
+#define _KeccakNISTInterface_h_
+
+#include "KeccakSponge.h"
+
+typedef unsigned char BitSequence;
+typedef unsigned long long DataLength;
+typedef enum { SUCCESS = 0, FAIL = 1, BAD_HASHLEN = 2 } HashReturn;
+
+typedef spongeState hashState;
+
+/**
+ * Function to initialize the state of the Keccak[r, c] sponge function.
+ * The rate r and capacity c values are determined from @a hashbitlen.
+ * @param state Pointer to the state of the sponge function to be initialized.
+ * @param hashbitlen The desired number of output bits,
+ * or 0 for Keccak[] with default parameters
+ * and arbitrarily-long output.
+ * @pre The value of hashbitlen must be one of 0, 224, 256, 384 and 512.
+ * @return SUCCESS if successful, BAD_HASHLEN if the value of hashbitlen is incorrect.
+ */
+HashReturn Init(hashState *state, int hashbitlen);
+/**
+ * Function to give input data for the sponge function to absorb.
+ * @param state Pointer to the state of the sponge function initialized by Init().
+ * @param data Pointer to the input data.
+ * When @a databitLen is not a multiple of 8, the last bits of data must be
+ * in the most significant bits of the last byte.
+ * @param databitLen The number of input bits provided in the input data.
+ * @pre In the previous call to Absorb(), databitLen was a multiple of 8.
+ * @return SUCCESS if successful, FAIL otherwise.
+ */
+HashReturn Update(hashState *state, const BitSequence *data, DataLength databitlen);
+/**
+ * Function to squeeze output data from the sponge function.
+ * If @a hashbitlen was not 0 in the call to Init(), the number of output bits is equal to @a hashbitlen.
+ * If @a hashbitlen was 0 in the call to Init(), the output bits must be extracted using the Squeeze() function.
+ * @param state Pointer to the state of the sponge function initialized by Init().
+ * @param hashval Pointer to the buffer where to store the output data.
+ * @return SUCCESS if successful, FAIL otherwise.
+ */
+HashReturn Final(hashState *state, BitSequence *hashval);
+/**
+ * Function to compute a hash using the Keccak[r, c] sponge function.
+ * The rate r and capacity c values are determined from @a hashbitlen.
+ * @param hashbitlen The desired number of output bits.
+ * @param data Pointer to the input data.
+ * When @a databitLen is not a multiple of 8, the last bits of data must be
+ * in the most significant bits of the last byte.
+ * @param databitLen The number of input bits provided in the input data.
+ * @param hashval Pointer to the buffer where to store the output data.
+ * @pre The value of hashbitlen must be one of 224, 256, 384 and 512.
+ * @return SUCCESS if successful, BAD_HASHLEN if the value of hashbitlen is incorrect.
+ */
+/*
+static HashReturn Hash(int hashbitlen, const BitSequence *data, DataLength databitlen, BitSequence *hashval);
+*/
+
+#endif
diff --git a/Example/Pods/NACrypto/NACrypto/keccak/KeccakSponge.c b/Example/Pods/NACrypto/NACrypto/keccak/KeccakSponge.c
new file mode 100644
index 0000000..75773d0
--- /dev/null
+++ b/Example/Pods/NACrypto/NACrypto/keccak/KeccakSponge.c
@@ -0,0 +1,266 @@
+/*
+The Keccak sponge function, designed by Guido Bertoni, Joan Daemen,
+Michaël Peeters and Gilles Van Assche. For more information, feedback or
+questions, please refer to our website: http://keccak.noekeon.org/
+
+Implementation by the designers,
+hereby denoted as "the implementer".
+
+To the extent possible under law, the implementer has waived all copyright
+and related or neighboring rights to the source code in this file.
+http://creativecommons.org/publicdomain/zero/1.0/
+*/
+
+#include
+#include "KeccakSponge.h"
+#include "KeccakF-1600-interface.h"
+#ifdef KeccakReference
+#include "displayIntermediateValues.h"
+#endif
+
+int InitSponge(spongeState *state, unsigned int rate, unsigned int capacity)
+{
+ if (rate+capacity != 1600)
+ return 1;
+ if ((rate <= 0) || (rate >= 1600) || ((rate % 64) != 0))
+ return 1;
+ KeccakInitialize();
+ state->rate = rate;
+ state->capacity = capacity;
+ state->fixedOutputLength = 0;
+ KeccakInitializeState(state->state);
+ memset(state->dataQueue, 0, KeccakMaximumRateInBytes);
+ state->bitsInQueue = 0;
+ state->squeezing = 0;
+ state->bitsAvailableForSqueezing = 0;
+
+ return 0;
+}
+
+static void AbsorbQueue(spongeState *state)
+{
+ /* state->bitsInQueue is assumed to be equal to state->rate */
+ #ifdef KeccakReference
+ displayBytes(1, "Block to be absorbed", state->dataQueue, state->rate/8);
+ #endif
+#ifdef ProvideFast576
+ if (state->rate == 576)
+ KeccakAbsorb576bits(state->state, state->dataQueue);
+ else
+#endif
+#ifdef ProvideFast832
+ if (state->rate == 832)
+ KeccakAbsorb832bits(state->state, state->dataQueue);
+ else
+#endif
+#ifdef ProvideFast1024
+ if (state->rate == 1024)
+ KeccakAbsorb1024bits(state->state, state->dataQueue);
+ else
+#endif
+#ifdef ProvideFast1088
+ if (state->rate == 1088)
+ KeccakAbsorb1088bits(state->state, state->dataQueue);
+ else
+#endif
+#ifdef ProvideFast1152
+ if (state->rate == 1152)
+ KeccakAbsorb1152bits(state->state, state->dataQueue);
+ else
+#endif
+#ifdef ProvideFast1344
+ if (state->rate == 1344)
+ KeccakAbsorb1344bits(state->state, state->dataQueue);
+ else
+#endif
+ KeccakAbsorb(state->state, state->dataQueue, state->rate/64);
+ state->bitsInQueue = 0;
+}
+
+int Absorb(spongeState *state, const unsigned char *data, unsigned long long databitlen)
+{
+ unsigned long long i, j, wholeBlocks;
+ unsigned int partialBlock, partialByte;
+ const unsigned char *curData;
+
+ if ((state->bitsInQueue % 8) != 0)
+ return 1; /* Only the last call may contain a partial byte */
+ if (state->squeezing)
+ return 1; /* Too late for additional input */
+
+ i = 0;
+ while(i < databitlen) {
+ if ((state->bitsInQueue == 0) && (databitlen >= state->rate) && (i <= (databitlen-state->rate))) {
+ wholeBlocks = (databitlen-i)/state->rate;
+ curData = data+i/8;
+#ifdef ProvideFast576
+ if (state->rate == 576) {
+ for(j=0; jrate/8);
+ #endif
+ KeccakAbsorb576bits(state->state, curData);
+ }
+ }
+ else
+#endif
+#ifdef ProvideFast832
+ if (state->rate == 832) {
+ for(j=0; jrate/8);
+ #endif
+ KeccakAbsorb832bits(state->state, curData);
+ }
+ }
+ else
+#endif
+#ifdef ProvideFast1024
+ if (state->rate == 1024) {
+ for(j=0; jrate/8);
+ #endif
+ KeccakAbsorb1024bits(state->state, curData);
+ }
+ }
+ else
+#endif
+#ifdef ProvideFast1088
+ if (state->rate == 1088) {
+ for(j=0; jrate/8);
+ #endif
+ KeccakAbsorb1088bits(state->state, curData);
+ }
+ }
+ else
+#endif
+#ifdef ProvideFast1152
+ if (state->rate == 1152) {
+ for(j=0; jrate/8);
+ #endif
+ KeccakAbsorb1152bits(state->state, curData);
+ }
+ }
+ else
+#endif
+#ifdef ProvideFast1344
+ if (state->rate == 1344) {
+ for(j=0; jrate/8);
+ #endif
+ KeccakAbsorb1344bits(state->state, curData);
+ }
+ }
+ else
+#endif
+ {
+ for(j=0; jrate/8) {
+ #ifdef KeccakReference
+ displayBytes(1, "Block to be absorbed", curData, state->rate/8);
+ #endif
+ KeccakAbsorb(state->state, curData, state->rate/64);
+ }
+ }
+ i += wholeBlocks*state->rate;
+ }
+ else {
+ partialBlock = (unsigned int)(databitlen - i);
+ if (partialBlock+state->bitsInQueue > state->rate)
+ partialBlock = state->rate-state->bitsInQueue;
+ partialByte = partialBlock % 8;
+ partialBlock -= partialByte;
+ memcpy(state->dataQueue+state->bitsInQueue/8, data+i/8, partialBlock/8);
+ state->bitsInQueue += partialBlock;
+ i += partialBlock;
+ if (state->bitsInQueue == state->rate)
+ AbsorbQueue(state);
+ if (partialByte > 0) {
+ unsigned char mask = (1 << partialByte)-1;
+ state->dataQueue[state->bitsInQueue/8] = data[i/8] & mask;
+ state->bitsInQueue += partialByte;
+ i += partialByte;
+ }
+ }
+ }
+ return 0;
+}
+
+static void PadAndSwitchToSqueezingPhase(spongeState *state)
+{
+ /* Note: the bits are numbered from 0=LSB to 7=MSB */
+ if (state->bitsInQueue + 1 == state->rate) {
+ state->dataQueue[state->bitsInQueue/8 ] |= 1 << (state->bitsInQueue % 8);
+ AbsorbQueue(state);
+ memset(state->dataQueue, 0, state->rate/8);
+ }
+ else {
+ memset(state->dataQueue + (state->bitsInQueue+7)/8, 0, state->rate/8 - (state->bitsInQueue+7)/8);
+ state->dataQueue[state->bitsInQueue/8 ] |= 1 << (state->bitsInQueue % 8);
+ }
+ state->dataQueue[(state->rate-1)/8] |= 1 << ((state->rate-1) % 8);
+ AbsorbQueue(state);
+
+ #ifdef KeccakReference
+ displayText(1, "--- Switching to squeezing phase ---");
+ #endif
+#ifdef ProvideFast1024
+ if (state->rate == 1024) {
+ KeccakExtract1024bits(state->state, state->dataQueue);
+ state->bitsAvailableForSqueezing = 1024;
+ }
+ else
+#endif
+ {
+ KeccakExtract(state->state, state->dataQueue, state->rate/64);
+ state->bitsAvailableForSqueezing = state->rate;
+ }
+ #ifdef KeccakReference
+ displayBytes(1, "Block available for squeezing", state->dataQueue, state->bitsAvailableForSqueezing/8);
+ #endif
+ state->squeezing = 1;
+}
+
+int Squeeze(spongeState *state, unsigned char *output, unsigned long long outputLength)
+{
+ unsigned long long i;
+ unsigned int partialBlock;
+
+ if (!state->squeezing)
+ PadAndSwitchToSqueezingPhase(state);
+ if ((outputLength % 8) != 0)
+ return 1; /* Only multiple of 8 bits are allowed, truncation can be done at user level */
+
+ i = 0;
+ while(i < outputLength) {
+ if (state->bitsAvailableForSqueezing == 0) {
+ KeccakPermutation(state->state);
+#ifdef ProvideFast1024
+ if (state->rate == 1024) {
+ KeccakExtract1024bits(state->state, state->dataQueue);
+ state->bitsAvailableForSqueezing = 1024;
+ }
+ else
+#endif
+ {
+ KeccakExtract(state->state, state->dataQueue, state->rate/64);
+ state->bitsAvailableForSqueezing = state->rate;
+ }
+ #ifdef KeccakReference
+ displayBytes(1, "Block available for squeezing", state->dataQueue, state->bitsAvailableForSqueezing/8);
+ #endif
+ }
+ partialBlock = state->bitsAvailableForSqueezing;
+ if ((unsigned long long)partialBlock > outputLength - i)
+ partialBlock = (unsigned int)(outputLength - i);
+ memcpy(output+i/8, state->dataQueue+(state->rate-state->bitsAvailableForSqueezing)/8, partialBlock/8);
+ state->bitsAvailableForSqueezing -= partialBlock;
+ i += partialBlock;
+ }
+ return 0;
+}
diff --git a/Example/Pods/NACrypto/NACrypto/keccak/KeccakSponge.h b/Example/Pods/NACrypto/NACrypto/keccak/KeccakSponge.h
new file mode 100644
index 0000000..aeabe39
--- /dev/null
+++ b/Example/Pods/NACrypto/NACrypto/keccak/KeccakSponge.h
@@ -0,0 +1,77 @@
+/*
+The Keccak sponge function, designed by Guido Bertoni, Joan Daemen,
+Michaël Peeters and Gilles Van Assche. For more information, feedback or
+questions, please refer to our website: http://keccak.noekeon.org/
+
+Implementation by the designers,
+hereby denoted as "the implementer".
+
+To the extent possible under law, the implementer has waived all copyright
+and related or neighboring rights to the source code in this file.
+http://creativecommons.org/publicdomain/zero/1.0/
+*/
+
+#ifndef _KeccakSponge_h_
+#define _KeccakSponge_h_
+
+#define KeccakPermutationSize 1600
+#define KeccakPermutationSizeInBytes (KeccakPermutationSize/8)
+#define KeccakMaximumRate 1536
+#define KeccakMaximumRateInBytes (KeccakMaximumRate/8)
+
+#if defined(__GNUC__)
+#undef ALIGN
+#define ALIGN __attribute__ ((aligned(32)))
+#elif defined(_MSC_VER)
+#define ALIGN __declspec(align(32))
+#else
+#define ALIGN
+#endif
+
+ALIGN typedef struct spongeStateStruct {
+ ALIGN unsigned char state[KeccakPermutationSizeInBytes];
+ ALIGN unsigned char dataQueue[KeccakMaximumRateInBytes];
+ unsigned int rate;
+ unsigned int capacity;
+ unsigned int bitsInQueue;
+ unsigned int fixedOutputLength;
+ int squeezing;
+ unsigned int bitsAvailableForSqueezing;
+} spongeState;
+
+/**
+ * Function to initialize the state of the Keccak[r, c] sponge function.
+ * The sponge function is set to the absorbing phase.
+ * @param state Pointer to the state of the sponge function to be initialized.
+ * @param rate The value of the rate r.
+ * @param capacity The value of the capacity c.
+ * @pre One must have r+c=1600 and the rate a multiple of 64 bits in this implementation.
+ * @return Zero if successful, 1 otherwise.
+ */
+int InitSponge(spongeState *state, unsigned int rate, unsigned int capacity);
+/**
+ * Function to give input data for the sponge function to absorb.
+ * @param state Pointer to the state of the sponge function initialized by InitSponge().
+ * @param data Pointer to the input data.
+ * When @a databitLen is not a multiple of 8, the last bits of data must be
+ * in the least significant bits of the last byte.
+ * @param databitLen The number of input bits provided in the input data.
+ * @pre In the previous call to Absorb(), databitLen was a multiple of 8.
+ * @pre The sponge function must be in the absorbing phase,
+ * i.e., Squeeze() must not have been called before.
+ * @return Zero if successful, 1 otherwise.
+ */
+int Absorb(spongeState *state, const unsigned char *data, unsigned long long databitlen);
+/**
+ * Function to squeeze output data from the sponge function.
+ * If the sponge function was in the absorbing phase, this function
+ * switches it to the squeezing phase.
+ * @param state Pointer to the state of the sponge function initialized by InitSponge().
+ * @param output Pointer to the buffer where to store the output data.
+ * @param outputLength The number of output bits desired.
+ * It must be a multiple of 8.
+ * @return Zero if successful, 1 otherwise.
+ */
+int Squeeze(spongeState *state, unsigned char *output, unsigned long long outputLength);
+
+#endif
diff --git a/Example/Pods/NACrypto/NACrypto/keccak/brg_endian.h b/Example/Pods/NACrypto/NACrypto/keccak/brg_endian.h
new file mode 100644
index 0000000..c11b109
--- /dev/null
+++ b/Example/Pods/NACrypto/NACrypto/keccak/brg_endian.h
@@ -0,0 +1,152 @@
+/*
+ ---------------------------------------------------------------------------
+ Copyright (c) 1998-2008, Brian Gladman, Worcester, UK. All rights reserved.
+
+ LICENSE TERMS
+
+ The redistribution and use of this software (with or without changes)
+ is allowed without the payment of fees or royalties provided that:
+
+ 1. source code distributions include the above copyright notice, this
+ list of conditions and the following disclaimer;
+
+ 2. binary distributions include the above copyright notice, this list
+ of conditions and the following disclaimer in their documentation;
+
+ 3. the name of the copyright holder is not used to endorse products
+ built using this software without specific written permission.
+
+ DISCLAIMER
+
+ This software is provided 'as is' with no explicit or implied warranties
+ in respect of its properties, including, but not limited to, correctness
+ and/or fitness for purpose.
+ ---------------------------------------------------------------------------
+ Issue Date: 20/12/2007
+ Changes for ARM 9/9/2010
+ */
+
+/* modified by justin@basho.com to include Solaris endianness test */
+
+#ifndef _BRG_ENDIAN_H
+#define _BRG_ENDIAN_H
+
+#define IS_BIG_ENDIAN 4321 /* byte 0 is most significant (mc68k) */
+#define IS_LITTLE_ENDIAN 1234 /* byte 0 is least significant (i386) */
+
+#if 0
+/* Include files where endian defines and byteswap functions may reside */
+#if defined( __sun )
+# include
+#elif defined( __FreeBSD__ ) || defined( __OpenBSD__ ) || defined( __NetBSD__ ) || \
+defined (__DragonFly__)
+# include
+# include
+#elif defined( BSD ) && ( BSD >= 199103 ) || defined( __APPLE__ ) || \
+defined( __CYGWIN32__ ) || defined( __DJGPP__ ) || defined( __osf__ )
+# include
+#elif defined (__SVR4) && defined (__sun)
+# ifdef __sparc__
+# define BYTE_ORDER IS_BIG_ENDIAN
+# else
+# define BYTE_ORDER IS_LITTLE_ENDIAN
+# endif
+#elif defined( __linux__ ) || defined( __GNUC__ ) || defined( __GNU_LIBRARY__ )
+# if !defined( __MINGW32__ ) && !defined( _AIX )
+# include
+# if !defined( __BEOS__ )
+# include
+# endif
+# endif
+#endif
+#endif
+
+/* Now attempt to set the define for platform byte order using any */
+/* of the four forms SYMBOL, _SYMBOL, __SYMBOL & __SYMBOL__, which */
+/* seem to encompass most endian symbol definitions */
+
+#if defined( BIG_ENDIAN ) && defined( LITTLE_ENDIAN )
+# if defined( BYTE_ORDER ) && BYTE_ORDER == BIG_ENDIAN
+# define PLATFORM_BYTE_ORDER IS_BIG_ENDIAN
+# elif defined( BYTE_ORDER ) && BYTE_ORDER == LITTLE_ENDIAN
+# define PLATFORM_BYTE_ORDER IS_LITTLE_ENDIAN
+# endif
+#elif defined( BIG_ENDIAN )
+# define PLATFORM_BYTE_ORDER IS_BIG_ENDIAN
+#elif defined( LITTLE_ENDIAN )
+# define PLATFORM_BYTE_ORDER IS_LITTLE_ENDIAN
+#endif
+
+#if defined( _BIG_ENDIAN ) && defined( _LITTLE_ENDIAN )
+# if defined( _BYTE_ORDER ) && _BYTE_ORDER == _BIG_ENDIAN
+# define PLATFORM_BYTE_ORDER IS_BIG_ENDIAN
+# elif defined( _BYTE_ORDER ) && _BYTE_ORDER == _LITTLE_ENDIAN
+# define PLATFORM_BYTE_ORDER IS_LITTLE_ENDIAN
+# endif
+#elif defined( _BIG_ENDIAN )
+# define PLATFORM_BYTE_ORDER IS_BIG_ENDIAN
+#elif defined( _LITTLE_ENDIAN )
+# define PLATFORM_BYTE_ORDER IS_LITTLE_ENDIAN
+#endif
+
+#if defined( __BIG_ENDIAN ) && defined( __LITTLE_ENDIAN )
+# if defined( __BYTE_ORDER ) && __BYTE_ORDER == __BIG_ENDIAN
+# define PLATFORM_BYTE_ORDER IS_BIG_ENDIAN
+# elif defined( __BYTE_ORDER ) && __BYTE_ORDER == __LITTLE_ENDIAN
+# define PLATFORM_BYTE_ORDER IS_LITTLE_ENDIAN
+# endif
+#elif defined( __BIG_ENDIAN )
+# define PLATFORM_BYTE_ORDER IS_BIG_ENDIAN
+#elif defined( __LITTLE_ENDIAN )
+# define PLATFORM_BYTE_ORDER IS_LITTLE_ENDIAN
+#endif
+
+#if defined( __BIG_ENDIAN__ ) && defined( __LITTLE_ENDIAN__ )
+# if defined( __BYTE_ORDER__ ) && __BYTE_ORDER__ == __BIG_ENDIAN__
+# define PLATFORM_BYTE_ORDER IS_BIG_ENDIAN
+# elif defined( __BYTE_ORDER__ ) && __BYTE_ORDER__ == __LITTLE_ENDIAN__
+# define PLATFORM_BYTE_ORDER IS_LITTLE_ENDIAN
+# endif
+#elif defined( __BIG_ENDIAN__ )
+# define PLATFORM_BYTE_ORDER IS_BIG_ENDIAN
+#elif defined( __LITTLE_ENDIAN__ )
+# define PLATFORM_BYTE_ORDER IS_LITTLE_ENDIAN
+#endif
+
+/* if the platform byte order could not be determined, then try to */
+/* set this define using common machine defines */
+#if !defined(PLATFORM_BYTE_ORDER)
+
+#if defined( __alpha__ ) || defined( __alpha ) || defined( i386 ) || \
+defined( __i386__ ) || defined( _M_I86 ) || defined( _M_IX86 ) || \
+defined( __OS2__ ) || defined( sun386 ) || defined( __TURBOC__ ) || \
+defined( vax ) || defined( vms ) || defined( VMS ) || \
+defined( __VMS ) || defined( _M_X64 )
+# define PLATFORM_BYTE_ORDER IS_LITTLE_ENDIAN
+
+#elif defined( AMIGA ) || defined( applec ) || defined( __AS400__ ) || \
+defined( _CRAY ) || defined( __hppa ) || defined( __hp9000 ) || \
+defined( ibm370 ) || defined( mc68000 ) || defined( m68k ) || \
+defined( __MRC__ ) || defined( __MVS__ ) || defined( __MWERKS__ ) || \
+defined( sparc ) || defined( __sparc) || defined( SYMANTEC_C ) || \
+defined( __VOS__ ) || defined( __TIGCC__ ) || defined( __TANDEM ) || \
+defined( THINK_C ) || defined( __VMCMS__ ) || defined( _AIX )
+# define PLATFORM_BYTE_ORDER IS_BIG_ENDIAN
+
+#elif defined(__arm__)
+# ifdef __BIG_ENDIAN
+# define PLATFORM_BYTE_ORDER IS_BIG_ENDIAN
+# else
+# define PLATFORM_BYTE_ORDER IS_LITTLE_ENDIAN
+# endif
+#elif 1 /* **** EDIT HERE IF NECESSARY **** */
+# define PLATFORM_BYTE_ORDER IS_LITTLE_ENDIAN
+#elif 0 /* **** EDIT HERE IF NECESSARY **** */
+# define PLATFORM_BYTE_ORDER IS_BIG_ENDIAN
+#else
+# error Please edit lines 132 or 134 in brg_endian.h to set the platform byte order
+#endif
+
+#endif
+
+#endif
diff --git a/Example/Pods/NACrypto/README.md b/Example/Pods/NACrypto/README.md
new file mode 100644
index 0000000..c23e5ff
--- /dev/null
+++ b/Example/Pods/NACrypto/README.md
@@ -0,0 +1,71 @@
+NACrypto
+=========
+
+You should be using [NAChloride](https://github.com/gabriel/NAChloride) (libsodium/NaCl) instead. This is for advanced crypto only.
+
+The following use Apple's CommonCrypto framework:
+
+* HMAC: *SHA1*, *SHA2*
+* Digest: *SHA2*
+* AES (256-CTR)
+
+The following are implemented from included reference C libraries:
+
+* HMAC: *SHA3/Keccak*
+* Digest: *SHA3/Keccak*
+* TwoFish (CTR)
+
+# Podfile
+
+```ruby
+pod "NACrypto"
+```
+
+# HMAC (SHA1, SHA2, SHA3)
+
+```objc
+NSData *mac1 = [NAHMAC HMACForKey:key data:data algorithm:NAHMACAlgorithmSHA2_512];
+NSData *mac2 = [NAHMAC HMACForKey:key data:data algorithm:NAHMACAlgorithmSHA3_512];
+```
+
+# AES (256-CTR)
+
+```objc
+// Nonce should be 16 bytes
+// Key should be 32 bytes
+NAAES *AES = [[NAAES alloc] initWithAlgorithm:NAAESAlgorithm256CTR];
+NSData *encrypted = [AES encrypt:message nonce:nonce key:key error:&error];
+```
+
+# TwoFish (CTR)
+
+```objc
+// Nonce should be 16 bytes
+// Key should be 32 bytes
+NATwoFish *twoFish = [[NATwoFish alloc] init];
+NSData *encrypted = [twoFish encrypt:message nonce:nonce key:key error:&error];
+```
+
+# Digest (SHA2, SHA3)
+
+```objc
+NSData *digest1 = [NADigest digestForData:data algorithm:NADigestAlgorithmSHA2_256];
+NSData *digest2 = [NADigest digestForData:data algorithm:NADigestAlgorithmSHA3_512];
+
+// Directly use SHA3
+NSData *sha = [NASHA3 SHA3ForData:data digestBitLength:512];
+```
+
+# Keychain Utils
+
+```objc
+NSData *key = [NASecRandom randomData:32 error:&error];
+[NAKeychain addSymmetricKey:key applicationLabel:@"NACrypto" tag:nil label:nil];
+NSData *keyOut = [NAKeychain symmetricKeyWithApplicationLabel:@"NACrypto"];
+```
+
+# NSData Utils
+```objc
+NSData *data = [@"deadbeef" na_dataFromHexString];
+[data na_hexString]; // @"deadbeef";
+```
diff --git a/Example/Pods/RNCryptor/LICENSE b/Example/Pods/NSUserDefaults-AESEncryptor/LICENSE
similarity index 93%
rename from Example/Pods/RNCryptor/LICENSE
rename to Example/Pods/NSUserDefaults-AESEncryptor/LICENSE
index d21a98a..a450d23 100644
--- a/Example/Pods/RNCryptor/LICENSE
+++ b/Example/Pods/NSUserDefaults-AESEncryptor/LICENSE
@@ -1,6 +1,4 @@
-The MIT License (MIT)
-
-Copyright (c) 2015 Rob Napier
+Copyright (c) 2013 No Zebra Network
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
@@ -18,4 +16,4 @@ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-THE SOFTWARE.
\ No newline at end of file
+THE SOFTWARE.
diff --git a/Example/Pods/NSUserDefaults-AESEncryptor/NSUserDefaults-AESEncryptor/NSUserDefaults+AESEncryptor.h b/Example/Pods/NSUserDefaults-AESEncryptor/NSUserDefaults-AESEncryptor/NSUserDefaults+AESEncryptor.h
new file mode 100644
index 0000000..b409f2e
--- /dev/null
+++ b/Example/Pods/NSUserDefaults-AESEncryptor/NSUserDefaults-AESEncryptor/NSUserDefaults+AESEncryptor.h
@@ -0,0 +1,38 @@
+//
+// NSUserDefaults+AESEncryptor.h
+// NSUserDefaults-AESEncryptor
+//
+// Created by Bruno Tortato Furtado on 08/12/13.
+// Copyright (c) 2013 No Zebra Network. All rights reserved.
+//
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+//
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+
+#import
+
+@interface NSUserDefaults (AESEncryptor)
+
+- (NSString *)decryptedValueForKey:(NSString *)key;
+- (void)encryptValue:(NSString *)value withKey:(NSString *)key;
+
+- (void)removeObjectForAESKey:(NSString *)key;
+
+- (void)setAESKey:(NSString *)key;
+- (NSString *)AESKey;
+
+@end
\ No newline at end of file
diff --git a/Example/Pods/NSUserDefaults-AESEncryptor/NSUserDefaults-AESEncryptor/NSUserDefaults+AESEncryptor.m b/Example/Pods/NSUserDefaults-AESEncryptor/NSUserDefaults-AESEncryptor/NSUserDefaults+AESEncryptor.m
new file mode 100644
index 0000000..7bf313e
--- /dev/null
+++ b/Example/Pods/NSUserDefaults-AESEncryptor/NSUserDefaults-AESEncryptor/NSUserDefaults+AESEncryptor.m
@@ -0,0 +1,89 @@
+//
+// NSUserDefaults+AESEncryptor.m
+// NSUserDefaults-AESEncryptor
+//
+// Created by Bruno Tortato Furtado on 08/12/13.
+// Copyright (c) 2013 No Zebra Network. All rights reserved.
+//
+
+#import "NSUserDefaults+AESEncryptor.h"
+#import "CocoaSecurity.h"
+
+static NSString * AESKeyString = @"aes key not found";
+
+@implementation NSUserDefaults (AESEncryptor)
+
+#pragma mark -
+#pragma mark - Public methods
+
+- (NSString *)decryptedValueForKey:(NSString *)key
+{
+ NSString *encryptedKey = [CocoaSecurity aesEncrypt:key
+ key:[self AESKey]].base64;
+
+ NSString *encryptedValue = [self objectForKey:encryptedKey];
+
+ if (!encryptedValue) {
+ NSLog(@"%s\n\nkey '%@' not found \n\n", __PRETTY_FUNCTION__, key);
+ return nil;
+ }
+
+
+ NSString *value = [CocoaSecurity aesDecryptWithBase64:encryptedValue
+ key:[self AESKey]].utf8String;
+
+#ifdef DEBUG
+ NSLog(@"%s\n\n \
+ aesKey: [%@]\n\n \
+ [encrypt_key, encrypt_value]: [%@, %@] \n\n \
+ [key, value]: [%@, %@] \n\n",
+ __PRETTY_FUNCTION__,
+ [self AESKey],
+ encryptedKey, encryptedValue,
+ key, value);
+#endif
+
+ return value;
+}
+
+- (void)encryptValue:(NSString *)value withKey:(NSString *)key
+{
+ NSString *encryptedKey = [CocoaSecurity aesEncrypt:key
+ key:[self AESKey]].base64;
+
+ NSString *encryptedValue = [CocoaSecurity aesEncrypt:value
+ key:[self AESKey]].base64;
+
+ [self setObject:encryptedValue forKey:encryptedKey];
+ [self synchronize];
+
+#ifdef DEBUG
+ NSLog(@"%s\n\n \
+ aesKey: [%@]\n\n \
+ [key, value]: [%@, %@] \n\n \
+ [encrypt_key, encrypt_value]: [%@, %@] \n\n",
+ __PRETTY_FUNCTION__,
+ [self AESKey],
+ key, value,
+ encryptedKey, encryptedValue);
+#endif
+}
+
+- (void)removeObjectForAESKey:(NSString *)key
+{
+ NSString *encryptedKey = [CocoaSecurity aesEncrypt:key key:[self AESKey]].base64;
+ [self removeObjectForKey:encryptedKey];
+ [self synchronize];
+}
+
+- (void)setAESKey:(NSString *)key
+{
+ AESKeyString = key;
+}
+
+- (NSString *)AESKey
+{
+ return AESKeyString;
+}
+
+@end
\ No newline at end of file
diff --git a/Example/Pods/NSUserDefaults-AESEncryptor/README.md b/Example/Pods/NSUserDefaults-AESEncryptor/README.md
new file mode 100644
index 0000000..7762fae
--- /dev/null
+++ b/Example/Pods/NSUserDefaults-AESEncryptor/README.md
@@ -0,0 +1,60 @@
+#NSUserDefaults-AESEncryptor 
+
+NSUserDefaults-AESEncryptor is a NSUserDefaults category. Its purpose to encrypt/decrypt keys and values with AES encryptor.
+
+[](https://api.travis-ci.org/NZN/NSUserDefaults-AESEncryptor.png)
+[](http://beta.cocoapods.org/?q=name%3Ansuserdefaults%20name%3Aaesencryptor%2A)
+[](http://beta.cocoapods.org/?q=name%3Ansuserdefaults%20name%3Aaesencryptor%2A)
+
+## Requirements
+
+NSUserDefaults-AESEncryptor works on iOS 5.0+ version and is compatible with ARC projects. It depends on the following Apple frameworks, which should already be included with most Xcode templates:
+
+* Foundation.framework
+
+You will need LLVM 3.0 or later in order to build NSUserDefaults-AESEncryptor.
+
+NSUserDefaults-AESEncryptor uses [CocoaSecurity](https://github.com/kelp404/CocoaSecurity) to encrypt/decrypt.
+
+## Adding NSUserDefaults-AESEncryptor to your project
+
+### Cocoapods
+
+[CocoaPods](http://cocoapods.org) is the recommended way to add `NSUserDefaults-AESEncryptor` to your project.
+
+* Add a pod entry for NSUserDefaults-AESEncryptor to your Podfile `pod 'NSUserDefaults-AESEncryptor'`
+* Install the pod(s) by running `pod install`.
+
+### Source files
+
+Alternatively you can directly add source files to your project.
+
+1. Download the [latest code version](https://github.com/NZN/NSUserDefaults-AESEncryptor/archive/master.zip) or add the repository as a git submodule to your git-tracked project.
+2. Open your project in Xcode, then drag and drop all files at NSUserDefaults-AESEncryptor folder onto your project (use the "Product Navigator view"). Make sure to select Copy items when asked if you extracted the code archive outside of your project.
+2. Install [CocoaSecurity](https://github.com/kelp404/CocoaSecurity).
+
+## Usage
+
+* Import `NSUserDefaults+AESEncryptor.h` and add this to `Prefix.pch`
+
+```objective-c
+// Set a key. (If no key is set, a default key will be used)
+[[NSUserDefaults standardUserDefaults] setAESKey:@"World Cup 2014"];
+
+// Encrypt
+[[NSUserDefaults standardUserDefaults] encryptValue:@"Brazil" withKey:@"country"];
+
+// Decrypt
+NSString value = [[NSUserDefaults standardUserDefaults] decryptedValueForKey:@"country"];
+
+// Remove object
+[[NSUserDefaults standardUserDefaults] removeObjectForAESKey:@"country"];
+```
+
+## License
+
+This code is distributed under the terms and conditions of the [MIT license](LICENSE).
+
+## Change-log
+
+A brief summary of each NSUserDefaults-AESEncryptor release can be found on the [wiki](https://github.com/NZN/NSUserDefaults-AESEncryptor/wiki/Change-log).
diff --git a/Example/Pods/Pods.xcodeproj/project.pbxproj b/Example/Pods/Pods.xcodeproj/project.pbxproj
index e1c5b7b..bff28ac 100644
--- a/Example/Pods/Pods.xcodeproj/project.pbxproj
+++ b/Example/Pods/Pods.xcodeproj/project.pbxproj
@@ -7,777 +7,809 @@
objects = {
/* Begin PBXBuildFile section */
- 01A35AA58F2F92E83C5E27E8963BA21A /* BFTask.h in Headers */ = {isa = PBXBuildFile; fileRef = CB4FC59BBC4220586113555265C7FDBB /* BFTask.h */; settings = {ATTRIBUTES = (Public, ); }; };
- 0254DC8C011209AB977C06EA7E95889E /* SPTTestSuite.m in Sources */ = {isa = PBXBuildFile; fileRef = 015667A81F6FC724E311D564F751F8AA /* SPTTestSuite.m */; };
- 02F3342DE8A2496B117A12DD376E0C6B /* CodFis+Helper.h in Headers */ = {isa = PBXBuildFile; fileRef = A2C3874E163C35B6808AB69CC135F086 /* CodFis+Helper.h */; settings = {ATTRIBUTES = (Public, ); }; };
- 0339052284A47A46E7821D754BB990DF /* FBSDKLoginManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 53E7308F602E00F2AAABCBDF5AF859C2 /* FBSDKLoginManager.m */; };
- 03FDBBF7B671EFE576EF0B0D8002D92D /* PNObjcPassword.h in Headers */ = {isa = PBXBuildFile; fileRef = E96D0F03745839E8AE4579B1CFF56B56 /* PNObjcPassword.h */; settings = {ATTRIBUTES = (Public, ); }; };
- 042B5A0DF9A7C3875611D66EEE6F4F0A /* SPTSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 40CE93983A30541969DA104E5239CB9D /* SPTSpec.m */; };
- 04CA0F8BB3DA4CC9162593C027C03B97 /* FBSDKGraphErrorRecoveryProcessor.h in Headers */ = {isa = PBXBuildFile; fileRef = 0DE1364F96B4E610C4DE91CF779B4EFF /* FBSDKGraphErrorRecoveryProcessor.h */; };
- 067AB10F1F123B95B5871888ACBA78BA /* CodFis_Helper.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 784F6E12C67771D8D76A3974A8ACC3A1 /* CodFis_Helper.framework */; };
- 06B31A3343DB4AC44BAAA75A5BDD4639 /* FBSDKSettings.m in Sources */ = {isa = PBXBuildFile; fileRef = 9B46EE78C1FD0934C6EB3A6878E891D4 /* FBSDKSettings.m */; };
- 076A3A2B61F0FD904F12D21F0060FD8E /* FBSDKUIUtility.h in Headers */ = {isa = PBXBuildFile; fileRef = B6B250D588EC154A2B0793EBBAB9EDB9 /* FBSDKUIUtility.h */; settings = {ATTRIBUTES = (Project, ); }; };
- 076F1D0BD98EE797354FBA9AC406E02B /* FBSDKAccessTokenCacheV4.h in Headers */ = {isa = PBXBuildFile; fileRef = 73A832CBB4031A00D5E18D52FBA86486 /* FBSDKAccessTokenCacheV4.h */; settings = {ATTRIBUTES = (Project, ); }; };
- 07CAFACAFAC87ABBF28D453E70832464 /* UIImage+Compare.m in Sources */ = {isa = PBXBuildFile; fileRef = 629E05BA90E8433D0F7165AAE1F6159D /* UIImage+Compare.m */; };
- 08DAC2F4AEE5BBA86F713F32A79E24AF /* FBSDKLoginUtility.m in Sources */ = {isa = PBXBuildFile; fileRef = 9B2412DF9C83FA91990C5135DA76A593 /* FBSDKLoginUtility.m */; };
- 093DA254B30414E2DEDBC9D08084D234 /* XCTestCase+Specta.m in Sources */ = {isa = PBXBuildFile; fileRef = 1F9E753A0ADD867247650CA5C959C74A /* XCTestCase+Specta.m */; };
- 0965EC017E6B1030E67D0E1CED9462A2 /* FBSDKAppGroupJoinDialog.m in Sources */ = {isa = PBXBuildFile; fileRef = 62D97D560566B05D1D9E060721FFD43F /* FBSDKAppGroupJoinDialog.m */; };
- 09AAF74DD2507F874F2AE2E6B8CE2DAF /* FBSDKMonotonicTime.h in Headers */ = {isa = PBXBuildFile; fileRef = E36CA8319E12274FBABD1048DD58C032 /* FBSDKMonotonicTime.h */; settings = {ATTRIBUTES = (Project, ); }; };
- 09C370A9665D24C14E3909B415A0E8D8 /* BFAppLinkTarget.m in Sources */ = {isa = PBXBuildFile; fileRef = 3C242185F3C144381D84D05187BE8DC7 /* BFAppLinkTarget.m */; };
- 09EB0EE96E6C494EC577C620F4055BF2 /* FBSDKShareVideoContent.m in Sources */ = {isa = PBXBuildFile; fileRef = CCD86699F6512E83A641B241A8BE2D78 /* FBSDKShareVideoContent.m */; };
- 0A1391FDCAC2348D1294CDD2DDD2DF69 /* PNObjectModel.h in Headers */ = {isa = PBXBuildFile; fileRef = 7D9A5BFD38EA60AAB205DF3E003946EE /* PNObjectModel.h */; settings = {ATTRIBUTES = (Public, ); }; };
- 0A4061108C051401AA7754CE91231AB3 /* FBSDKAppEvents.h in Headers */ = {isa = PBXBuildFile; fileRef = F0ECE18301275FE612BE80C76E70044F /* FBSDKAppEvents.h */; };
- 0A4FDA10DBFB82F864DCABAF73D1BAB9 /* FBSDKColor.m in Sources */ = {isa = PBXBuildFile; fileRef = 470B0053D5B51527BE73BDC5306CEB4A /* FBSDKColor.m */; };
- 0A5DFD94EE83E385C1C7D24986E04592 /* SwiftSupport.swift in Sources */ = {isa = PBXBuildFile; fileRef = 560C655DAF9C028A34717C0C0BA417C4 /* SwiftSupport.swift */; };
- 0AF05753005DD333D32B4CBC453D65AA /* PNAddress.h in Headers */ = {isa = PBXBuildFile; fileRef = D59089056B822BCD9DDE1E6DDE9073C5 /* PNAddress.h */; settings = {ATTRIBUTES = (Public, ); }; };
- 0C25A43F28DAD89FCDD01C0CDE5D4570 /* FBSDKURLConnection.m in Sources */ = {isa = PBXBuildFile; fileRef = C954F6139E9F59B2F57BAF778D992A01 /* FBSDKURLConnection.m */; };
- 0C688E139513EAD123605A43D50ECA2D /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A80E35072AB7909E944FA803B973A45B /* Foundation.framework */; };
- 0C6FF91EB1F0391ED75DC72D31D159EF /* EXPMatchers+beTruthy.m in Sources */ = {isa = PBXBuildFile; fileRef = 5059C23A297D9814A8964271D59CCAB4 /* EXPMatchers+beTruthy.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; };
- 0CCB0C31677860FE4CBC3FB51C536115 /* FBSDKApplicationDelegate+Internal.h in Headers */ = {isa = PBXBuildFile; fileRef = 0C7B28A423EE8BFFDD6CA0E80FC2E780 /* FBSDKApplicationDelegate+Internal.h */; settings = {ATTRIBUTES = (Project, ); }; };
- 0D0F633E3C426F2A90B60AAB6FE2C5F3 /* FBSDKCoreKit.h in Copy . Public Headers */ = {isa = PBXBuildFile; fileRef = AB2B006747371E2B665F88BBCDBA5E04 /* FBSDKCoreKit.h */; };
- 0D16B556212D317A0D4FEB71E102E207 /* EXPMatchers+beLessThan.h in Headers */ = {isa = PBXBuildFile; fileRef = 031E45769F7897993E8EF5154A836176 /* EXPMatchers+beLessThan.h */; settings = {ATTRIBUTES = (Public, ); }; };
- 0D8CA7B7C31BC240184F6B509492D745 /* FBSDKSharePhoto.m in Sources */ = {isa = PBXBuildFile; fileRef = B231FDE2D61F17007842B73ECA2A9829 /* FBSDKSharePhoto.m */; };
- 0D96EF8921F4EB6F70486C00FCF48828 /* FBSDKGraphRequestPiggybackManager.h in Headers */ = {isa = PBXBuildFile; fileRef = B8F828A2240D6C07C1A59C3546BE68D4 /* FBSDKGraphRequestPiggybackManager.h */; settings = {ATTRIBUTES = (Project, ); }; };
- 0DA4E12217002472B52B8C81154435DC /* BFAppLinkReturnToRefererController.h in Headers */ = {isa = PBXBuildFile; fileRef = 92DA6CE55E87602AECB1973D5DC41451 /* BFAppLinkReturnToRefererController.h */; settings = {ATTRIBUTES = (Public, ); }; };
- 0DC2950D3943DC1163E1E5C3C4E29F96 /* FBSDKAppInviteDialog.h in Headers */ = {isa = PBXBuildFile; fileRef = A346E6CA6D1550872C70BE33DE122687 /* FBSDKAppInviteDialog.h */; settings = {ATTRIBUTES = (Public, ); }; };
- 0DF6D0850F82CC47266727B7F7FDE3C3 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A80E35072AB7909E944FA803B973A45B /* Foundation.framework */; };
- 0EAB8CDACC4DF99C482EDCE2E0BA31C5 /* Bolts.h in Headers */ = {isa = PBXBuildFile; fileRef = 2EC6FA678332DC3495DC88D38943C6A3 /* Bolts.h */; settings = {ATTRIBUTES = (Public, ); }; };
- 0EBFA5FBE4953A83B677CE2A75746761 /* EXPMatchers+beLessThan.m in Sources */ = {isa = PBXBuildFile; fileRef = ABD66061198ECF3CB09D3AFB4A51669F /* EXPMatchers+beLessThan.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; };
- 0EDA7AFB24C35AD20174869E9CD7469D /* FBSDKMaleSilhouetteIcon.h in Headers */ = {isa = PBXBuildFile; fileRef = B545EF172DFBB50AD94A530CAE935A46 /* FBSDKMaleSilhouetteIcon.h */; settings = {ATTRIBUTES = (Project, ); }; };
- 0F94F5B0ABB3252B9275B7C129EC7A26 /* EXPMatchers+equal.h in Headers */ = {isa = PBXBuildFile; fileRef = F35E5DAD266125AE1CEFA2024D75012B /* EXPMatchers+equal.h */; settings = {ATTRIBUTES = (Public, ); }; };
- 0FB1CE9AB76B77BEFC2F5DD025EB6032 /* FBSDKLoginUtility.h in Headers */ = {isa = PBXBuildFile; fileRef = 028339F9423F30A373DB82CB09F0D4C4 /* FBSDKLoginUtility.h */; settings = {ATTRIBUTES = (Project, ); }; };
- 1036EF14A9C3EF984ADA3518121F4466 /* FBSDKAppLinkUtility.h in Headers */ = {isa = PBXBuildFile; fileRef = 53205917CE758C7274FA062BBA003FA7 /* FBSDKAppLinkUtility.h */; };
- 104E2D83D8C7403B401E4F4F7FA37AA9 /* FBSDKShareConstants.h in Headers */ = {isa = PBXBuildFile; fileRef = C0D2574ECDA8AD00019A33E6F225AD7A /* FBSDKShareConstants.h */; settings = {ATTRIBUTES = (Public, ); }; };
- 105EDB8B02212B7327DCEAC866995FA5 /* RNCryptor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4C931CB41D0740A2832C50F7D6ED15C6 /* RNCryptor.swift */; };
- 113CC729BD5178A60DF71C897B9D3D53 /* PNUser.h in Headers */ = {isa = PBXBuildFile; fileRef = 700C89F1F64FB8B0D93244364503DB02 /* PNUser.h */; settings = {ATTRIBUTES = (Public, ); }; };
- 11701644ACB6B96BA0503F992EB5BD88 /* FBSDKSettings.h in Copy . Public Headers */ = {isa = PBXBuildFile; fileRef = C085129AE27209824EE689C4E697A9F6 /* FBSDKSettings.h */; };
- 11C1AEB289C1EB80089349B71F09D04B /* EXPMatchers+raiseWithReason.h in Headers */ = {isa = PBXBuildFile; fileRef = 69ADB71AE7914384230F0ADD752E761E /* EXPMatchers+raiseWithReason.h */; settings = {ATTRIBUTES = (Public, ); }; };
- 1200A152A08388893BFA023980C2CF48 /* FBSDKLoginManagerLogger.h in Headers */ = {isa = PBXBuildFile; fileRef = FC8C158D6460A19DA5B5744712BFF798 /* FBSDKLoginManagerLogger.h */; settings = {ATTRIBUTES = (Project, ); }; };
- 12C66CB4A6AA6270B71012F77C9206FC /* NSString-Helper.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 89208288C48137CF752791D41C6535ED /* NSString-Helper.bundle */; };
- 12E731E447739117B33B1B45D512B3AF /* FBSDKServerConfigurationManager.m in Sources */ = {isa = PBXBuildFile; fileRef = D7D43578BF191907CBC1B3686EF46734 /* FBSDKServerConfigurationManager.m */; };
- 1312A7D381C51428CF481E33E3D37901 /* EXPMatchers+beGreaterThan.m in Sources */ = {isa = PBXBuildFile; fileRef = 448C2DDF90D47852AC861175BF3C4A5E /* EXPMatchers+beGreaterThan.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; };
- 131532787AD40BE1F35DF288D2E6FFD7 /* EXPMatchers+beInTheRangeOf.h in Headers */ = {isa = PBXBuildFile; fileRef = 57F726180FCFD5EF7B9768005571EA84 /* EXPMatchers+beInTheRangeOf.h */; settings = {ATTRIBUTES = (Public, ); }; };
- 146457D9778B072B0A742C350BA6770F /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A80E35072AB7909E944FA803B973A45B /* Foundation.framework */; };
- 1480F4923DBBF217F60572EEECB4027C /* AFNetworkActivityIndicatorManager.h in Headers */ = {isa = PBXBuildFile; fileRef = C40E0EBCC566B9D00872442EA0372029 /* AFNetworkActivityIndicatorManager.h */; settings = {ATTRIBUTES = (Public, ); }; };
- 1489117FFED47F9DBAB9BECC12DF5221 /* FBSDKBridgeAPIResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 52D2A4992A099DAE5A18E1797D870404 /* FBSDKBridgeAPIResponse.m */; };
- 1498514874F463AE8A7F747DCADC338E /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A80E35072AB7909E944FA803B973A45B /* Foundation.framework */; };
- 14CCB9B9C95EBBD456D7E4EABD82E0BF /* FBSDKLoginCompletion+Internal.h in Headers */ = {isa = PBXBuildFile; fileRef = DAF3E45780A92C058BB5649713AC8F08 /* FBSDKLoginCompletion+Internal.h */; settings = {ATTRIBUTES = (Project, ); }; };
- 154FE40BF807A22A341770459ED0BCA9 /* NSDate+NSDate_Util.m in Sources */ = {isa = PBXBuildFile; fileRef = 46CE123B557C1E1338591212A6953BDA /* NSDate+NSDate_Util.m */; };
- 1651C6B9C57C4B00AEAB1DB9C0FD1385 /* FBSDKGraphRequestConnection.h in Copy . Public Headers */ = {isa = PBXBuildFile; fileRef = 0CC2FDB1E73E42068C9B34807CC532F4 /* FBSDKGraphRequestConnection.h */; };
- 1663D3404B3C2102C575CD198944338A /* StrongestPasswordValidator.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2647DC2503AE9CABFE089D10F80E02DC /* StrongestPasswordValidator.framework */; };
- 16AF6EEBA7A01DD99F15D4AA74267427 /* FBSDKShareOpenGraphAction.m in Sources */ = {isa = PBXBuildFile; fileRef = FD50C9D92415629A23455C575CDA68CC /* FBSDKShareOpenGraphAction.m */; };
- 16B02D9903A128753425886827C87CB7 /* FBSDKTriStateBOOL.h in Headers */ = {isa = PBXBuildFile; fileRef = F62016DF5048ED20FD02717FC94FFA49 /* FBSDKTriStateBOOL.h */; settings = {ATTRIBUTES = (Project, ); }; };
- 16B455F319A143930B24EAD475321259 /* FBSDKLikeActionController.h in Headers */ = {isa = PBXBuildFile; fileRef = A678FB5DD4092F74C074CC1F07199377 /* FBSDKLikeActionController.h */; settings = {ATTRIBUTES = (Project, ); }; };
- 16B7FB6A06AFB2626CB37E24BCAD757C /* FBSDKLogger.h in Headers */ = {isa = PBXBuildFile; fileRef = 143FE8F47A316509C56455C13DF0B797 /* FBSDKLogger.h */; settings = {ATTRIBUTES = (Project, ); }; };
- 16E6BDB2449AAF2E766A228AFF965AA0 /* FBSDKShareError.h in Headers */ = {isa = PBXBuildFile; fileRef = B59A281DA983CBEF55572D7347E38426 /* FBSDKShareError.h */; settings = {ATTRIBUTES = (Project, ); }; };
- 174202BD6AE0E4A41F5CE66E975EAE52 /* UIRefreshControl+AFNetworking.m in Sources */ = {isa = PBXBuildFile; fileRef = 4FC6FD2F8B1EF6248038BB8648F4E136 /* UIRefreshControl+AFNetworking.m */; };
- 17572374B2AE183C6347C41E8DF8E579 /* EXPMatchers+beFalsy.m in Sources */ = {isa = PBXBuildFile; fileRef = F2243CB5F8C75A2C02BA10C1EDBBF771 /* EXPMatchers+beFalsy.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; };
- 17CED2FBC3F5431AEB42D651D0E3DAB9 /* FBSDKConstants.h in Headers */ = {isa = PBXBuildFile; fileRef = 7FBF01A12DBA9EECC888B58BBAD377AE /* FBSDKConstants.h */; };
- 181E2F204B7B25D4CF271EEDE3CCFD95 /* FBSDKAppGroupContent.m in Sources */ = {isa = PBXBuildFile; fileRef = FAC688E38CBDEB40BB93E045EC51E9BE /* FBSDKAppGroupContent.m */; };
- 191B2343DD7DD76469CA5043B37C1BFC /* NSLayoutConstraint+PureLayout.h in Headers */ = {isa = PBXBuildFile; fileRef = CA526B906B0077276B33E5441C67724F /* NSLayoutConstraint+PureLayout.h */; settings = {ATTRIBUTES = (Public, ); }; };
- 1A1AB2EC52323C5EA28DAA99F1E1A90D /* EXPMatchers+endWith.h in Headers */ = {isa = PBXBuildFile; fileRef = 902BA17C79105FAEC14508B4AC9B9A4C /* EXPMatchers+endWith.h */; settings = {ATTRIBUTES = (Public, ); }; };
- 1AB3304B6884F626BC54150AC7565E18 /* EXPMatchers+equal.m in Sources */ = {isa = PBXBuildFile; fileRef = 123F1ED5D629CE1BE0337058CF62FED6 /* EXPMatchers+equal.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; };
- 1ABB76713A89CC189E5518A2475685AD /* FBSDKLikeObjectType.h in Headers */ = {isa = PBXBuildFile; fileRef = 9F3682DF7A233CAA0CA67B257D1692EF /* FBSDKLikeObjectType.h */; settings = {ATTRIBUTES = (Public, ); }; };
- 1B0389CD88AA949B34DC7269030FEC6F /* EXPMatchers+beGreaterThanOrEqualTo.m in Sources */ = {isa = PBXBuildFile; fileRef = 5288FD3B85CBFA81267ECCF1B80A27CE /* EXPMatchers+beGreaterThanOrEqualTo.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; };
- 1B80FB199B323B92DA8BDA4CAFEAB7B6 /* FBSDKSharingContent.h in Headers */ = {isa = PBXBuildFile; fileRef = C4ACF7A89B7B5DBDFCB72B5FB6067C05 /* FBSDKSharingContent.h */; settings = {ATTRIBUTES = (Public, ); }; };
- 1C2C3921C8FC9C9003568C3BC198AE72 /* RNCryptor-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = D80F1D0EE79761581CE3B0181DB649D9 /* RNCryptor-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; };
- 1C3F8964796DAD9A908E527C241DF3E9 /* UIDevice-Utils.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 4AEBB8CB4AE2AFAC0AB371278437CB76 /* UIDevice-Utils.bundle */; };
- 1D793FA5DFF773A261125B70D42BE3BE /* FBSDKErrorRecoveryConfiguration.m in Sources */ = {isa = PBXBuildFile; fileRef = 7A5AE6F95141CA09B61B516862FFC7C2 /* FBSDKErrorRecoveryConfiguration.m */; };
- 1D80CC0197DAA1C570189DCE17DA1AD2 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A80E35072AB7909E944FA803B973A45B /* Foundation.framework */; };
- 1D8CF72F68F6192E674A0529099B847F /* SPTExample.m in Sources */ = {isa = PBXBuildFile; fileRef = 0BAA78AF7B596D75186ADBDCAE789650 /* SPTExample.m */; };
- 1D8F0DD4F483C26350BD5C12753D315C /* FBSDKGraphRequestDataAttachment.h in Headers */ = {isa = PBXBuildFile; fileRef = A1C678B8EDA855844A40DFACBE96BBFC /* FBSDKGraphRequestDataAttachment.h */; };
- 1DC469C4321829696AABB46AC4E6A21F /* NSString_Helper.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0BC932C7674764ED0A380050D42C5923 /* NSString_Helper.framework */; };
- 1E19B7057A92D69236C22181D551CBB3 /* FBSDKSharePhotoContent.m in Sources */ = {isa = PBXBuildFile; fileRef = 9A5722BE2381E1063F7F7BCC3CF15B73 /* FBSDKSharePhotoContent.m */; };
- 1E5984CD6980C13FE5ACBC3DA780C28F /* PNObject-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 4D21BA597DC54DA5B79874658C865E54 /* PNObject-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; };
- 1E5B8F12ED7CC40ECDB9B1F755F387E5 /* UIActivityIndicatorView+AFNetworking.h in Headers */ = {isa = PBXBuildFile; fileRef = 8187217E663DB434BE4D87982B6457F7 /* UIActivityIndicatorView+AFNetworking.h */; settings = {ATTRIBUTES = (Public, ); }; };
- 1E8998105627CC57D11D0195F528D994 /* PNObject+Protected.m in Sources */ = {isa = PBXBuildFile; fileRef = EF3C71BC75869DF2FE236CC704E336D5 /* PNObject+Protected.m */; };
- 1EB1017329A4B7619553CBD5FF5D0DAA /* NSDate_Utils.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 09CE30467C1D28BCEAD4DE77B4C2E41E /* NSDate_Utils.bundle */; };
- 1F11A0BCDCFAF45917BD67D4299AEC99 /* AFHTTPRequestSerializer+OAuth2.m in Sources */ = {isa = PBXBuildFile; fileRef = A69927AAA8CBDD2EA369F67E5CD8BB39 /* AFHTTPRequestSerializer+OAuth2.m */; };
- 1F16998423D64A8FE584EB0E3AAE922A /* Pods-PNObject_Tests-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = E46B7AFFF2CB3F42C731CF9CFA5DFC85 /* Pods-PNObject_Tests-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; };
- 201BF9C605852822CA5A65ADE282A310 /* EXPMatcherHelpers.m in Sources */ = {isa = PBXBuildFile; fileRef = 67707E0219279D73B856A7B6A2F7E22F /* EXPMatcherHelpers.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; };
- 204D694B03BFF3B244A6AB73FACFFC43 /* Expecta-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 27E02A07C54429C2E4DF80F204D731F1 /* Expecta-dummy.m */; };
- 205E2A77E7B87C8248D453402498510E /* FBSDKBridgeAPIRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = B908E4FDCBBB33A0BE0E2A3856D7CD4E /* FBSDKBridgeAPIRequest.h */; settings = {ATTRIBUTES = (Project, ); }; };
- 20607BE2B1E5F31765026E5AC64DB27D /* AFSecurityPolicy.m in Sources */ = {isa = PBXBuildFile; fileRef = CFF615A9EE4F0C93431C83381DB7BDC1 /* AFSecurityPolicy.m */; };
- 207B0778FA44B677AA237F5D96C23E28 /* PEARFileManager.h in Headers */ = {isa = PBXBuildFile; fileRef = F20973641054FCD5E546B6E0B9DC2EFF /* PEARFileManager.h */; settings = {ATTRIBUTES = (Public, ); }; };
- 20C0CFB6F8C29123D1667E2676D8B2F5 /* FBSnapshotTestCase.h in Headers */ = {isa = PBXBuildFile; fileRef = ACE70EAFB0583248E6C28CFEDE49ED91 /* FBSnapshotTestCase.h */; settings = {ATTRIBUTES = (Public, ); }; };
- 20EE8030FCF2402DAC7F1C9B9DDAEF79 /* AFURLRequestSerialization.h in Headers */ = {isa = PBXBuildFile; fileRef = DC72EF061217162BC2634777BE97E607 /* AFURLRequestSerialization.h */; settings = {ATTRIBUTES = (Public, ); }; };
- 2183687C8190F2F74676AE1C69474B00 /* FBSDKShareOpenGraphValueContainer.m in Sources */ = {isa = PBXBuildFile; fileRef = 42628DA227F95DAE1DDFF445FC293339 /* FBSDKShareOpenGraphValueContainer.m */; };
- 22D9F8C5346519C30FDD1CF8B2A93B20 /* FBSDKBase64.h in Headers */ = {isa = PBXBuildFile; fileRef = 8D4AFC861B309676AF4EA5380CC181D6 /* FBSDKBase64.h */; settings = {ATTRIBUTES = (Project, ); }; };
- 2377F8D1A56EA684F3CD81B8C4A2AB03 /* FBSDKShareOpenGraphValueContainer.h in Headers */ = {isa = PBXBuildFile; fileRef = 8DC2B2A4F9C0649E4D0CC4330F0AA111 /* FBSDKShareOpenGraphValueContainer.h */; settings = {ATTRIBUTES = (Public, ); }; };
- 238BF70DAFAD28CF786B0029007EF12C /* PNObjectFormData.h in Headers */ = {isa = PBXBuildFile; fileRef = CFD4694A9A640B6401998EE253B7D0A8 /* PNObjectFormData.h */; settings = {ATTRIBUTES = (Public, ); }; };
- 247A122177A60D4CC65244D7FA317551 /* FBSDKShareButton.h in Headers */ = {isa = PBXBuildFile; fileRef = 4C40B9B8E736ED38F50E00F34239426C /* FBSDKShareButton.h */; settings = {ATTRIBUTES = (Public, ); }; };
- 2549CD1370AF63009DEC76693F5E9BD1 /* FBSnapshotTestCase.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7E3E30BCF457EB6EBA26AB7D18F22F74 /* FBSnapshotTestCase.framework */; };
- 254A0FE70B70FE015FBD7539ACAE1C2A /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 930245814FE1C55E5ED02533926F4E51 /* CoreGraphics.framework */; };
- 260BC7EED9289AF321A6F791964CE472 /* EXPMatchers+respondTo.h in Headers */ = {isa = PBXBuildFile; fileRef = C6C21E6D9A8F758FFBAE18D52CF2FCB6 /* EXPMatchers+respondTo.h */; settings = {ATTRIBUTES = (Public, ); }; };
- 263C4BD09917BBA6B117EF910A9298F7 /* BFCancellationTokenSource.h in Headers */ = {isa = PBXBuildFile; fileRef = E01D94AFB3D83200CEAB9AD11B24F431 /* BFCancellationTokenSource.h */; settings = {ATTRIBUTES = (Public, ); }; };
- 263EA0144A7DFC532A7A453AA28B7857 /* FBSDKShareOpenGraphObject.h in Headers */ = {isa = PBXBuildFile; fileRef = 2B2C00E8B4191825906EAB274E3DBC16 /* FBSDKShareOpenGraphObject.h */; settings = {ATTRIBUTES = (Public, ); }; };
- 266CAA62020032176163D213D837B9DF /* XCTestCase+Specta.h in Headers */ = {isa = PBXBuildFile; fileRef = 684F80C0F467F08B91BA55FDD8A5CA8F /* XCTestCase+Specta.h */; settings = {ATTRIBUTES = (Public, ); }; };
- 274D9545D0357B667BCAA82B3FB38ECD /* UIImage+Diff.h in Headers */ = {isa = PBXBuildFile; fileRef = BE0CCCD38E0646F0E0CD5042DE45D978 /* UIImage+Diff.h */; settings = {ATTRIBUTES = (Private, ); }; };
- 274F210549B6705708051256FA6FC94B /* FBSDKLikeBoxView.h in Headers */ = {isa = PBXBuildFile; fileRef = 8F83E7509252F5F0AF29A9FA68014ECA /* FBSDKLikeBoxView.h */; settings = {ATTRIBUTES = (Project, ); }; };
- 27B378AAF73A1EBB45FFD7EA38D37247 /* FBSDKLoginManagerLoginResult.m in Sources */ = {isa = PBXBuildFile; fileRef = B8330B16E9F88E6FA19DD25DAB555517 /* FBSDKLoginManagerLoginResult.m */; };
- 27D8B2F1FFCD44D48A233E44CF552E56 /* BFMeasurementEvent.h in Headers */ = {isa = PBXBuildFile; fileRef = D1B09272B12945A92D1BA041C20B3B35 /* BFMeasurementEvent.h */; settings = {ATTRIBUTES = (Public, ); }; };
- 280981151F21C4C7E0BBA396CD39BDB3 /* FBSDKShareKit-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 97668A9972E4008489DF3F8A72405B27 /* FBSDKShareKit-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; };
- 2845FB31AEFD8E767105454310C3F5D1 /* FBSDKAppEventsStateManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 1D676635A2D83E8906EA2857E24A7DDE /* FBSDKAppEventsStateManager.h */; settings = {ATTRIBUTES = (Project, ); }; };
- 2916A0606136A9DC67F2463AB230868B /* EXPMatchers+match.h in Headers */ = {isa = PBXBuildFile; fileRef = C146D1056DC35FECBA56B46657C770EC /* EXPMatchers+match.h */; settings = {ATTRIBUTES = (Public, ); }; };
- 2955FF7187EC68E90009CFFEDC848402 /* FBSDKBridgeAPIProtocolNativeV1.m in Sources */ = {isa = PBXBuildFile; fileRef = C4CD4D40AF94C8907193B1BA2592DF3C /* FBSDKBridgeAPIProtocolNativeV1.m */; };
- 299E9DD0F4332D9DB6311B6E60C5832C /* SystemConfiguration.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 019D27ADA91B8FEB6E773BD22585422A /* SystemConfiguration.framework */; };
- 29F2AEAF2B01E3739BF745ADE8E9D0A4 /* Expecta+Snapshots-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 01F88E5AD62978F752DAC9898B20AC4C /* Expecta+Snapshots-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; };
- 2A486D542629FC4CF99BECE9F1A8C7BC /* FBSDKDynamicFrameworkLoader.m in Sources */ = {isa = PBXBuildFile; fileRef = C79E3539D930C4FD5A9C7B8C3C61542A /* FBSDKDynamicFrameworkLoader.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; };
- 2B5C644A0288B3C47241AB00A0BD539D /* FBSDKMacros.h in Headers */ = {isa = PBXBuildFile; fileRef = 111140B956B413206DFA9A03CF73B4B3 /* FBSDKMacros.h */; };
- 2B6A083675F51F652906292F381C5D49 /* FBSDKBridgeAPIRequest+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = 40DEB5DF0B5C3DC45C746A1D79CC4F93 /* FBSDKBridgeAPIRequest+Private.h */; settings = {ATTRIBUTES = (Project, ); }; };
- 2BFA55CA8DE1BC277E2B276DFBED390D /* BFAppLinkResolving.h in Headers */ = {isa = PBXBuildFile; fileRef = ACB397AEA790F8AB8249878BDAF1A74C /* BFAppLinkResolving.h */; settings = {ATTRIBUTES = (Public, ); }; };
- 2C0A8737FDB9B9C6A6BDF437FD11334C /* EXPMatchers+beNil.m in Sources */ = {isa = PBXBuildFile; fileRef = AF120A52EC01F05FEE7B73F313931EBD /* EXPMatchers+beNil.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; };
- 2CC84F367366E962E8710E53FDEEDB88 /* nv_ios_http_status.m in Sources */ = {isa = PBXBuildFile; fileRef = FF7426001AFE1B82DE01ACAC972378DC /* nv_ios_http_status.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; };
- 2CFE2898496C1C7096DB8DA43AF19103 /* EXPMatchers+raise.m in Sources */ = {isa = PBXBuildFile; fileRef = BD4579AE7A337F05502633160304F087 /* EXPMatchers+raise.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; };
- 2DAA80189B6344715A7E79A3EDED6628 /* FBSDKBridgeAPIProtocolWebV2.m in Sources */ = {isa = PBXBuildFile; fileRef = AC1BBECAA7D89E1B6544FD9604E3C4DE /* FBSDKBridgeAPIProtocolWebV2.m */; };
- 2DEF85366FF04B2090E6E026C0D1B709 /* Bolts-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = A84FF37467A710D6C44E52B74843DFCA /* Bolts-dummy.m */; };
- 2E14619153A453BB8DF389FB6EA147BE /* ExpectaObject.h in Headers */ = {isa = PBXBuildFile; fileRef = CADFEBB57CE19DC5A10644C84D5F3779 /* ExpectaObject.h */; settings = {ATTRIBUTES = (Public, ); }; };
- 2E8A32ED46194EDBE22146271F6D26DE /* UIImageView+AFNetworking.m in Sources */ = {isa = PBXBuildFile; fileRef = C6F093D7F0BD1FFE12A42F94B839D87F /* UIImageView+AFNetworking.m */; };
- 2F427490ACABC4408D57CC0592276678 /* EXPDoubleTuple.h in Headers */ = {isa = PBXBuildFile; fileRef = FC47102C0D2D213E7497E3CAC4A9D165 /* EXPDoubleTuple.h */; settings = {ATTRIBUTES = (Public, ); }; };
- 2F5A66C1D2768E5D71417A7FA25F0E80 /* NSString-Helper-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 4432A4E0DD7E61E683BF8945075453F5 /* NSString-Helper-dummy.m */; };
- 2FB00EA6B695139035918D145929E388 /* FBSDKAccessTokenCaching.h in Headers */ = {isa = PBXBuildFile; fileRef = 18CE81405F326BE792700F85A46E8581 /* FBSDKAccessTokenCaching.h */; settings = {ATTRIBUTES = (Project, ); }; };
- 2FF133894F0ED2EC29181134D5785EBA /* FBSDKAudioResourceLoader.h in Headers */ = {isa = PBXBuildFile; fileRef = ECC4377970646C6618AAF9761860F324 /* FBSDKAudioResourceLoader.h */; settings = {ATTRIBUTES = (Project, ); }; };
- 2FFF7231054FB4D896754CC10AF6B65E /* FBSDKGameRequestDialog.h in Headers */ = {isa = PBXBuildFile; fileRef = CA502B4D10E75E86DCA20B18FE3096BA /* FBSDKGameRequestDialog.h */; settings = {ATTRIBUTES = (Public, ); }; };
- 31E196A38EB17B72B111E0B3C839D2D9 /* FBSDKMutableCopying.h in Copy . Public Headers */ = {isa = PBXBuildFile; fileRef = 79B7E1CDA1D6A3D665DDBDC5A7068311 /* FBSDKMutableCopying.h */; };
- 31ED601761FE6CC37B30D6AE001F2215 /* BFAppLink_Internal.h in Headers */ = {isa = PBXBuildFile; fileRef = 0D908F53D6C6D4B0B6CB100B45A7E440 /* BFAppLink_Internal.h */; settings = {ATTRIBUTES = (Public, ); }; };
- 3249F988C94C1B64192C42A11902D850 /* FBSDKLoginError.h in Headers */ = {isa = PBXBuildFile; fileRef = 0E58D8A725B06266599FBA4D916EE3BF /* FBSDKLoginError.h */; settings = {ATTRIBUTES = (Project, ); }; };
- 334A9EB0A89E519A4CD425EF39DCDA2F /* FBSDKLoginManager+Internal.h in Headers */ = {isa = PBXBuildFile; fileRef = 680D60C4CE9ED6254B055D077C2017E6 /* FBSDKLoginManager+Internal.h */; settings = {ATTRIBUTES = (Project, ); }; };
- 340490448CDBF9AC2A61E7AD0C225B5E /* SpectaUtility.m in Sources */ = {isa = PBXBuildFile; fileRef = E06DEF5F4B714C53C029888C96FD7555 /* SpectaUtility.m */; };
- 34AB45DB13EBB49C8984C6792B64CF02 /* FBSDKButton.m in Sources */ = {isa = PBXBuildFile; fileRef = B5F173CFF37BF8651553314C10E4A415 /* FBSDKButton.m */; };
- 34B6E9A30603BEBBD87BA535B7D384CA /* EXPMatchers+beInstanceOf.h in Headers */ = {isa = PBXBuildFile; fileRef = C420A23D51284ADEBF317DF0AEA580A8 /* EXPMatchers+beInstanceOf.h */; settings = {ATTRIBUTES = (Public, ); }; };
- 34C44F84195D291E149F3D732A19C6F1 /* Specta-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 63ADE053E0B94FAD6316A6D310ADA9E2 /* Specta-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; };
- 35530621142D3FD3F8D122B087296559 /* FBSDKWebDialog.m in Sources */ = {isa = PBXBuildFile; fileRef = 54859C25AB20B5FC9AD8C0295A867117 /* FBSDKWebDialog.m */; };
- 35747B0A597C4488E309D922D2B7F25A /* FBSDKBridgeAPIResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = EAA438654AA94762CF0744E1601C024C /* FBSDKBridgeAPIResponse.h */; settings = {ATTRIBUTES = (Project, ); }; };
- 35BFE3A916989439727394864EA91E04 /* FBSDKGraphRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = 9E88F4C7708A8A7D0B5DD04BE01C7FB5 /* FBSDKGraphRequest.m */; };
- 35F15DE22B98C5FE7D7D9D40ED6E0008 /* FBSDKGraphRequest+Internal.h in Headers */ = {isa = PBXBuildFile; fileRef = 7C3DFFAAFBE1167567D72274C37077C6 /* FBSDKGraphRequest+Internal.h */; settings = {ATTRIBUTES = (Project, ); }; };
- 36102BBEBFE8B221EE2BC92451C96ABF /* FBSDKCoreKit.h in Headers */ = {isa = PBXBuildFile; fileRef = AB2B006747371E2B665F88BBCDBA5E04 /* FBSDKCoreKit.h */; };
- 36250E6B4E8FD1DA484ABBACA314253A /* FBSDKViewImpressionTracker.m in Sources */ = {isa = PBXBuildFile; fileRef = CDD8D08E3AA5A3E5768E300DC20CFFE1 /* FBSDKViewImpressionTracker.m */; };
- 362C545BF62040C33E73349B8079F695 /* FBSDKGraphRequestConnection.h in Headers */ = {isa = PBXBuildFile; fileRef = 0CC2FDB1E73E42068C9B34807CC532F4 /* FBSDKGraphRequestConnection.h */; };
- 3637BC64699FECD40DB791C67CD45394 /* PEARFileManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 08AA89639EB1EEF2AFC27DFA74D9F816 /* PEARFileManager.m */; };
- 365B88D5294672DD3AA38092C2D86AA3 /* SPTExample.h in Headers */ = {isa = PBXBuildFile; fileRef = E3ABB32EBE02734A36C5BCD70AB9754A /* SPTExample.h */; settings = {ATTRIBUTES = (Public, ); }; };
- 366ADCE1E2DEA175437DBDF4C2D7440D /* FBSDKPaymentObserver.h in Headers */ = {isa = PBXBuildFile; fileRef = CC5DDC74947D1A3200F8DA859E2FE005 /* FBSDKPaymentObserver.h */; settings = {ATTRIBUTES = (Project, ); }; };
- 368F32C3C3604441AA06DF5093D5D8AB /* FBSDKShareLinkContent.m in Sources */ = {isa = PBXBuildFile; fileRef = 735FC3486090DD72D2C38AFC9F288B71 /* FBSDKShareLinkContent.m */; };
- 36F1F0CE51161C62C975E66802C829E7 /* FBSDKWebDialog.h in Headers */ = {isa = PBXBuildFile; fileRef = 50653A9504B841F87649AD0DFE8B56E7 /* FBSDKWebDialog.h */; settings = {ATTRIBUTES = (Project, ); }; };
- 3708AA48F1D26CB56F88BB6FEC72DE36 /* Bolts.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B9FFAEDB3DC76DD9705B8FA233EB4DE1 /* Bolts.framework */; };
- 3708EAADDC674DCD908104A53D6AF6F3 /* Bolts.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B9FFAEDB3DC76DD9705B8FA233EB4DE1 /* Bolts.framework */; };
- 372F7A9CCE59CE86316CF436F832A3FC /* EXPMatchers+beGreaterThanOrEqualTo.h in Headers */ = {isa = PBXBuildFile; fileRef = 557A5561015201E8A1CAEED8AE5B451A /* EXPMatchers+beGreaterThanOrEqualTo.h */; settings = {ATTRIBUTES = (Public, ); }; };
- 377AB958BA56E394819495344B0F4B8C /* FBSDKBridgeAPIProtocol.h in Headers */ = {isa = PBXBuildFile; fileRef = 90C34D18BB9BC6380C1AD81D57D60A5D /* FBSDKBridgeAPIProtocol.h */; settings = {ATTRIBUTES = (Project, ); }; };
- 379DAA416186ABEE9DB943E163EF15BA /* FBSDKGraphRequestPiggybackManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 970E4E8D21C91126C4C4ED83EAF362AD /* FBSDKGraphRequestPiggybackManager.m */; };
- 37A2D0F8493469EF2495FC689440F079 /* EXPMatchers+beLessThanOrEqualTo.h in Headers */ = {isa = PBXBuildFile; fileRef = 7451F179853190BBAB3B5BFD45BC702D /* EXPMatchers+beLessThanOrEqualTo.h */; settings = {ATTRIBUTES = (Public, ); }; };
- 37B75BFD4CEC40403FACBA26E8C33A09 /* PureLayout-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = F89DF9D11F8D67753CBFCBD0933FCF1B /* PureLayout-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; };
- 38B912710AF7BC6CDC3913B99DEB57C9 /* FBSDKBoltsMeasurementEventListener.m in Sources */ = {isa = PBXBuildFile; fileRef = 462AFA081EE6A757805F40AC5591F801 /* FBSDKBoltsMeasurementEventListener.m */; };
- 3905546D39E18BDFAFC3D3F3CB7F1676 /* HTTPStatusCodes.h in Headers */ = {isa = PBXBuildFile; fileRef = EF764FC44B2A1C892C2293DDF2629D65 /* HTTPStatusCodes.h */; settings = {ATTRIBUTES = (Public, ); }; };
- 391BE90D98905993675EB9453977EE39 /* FBSDKShareAPI.h in Headers */ = {isa = PBXBuildFile; fileRef = 9597E685F1205111EA6842DBE0D9DDB8 /* FBSDKShareAPI.h */; settings = {ATTRIBUTES = (Public, ); }; };
- 3957423A19346D13857C61D1A5C777F1 /* FBSDKMessengerIcon.m in Sources */ = {isa = PBXBuildFile; fileRef = A30B26708D73B663E99B3E43D24A0DEF /* FBSDKMessengerIcon.m */; };
- 397B320B7C59C168CC5B62E18ED8DEA0 /* EXPMatchers+beSubclassOf.h in Headers */ = {isa = PBXBuildFile; fileRef = 8A44923D558719BFBD039826FA7FDFEA /* EXPMatchers+beSubclassOf.h */; settings = {ATTRIBUTES = (Public, ); }; };
- 39E5FAA1902E475ED630947A4B08BBAD /* FBSDKButton.h in Copy . Public Headers */ = {isa = PBXBuildFile; fileRef = 6933F9EF07FA4640A95861786FEB3922 /* FBSDKButton.h */; };
- 39F3AFD4DADD9BF4AEDFAF1FEA82B2F2 /* ExpectaObject+FBSnapshotTest.h in Headers */ = {isa = PBXBuildFile; fileRef = 69C48B0C01931C9AA635ABD6D9C2A0A1 /* ExpectaObject+FBSnapshotTest.h */; settings = {ATTRIBUTES = (Public, ); }; };
- 3A8F89BFD9F67737B7E44F94170E23CA /* FBSDKSystemAccountStoreAdapter.m in Sources */ = {isa = PBXBuildFile; fileRef = 1E34306F34A51F2120D099CB060A8EB5 /* FBSDKSystemAccountStoreAdapter.m */; };
- 3B5B7495707BF7133B9FB3F834045611 /* EXPBlockDefinedMatcher.h in Headers */ = {isa = PBXBuildFile; fileRef = 1E13DBB089AF8C5B4F7874A32D27A5E2 /* EXPBlockDefinedMatcher.h */; settings = {ATTRIBUTES = (Public, ); }; };
- 3BFF1B7BC2BEA13A7FCC5109258C2E44 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A80E35072AB7909E944FA803B973A45B /* Foundation.framework */; };
- 3C2700C7DAA15C6AF84A595865C42F4D /* EXPMatchers+contain.h in Headers */ = {isa = PBXBuildFile; fileRef = 31AC5C57CC37523518C40A573BBF07E0 /* EXPMatchers+contain.h */; settings = {ATTRIBUTES = (Public, ); }; };
- 3CFF0F366F60F2ACCC3ED655AD814E3B /* AFHTTPRequestSerializer+OAuth2.h in Headers */ = {isa = PBXBuildFile; fileRef = A24888FC3F3A7E2AF5A8398535A17E2B /* AFHTTPRequestSerializer+OAuth2.h */; settings = {ATTRIBUTES = (Public, ); }; };
- 3D2789FC760A97301909F0B1201626CD /* AFNetworking-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 6A86C1C40C2498C1335B851545C9E3A3 /* AFNetworking-dummy.m */; };
- 3D48EE131B6577ED73A5CC481A6FE40C /* Expecta.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3402951EB9EBF3FC48002357365CE636 /* Expecta.framework */; };
- 3E7DB8CA31CF31EC465BE831F0FD88FA /* BFURL.m in Sources */ = {isa = PBXBuildFile; fileRef = F256940148C73D2E287E577632F851DA /* BFURL.m */; };
- 3F1BC9BAFFEEABB1ABC7614DF0FC97D5 /* AFAutoPurgingImageCache.m in Sources */ = {isa = PBXBuildFile; fileRef = F1930CD2AD665D7025DC53F60C10A45A /* AFAutoPurgingImageCache.m */; };
- 3F9472D61C236FBA7FE3ABCCC71E5E3D /* ALView+PureLayout.m in Sources */ = {isa = PBXBuildFile; fileRef = 65BD21CB4FC307EDA6509961318DB786 /* ALView+PureLayout.m */; };
- 3FB5EC97A26C7E291EF7FA8BFA0F5B7F /* PNObjectFormData.m in Sources */ = {isa = PBXBuildFile; fileRef = 22FCAFDB940F1C2553B7F4DA27AB3CFC /* PNObjectFormData.m */; };
- 40116C85BDE7EB57675473279A8B00A1 /* FBSDKGraphRequestMetadata.m in Sources */ = {isa = PBXBuildFile; fileRef = 6729F7A8A6072B4088CBD1A949366B1C /* FBSDKGraphRequestMetadata.m */; };
- 403292D82DA62291204BF59524BC4EDB /* EXPMatchers+haveCountOf.m in Sources */ = {isa = PBXBuildFile; fileRef = CBC4E2FC0C313E7818F81DB1328BB930 /* EXPMatchers+haveCountOf.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; };
- 4052EB66107F09D6F856EAA1F4FC0846 /* UIImage+Snapshot.m in Sources */ = {isa = PBXBuildFile; fileRef = 2B5CEF91C53F17BD1B3BFD279BDAED78 /* UIImage+Snapshot.m */; };
- 40E822C084FA5E419CB4E7DD5F18FF5D /* FBSDKLogo.m in Sources */ = {isa = PBXBuildFile; fileRef = E29CC61F4B4770D19AEC75D93D4598E8 /* FBSDKLogo.m */; };
- 41C4656BC1F0106C433E2F027BF96033 /* FBSDKShareDialog.h in Headers */ = {isa = PBXBuildFile; fileRef = 0BF756E47E4D8D7EC739CBC9209B2397 /* FBSDKShareDialog.h */; settings = {ATTRIBUTES = (Public, ); }; };
- 4204C39E00B2F350808B2DE50E38610E /* FBSDKCoreKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0341647EC8481DF0005B85E6CCA0BDB0 /* FBSDKCoreKit.framework */; };
- 42E3334C425DEE96210B9AD1419117B1 /* CodFisResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = A37811009CBEC1CCA1EFC60F4F61B06A /* CodFisResponse.m */; };
- 4337B8A8A4877D281C781AD32F0095A7 /* RNCryptor-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 99A5F9DA99C2A0E523EC50762F0EDEB0 /* RNCryptor-dummy.m */; };
- 436F74B6D846EE13A1AEFA0067B78EC4 /* FBSDKDynamicFrameworkLoader.h in Headers */ = {isa = PBXBuildFile; fileRef = 0A3DF7600DEB00BAC34120A9777E1A74 /* FBSDKDynamicFrameworkLoader.h */; settings = {ATTRIBUTES = (Project, ); }; };
- 439FB25319C124AA7F8718B620A26072 /* FBSDKShareError.m in Sources */ = {isa = PBXBuildFile; fileRef = 0A65E4047F53D5007AC3761AA1F27797 /* FBSDKShareError.m */; };
- 4439DE6D9DBB58E32A7F8B1F0F938CEB /* AFJSONResponseSerializerWithData.m in Sources */ = {isa = PBXBuildFile; fileRef = CAD179757155C5201B90504DF33D3EEB /* AFJSONResponseSerializerWithData.m */; };
- 4441ED22FB6E40D085C28CC0812C04A5 /* FBSDKWebDialogView.m in Sources */ = {isa = PBXBuildFile; fileRef = DAB8F453479CE29BC2A5274682018DD2 /* FBSDKWebDialogView.m */; };
- 4471B2EB9B011CCD37B889F89194E4CC /* FBSDKCoreKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0341647EC8481DF0005B85E6CCA0BDB0 /* FBSDKCoreKit.framework */; };
- 448F54A7D373F40E7CA6A579CF06D2BB /* FBSDKTypeUtility.h in Headers */ = {isa = PBXBuildFile; fileRef = 5EA4DA1B5E42AF6D0767C994F7015FF4 /* FBSDKTypeUtility.h */; settings = {ATTRIBUTES = (Project, ); }; };
- 46137F5CC368BF38BAF0D0AF81DD8FFE /* EXPMatchers+raise.h in Headers */ = {isa = PBXBuildFile; fileRef = 44D243E64670C9897511CFE37F438B87 /* EXPMatchers+raise.h */; settings = {ATTRIBUTES = (Public, ); }; };
- 46E961BEA7247217652A5F012F82FECC /* FBSDKTooltipView.m in Sources */ = {isa = PBXBuildFile; fileRef = C4D16596E9C9F70D18666C00AD683F7D /* FBSDKTooltipView.m */; };
- 470B4A42DCCB28EF5611E942CD95F43D /* BFAppLinkReturnToRefererView_Internal.h in Headers */ = {isa = PBXBuildFile; fileRef = 8CDF44B98CD18D73397EAF5F6971162D /* BFAppLinkReturnToRefererView_Internal.h */; settings = {ATTRIBUTES = (Public, ); }; };
- 47172C974ECFB200C364C51FF7175FE8 /* FBSDKGraphRequestBody.m in Sources */ = {isa = PBXBuildFile; fileRef = FBCB91481E5845F0B9676F0DC11C2E41 /* FBSDKGraphRequestBody.m */; };
- 471FD4F68E27AB26FA2AEBB8B245CEE4 /* NSValue+Expecta.h in Headers */ = {isa = PBXBuildFile; fileRef = F64803761B3D87639FA37F33640708A2 /* NSValue+Expecta.h */; settings = {ATTRIBUTES = (Public, ); }; };
- 47D16DB1D23CFE027F5BE7F7E391AB4C /* EXPMatchers+FBSnapshotTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 5694F3C3FA0C1CCF2716828E3125B850 /* EXPMatchers+FBSnapshotTest.m */; };
- 488A67D157A4A3E96C46480FD5723761 /* FBSDKAppGroupAddDialog.h in Headers */ = {isa = PBXBuildFile; fileRef = 90CC928F94DB7EC3D7E0472C8BAD28BE /* FBSDKAppGroupAddDialog.h */; settings = {ATTRIBUTES = (Public, ); }; };
- 4922A960B9BFC1DCD0A60DB798E3D1A8 /* FBSDKAccessTokenCacheV3_21.m in Sources */ = {isa = PBXBuildFile; fileRef = 399397EA8EB36171B5D0C70A4780ABE4 /* FBSDKAccessTokenCacheV3_21.m */; };
- 49239C6CF815B92F2DF5B5D79FB9B5AF /* FBSDKTooltipView.h in Headers */ = {isa = PBXBuildFile; fileRef = 220A56D448F3427CD44CFDF2F582F3FF /* FBSDKTooltipView.h */; settings = {ATTRIBUTES = (Public, ); }; };
- 49445456A01CB6D1226BDE37AE40101C /* Bolts.m in Sources */ = {isa = PBXBuildFile; fileRef = 19A9F1AE6780F766396308CCDBFF2BAE /* Bolts.m */; };
- 4A67E0DAEA9E5E5CFA329F624696AB26 /* CodFis+Helper.m in Sources */ = {isa = PBXBuildFile; fileRef = B7ED33A6B680FA71569474C8A54C0AC0 /* CodFis+Helper.m */; };
- 4B3672CCA80CE21A837AF91C5E5037FA /* FBSDKGraphErrorRecoveryProcessor.h in Copy . Public Headers */ = {isa = PBXBuildFile; fileRef = 0DE1364F96B4E610C4DE91CF779B4EFF /* FBSDKGraphErrorRecoveryProcessor.h */; };
- 4B5542E72A64100965FFFA704684CED4 /* ExpectaObject+FBSnapshotTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 5B9DDF40F9C440F2F3C25BF0700E5399 /* ExpectaObject+FBSnapshotTest.m */; };
- 4B71AC723494A4457B4E792490608807 /* Bolts.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B9FFAEDB3DC76DD9705B8FA233EB4DE1 /* Bolts.framework */; };
- 4BB4D7DDE7F1D4977D9F791A25C1EB5D /* SPTExcludeGlobalBeforeAfterEach.h in Headers */ = {isa = PBXBuildFile; fileRef = 963A6163C818FE38C7A806E3EE37691F /* SPTExcludeGlobalBeforeAfterEach.h */; settings = {ATTRIBUTES = (Public, ); }; };
- 4BBCBB9D8EF0B241A4A4FE4982985481 /* ExpectaSupport.m in Sources */ = {isa = PBXBuildFile; fileRef = 1B22524919C091767D0FC64BA711E98B /* ExpectaSupport.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; };
- 4C06C68166BF7D8B8F8CCE701A2AEBB7 /* FBSDKColor.h in Headers */ = {isa = PBXBuildFile; fileRef = 027063E0117D2454157B56D70FF67BC6 /* FBSDKColor.h */; settings = {ATTRIBUTES = (Project, ); }; };
- 4C563027F13C24615B421BC11F279811 /* FBSDKGraphRequestDataAttachment.m in Sources */ = {isa = PBXBuildFile; fileRef = D845FC80CA61C56772C5B1CC8DFC0686 /* FBSDKGraphRequestDataAttachment.m */; };
- 4DA130F813859583C3363088029A470E /* _FBSDKLoginRecoveryAttempter.h in Headers */ = {isa = PBXBuildFile; fileRef = AAF21AD438386882F4253D0D26710D54 /* _FBSDKLoginRecoveryAttempter.h */; settings = {ATTRIBUTES = (Project, ); }; };
- 4EEBAE627EF2C3017C7FEA30142570D2 /* FBSDKAppEventsUtility.h in Headers */ = {isa = PBXBuildFile; fileRef = 4825FD55F953E4B2F33F9CA4DF54C814 /* FBSDKAppEventsUtility.h */; settings = {ATTRIBUTES = (Project, ); }; };
- 4F535B1FDEAB87D360A100F7055A806E /* PEAR-FileManager-iOS-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 246D5F04BAABC508428F18B4F816E01F /* PEAR-FileManager-iOS-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; };
- 501A7D9BEC2DF74A2677C97FF8513C67 /* FBSDKLikeBoxView.m in Sources */ = {isa = PBXBuildFile; fileRef = 031D832872DF068B7E2C88C49484CAAD /* FBSDKLikeBoxView.m */; };
- 5056E0520959CBC31CCB037B59BFC847 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5855C96222FA1D187D555DCCBB756064 /* UIKit.framework */; };
- 5062716982D7B13BBDA758E244EDDC86 /* NSDate_Utils-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 45537F97917C7DEE2021005741163C52 /* NSDate_Utils-dummy.m */; };
- 50D3F9877AEFB4B47F9F8D0DE44973AF /* FBSDKMaleSilhouetteIcon.m in Sources */ = {isa = PBXBuildFile; fileRef = F0BB2214814EBCDB92EB30C58CD5F5FF /* FBSDKMaleSilhouetteIcon.m */; };
- 51154970E31FD5924300F46438EC50F4 /* FBSDKSendButton.m in Sources */ = {isa = PBXBuildFile; fileRef = 78DFFB09230FCBC0CA0609AAFC3ADE09 /* FBSDKSendButton.m */; };
- 5189F3FA2397165018710A6648AF6C33 /* RNCryptor.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5044E28DF5CA1ED5E2801D118449544E /* RNCryptor.framework */; };
- 51DDDB0FB4899757CF6A826B531B940D /* EXPUnsupportedObject.h in Headers */ = {isa = PBXBuildFile; fileRef = EACD8906BF8DCF48636176B5A3066DCA /* EXPUnsupportedObject.h */; settings = {ATTRIBUTES = (Public, ); }; };
- 51F186DB8FE70D903F4394B2F4BA98A1 /* FBSDKLikeBoxBorderView.h in Headers */ = {isa = PBXBuildFile; fileRef = 1E92B7AA6DE0CB4E58869892D9B34967 /* FBSDKLikeBoxBorderView.h */; settings = {ATTRIBUTES = (Project, ); }; };
- 52457009AF3D5208D69014B413085AB8 /* FBSDKKeychainStore.h in Headers */ = {isa = PBXBuildFile; fileRef = D6FBBF665B27C1EF3B1E9AE25352425F /* FBSDKKeychainStore.h */; settings = {ATTRIBUTES = (Project, ); }; };
- 536CF7EE510D3E5F65EA121F7D6662F6 /* VatNumber+Helper.h in Headers */ = {isa = PBXBuildFile; fileRef = A46AB308D70135FAD5D0FD2D0E88F42B /* VatNumber+Helper.h */; settings = {ATTRIBUTES = (Public, ); }; };
- 5389BB78986853F41452731E6EB0D101 /* FBSDKShareDialogMode.m in Sources */ = {isa = PBXBuildFile; fileRef = 9B85B56C5DE375DA9D66BE1CB538BF0C /* FBSDKShareDialogMode.m */; };
- 54177ECF0FE006C0B391AC3C7C91076B /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A80E35072AB7909E944FA803B973A45B /* Foundation.framework */; };
- 54AF62ACF67074BA98574325C3093D1F /* Security.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 880B739BF08231DD096EC898E61ED799 /* Security.framework */; };
- 54C51FDA59C0C15C4F3FF725F124C60E /* FBSDKGraphRequestConnection.m in Sources */ = {isa = PBXBuildFile; fileRef = E9D8CC911954A2B78AD817BCEE9E754E /* FBSDKGraphRequestConnection.m */; };
- 54CA406F60DF428704FE7E894BD91D14 /* FBSDKAppLinkUtility.h in Copy . Public Headers */ = {isa = PBXBuildFile; fileRef = 53205917CE758C7274FA062BBA003FA7 /* FBSDKAppLinkUtility.h */; };
- 5526E2332AE78F99A9EFD763159D509B /* BoltsVersion.h in Headers */ = {isa = PBXBuildFile; fileRef = 57FDAC80C9278ACFBF9FA62062007CE4 /* BoltsVersion.h */; settings = {ATTRIBUTES = (Public, ); }; };
- 5542676C8A6F6F69CBA7CEE12C54C312 /* FBSDKShareOpenGraphValueContainer+Internal.h in Headers */ = {isa = PBXBuildFile; fileRef = 9A232BEDB7AF1F08B4CE31E42797F0EC /* FBSDKShareOpenGraphValueContainer+Internal.h */; settings = {ATTRIBUTES = (Project, ); }; };
- 55A2C3FE7B4F371CED87BD4D722B0AA8 /* SPTCallSite.m in Sources */ = {isa = PBXBuildFile; fileRef = B090A8302E3F4793C3D85E55C7BEA76E /* SPTCallSite.m */; };
- 560698A4D707DCBCC1C8F98BC9B89B23 /* AFURLSessionManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 337AF354D3D279E83528A90A518A8BBD /* AFURLSessionManager.h */; settings = {ATTRIBUTES = (Public, ); }; };
- 56A50148E59BF047776EAEBEA0FEAA04 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A80E35072AB7909E944FA803B973A45B /* Foundation.framework */; };
- 57916DAA7B1981AB0DAB6D47FD1B30AD /* FBSDKCopying.h in Copy . Public Headers */ = {isa = PBXBuildFile; fileRef = 024570ED2C04D7FACB7942AEDC6E6CB7 /* FBSDKCopying.h */; };
- 5808B477EFF509D810B5CDCFDC944F80 /* AFImageDownloader.h in Headers */ = {isa = PBXBuildFile; fileRef = 0A8D5F91E3E036CCC36AE6EED47590E6 /* AFImageDownloader.h */; settings = {ATTRIBUTES = (Public, ); }; };
- 59053EC0A89FE58BCE4E88BB34BA0AD6 /* FBSDKAppEventsStateManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 2C11E487F5B0D41461C7CC5105A7C45C /* FBSDKAppEventsStateManager.m */; };
- 59496343C78DE69D77E31013D044168B /* BFAppLinkReturnToRefererView.h in Headers */ = {isa = PBXBuildFile; fileRef = 19D412475C9261014664CE7F7E00F350 /* BFAppLinkReturnToRefererView.h */; settings = {ATTRIBUTES = (Public, ); }; };
- 59C4687AA2347B699AA146E7C736D84E /* AFOAuthCredential.h in Headers */ = {isa = PBXBuildFile; fileRef = ABCC23F3768AB5D04210113304EF0D54 /* AFOAuthCredential.h */; settings = {ATTRIBUTES = (Public, ); }; };
- 59FC185BFC88003C00938CDEE2C61335 /* FBSDKLikeButtonPopWAV.h in Headers */ = {isa = PBXBuildFile; fileRef = 71A536FB579CA71B6D58143CEE1B2E57 /* FBSDKLikeButtonPopWAV.h */; settings = {ATTRIBUTES = (Project, ); }; };
- 5A2DE8AF7CBAD6CA10EF99C9A92D2D11 /* FBSDKBridgeAPIProtocolWebV1.h in Headers */ = {isa = PBXBuildFile; fileRef = 30ED9CE6AE0CAE7EE4B27ADC1F8B5EC7 /* FBSDKBridgeAPIProtocolWebV1.h */; settings = {ATTRIBUTES = (Project, ); }; };
- 5B02952007097B36C09521EECD640FD9 /* FBSDKAppLinkResolver.h in Headers */ = {isa = PBXBuildFile; fileRef = 1FEC164F45391FE495EC9104CFBE061D /* FBSDKAppLinkResolver.h */; };
- 5B1C065CC44031D0703887F2582D2BA3 /* FBSDKSendButton.h in Headers */ = {isa = PBXBuildFile; fileRef = 5FDF37188CAC76C98B336BCC03A1FCD5 /* FBSDKSendButton.h */; settings = {ATTRIBUTES = (Public, ); }; };
- 5B2D4A621D3DA971A474776AF36BB073 /* EXPBlockDefinedMatcher.m in Sources */ = {isa = PBXBuildFile; fileRef = 84DA720D27B8CA81E3916565A9AED073 /* EXPBlockDefinedMatcher.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; };
- 5C431C30DDDA65E3266D7966DFFAA138 /* Pods-PNObject_Example-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = AA1CE72928E46C7F70D4BBE1CD90756D /* Pods-PNObject_Example-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; };
- 5CF7526D330A734F7ABCDCFF3D1A9B35 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A80E35072AB7909E944FA803B973A45B /* Foundation.framework */; };
- 5EA7043FE10E75D02F3C3052AF8B8318 /* EXPDefines.h in Headers */ = {isa = PBXBuildFile; fileRef = DA91E55978266C892751E3B6886ADEB8 /* EXPDefines.h */; settings = {ATTRIBUTES = (Public, ); }; };
- 5FB9A8C93E92A2019F37320CA6EF0051 /* SPTSharedExampleGroups.m in Sources */ = {isa = PBXBuildFile; fileRef = 5D361F0A5D363FED590C7BEE029CDC61 /* SPTSharedExampleGroups.m */; };
- 5FE8A63F2E28CBA27ECDFFBF4EBFAEAC /* SPTSpec.h in Headers */ = {isa = PBXBuildFile; fileRef = E15E7810137D5C6519FE45671D67EC02 /* SPTSpec.h */; settings = {ATTRIBUTES = (Public, ); }; };
- 5FF6453E55785669885F626B853FD2AA /* UIProgressView+AFNetworking.m in Sources */ = {isa = PBXBuildFile; fileRef = EBE949F29FEC1BFE6638B83939B06AA9 /* UIProgressView+AFNetworking.m */; };
- 6064520DF59F46C2B432E593F326AA9B /* FBSDKMutableCopying.h in Headers */ = {isa = PBXBuildFile; fileRef = 79B7E1CDA1D6A3D665DDBDC5A7068311 /* FBSDKMutableCopying.h */; };
- 60C67342AEFF5BA626D029B6085DF087 /* FBSDKAccessTokenCache.h in Headers */ = {isa = PBXBuildFile; fileRef = C33D2C02BA54B3A9F5D911AA87636BD5 /* FBSDKAccessTokenCache.h */; settings = {ATTRIBUTES = (Project, ); }; };
- 60E3009342BEE96D32C546BE2DB60052 /* UIImageView+AFNetworking.h in Headers */ = {isa = PBXBuildFile; fileRef = E4DBB982703483778F5D8D5429011FB1 /* UIImageView+AFNetworking.h */; settings = {ATTRIBUTES = (Public, ); }; };
- 612D4E1E803A238D8A03CA34B6E2328B /* FBSDKShareAPI.m in Sources */ = {isa = PBXBuildFile; fileRef = 71B0E9E9F570BA85D3D226F02C7681F0 /* FBSDKShareAPI.m */; };
- 624D3D84955B69CB5F0692329DD6D2E1 /* BFAppLinkTarget.h in Headers */ = {isa = PBXBuildFile; fileRef = A4A94F5A33FD5B462BE3892D7DBC1D67 /* BFAppLinkTarget.h */; settings = {ATTRIBUTES = (Public, ); }; };
- 62C97852C8264AB639D6A11DB456CB0A /* FBSDKGameRequestDialog.m in Sources */ = {isa = PBXBuildFile; fileRef = CAB7827EC9E29CE0F2DABE0A88C05214 /* FBSDKGameRequestDialog.m */; };
- 6315D569F7A2D90C251C907CB896543F /* PureLayout-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 38DD1654A86F392CF062AAAF13F56C6B /* PureLayout-dummy.m */; };
- 63579F648CE01017DBABB4C4A852A910 /* BFAppLinkReturnToRefererController.m in Sources */ = {isa = PBXBuildFile; fileRef = 7608177C8F18AAA46BFDF38AB3B6307D /* BFAppLinkReturnToRefererController.m */; };
- 63B48DCFD7D5D1BA31DB64F19236AD53 /* FBSDKGameRequestFrictionlessRecipientCache.h in Headers */ = {isa = PBXBuildFile; fileRef = 97D58071A31A13BCAB524B3D54C40A9F /* FBSDKGameRequestFrictionlessRecipientCache.h */; settings = {ATTRIBUTES = (Project, ); }; };
- 63D91ABE50ECED3198CCB5BF8F0991FD /* FBSDKShareOpenGraphObject.m in Sources */ = {isa = PBXBuildFile; fileRef = E8BEF410E6DB823DB8827544B5659146 /* FBSDKShareOpenGraphObject.m */; };
- 648D093C2A7EBE083D883C46DA9A55F8 /* BFCancellationTokenRegistration.h in Headers */ = {isa = PBXBuildFile; fileRef = EB1636077FE4003B49B9D3F594181DED /* BFCancellationTokenRegistration.h */; settings = {ATTRIBUTES = (Public, ); }; };
- 65440DA60CE64F0AFFAD6D0CB4A121A8 /* FBSDKServerConfigurationManager+Internal.h in Headers */ = {isa = PBXBuildFile; fileRef = C5ADE434225F63C7C4F3CA9D3762F9AF /* FBSDKServerConfigurationManager+Internal.h */; settings = {ATTRIBUTES = (Project, ); }; };
- 659960F7E28E993E08CCC1E8A383E710 /* UIKit+AFNetworking.h in Headers */ = {isa = PBXBuildFile; fileRef = 3C003AC251080BD96834CF4C46FE2DE5 /* UIKit+AFNetworking.h */; settings = {ATTRIBUTES = (Public, ); }; };
- 65B9BFDE8A6123FF83E0E1078CBAA47C /* UIDevice-Utils-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 89B34C567EF94116066BB615F72F3E5A /* UIDevice-Utils-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; };
- 65BC31095CCDFC80CBF6BBA843751F23 /* EXPMatcher.h in Headers */ = {isa = PBXBuildFile; fileRef = F8100DC14762E908836F7B1EA2A765DC /* EXPMatcher.h */; settings = {ATTRIBUTES = (Public, ); }; };
- 65C1F131B24A46EF630429443212AFCB /* FBSDKShareOpenGraphContent.h in Headers */ = {isa = PBXBuildFile; fileRef = 6190A8A80A84FA8CC1B3A72A4D3C3EFA /* FBSDKShareOpenGraphContent.h */; settings = {ATTRIBUTES = (Public, ); }; };
- 6676F7ECBE69B90B41DB7752DF1EC779 /* FBSDKMonotonicTime.m in Sources */ = {isa = PBXBuildFile; fileRef = 85AAA450447100654D15E438FD5E4627 /* FBSDKMonotonicTime.m */; };
- 66A27898E989A3FA5C15AA671C4536F0 /* EXPMatchers+beIdenticalTo.m in Sources */ = {isa = PBXBuildFile; fileRef = D78B3E3C80D7AD18BCEB25408B4699D3 /* EXPMatchers+beIdenticalTo.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; };
- 66C5CDD9D74676EBFDB8F07B3EBE54E4 /* PNObject+Protected.h in Headers */ = {isa = PBXBuildFile; fileRef = F7CFA0774BB343A79B896C2ABD4EDB25 /* PNObject+Protected.h */; settings = {ATTRIBUTES = (Public, ); }; };
- 67459AD239EF669A365519E06B45DCFE /* EXPExpect.h in Headers */ = {isa = PBXBuildFile; fileRef = F2FE00256B7990241F59F0C63BB5B575 /* EXPExpect.h */; settings = {ATTRIBUTES = (Public, ); }; };
- 6771E6714BCA4ADDAA3B754ABE1B2543 /* Specta.h in Headers */ = {isa = PBXBuildFile; fileRef = E84B05729C83F72C9495DAF1C451BB65 /* Specta.h */; settings = {ATTRIBUTES = (Public, ); }; };
- 68152D921ABF6A423C192C04FDF94F0F /* AFNetworkReachabilityManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 59884A4FD6DAE179A231B8387CFC784F /* AFNetworkReachabilityManager.h */; settings = {ATTRIBUTES = (Public, ); }; };
- 6817DE148CDBD0D314AFC83255A645E4 /* FBSDKLoginTooltipView.h in Headers */ = {isa = PBXBuildFile; fileRef = A97C9D4ADB96094E3BB7CEFFD3186E7E /* FBSDKLoginTooltipView.h */; settings = {ATTRIBUTES = (Public, ); }; };
- 682CD6D15A0CFE176FDFCDE559D7DF4D /* BFURL_Internal.h in Headers */ = {isa = PBXBuildFile; fileRef = 3F9F1A662D9F62C82C07E1D7B06A1C77 /* BFURL_Internal.h */; settings = {ATTRIBUTES = (Public, ); }; };
- 683FC99BAEA8DDE9EBEE2EC93F949B36 /* FBSDKLoginManagerLoginResult+Internal.h in Headers */ = {isa = PBXBuildFile; fileRef = E1574B6106C34EAD2E72B682430C16FA /* FBSDKLoginManagerLoginResult+Internal.h */; settings = {ATTRIBUTES = (Project, ); }; };
- 686A49024BE097BE5EFD0E3E99BC102E /* SPTTestSuite.h in Headers */ = {isa = PBXBuildFile; fileRef = 47D553F057937F2703897ED7AC9D9015 /* SPTTestSuite.h */; settings = {ATTRIBUTES = (Public, ); }; };
- 68A38977EBAE334DC3C22386D00D2622 /* AFNetworkReachabilityManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 4FC1A5EBAA94B48C7A61BB510B55A1FE /* AFNetworkReachabilityManager.m */; };
- 69C23E27FE57EF6A3641DF71524FEED8 /* AFOAuth2Manager.h in Headers */ = {isa = PBXBuildFile; fileRef = E82C3628E2A760D8777BBFC984F0C74D /* AFOAuth2Manager.h */; settings = {ATTRIBUTES = (Public, ); }; };
- 6A644BF4D8710F70071FC4C61925C8E9 /* FBSDKIcon.h in Headers */ = {isa = PBXBuildFile; fileRef = 833401DAF7ECF37BB9C2BCACC5C0E778 /* FBSDKIcon.h */; settings = {ATTRIBUTES = (Project, ); }; };
- 6A735230D56FF7AA8319197677E2AEF0 /* FBSDKProfile+Internal.h in Headers */ = {isa = PBXBuildFile; fileRef = 53A765F94552BEA8B640A3942B73FE48 /* FBSDKProfile+Internal.h */; settings = {ATTRIBUTES = (Project, ); }; };
- 6AF7F779134F03B802B53312A79F3F2F /* FBSDKServerConfiguration.h in Headers */ = {isa = PBXBuildFile; fileRef = 4DD60A7742420E474A3F0F1B1D048801 /* FBSDKServerConfiguration.h */; settings = {ATTRIBUTES = (Project, ); }; };
- 6B6A947A057175F83EA39D8737DAA8B1 /* FBSDKBridgeAPICrypto.m in Sources */ = {isa = PBXBuildFile; fileRef = 80DCFC3B28724B2B96B21837714AC744 /* FBSDKBridgeAPICrypto.m */; };
- 6C2C0F560BB40CCBDCA43AAF5CC9FC93 /* FBSDKShareKit.h in Headers */ = {isa = PBXBuildFile; fileRef = DC45DDC97729A3CCE89D281106DD4C30 /* FBSDKShareKit.h */; settings = {ATTRIBUTES = (Public, ); }; };
- 6C38120678BE5227BC9D25CB8CF1DB01 /* FBSDKKeychainStore.m in Sources */ = {isa = PBXBuildFile; fileRef = EB07407E9DBC0C3D72F87B4C0300BF59 /* FBSDKKeychainStore.m */; };
- 6D0556DE38EB6EE8A35FB4F61846E9AD /* FBSDKMessengerIcon.h in Headers */ = {isa = PBXBuildFile; fileRef = E99B24C2488EE9A9CC13BAECACACE1F5 /* FBSDKMessengerIcon.h */; settings = {ATTRIBUTES = (Project, ); }; };
- 6D0CF82D9317F78FE1B723E5C50F2552 /* FBSDKApplicationDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = 76AA96C59B8519494D2C7EBE42FC0AC0 /* FBSDKApplicationDelegate.h */; };
- 6D5444F495A42710D85AF2B3EDFC3DC8 /* FBSDKAppEventsState.h in Headers */ = {isa = PBXBuildFile; fileRef = 23DBBA16C2398B90440276A73199F4DE /* FBSDKAppEventsState.h */; settings = {ATTRIBUTES = (Project, ); }; };
- 6E1930A504A3E354437FDF2C42818EA9 /* FBSDKBridgeAPIProtocolWebV2.h in Headers */ = {isa = PBXBuildFile; fileRef = 8566B67444DB3B4C97B01E98DD9D1810 /* FBSDKBridgeAPIProtocolWebV2.h */; settings = {ATTRIBUTES = (Project, ); }; };
- 6E1D978790705E137FDE439AA68DD3AA /* EXPFloatTuple.h in Headers */ = {isa = PBXBuildFile; fileRef = BC196A37061515DF5920D7247D0F1E44 /* EXPFloatTuple.h */; settings = {ATTRIBUTES = (Public, ); }; };
- 6ED4ABEE8A5F51F5ECB59FA1781D29C6 /* UIActivityIndicatorView+AFNetworking.m in Sources */ = {isa = PBXBuildFile; fileRef = F96ADA6DDED63013922C6327A73446E2 /* UIActivityIndicatorView+AFNetworking.m */; };
- 6EFC63A5CED45BB39FC79D87F2C47D6B /* EXPMatchers+beGreaterThan.h in Headers */ = {isa = PBXBuildFile; fileRef = 7547C3A2C6FF28E13BD507E23C41D2A9 /* EXPMatchers+beGreaterThan.h */; settings = {ATTRIBUTES = (Public, ); }; };
- 6F278423C8AE1DA47F35E374BB5B91EC /* EXPMatchers+beSupersetOf.m in Sources */ = {isa = PBXBuildFile; fileRef = 72C10F2911A05C7C643054C408326CFC /* EXPMatchers+beSupersetOf.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; };
- 6F7E7FA1F54C53BB7E52D45D49BF12E1 /* SPTSharedExampleGroups.h in Headers */ = {isa = PBXBuildFile; fileRef = 804B40B4D08F06C864EE3B14218638FC /* SPTSharedExampleGroups.h */; settings = {ATTRIBUTES = (Public, ); }; };
- 6F932D9320F58992F7369FAE06B34828 /* FBSDKBridgeAPIProtocolType.h in Headers */ = {isa = PBXBuildFile; fileRef = 8A1ACC60F8865CC571B299275FB7CDCB /* FBSDKBridgeAPIProtocolType.h */; settings = {ATTRIBUTES = (Project, ); }; };
- 707B1A7541C8DBDDE8C27896A61370BE /* AFURLSessionManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 71EBC83C924E87C88B92EAF32C42A63E /* AFURLSessionManager.m */; };
- 70E4BCC789D8C8F1033F23E0752502A7 /* FBSnapshotTestCase.m in Sources */ = {isa = PBXBuildFile; fileRef = 9B9843BCA3F316D774BFB4EB147C2714 /* FBSnapshotTestCase.m */; };
- 715A1122272BB3A29A10AAE4C8C03913 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A80E35072AB7909E944FA803B973A45B /* Foundation.framework */; };
- 720A7E8DA864D1B2B76704A5138C02E9 /* FBSDKAppEvents+Internal.h in Headers */ = {isa = PBXBuildFile; fileRef = FE8A0B53E860CDD4E7ABD8F8CAA2D7F2 /* FBSDKAppEvents+Internal.h */; settings = {ATTRIBUTES = (Project, ); }; };
- 720D74AC9B0F719D05625291A9D0BE02 /* PNLocation.h in Headers */ = {isa = PBXBuildFile; fileRef = 8E83847FAA3C42EEE64E775CC5EF24EF /* PNLocation.h */; settings = {ATTRIBUTES = (Public, ); }; };
- 7214A8541C7570EAF4D7AA3ECBA6B344 /* PNInstallation.m in Sources */ = {isa = PBXBuildFile; fileRef = 54641405155B66570094959327BD8176 /* PNInstallation.m */; };
- 7265164C97F3CE0723EAA6098FD46D54 /* NSArray+PureLayout.h in Headers */ = {isa = PBXBuildFile; fileRef = B27FAF4668509964521FC9DD2E6704B5 /* NSArray+PureLayout.h */; settings = {ATTRIBUTES = (Public, ); }; };
- 7332F15718920917F544F35CE2C038AA /* AFURLResponseSerialization.h in Headers */ = {isa = PBXBuildFile; fileRef = B58B9FA0437D8F71B3DE338BF4780982 /* AFURLResponseSerialization.h */; settings = {ATTRIBUTES = (Public, ); }; };
- 734B7F67FB9417B68B4F2E40CE56F826 /* FBSDKShareDialog.m in Sources */ = {isa = PBXBuildFile; fileRef = 8E4D2C0CFB532A9EBCACD944298F3853 /* FBSDKShareDialog.m */; };
- 7370CFE64A0B811DC37C74240F7B6FBC /* NSString-Helper-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = EB316D4AD96D73CDD1D932D3690E8D93 /* NSString-Helper-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; };
- 74688BB92278B12E1697F8BBADEAAAB1 /* FBSDKAppEvents.h in Copy . Public Headers */ = {isa = PBXBuildFile; fileRef = F0ECE18301275FE612BE80C76E70044F /* FBSDKAppEvents.h */; };
- 7500B0969D1E0F9F06C024AB95424487 /* FBSDKAudioResourceLoader.m in Sources */ = {isa = PBXBuildFile; fileRef = AE36E95CD10ED9B33AEC46DD0CEBCC35 /* FBSDKAudioResourceLoader.m */; };
- 75203D49B73EF64CB17E266D620967A7 /* PNObjcPassword.m in Sources */ = {isa = PBXBuildFile; fileRef = 8BEE2BA695E910BD7FAE1C919ABD7B72 /* PNObjcPassword.m */; };
- 763F76FF18569C1C701FA8B251DA3AFE /* FBSDKLoginManagerLogger.m in Sources */ = {isa = PBXBuildFile; fileRef = CCE7932B2B677323B24126A5F2DFC80D /* FBSDKLoginManagerLogger.m */; };
- 767C65F9CCCCA6B6E0A43C04594899BC /* FBSDKLoginConstants.m in Sources */ = {isa = PBXBuildFile; fileRef = 184AF8DCB8AA77A378A53DB3DC9E0BAA /* FBSDKLoginConstants.m */; };
- 76A995111F0407D9418606AA1BC6BCCE /* FBSDKErrorConfiguration.m in Sources */ = {isa = PBXBuildFile; fileRef = 390E5D414B2F64E4E7BFE1181A9621E6 /* FBSDKErrorConfiguration.m */; };
- 76CCABE79C04444450153424D7CE1DC1 /* EXPMatchers+beSupersetOf.h in Headers */ = {isa = PBXBuildFile; fileRef = 788BBA73EAEA9E06D112E3B96C3467FF /* EXPMatchers+beSupersetOf.h */; settings = {ATTRIBUTES = (Public, ); }; };
- 76D337327C10A7555447B69AA1562647 /* EXPMatchers+beInstanceOf.m in Sources */ = {isa = PBXBuildFile; fileRef = B06746D1CBBE035A1274B710E1707CE0 /* EXPMatchers+beInstanceOf.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; };
- 772A77DCA95BB8487CC66003C3D25B1F /* BFTaskCompletionSource.h in Headers */ = {isa = PBXBuildFile; fileRef = 66A0FFC1602BB62430E2A19911D02111 /* BFTaskCompletionSource.h */; settings = {ATTRIBUTES = (Public, ); }; };
- 772BFB9529121111C517FBA06EA26237 /* Expecta+Snapshots-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = EFEBD7315E0316F79854D0E0628B48FF /* Expecta+Snapshots-dummy.m */; };
- 78086867BF7BBED7E16245632C4E84CA /* FBSDKLoginError.m in Sources */ = {isa = PBXBuildFile; fileRef = 3F02F8DD77EBE0363C4EBA581D42C64B /* FBSDKLoginError.m */; };
- 7861523B9D5DFCF0F4A56E4DE3296AA2 /* FBSnapshotTestController.m in Sources */ = {isa = PBXBuildFile; fileRef = 83934A4A7CA57CCD866F579F083C0192 /* FBSnapshotTestController.m */; };
- 78B80EA2CF10F9A6D2A50891C099873D /* FBSDKGraphRequest.h in Copy . Public Headers */ = {isa = PBXBuildFile; fileRef = 9BA2EFA2357230B3951DA3C6BA7A7C51 /* FBSDKGraphRequest.h */; };
- 78C2DF6AE20AC5188754254DD6AE17A5 /* _FBSDKTemporaryErrorRecoveryAttempter.m in Sources */ = {isa = PBXBuildFile; fileRef = 0F5CCB7BF69E45AF8C1AACC8CD547CA0 /* _FBSDKTemporaryErrorRecoveryAttempter.m */; };
- 79558B1F97ABE4AB8942DC18BEBD4B82 /* EXPMatchers+beKindOf.h in Headers */ = {isa = PBXBuildFile; fileRef = D2372AA93D95B7FA45C80FBD662C01B6 /* EXPMatchers+beKindOf.h */; settings = {ATTRIBUTES = (Public, ); }; };
- 79A9CEAAF5D3D19FF7E37B206FA08438 /* SPTCompiledExample.h in Headers */ = {isa = PBXBuildFile; fileRef = C070A80C47A48AE7052FC98086716092 /* SPTCompiledExample.h */; settings = {ATTRIBUTES = (Public, ); }; };
- 79B066CD2C7F172A3DAB5A3DE45128DF /* FBSDKAppLinkResolver.m in Sources */ = {isa = PBXBuildFile; fileRef = DC6FA21EB34D66FA2B39D64B9A249004 /* FBSDKAppLinkResolver.m */; };
- 7A23129C6EF1F64D601C25B8CF8F62F7 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A80E35072AB7909E944FA803B973A45B /* Foundation.framework */; };
- 7A568273B8FA9CA2D3D4E2AD5C52C05B /* NSLayoutConstraint+PureLayout.m in Sources */ = {isa = PBXBuildFile; fileRef = 3BF5771F72CF6D38D292F26BDFAAA8B1 /* NSLayoutConstraint+PureLayout.m */; };
- 7B18B111418EA558435CA6BB4D94AD43 /* FBSDKShareKit-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 254F25EB9E8C4553D54BF506A40DC795 /* FBSDKShareKit-dummy.m */; };
- 7B223B4E6EF14BA12DA113F7EE10B96C /* NSObject+Expecta.h in Headers */ = {isa = PBXBuildFile; fileRef = ACF9426250546788173EB01B62EDB404 /* NSObject+Expecta.h */; settings = {ATTRIBUTES = (Public, ); }; };
- 7B7F213139C1B26B9C530F5EB56C9CAD /* StrongestPasswordValidator.m in Sources */ = {isa = PBXBuildFile; fileRef = 88DA8C76A877F3E59ED58AC608ED7AD0 /* StrongestPasswordValidator.m */; };
- 7BBE6467668639F9ACA202BB798C8E1F /* FBSDKCheckmarkIcon.m in Sources */ = {isa = PBXBuildFile; fileRef = 72C4116AC933F225C97EB7C25685BBF4 /* FBSDKCheckmarkIcon.m */; };
- 7C848303DFC78D4349FB807A23CB12F0 /* FBSDKGraphRequestBody.h in Headers */ = {isa = PBXBuildFile; fileRef = 4DDF466AF67C2C7960C4CA30A7A92817 /* FBSDKGraphRequestBody.h */; settings = {ATTRIBUTES = (Project, ); }; };
- 7D3F219BB989A7A36BE602D6D0004E58 /* FBSDKError.m in Sources */ = {isa = PBXBuildFile; fileRef = FDEBA4CF43368C1FF2805745DAC7FCFB /* FBSDKError.m */; };
- 7D93FE61E16FD337D13D8DCA68DF1864 /* BFAppLinkNavigation.m in Sources */ = {isa = PBXBuildFile; fileRef = DC42EFEA050BAB9F066B4C8C4382ACB0 /* BFAppLinkNavigation.m */; };
- 7D9BC01E823D2F526B90EBAB87573E62 /* nv-ios-http-status-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 619F44FEB0BB12E9B6C9DC194F15771A /* nv-ios-http-status-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; };
- 7E77F54DD1DC89EC9EEE5EE2C3194995 /* FBSDKAccessToken.m in Sources */ = {isa = PBXBuildFile; fileRef = 99897B23CC86BC9BCB2EE2EF9D311D98 /* FBSDKAccessToken.m */; };
- 7E7F02A51748EFD9F7D93B8F7979CA56 /* FBSDKViewImpressionTracker.h in Headers */ = {isa = PBXBuildFile; fileRef = D4A8B7B87F3A289ADBC7EFD25239AF27 /* FBSDKViewImpressionTracker.h */; settings = {ATTRIBUTES = (Project, ); }; };
- 805E425BBEF7A6133E32E1D30A073010 /* EXPExpect.m in Sources */ = {isa = PBXBuildFile; fileRef = 1385DB87DF3FEFC3AE491427C5559470 /* EXPExpect.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; };
- 8189BCAFD29BEF4BE70CB48112A4930E /* FBSDKShareVideo.h in Headers */ = {isa = PBXBuildFile; fileRef = 6C026779ED5532B29AD7BF1892BB1233 /* FBSDKShareVideo.h */; settings = {ATTRIBUTES = (Public, ); }; };
- 81A73BC9BA26F7E7D6BF01DF44B69362 /* FBSDKBridgeAPIProtocolWebV1.m in Sources */ = {isa = PBXBuildFile; fileRef = CDA4CB0E8B82D864CDB4842D98C60DB3 /* FBSDKBridgeAPIProtocolWebV1.m */; };
- 81B617F8D26BB10C5726D75E85D21EB7 /* UIButton+AFNetworking.h in Headers */ = {isa = PBXBuildFile; fileRef = 902621A9758E6619118E9BCC9EFF5514 /* UIButton+AFNetworking.h */; settings = {ATTRIBUTES = (Public, ); }; };
- 8247F34C45EDD7B97CBC3488E090D15D /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A80E35072AB7909E944FA803B973A45B /* Foundation.framework */; };
- 8276C822C7BF0377E10439B9264A6454 /* XCTest.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = EE4EC6FB4B2F6FD3D175A1635A7B2C12 /* XCTest.framework */; };
- 828A250670EEC2897DACA767080A8CA7 /* FBSDKLoginManagerLoginResult.h in Headers */ = {isa = PBXBuildFile; fileRef = B68E16F7DDE528865B1DF708F872F371 /* FBSDKLoginManagerLoginResult.h */; settings = {ATTRIBUTES = (Public, ); }; };
- 82B2DC85A0B1D0C5C6953B965977056E /* FBSDKVideoUploader.h in Headers */ = {isa = PBXBuildFile; fileRef = F6CDD48A2137D49E09A82EA779B12321 /* FBSDKVideoUploader.h */; settings = {ATTRIBUTES = (Project, ); }; };
- 8302757F7A46F3D19E05D69C258A3001 /* FBSDKAppLinkUtility.m in Sources */ = {isa = PBXBuildFile; fileRef = A345CD33CA1012ACFC519132C406222A /* FBSDKAppLinkUtility.m */; };
- 837261A927BBEB33A7CE5E7146A3EBED /* BFExecutor.m in Sources */ = {isa = PBXBuildFile; fileRef = CFB1635A9FFBCC9ED53C8A9F7D06CF32 /* BFExecutor.m */; };
- 837B593D7C1D01B4EA400247309D6AB0 /* Expecta-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 33BF074452551239823F383D34CF870F /* Expecta-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; };
- 843568FDEB30BD7AEF8E71F928B9CEEB /* SPTCompiledExample.m in Sources */ = {isa = PBXBuildFile; fileRef = 3028274A2D3024E1AC7889D1994AB346 /* SPTCompiledExample.m */; };
- 844A186BB37A792DF221C6D3FED55548 /* SpectaDSL.m in Sources */ = {isa = PBXBuildFile; fileRef = B08F81B342D53F6871F705F16F994817 /* SpectaDSL.m */; };
- 844C5F6F925DB192BF8EB46E44B3740A /* BFCancellationToken.m in Sources */ = {isa = PBXBuildFile; fileRef = 382F0F6227872012AC60863135D2E62F /* BFCancellationToken.m */; };
- 858F54B22A89D86291F07ED94D0BF828 /* FBSDKServerConfiguration+Internal.h in Headers */ = {isa = PBXBuildFile; fileRef = 69F4A79BA5A36E18A7071D2F7FA8E115 /* FBSDKServerConfiguration+Internal.h */; settings = {ATTRIBUTES = (Project, ); }; };
- 85B0B22D874F67F142A7F2A3EA721328 /* FBSDKCopying.h in Headers */ = {isa = PBXBuildFile; fileRef = 024570ED2C04D7FACB7942AEDC6E6CB7 /* FBSDKCopying.h */; };
- 85CA7FAC95E680BA0B90AB9D3EB1C6C5 /* FBSDKConstants.h in Copy . Public Headers */ = {isa = PBXBuildFile; fileRef = 7FBF01A12DBA9EECC888B58BBAD377AE /* FBSDKConstants.h */; };
- 85CD1659FDDE835905F7FACA6A9CBB73 /* CodFisResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 47B80C3856B87F4EBB18639C1420C0B5 /* CodFisResponse.h */; settings = {ATTRIBUTES = (Public, ); }; };
- 85E31076D5530AEEB45ACF16B2B8A983 /* EXPMatchers.h in Headers */ = {isa = PBXBuildFile; fileRef = 3D0E2CF4859429DDD3D8AFE2EDF4ACBA /* EXPMatchers.h */; settings = {ATTRIBUTES = (Public, ); }; };
- 85EB2F216487CB2E8F3FCCFBC4D69912 /* EXPMatchers+beTruthy.h in Headers */ = {isa = PBXBuildFile; fileRef = 56208E8E37A929D30D1CCDEE7784B2B7 /* EXPMatchers+beTruthy.h */; settings = {ATTRIBUTES = (Public, ); }; };
- 86A77793007A74EBA7DE4E4E5CCD28A6 /* BFAppLinkNavigation.h in Headers */ = {isa = PBXBuildFile; fileRef = A77A3EB75937A72D08AC96DF7E29F3F8 /* BFAppLinkNavigation.h */; settings = {ATTRIBUTES = (Public, ); }; };
- 86C7B4DC7245C1E31565C74EBC34B5A8 /* FBSDKLoginManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 4188F0F3C9B129C0156DA029B865E104 /* FBSDKLoginManager.h */; settings = {ATTRIBUTES = (Public, ); }; };
- 8758A10FCEE3F1349A2DB032D703E6E2 /* CodFis-Helper.bundle in Resources */ = {isa = PBXBuildFile; fileRef = BAC519B57D0FE97E0B93F2AC9F10ACE8 /* CodFis-Helper.bundle */; };
- 87CA9F2D2A8496C9B08B3B8F9A6E074C /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5855C96222FA1D187D555DCCBB756064 /* UIKit.framework */; };
- 87FD5F0F682CDEB6A348CA448889E3EA /* EXPMatchers+beKindOf.m in Sources */ = {isa = PBXBuildFile; fileRef = 78E0755AD286CC8D37991F4C8D0B934A /* EXPMatchers+beKindOf.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; };
- 88016EB7EB19D156CE2DA9DC6BD1A69A /* Specta-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 24C90A906A81F0A0C99ACB2B129E95F3 /* Specta-dummy.m */; };
- 8930B0D64D3646024EDB757DE01AC8C5 /* NSDate_Utils.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A93138E47D8D97F4D5F7A0627DD6A322 /* NSDate_Utils.framework */; };
- 89A46B63E469F17791D14FC64466794A /* UIImage+Diff.m in Sources */ = {isa = PBXBuildFile; fileRef = E0788CA538C8C3481F57A34EF238AB84 /* UIImage+Diff.m */; };
- 89B59BD52908BA3B2EEED23398CF79E6 /* FBSDKCoreKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0341647EC8481DF0005B85E6CCA0BDB0 /* FBSDKCoreKit.framework */; };
- 89BC412158C8FD48FA1966EE391C12B7 /* SpectaUtility.h in Headers */ = {isa = PBXBuildFile; fileRef = 71B49D701EA8D9D683E429BFF58C50EB /* SpectaUtility.h */; settings = {ATTRIBUTES = (Public, ); }; };
- 8A36A8E8B3844AED3C7DBD9D1E2BFBE0 /* nv_ios_http_status.h in Headers */ = {isa = PBXBuildFile; fileRef = B5AF509C80ACCD54A54EF55BA7F73071 /* nv_ios_http_status.h */; settings = {ATTRIBUTES = (Public, ); }; };
- 8A7EE9337B7EC762F188E6C9D3D11EE6 /* PNObject+PNObjectConnection.h in Headers */ = {isa = PBXBuildFile; fileRef = FBEFB2FA076E1F93862E5414BFDB8A57 /* PNObject+PNObjectConnection.h */; settings = {ATTRIBUTES = (Public, ); }; };
- 8C50A3C9FB67B28289D9AC132BA8B4E2 /* FBSDKShareLinkContent+Internal.h in Headers */ = {isa = PBXBuildFile; fileRef = 7F24B0198C84374688D6CB02FCF21773 /* FBSDKShareLinkContent+Internal.h */; settings = {ATTRIBUTES = (Project, ); }; };
- 8C85D66841B49A2929EFC1AC8D94E960 /* NSArray+PureLayout.m in Sources */ = {isa = PBXBuildFile; fileRef = A5A56F283F3328A6FBBE82A68BDAFD21 /* NSArray+PureLayout.m */; };
- 8C8C1B0D83FE6A4352F15154DB16372C /* EXPMatcherHelpers.h in Headers */ = {isa = PBXBuildFile; fileRef = 31BDB3D8DFB272D42E0963F9CDC99DEC /* EXPMatcherHelpers.h */; settings = {ATTRIBUTES = (Public, ); }; };
- 8D2EA5E0D474F50C8E228D8B03131E31 /* PNObject+PNObjectConnection.m in Sources */ = {isa = PBXBuildFile; fileRef = A7FAC20C0D377E494681BF422283294B /* PNObject+PNObjectConnection.m */; };
- 8DD814923C31D596735ABA63B294BE1C /* FBSDKAccessTokenCacheV3_21.h in Headers */ = {isa = PBXBuildFile; fileRef = 1E3AB7D39EDB9ED45D4B130D4F23AA90 /* FBSDKAccessTokenCacheV3_21.h */; settings = {ATTRIBUTES = (Project, ); }; };
- 8ED947D54E17C0B9ABDD0E541875D5D5 /* FBSDKAccessTokenCacheV3_17.m in Sources */ = {isa = PBXBuildFile; fileRef = C092DD180FD980788495D2FE247FA25B /* FBSDKAccessTokenCacheV3_17.m */; };
- 8F3C011D2D1C0F80712B805DC47D3664 /* FBSDKAppGroupContent.h in Headers */ = {isa = PBXBuildFile; fileRef = 2255793633A270EB73D390C2B35A02A7 /* FBSDKAppGroupContent.h */; settings = {ATTRIBUTES = (Public, ); }; };
- 904C440B7E7E20FF76B4403111EF62A6 /* FBSDKGraphErrorRecoveryProcessor.m in Sources */ = {isa = PBXBuildFile; fileRef = 09CEE404DAEE6949021744B7E9DB80E1 /* FBSDKGraphErrorRecoveryProcessor.m */; };
- 90CC7CA091BD1C63A0801D293486C9C3 /* FBSDKURLConnection.h in Headers */ = {isa = PBXBuildFile; fileRef = 1835617E1C07FC6D7A48DB4B58F7319C /* FBSDKURLConnection.h */; settings = {ATTRIBUTES = (Project, ); }; };
- 90E81C03BCF53C944F7C15775D695FF3 /* RNCryptor.h in Headers */ = {isa = PBXBuildFile; fileRef = 5A350D1396AC12CD019F91DBA44E58DD /* RNCryptor.h */; settings = {ATTRIBUTES = (Public, ); }; };
- 9150E488C9AC75DABF40111A141C9AE8 /* PureLayout.h in Headers */ = {isa = PBXBuildFile; fileRef = 82370C2C361DAB855CFD1E7E0818AFC1 /* PureLayout.h */; settings = {ATTRIBUTES = (Public, ); }; };
- 915C7CFA699B0F0CBC4D6F95C2280F93 /* SpectaTypes.h in Headers */ = {isa = PBXBuildFile; fileRef = BF53C9C18AB608E36677A6D58A385D85 /* SpectaTypes.h */; settings = {ATTRIBUTES = (Public, ); }; };
- 9172B81F27603000CBA6A2ECBF49970D /* BFCancellationTokenSource.m in Sources */ = {isa = PBXBuildFile; fileRef = 1C2312C2F99EA26536E3F7733B1DFF97 /* BFCancellationTokenSource.m */; };
- 918E06480F28F27361B19D19432F8538 /* EXPMatchers+endWith.m in Sources */ = {isa = PBXBuildFile; fileRef = 3054FF74DD95D1D22928A1D43A4E81E3 /* EXPMatchers+endWith.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; };
- 9280DE709B0FD8A557A82B6752C19121 /* FBSDKConstants.m in Sources */ = {isa = PBXBuildFile; fileRef = 4CFA88F8AA4B6D78E5F37C67FC1C5531 /* FBSDKConstants.m */; };
- 92A2A17C9610E6507EA24D659F836F09 /* FBSDKTypeUtility.m in Sources */ = {isa = PBXBuildFile; fileRef = EA67C55635196723D42C0907F117AAC0 /* FBSDKTypeUtility.m */; };
- 92F6DD216B6CBCBF8313DC3F9D65CD69 /* FBSDKInternalUtility.h in Headers */ = {isa = PBXBuildFile; fileRef = 71F105A5835330BF99915B5C73575E79 /* FBSDKInternalUtility.h */; settings = {ATTRIBUTES = (Project, ); }; };
- 9302BC1E3F630FBF1368BCE8DAADF291 /* FBSDKShareKit+Internal.h in Headers */ = {isa = PBXBuildFile; fileRef = BDFD0D002EEBC82276A32E2F9AFDBA7D /* FBSDKShareKit+Internal.h */; settings = {ATTRIBUTES = (Project, ); }; };
- 931D410B9F8ACB935883DF8C59F9C93E /* EXPMatchers+postNotification.m in Sources */ = {isa = PBXBuildFile; fileRef = F7D4D9C8021FBD430470B4915EC51EA8 /* EXPMatchers+postNotification.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; };
- 9346A056A063B5D9197806859888346C /* FBSDKLikeActionControllerCache.m in Sources */ = {isa = PBXBuildFile; fileRef = 76D145BEA79AA5D43664C609F4EE329B /* FBSDKLikeActionControllerCache.m */; };
- 94C47C87E397972CE98F75929F3B706C /* ExpectaObject.m in Sources */ = {isa = PBXBuildFile; fileRef = 867A20192088B26E7B35A70AE62606C8 /* ExpectaObject.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; };
- 94EE4E96E07D0333A77BB8FD10CBD69C /* FBSDKUtility.h in Headers */ = {isa = PBXBuildFile; fileRef = 117C74BB14103913FCC7F8CEBD7D6D0F /* FBSDKUtility.h */; };
- 953D8C14F70C45AED99F39D25774E31F /* FBSDKGraphRequestMetadata.h in Headers */ = {isa = PBXBuildFile; fileRef = F7B356AD2886B6E5E383223C2B80DFD7 /* FBSDKGraphRequestMetadata.h */; settings = {ATTRIBUTES = (Project, ); }; };
- 95DEC4104BC553C0B3C98964A53FD281 /* FBSDKDialogConfiguration.m in Sources */ = {isa = PBXBuildFile; fileRef = 23F9A55263A15D88829D706E22AC80F6 /* FBSDKDialogConfiguration.m */; };
- 96BB7F039CDB9C2ACF9C715C26E16FD6 /* FBSDKMath.m in Sources */ = {isa = PBXBuildFile; fileRef = 25DB35E151F005D470865DE15BBA872A /* FBSDKMath.m */; };
- 98DCF90DFBD9775D84E2119D6C325E1F /* FBSDKServerConfigurationManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 3434D23689AE0C13E02835DB9ECB7CDB /* FBSDKServerConfigurationManager.h */; settings = {ATTRIBUTES = (Project, ); }; };
- 990BE87837E7891FDFD98798D0F9D357 /* FBSDKSharePhoto.h in Headers */ = {isa = PBXBuildFile; fileRef = C0028F4822ECF784C0ACB30DD7C00EEB /* FBSDKSharePhoto.h */; settings = {ATTRIBUTES = (Public, ); }; };
- 993794224F6A64BEA192FC7BAB6FE714 /* Pods-PNObject_Tests-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = A838922082CBB903238CF0302A9F06FC /* Pods-PNObject_Tests-dummy.m */; };
- 996C2014C8320E8DB7DAA7411605B5B0 /* BFAppLink.m in Sources */ = {isa = PBXBuildFile; fileRef = 04E8B44D4D6D436319C146BB023059A3 /* BFAppLink.m */; };
- 99ACF940F0E57393D76DC43E969179C3 /* FBSDKVideoUploader.m in Sources */ = {isa = PBXBuildFile; fileRef = 43D2E3BB1F3060FBC3F28CD6BE485B89 /* FBSDKVideoUploader.m */; };
- 9A117E5B1287A5AEB9CD7A6055E5E25D /* FBSDKShareUtility.h in Headers */ = {isa = PBXBuildFile; fileRef = 21702FBC7D6FA2EF0726B1609DF6407E /* FBSDKShareUtility.h */; settings = {ATTRIBUTES = (Project, ); }; };
- 9AA6D3DA23FD89F1B6D94F4C72B6EE34 /* FBSDKUtility.h in Copy . Public Headers */ = {isa = PBXBuildFile; fileRef = 117C74BB14103913FCC7F8CEBD7D6D0F /* FBSDKUtility.h */; };
- 9ADA87A0C728B40942CF872F0CC1032D /* NSString+Helper.h in Headers */ = {isa = PBXBuildFile; fileRef = D08BB5516AA713E8B27EAA8FF4515D80 /* NSString+Helper.h */; settings = {ATTRIBUTES = (Public, ); }; };
- 9B2E761A064459F77EA9870BEF03ACC3 /* EXPMatchers+postNotification.h in Headers */ = {isa = PBXBuildFile; fileRef = 161676199EA4E922250924F0D2AD32D2 /* EXPMatchers+postNotification.h */; settings = {ATTRIBUTES = (Public, ); }; };
- 9BB9159FBA757600D3D4C0FF645F3911 /* EXPMatchers+beInTheRangeOf.m in Sources */ = {isa = PBXBuildFile; fileRef = 6BCF041F2AF79454DB628F3B3056264D /* EXPMatchers+beInTheRangeOf.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; };
- 9C2323E7953E4DF60D004738C2764793 /* FBSDKAppInviteContent.h in Headers */ = {isa = PBXBuildFile; fileRef = 34CD261D14FC0CAE6E8273B7AED7DB86 /* FBSDKAppInviteContent.h */; settings = {ATTRIBUTES = (Public, ); }; };
- 9C700E8568DF0287A74ACFA0B4928FED /* FBSDKShareKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 801B5FA9639504B4A1D87F6CBF43CB5C /* FBSDKShareKit.framework */; };
- 9CB6536B49D925EBED5E2E1EB3FA9907 /* StrongestPasswordValidator.h in Headers */ = {isa = PBXBuildFile; fileRef = 2B22B75292CB3C5B451474803BEF3C92 /* StrongestPasswordValidator.h */; settings = {ATTRIBUTES = (Public, ); }; };
- 9CC01ED81EB7C90171EB139502DD66A6 /* _FBSDKTemporaryErrorRecoveryAttempter.h in Headers */ = {isa = PBXBuildFile; fileRef = B90A10B92F21AF1C9BBEB01F7B0B7904 /* _FBSDKTemporaryErrorRecoveryAttempter.h */; settings = {ATTRIBUTES = (Project, ); }; };
- 9DF4BC5EBB9EF2E8CF7BA1D1A9A488F1 /* FBSDKGraphRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = 9BA2EFA2357230B3951DA3C6BA7A7C51 /* FBSDKGraphRequest.h */; };
- 9E1723E2FE89DC9BD907271B23B585F2 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A80E35072AB7909E944FA803B973A45B /* Foundation.framework */; };
- 9E1E90DED74B73ECE53C9AD76DE53E2D /* UIImage+AFNetworking.h in Headers */ = {isa = PBXBuildFile; fileRef = F318D168986D8B43007E6BF61E95EEC1 /* UIImage+AFNetworking.h */; settings = {ATTRIBUTES = (Public, ); }; };
- 9E448F74F0EE844257C3597EC2DB5A7C /* PNObject.m in Sources */ = {isa = PBXBuildFile; fileRef = D55C226C8F96FD2D7329D81EACFE3FBA /* PNObject.m */; };
- 9E656C4610258294F523EBBB1B0078FF /* FBSDKCrypto.m in Sources */ = {isa = PBXBuildFile; fileRef = 2CFAC21835D54078080C7B6AC770775F /* FBSDKCrypto.m */; };
- 9E8048D5D816E9AFBAB92700521382B0 /* FBSDKLikeBoxBorderView.m in Sources */ = {isa = PBXBuildFile; fileRef = EB31C088FB088C612EDD72A95D239B17 /* FBSDKLikeBoxBorderView.m */; };
- 9F16CBC702844229EB8F4DD82083980F /* FBSDKCoreKit-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 3127752AA07703849645BD1E296F0E82 /* FBSDKCoreKit-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; };
- A00EC4B7A1B96BA93FD5F8C6D58E2CF7 /* NSDate_Utils-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 925978D63DE975E818C14CFC62EEFD79 /* NSDate_Utils-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; };
- A2B6F86CBF6BC8927BB2852CDE04F398 /* FBSDKSharing.h in Headers */ = {isa = PBXBuildFile; fileRef = 2E52B5C6B84E6630681D149C5EC1C801 /* FBSDKSharing.h */; settings = {ATTRIBUTES = (Public, ); }; };
- A2C76543B1FCCA0AB7F3A0F2FD66AA9A /* FBSDKLiking.h in Headers */ = {isa = PBXBuildFile; fileRef = E6354B73D5351B60178CD59952D4987C /* FBSDKLiking.h */; settings = {ATTRIBUTES = (Public, ); }; };
- A3AF5DB4354D74ADB26485677340CBE9 /* FBSDKKeychainStoreViaBundleID.h in Headers */ = {isa = PBXBuildFile; fileRef = 8D8FB0FE96B653A9AEA5F2F77B8AC2F5 /* FBSDKKeychainStoreViaBundleID.h */; settings = {ATTRIBUTES = (Project, ); }; };
- A45D6BF90B85B42C3BA102D27B0EAF7E /* BFAppLink.h in Headers */ = {isa = PBXBuildFile; fileRef = 958F2BC783D806A88D3AE0FA733E218A /* BFAppLink.h */; settings = {ATTRIBUTES = (Public, ); }; };
- A462945883F7729B185B64B679A6BFBE /* UIWebView+AFNetworking.m in Sources */ = {isa = PBXBuildFile; fileRef = 23A905C809471CFE8C5326F10BBE6D05 /* UIWebView+AFNetworking.m */; };
- A5D4C21EECA66DFDB6E4ACE1A04777AA /* FBSDKErrorRecoveryConfiguration.h in Headers */ = {isa = PBXBuildFile; fileRef = D8F96329503FAED4425BF02D75311DB8 /* FBSDKErrorRecoveryConfiguration.h */; settings = {ATTRIBUTES = (Project, ); }; };
- A69128071A53DBC4882CC8DC76782334 /* FBSDKLoginTooltipView.m in Sources */ = {isa = PBXBuildFile; fileRef = 3A58FD68F13F78AF8A9D7D27AD1636BB /* FBSDKLoginTooltipView.m */; };
- A6C6019D45BE62C61210A9CC619368EF /* AFNetworkActivityIndicatorManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 2E7C8F4F4486FE70D94453D7294FE687 /* AFNetworkActivityIndicatorManager.m */; };
- A73AE62E3C70DBBF38CB7C96697D763F /* FBSDKLikeControl.m in Sources */ = {isa = PBXBuildFile; fileRef = 8F42C29A9DCD9488D81AD7B62A7DB5B0 /* FBSDKLikeControl.m */; };
- A769A86B421000E9EEE430373A45666C /* Bolts.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B9FFAEDB3DC76DD9705B8FA233EB4DE1 /* Bolts.framework */; };
- A7A0B58CC32AFC21D75C8DA9FC719043 /* PNObject-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = ED867712668303BA41A70CB5E1969AC2 /* PNObject-dummy.m */; };
- A7B727084100184300E30A30F9597A3D /* PNObjectConfig.h in Headers */ = {isa = PBXBuildFile; fileRef = 9A36FA75F1E4FF485524F7A34F9E940A /* PNObjectConfig.h */; settings = {ATTRIBUTES = (Public, ); }; };
- A80A5E5DFB74DEE52D15872B074559DF /* FBSDKSharePhotoContent.h in Headers */ = {isa = PBXBuildFile; fileRef = E367049ABE68F93C7CE845A02CCC4F28 /* FBSDKSharePhotoContent.h */; settings = {ATTRIBUTES = (Public, ); }; };
- A8357D1BC55BAD35C18C8120C9DAB18A /* PNObjectConstants.h in Headers */ = {isa = PBXBuildFile; fileRef = AAC9B98AB49DB17ACECA4B1D322D16C9 /* PNObjectConstants.h */; settings = {ATTRIBUTES = (Public, ); }; };
- A84245FE52EC5995B5D31EA4356A56C0 /* BFCancellationTokenRegistration.m in Sources */ = {isa = PBXBuildFile; fileRef = CCA9264638310CC0611C1200FD410567 /* BFCancellationTokenRegistration.m */; };
- A8B0C39E9BFCD004930A94FBA66A3CEB /* BFCancellationToken.h in Headers */ = {isa = PBXBuildFile; fileRef = 4921A7C33F97D10F52CBE790E4F823E3 /* BFCancellationToken.h */; settings = {ATTRIBUTES = (Public, ); }; };
- A8E047167FA3E7D9783771C27E9A8097 /* VatNumber+Helper.m in Sources */ = {isa = PBXBuildFile; fileRef = 2AC36C181B406F31796C32B6EB8BB3AF /* VatNumber+Helper.m */; };
- AAC7A4957359E640044B9108D1F17C4C /* FBSDKTestUsersManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 15BE015A3C02CD512B6FDBF20AFDD493 /* FBSDKTestUsersManager.h */; };
- AB39AC9746E7575D7449700475E41B0B /* AFHTTPSessionManager.h in Headers */ = {isa = PBXBuildFile; fileRef = BD41B71026B8BEFE03F999651C617648 /* AFHTTPSessionManager.h */; settings = {ATTRIBUTES = (Public, ); }; };
- AB60E290BD7BEB9B899F622BE80F1745 /* FBSDKContainerViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = 8CF11D328E1F7C5F442BAC0342291384 /* FBSDKContainerViewController.h */; settings = {ATTRIBUTES = (Project, ); }; };
- AB6A875AB74B484F095E03BD1B9AC1AD /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A80E35072AB7909E944FA803B973A45B /* Foundation.framework */; };
- AB889BC8C7B93051E0C88B77E41444D3 /* PEAR-FileManager-iOS-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 8285B5564B819F0A7FE5CC51843E6AC9 /* PEAR-FileManager-iOS-dummy.m */; };
- AC57C2BD7630CCD4F689A5E4ED4D342D /* FBSDKErrorConfiguration.h in Headers */ = {isa = PBXBuildFile; fileRef = 88D6F9FCC466B28FB5075B1F253A3F31 /* FBSDKErrorConfiguration.h */; settings = {ATTRIBUTES = (Project, ); }; };
- ACD6E2410430E755D7D079FFABEB83F1 /* FBSDKSettings.h in Headers */ = {isa = PBXBuildFile; fileRef = C085129AE27209824EE689C4E697A9F6 /* FBSDKSettings.h */; };
- AD368AC80B1BA3675EDB9CED108739FD /* StrongestPasswordValidator.bundle in Resources */ = {isa = PBXBuildFile; fileRef = F0294DFC06474C2B17C1DBF95E36FCEA /* StrongestPasswordValidator.bundle */; };
- AD4D9C9467544A49E49FCDD2962A6421 /* FBSDKErrorRecoveryAttempter.h in Headers */ = {isa = PBXBuildFile; fileRef = AD887F4B1F7359C957BE88F3359745CB /* FBSDKErrorRecoveryAttempter.h */; settings = {ATTRIBUTES = (Project, ); }; };
- AD52B349A273F0EB40F823990A40D2CD /* FBSDKLoginConstants.h in Headers */ = {isa = PBXBuildFile; fileRef = 456586DB202661B5EE1323762973C173 /* FBSDKLoginConstants.h */; settings = {ATTRIBUTES = (Public, ); }; };
- AE2A07407FB50BA249984DC0620E84C0 /* UIWebView+AFNetworking.h in Headers */ = {isa = PBXBuildFile; fileRef = 8588583A401CDC07B6F004203E2EE7CB /* UIWebView+AFNetworking.h */; settings = {ATTRIBUTES = (Public, ); }; };
- AE953537F404B4B4F3692A400688AFF1 /* FBSDKGameRequestContent.h in Headers */ = {isa = PBXBuildFile; fileRef = A5EC547485B88B66E8E8EDFB349B310C /* FBSDKGameRequestContent.h */; settings = {ATTRIBUTES = (Public, ); }; };
- AEC64E72FFAC813FB5592B80DAA09659 /* nv_ios_http_status.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 08EABDBB1872A8FF0094A19FC655AD7C /* nv_ios_http_status.framework */; };
- AF03C11A1FAC8132AD3749D8F541701A /* UIButton+AFNetworking.m in Sources */ = {isa = PBXBuildFile; fileRef = C0F70617DFDE18C2F4F601C2547F6685 /* UIButton+AFNetworking.m */; };
- AF1F46668D4591602887998C6E9C10AD /* EXPMatchers+beCloseTo.h in Headers */ = {isa = PBXBuildFile; fileRef = 39994B4F43FEF44A4C20A4D87E1DD8B3 /* EXPMatchers+beCloseTo.h */; settings = {ATTRIBUTES = (Public, ); }; };
- AF48AA3E577B04A43AE5F526B803540B /* FBSDKLikeActionController.m in Sources */ = {isa = PBXBuildFile; fileRef = D76A8927E9B85D24F28B36316BF93980 /* FBSDKLikeActionController.m */; };
- AFAB3F06C68E046BA56A05ED857F7D6A /* BFTask.m in Sources */ = {isa = PBXBuildFile; fileRef = 3C1D180F64F2DEC59750126D61F2CAB5 /* BFTask.m */; };
- AFFC8900E52BBEC72059334132F3A8F3 /* ExpectaSupport.h in Headers */ = {isa = PBXBuildFile; fileRef = E22E4E4B2B6F3D41BA175D49D16C072A /* ExpectaSupport.h */; settings = {ATTRIBUTES = (Public, ); }; };
- B03506CCC0191AA3382F36B1FAC9E2EF /* FBSDKBridgeAPICrypto.h in Headers */ = {isa = PBXBuildFile; fileRef = 41D8C0D702E978CE51746A144CF0C109 /* FBSDKBridgeAPICrypto.h */; settings = {ATTRIBUTES = (Project, ); }; };
- B0708CE47B50CEBC6E35C404D18A1639 /* FBSDKAppEventsDeviceInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = C761CC8409E07C789FA0DE43FEAEAE46 /* FBSDKAppEventsDeviceInfo.m */; };
- B14F512867AFCAA08A6840787DD3E2D4 /* FBSDKLikeButton.h in Headers */ = {isa = PBXBuildFile; fileRef = DDF3022E3723F73C3113BFB8E6313B0E /* FBSDKLikeButton.h */; settings = {ATTRIBUTES = (Public, ); }; };
- B168720AAFEA07354ACA1F848F1554F6 /* FBSDKProfile.h in Headers */ = {isa = PBXBuildFile; fileRef = 654C57362979E32FE721E363F55AA00E /* FBSDKProfile.h */; };
- B190D5BA558C5C48B978E9B3ED07DCDB /* FBSDKAccessTokenCacheV3.h in Headers */ = {isa = PBXBuildFile; fileRef = 2E7631FE5FF32DA7D05E326CD8536268 /* FBSDKAccessTokenCacheV3.h */; settings = {ATTRIBUTES = (Project, ); }; };
- B1AFEB4C862B3A782C307F128C723C15 /* UIDevice-Utils-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 27FE056362B56D01CB354DFA81FC7470 /* UIDevice-Utils-dummy.m */; };
- B22FE25FD01D8092AF99C9DB4B27EF9C /* SPTExampleGroup.h in Headers */ = {isa = PBXBuildFile; fileRef = A86176910EB0C572B65BAA7D6976F042 /* SPTExampleGroup.h */; settings = {ATTRIBUTES = (Public, ); }; };
- B24361D24B3FCD5EC735C04F5D1E4979 /* UIDevice-Hardware.h in Headers */ = {isa = PBXBuildFile; fileRef = E52A9052C4B7E5B6D32A34DEFC2F4B32 /* UIDevice-Hardware.h */; settings = {ATTRIBUTES = (Public, ); }; };
- B362F869459930C324FDDB6BC02F1FC3 /* FBSDKLikeButtonPopWAV.m in Sources */ = {isa = PBXBuildFile; fileRef = 4358E662755B48485AAE168AAD324507 /* FBSDKLikeButtonPopWAV.m */; };
- B3C5C2D4D8B7366C5E23F6E521E7A440 /* FBSDKLikeButton.m in Sources */ = {isa = PBXBuildFile; fileRef = AA4A5811B346E47AC7C8E327F45720C2 /* FBSDKLikeButton.m */; };
- B4993E3AF61E167FD02E795F115A62C2 /* FBSDKShareUtility.m in Sources */ = {isa = PBXBuildFile; fileRef = 7DE860B7DDCEC743A5212583259D8AF2 /* FBSDKShareUtility.m */; };
- B534C8C1D32294DB54F3C5CFFD5AAA9B /* FBSDKLoginButton.m in Sources */ = {isa = PBXBuildFile; fileRef = AA1F7DEF6604A7C01899EF5E4E7AEDF5 /* FBSDKLoginButton.m */; };
- B54F7314FDB86E66C1A7418F13C403E6 /* FBSDKContainerViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 94A0A5FA716ADCA9E911CFBB3F4C09D1 /* FBSDKContainerViewController.m */; };
- B57E7F72EC8FD7CFFD6C35657CB84C0D /* FBSDKAccessTokenCache.m in Sources */ = {isa = PBXBuildFile; fileRef = 9B109F3A950A33B8F14680CFF594C8FB /* FBSDKAccessTokenCache.m */; };
- B5852322ADE88AAD56EE042B80BA81E4 /* AFURLResponseSerialization.m in Sources */ = {isa = PBXBuildFile; fileRef = 54DD8ADCBBAF98AAB91BF2B3A4E65C78 /* AFURLResponseSerialization.m */; };
- B586C424D5F40EE18D097FE6601CFF97 /* FBSDKShareConstants.m in Sources */ = {isa = PBXBuildFile; fileRef = 6FB3D9A9DDA0770A4A8626D9B911F835 /* FBSDKShareConstants.m */; };
- B6376131E673115D7F121B1110BCE4BD /* FBSDKCloseIcon.m in Sources */ = {isa = PBXBuildFile; fileRef = AF0229C8D9B6F092338FB7AA3845D9F7 /* FBSDKCloseIcon.m */; };
- B6A71178B550B786C5D4956197806582 /* nv-ios-http-status-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = D934A34192879F0C394F52F4E59D51D4 /* nv-ios-http-status-dummy.m */; };
- B6F1EA2F55E84873A4023D434E1597B9 /* FBSDKApplicationDelegate.h in Copy . Public Headers */ = {isa = PBXBuildFile; fileRef = 76AA96C59B8519494D2C7EBE42FC0AC0 /* FBSDKApplicationDelegate.h */; };
- B7B6E30A551C3D624B2CD4F8D2935739 /* AFJSONResponseSerializerWithData.h in Headers */ = {isa = PBXBuildFile; fileRef = FA7BE1E335D790885FB64D6FEE42978D /* AFJSONResponseSerializerWithData.h */; settings = {ATTRIBUTES = (Public, ); }; };
- B82356C0A8C502128EDE4B04D440A6A1 /* FBSDKProfilePictureView.m in Sources */ = {isa = PBXBuildFile; fileRef = 2570729A110E15D485BC8C9542CAFF8F /* FBSDKProfilePictureView.m */; };
- B84431CF8C64F363A334AA7089F6C134 /* NSValue+Expecta.m in Sources */ = {isa = PBXBuildFile; fileRef = BFA7BB58B57292A31AA89325BF2949CF /* NSValue+Expecta.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; };
- B84F1DBDE967EF9965CF4F4BCB29816C /* FBSDKBase64.m in Sources */ = {isa = PBXBuildFile; fileRef = 9F44251670364D7298CC33133BB8E3CD /* FBSDKBase64.m */; };
- B8563820C993DFE2D9B92ABEFEFC9B4A /* FBSDKError.h in Headers */ = {isa = PBXBuildFile; fileRef = 610DEC0B9100117CD074E48439398496 /* FBSDKError.h */; settings = {ATTRIBUTES = (Project, ); }; };
- B941D835EF945D46304763BF3BF22DC3 /* FBSDKShareDefines.h in Headers */ = {isa = PBXBuildFile; fileRef = 95B30D0790EDD41CB794FD83AFF6ED20 /* FBSDKShareDefines.h */; settings = {ATTRIBUTES = (Project, ); }; };
- BA12B131F10BCE3BE6E9A02FC908FE9D /* EXPMatchers+beCloseTo.m in Sources */ = {isa = PBXBuildFile; fileRef = C4B98441A3E9009E9BEFA35C1EFECB14 /* EXPMatchers+beCloseTo.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; };
- BA947C31B77BBFFE9F3D12DEAE559D57 /* PureLayout+Internal.h in Headers */ = {isa = PBXBuildFile; fileRef = E450B23C38580E12404285C1EF05AB65 /* PureLayout+Internal.h */; settings = {ATTRIBUTES = (Public, ); }; };
- BAE667128DD0CF6A2FF99B8FF068C49F /* FBSDKBridgeAPIRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = 68686F014AD842A6F95DCF6F833DCEEC /* FBSDKBridgeAPIRequest.m */; };
- BAFF30C8BB8A6FD018F57EE643AB5A24 /* FBSDKAppEvents.m in Sources */ = {isa = PBXBuildFile; fileRef = B6FF7B5C48B9D9040840EA3BB7BCE8C3 /* FBSDKAppEvents.m */; };
- BB62B38C5AE87EB9F1A3CDDF395888E0 /* FBSDKAccessToken.h in Copy . Public Headers */ = {isa = PBXBuildFile; fileRef = E10420C4592D5AF9FF0F898211252F98 /* FBSDKAccessToken.h */; };
- BB72447AE168D9ADDDDEC9303BF5EDF8 /* FBSDKGraphRequestDataAttachment.h in Copy . Public Headers */ = {isa = PBXBuildFile; fileRef = A1C678B8EDA855844A40DFACBE96BBFC /* FBSDKGraphRequestDataAttachment.h */; };
- BC55C8365AEFF8217F6A567607754854 /* EXPDoubleTuple.m in Sources */ = {isa = PBXBuildFile; fileRef = 53A2109CEF67B6934C1D66E84DCB5528 /* EXPDoubleTuple.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; };
- BC63A115FE14B49663B95CA13192F572 /* FBSDKSharingButton.h in Headers */ = {isa = PBXBuildFile; fileRef = 19984EF92CC03AAD80A978E722B16F34 /* FBSDKSharingButton.h */; settings = {ATTRIBUTES = (Public, ); }; };
- BD9DA5293114BC5D99E8120ED39D5A04 /* FBSDKKeychainStoreViaBundleID.m in Sources */ = {isa = PBXBuildFile; fileRef = 805849C93498710FC1AED53BEA99F9EF /* FBSDKKeychainStoreViaBundleID.m */; };
- BDAA0F2D337C0AE260C95A7D50B65A85 /* FBSDKGameRequestFrictionlessRecipientCache.m in Sources */ = {isa = PBXBuildFile; fileRef = AFD2BE0178D4CE154D918DF2AF54615D /* FBSDKGameRequestFrictionlessRecipientCache.m */; };
- BDBF7EB2A751AE50B3BC5EA9D1D9D555 /* FBSDKGameRequestContent.m in Sources */ = {isa = PBXBuildFile; fileRef = DF6BB21B5F0D1A5ADB462FCBCCF28387 /* FBSDKGameRequestContent.m */; };
- BE463D2C7553FDDD4C16487F4A71FCA6 /* ResponseConstants.h in Headers */ = {isa = PBXBuildFile; fileRef = 7138D7BD97FC9CBC012EB3382ABFE8DA /* ResponseConstants.h */; settings = {ATTRIBUTES = (Public, ); }; };
- BE4A35631FC59F9EBEB486044401D323 /* FBSDKCrypto.h in Headers */ = {isa = PBXBuildFile; fileRef = F19A0F090C20D92B35D604EFBFC784E2 /* FBSDKCrypto.h */; settings = {ATTRIBUTES = (Project, ); }; };
- BEE08B6146639F0CF458E225239F9F04 /* CodFis-Helper-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 10FAA02D1E778815C50AD69908748415 /* CodFis-Helper-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; };
- BEFFE9FFE52E9A0833A7D2D8FB67EB4D /* EXPMatchers+beSubclassOf.m in Sources */ = {isa = PBXBuildFile; fileRef = 3B1A86285B8AD82E1E6743CAA1CB8C94 /* EXPMatchers+beSubclassOf.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; };
- BF0C14A470844D528A0C26E854C9F82D /* PureLayoutDefines.h in Headers */ = {isa = PBXBuildFile; fileRef = B209B0A87698DFAEAC8B004A957E9FFE /* PureLayoutDefines.h */; settings = {ATTRIBUTES = (Public, ); }; };
- BF3A07CDB6D7E1E577FC1BE75614F099 /* PNObject.h in Headers */ = {isa = PBXBuildFile; fileRef = 8FFCF4178E524B947AF7311B3EDB464D /* PNObject.h */; settings = {ATTRIBUTES = (Public, ); }; };
- BFD91CBFAD258F66443ACCBA332F3D40 /* PNObject.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 60E441C70C64D2749C8F7E14D6FEEC02 /* PNObject.bundle */; };
- BFE8E4EED3C4FF8094319153094100CD /* FBSDKTriStateBOOL.m in Sources */ = {isa = PBXBuildFile; fileRef = F6759D46C5AE673B7EE16F5133823839 /* FBSDKTriStateBOOL.m */; };
- BFED925EB94280480AA732F3D05C4BE9 /* FBSDKLikeControl+Internal.h in Headers */ = {isa = PBXBuildFile; fileRef = E9E9F98709208BE32CAC211A8904B5C6 /* FBSDKLikeControl+Internal.h */; settings = {ATTRIBUTES = (Project, ); }; };
- C177B5E3D432B641978AE5676C480ACF /* FBSDKLoginKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 716B68028A0992599CAFC1F3F787C086 /* FBSDKLoginKit.framework */; };
- C186D00BB65A9AEC5991C17B19AD12D3 /* FBSDKLikeButton+Internal.h in Headers */ = {isa = PBXBuildFile; fileRef = CBDFCA2DF2FA0B155CF0E1BC7B0FB928 /* FBSDKLikeButton+Internal.h */; settings = {ATTRIBUTES = (Project, ); }; };
- C2DD28375E1F0B1D0D1D2E4E607C499F /* AFSecurityPolicy.h in Headers */ = {isa = PBXBuildFile; fileRef = E1643F9A305AE178D3FDC37E618C60EB /* AFSecurityPolicy.h */; settings = {ATTRIBUTES = (Public, ); }; };
- C36804844322E4EE1712F84E089ED775 /* FBSDKLikeDialog.m in Sources */ = {isa = PBXBuildFile; fileRef = 7A717DCBBB7A95C1DB3C11780017DDD4 /* FBSDKLikeDialog.m */; };
- C419EDB3DF8CB5A6BDC560A8DFFAD120 /* FBSDKAppGroupJoinDialog.h in Headers */ = {isa = PBXBuildFile; fileRef = 3E2DC56D3E5732CBD5708D691ABA7BE0 /* FBSDKAppGroupJoinDialog.h */; settings = {ATTRIBUTES = (Public, ); }; };
- C45BD0762A3F32FC005B35F857C2D38C /* FBSDKShareVideoContent.h in Headers */ = {isa = PBXBuildFile; fileRef = 5778FF9DB0677BB4921C3FA999AA2B9C /* FBSDKShareVideoContent.h */; settings = {ATTRIBUTES = (Public, ); }; };
- C583FF6D5F3A73498E46D8D80B21E3DB /* FBSDKLoginKit+Internal.h in Headers */ = {isa = PBXBuildFile; fileRef = F6F75E96912511146BC70EBF00B9A40E /* FBSDKLoginKit+Internal.h */; settings = {ATTRIBUTES = (Project, ); }; };
- C6057505D986FAACBC32C4FCBDFE7AE4 /* AFOAuth2Manager.m in Sources */ = {isa = PBXBuildFile; fileRef = 8FBC21936423CF879C4ED62F8B484D61 /* AFOAuth2Manager.m */; };
- C6354FEC7728A4C86DAD8092509BA7D4 /* UIRefreshControl+AFNetworking.h in Headers */ = {isa = PBXBuildFile; fileRef = 8C1B61EFC522674D7B93A242565237AB /* UIRefreshControl+AFNetworking.h */; settings = {ATTRIBUTES = (Public, ); }; };
- C69340FF7D325ACC633284CDF67D2F75 /* StrongestPasswordValidator-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 7B35877C4883092B132615270E4A71D4 /* StrongestPasswordValidator-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; };
- C6E9B0A908F410317F2DBBECA0944AAB /* FBSnapshotTestCase-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 7DE1F09489885824917063D56DDD1136 /* FBSnapshotTestCase-dummy.m */; };
- C7E36EFEC52D3C6B4BAD80DF87BF81F0 /* FBSDKLikeActionControllerCache.h in Headers */ = {isa = PBXBuildFile; fileRef = 1D65BA9ABC06DE969EC9C39BB3F6D336 /* FBSDKLikeActionControllerCache.h */; settings = {ATTRIBUTES = (Project, ); }; };
- C7F74D39A93BBA300670D3C5D8C8EAC9 /* FBSDKLogo.h in Headers */ = {isa = PBXBuildFile; fileRef = E3D423FD024634A360387F6BE0E19D66 /* FBSDKLogo.h */; settings = {ATTRIBUTES = (Project, ); }; };
- C999F4F2377B0A4989747A6E2FF12824 /* FBSDKAccessTokenCacheV3.m in Sources */ = {isa = PBXBuildFile; fileRef = 873EB602D2DA7557306B240D213BA29C /* FBSDKAccessTokenCacheV3.m */; };
- C9B57D939AB4480C7A93482A12D87C4B /* FBSDKLoginCompletion.h in Headers */ = {isa = PBXBuildFile; fileRef = 9924D5513CA6AB5F359C6F4FA47926B5 /* FBSDKLoginCompletion.h */; settings = {ATTRIBUTES = (Project, ); }; };
- CAC483EF637FB4A2C2E2FC75BA631B87 /* AFAutoPurgingImageCache.h in Headers */ = {isa = PBXBuildFile; fileRef = E23E75F4B1AFF0D0E39F7D82E5C7CBAF /* AFAutoPurgingImageCache.h */; settings = {ATTRIBUTES = (Public, ); }; };
- CAF0435ED0DFD398908923904EBC326C /* BFMeasurementEvent.m in Sources */ = {isa = PBXBuildFile; fileRef = 534BA38D9F1387542D58EECB864E2FB4 /* BFMeasurementEvent.m */; };
- CBB0ECA79704A5C406450B85CF2166E2 /* FBSDKAccessTokenCacheV4.m in Sources */ = {isa = PBXBuildFile; fileRef = E40C056170FBCBDFB9CB6F219F72D999 /* FBSDKAccessTokenCacheV4.m */; };
- CC27931BF42C946771AA5A66FA703D6B /* FBSDKLogger.m in Sources */ = {isa = PBXBuildFile; fileRef = A947507C3FBC67AFDE1651E6C6C1BFFF /* FBSDKLogger.m */; };
- CC911BC6D29AB474A3A9F776BC04BBCC /* FBSDKShareVideo.m in Sources */ = {isa = PBXBuildFile; fileRef = F047C57A958CD29700AB9105D15476C2 /* FBSDKShareVideo.m */; };
- CD11B572C0245E5444BB56494A3B3D64 /* FBSDKDialogConfiguration.h in Headers */ = {isa = PBXBuildFile; fileRef = 4B79A5AD68EDCD346B55E0341075B9BA /* FBSDKDialogConfiguration.h */; settings = {ATTRIBUTES = (Project, ); }; };
- CE3F4ECBB0BC095577D66AE50C8E604C /* EXPFloatTuple.m in Sources */ = {isa = PBXBuildFile; fileRef = FE7808AE36C71D1AE7ECB2AE2EA39BB1 /* EXPFloatTuple.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; };
- CE91E0B7C2BF362403CB3A75E69AA061 /* UIImage+Snapshot.h in Headers */ = {isa = PBXBuildFile; fileRef = CBAE0C53813A06214A2A8AE23FCA93AD /* UIImage+Snapshot.h */; settings = {ATTRIBUTES = (Private, ); }; };
- CF5CF06B0263C4C3E40F0B5CE87BB91B /* PEAR_FileManager_iOS.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0F79F69D5CF15A94063B66DD2E2B8053 /* PEAR_FileManager_iOS.framework */; };
- CF7444C64BC44FF4D52DF95F65003A47 /* FBSDKBoltsMeasurementEventListener.h in Headers */ = {isa = PBXBuildFile; fileRef = 4842A2B7A09B9DBD7C03585780369AC4 /* FBSDKBoltsMeasurementEventListener.h */; settings = {ATTRIBUTES = (Project, ); }; };
- CF76D6EA339E5B8DB5939726197B1105 /* FBSDKProfile.h in Copy . Public Headers */ = {isa = PBXBuildFile; fileRef = 654C57362979E32FE721E363F55AA00E /* FBSDKProfile.h */; };
- CFA8D6B529A0EBFF0316F2629AB2556E /* AFImageDownloader.m in Sources */ = {isa = PBXBuildFile; fileRef = 40D6E81053EA99EC16C9D010906E3FFD /* AFImageDownloader.m */; };
- D000E3F9104E3B518D5296061F07BAC6 /* NSDate+NSDate_Util.h in Headers */ = {isa = PBXBuildFile; fileRef = 062B2D28A1EAC9CD3F14D4C4B9CEF1B1 /* NSDate+NSDate_Util.h */; settings = {ATTRIBUTES = (Public, ); }; };
- D06C35047988D22A1DFA319DB6ECA8D0 /* BFAppLinkReturnToRefererView.m in Sources */ = {isa = PBXBuildFile; fileRef = 90823CBB67F2934B4F8752380339CC0A /* BFAppLinkReturnToRefererView.m */; };
- D1257B0AD51234A7047D3CCE518426E9 /* FBSDKShareLinkContent.h in Headers */ = {isa = PBXBuildFile; fileRef = D4AB7C5A2B35ACA02B65D113469962EB /* FBSDKShareLinkContent.h */; settings = {ATTRIBUTES = (Public, ); }; };
- D181FA8D3863D4294F5CD912DBEDA7C2 /* XCTest.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = EE4EC6FB4B2F6FD3D175A1635A7B2C12 /* XCTest.framework */; };
- D1D19845D63768C3C61A30A15BE75BA7 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A80E35072AB7909E944FA803B973A45B /* Foundation.framework */; };
- D1E9E55D21C92E33ACE7E911BCB96269 /* FBSnapshotTestCasePlatform.h in Headers */ = {isa = PBXBuildFile; fileRef = 542CFC5BEFE9FE4DD85FE37EAD7C820C /* FBSnapshotTestCasePlatform.h */; settings = {ATTRIBUTES = (Public, ); }; };
- D27029EF4D63FD5855822C101FA7AD45 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A80E35072AB7909E944FA803B973A45B /* Foundation.framework */; };
- D2FA291DD639A8F4CE0D2EC28CD65057 /* FBSDKLikeDialog.h in Headers */ = {isa = PBXBuildFile; fileRef = 9187D1043573B650F20865FA53D8F4CB /* FBSDKLikeDialog.h */; settings = {ATTRIBUTES = (Project, ); }; };
- D323A5AAA18E104407BEF9A1C6F039F4 /* FBSDKURLOpening.h in Headers */ = {isa = PBXBuildFile; fileRef = 858A5317147FDAE58EF6BC89F2634E21 /* FBSDKURLOpening.h */; settings = {ATTRIBUTES = (Project, ); }; };
- D43EB60615448D41F5B6D038EF508C37 /* FBSDKServerConfiguration.m in Sources */ = {isa = PBXBuildFile; fileRef = 2C8C4901FC6A30AEC6162569CB69A5ED /* FBSDKServerConfiguration.m */; };
- D44FEECD7262E751DCCF79D9F16B1707 /* SPTExampleGroup.m in Sources */ = {isa = PBXBuildFile; fileRef = 10E1B65976FD696EF47E5CDF3C3F3FC0 /* SPTExampleGroup.m */; };
- D46DB970A24693D6F6D5EE19333FBE59 /* FBSDKMessageDialog.h in Headers */ = {isa = PBXBuildFile; fileRef = 8D263E2D0984E897E3E9C7D07C15F901 /* FBSDKMessageDialog.h */; settings = {ATTRIBUTES = (Public, ); }; };
- D4835890F05659C261959725C53CC8D1 /* FBSDKShareOpenGraphAction.h in Headers */ = {isa = PBXBuildFile; fileRef = 3B4E3F3F6E9D323171C4A024036B9B32 /* FBSDKShareOpenGraphAction.h */; settings = {ATTRIBUTES = (Public, ); }; };
- D51B48F024EFDD78B34B09DA05B83D12 /* ALView+PureLayout.h in Headers */ = {isa = PBXBuildFile; fileRef = 83F8259AFB910AD011A3DAD0E47AC479 /* ALView+PureLayout.h */; settings = {ATTRIBUTES = (Public, ); }; };
- D536FC956904C4A4CF8D9202D788F98F /* FBSDKAccessToken.h in Headers */ = {isa = PBXBuildFile; fileRef = E10420C4592D5AF9FF0F898211252F98 /* FBSDKAccessToken.h */; };
- D5ABADB4F214A506F76B6437E646FB8E /* FBSDKSettings+Internal.h in Headers */ = {isa = PBXBuildFile; fileRef = CB1E608B7334ADAB0902E120DDF4276C /* FBSDKSettings+Internal.h */; settings = {ATTRIBUTES = (Project, ); }; };
- D5F8C5492512E2BD458325B8491C6EED /* FBSDKApplicationDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = D5B5634FAC8A571FF2791A8A9CC8E797 /* FBSDKApplicationDelegate.m */; };
- D7118C8C970E476D4ACF63E358258136 /* FBSDKShareButton.m in Sources */ = {isa = PBXBuildFile; fileRef = E7A238B32171246F47BCBFBF309B6FB1 /* FBSDKShareButton.m */; };
- D767E76ADDAB5CEA4B9B324A15A20ED3 /* FBSDKShareDialogMode.h in Headers */ = {isa = PBXBuildFile; fileRef = 74B4D0737934B3B642DA59900A2CB37D /* FBSDKShareDialogMode.h */; settings = {ATTRIBUTES = (Public, ); }; };
- D80E3A1971AF7FDCE82F3241BA53B59B /* FBSDKLoginKit.h in Headers */ = {isa = PBXBuildFile; fileRef = C316FA0C53240D3DF5411358DB77ACB7 /* FBSDKLoginKit.h */; settings = {ATTRIBUTES = (Public, ); }; };
- D83677C54D2226C67886A525B0B46FBE /* EXPMatchers+beLessThanOrEqualTo.m in Sources */ = {isa = PBXBuildFile; fileRef = BE4EE03E6F416C89D5972051523D7D2C /* EXPMatchers+beLessThanOrEqualTo.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; };
- D850A8DA79AC08E12FF8C2544FD08F26 /* FBSDKTimeSpentData.h in Headers */ = {isa = PBXBuildFile; fileRef = B628C6FFE7CF325483B41789D0D56AC1 /* FBSDKTimeSpentData.h */; settings = {ATTRIBUTES = (Project, ); }; };
- D8DDC1FE940EA061A264799704714161 /* FBSDKCheckmarkIcon.h in Headers */ = {isa = PBXBuildFile; fileRef = 69E67BCCC6B8174CF8F182B56986204F /* FBSDKCheckmarkIcon.h */; settings = {ATTRIBUTES = (Project, ); }; };
- D9C9B21422DA694F0D84EAF37A7200AD /* FBSDKPaymentObserver.m in Sources */ = {isa = PBXBuildFile; fileRef = DC9EEE55F1CEA6E09EA5FE5C785A0B00 /* FBSDKPaymentObserver.m */; };
- D9F4E833E37B611B432F6B5D7072DDA2 /* UIProgressView+AFNetworking.h in Headers */ = {isa = PBXBuildFile; fileRef = 7CE1620AF70C77E10BABE437E87236B9 /* UIProgressView+AFNetworking.h */; settings = {ATTRIBUTES = (Public, ); }; };
- DAA37C4CD213B2861ADD1B7603D4D21F /* FBSDKInternalUtility.m in Sources */ = {isa = PBXBuildFile; fileRef = E52748F2BCDAE532998FBD195CD41CDA /* FBSDKInternalUtility.m */; };
- DB2B67CAFC71813E233E5B7724BE0791 /* FBSDKProfilePictureView.h in Copy . Public Headers */ = {isa = PBXBuildFile; fileRef = 1E9AF4D3638A06B08FFCE91474C30231 /* FBSDKProfilePictureView.h */; };
- DB30F82FB1BE083D9471B965FB500CA2 /* EXPMatchers+conformTo.m in Sources */ = {isa = PBXBuildFile; fileRef = 6A11A7EB69BA654FB3DD572379550C3E /* EXPMatchers+conformTo.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; };
- DB3EDDE4044A8EC280EB37730F7D6CC8 /* PNInstallation.h in Headers */ = {isa = PBXBuildFile; fileRef = 0EE38D2200B1A63FE661CCE556A8AA30 /* PNInstallation.h */; settings = {ATTRIBUTES = (Public, ); }; };
- DD6C44C96850BCF015ECB9F6D75616E2 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A80E35072AB7909E944FA803B973A45B /* Foundation.framework */; };
- DD875C0F86FA77C0ACFB97DCD6078F98 /* CodFis-Helper-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = E7510E5C49DD0B98ED2CAF57769F3668 /* CodFis-Helper-dummy.m */; };
- DEE8F8E9808D83A26C64B6E6ECDA72D8 /* BFWebViewAppLinkResolver.h in Headers */ = {isa = PBXBuildFile; fileRef = B4E563A5F11A9B55ED397ECEBAC1FC4C /* BFWebViewAppLinkResolver.h */; settings = {ATTRIBUTES = (Public, ); }; };
- DF012A1A74D2A28EF1337B0EC806BD78 /* UIDevice-Hardware.m in Sources */ = {isa = PBXBuildFile; fileRef = 540EADF849F309E32F011F8AEADF7FE3 /* UIDevice-Hardware.m */; };
- DFFA215EEAA8DDBD540076927535275C /* AFURLRequestSerialization.m in Sources */ = {isa = PBXBuildFile; fileRef = 0E81589989E516062DB4219ABB7F73F9 /* AFURLRequestSerialization.m */; };
- E0A077DFB064B79685B810CCEFB2F1EF /* EXPMatchers+respondTo.m in Sources */ = {isa = PBXBuildFile; fileRef = A5080C9CA50F180DA69F644BFAC504B0 /* EXPMatchers+respondTo.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; };
- E0AAF49134A0505DF00E20E7B62087E1 /* EXPMatchers+beIdenticalTo.h in Headers */ = {isa = PBXBuildFile; fileRef = 79A1CCF7654F71D41112220E0DC10A37 /* EXPMatchers+beIdenticalTo.h */; settings = {ATTRIBUTES = (Public, ); }; };
- E0BE0BC047E16984EBD1AE4425CAB405 /* AFNetworking.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CB0660385C24893A2D1161705BDE228F /* AFNetworking.framework */; };
- E0D4045AC4C1B41917FCA23A042D18B2 /* AFHTTPSessionManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 894E00D21A6463A75BBE06EABD108667 /* AFHTTPSessionManager.m */; };
- E10811B5E4578C31FB675361C99EDED6 /* UIImage+Compare.h in Headers */ = {isa = PBXBuildFile; fileRef = 350BE28EB1F5049B457015968B448B88 /* UIImage+Compare.h */; settings = {ATTRIBUTES = (Private, ); }; };
- E113030462AD8FB83B155414E775DEFB /* FBSDKMacros.h in Copy . Public Headers */ = {isa = PBXBuildFile; fileRef = 111140B956B413206DFA9A03CF73B4B3 /* FBSDKMacros.h */; };
- E1888FDD5FBCB0D1F21EF99647F73535 /* SpectaDSL.h in Headers */ = {isa = PBXBuildFile; fileRef = 5312DA28670878BCF7F96B2BF53E1AC1 /* SpectaDSL.h */; settings = {ATTRIBUTES = (Public, ); }; };
- E1A545D3C101CD9D652565A63F65FA91 /* FBSDKCoreKit-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = E23532124F3E6DCADABFA3E531C162B5 /* FBSDKCoreKit-dummy.m */; };
- E1EC4532663CA75DE5BD00CB0A56814D /* Expecta.h in Headers */ = {isa = PBXBuildFile; fileRef = 80616939E2E0B3BA8BB5911A832CAEB4 /* Expecta.h */; settings = {ATTRIBUTES = (Public, ); }; };
- E202FA16CD9472E2472690B3413291B8 /* FBSDKBridgeAPIProtocolNativeV1.h in Headers */ = {isa = PBXBuildFile; fileRef = EBAC0522C9A023C3C948A99EF5C48BF6 /* FBSDKBridgeAPIProtocolNativeV1.h */; settings = {ATTRIBUTES = (Project, ); }; };
- E3132543DB75A2C34CA3874B6ADA1677 /* XCTest+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = 2DF6275EA9617E82375B652324EF56E7 /* XCTest+Private.h */; settings = {ATTRIBUTES = (Public, ); }; };
- E3C61206BEDBA3EBAA0A69B51DE0F3AA /* FBSnapshotTestCasePlatform.m in Sources */ = {isa = PBXBuildFile; fileRef = 244B32EE3886377A49AD3AEBB8E47769 /* FBSnapshotTestCasePlatform.m */; };
- E43B4B0C17AB97DE5D5F168A1146052E /* FBSDKUtility.m in Sources */ = {isa = PBXBuildFile; fileRef = 35D7E17C4BE36279F66BDBA27CE15BDA /* FBSDKUtility.m */; };
- E4D3C159E4A8DD217E6CEFD6F9549DBC /* FBSDKIcon.m in Sources */ = {isa = PBXBuildFile; fileRef = C98B1390F57BC358105DFD4022EBA3D2 /* FBSDKIcon.m */; };
- E4EC16570D46F25B3BD2830D65C06AE5 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A80E35072AB7909E944FA803B973A45B /* Foundation.framework */; };
- E4F1EBC4ADEFA94F3641370CC0F7F4E1 /* Pods-PNObject_Example-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 60B530196848B62AA6D54AEEB46A06D8 /* Pods-PNObject_Example-dummy.m */; };
- E53C7DCFB48289382A67508217D07073 /* FBSDKWebDialogView.h in Headers */ = {isa = PBXBuildFile; fileRef = 38D49540BC8A87E116D102264D68EDFF /* FBSDKWebDialogView.h */; settings = {ATTRIBUTES = (Project, ); }; };
- E66A0248B1EFD2E312A3D47DB9BD8F74 /* FBSDKProfile.m in Sources */ = {isa = PBXBuildFile; fileRef = ABB015CDA38CD139C8C3C53237CC4730 /* FBSDKProfile.m */; };
- E6E14003B96F98489B61CC375F0E7277 /* PNLocation.m in Sources */ = {isa = PBXBuildFile; fileRef = 3D24E6828F140872A1424200FE40DCAF /* PNLocation.m */; };
- E735386085CE344F6A01178CF4763852 /* EXPMatchers+beNil.h in Headers */ = {isa = PBXBuildFile; fileRef = EDD86FA116EC57F3387FD9B82D911B2B /* EXPMatchers+beNil.h */; settings = {ATTRIBUTES = (Public, ); }; };
- E7360EED52B408BE8FDBA494E4A45327 /* FBSDKCloseIcon.h in Headers */ = {isa = PBXBuildFile; fileRef = D61A312B5E17609342B2E0585AF3B38F /* FBSDKCloseIcon.h */; settings = {ATTRIBUTES = (Project, ); }; };
- E753834535C79767BC82A8304996B109 /* FBSDKLikeControl.h in Headers */ = {isa = PBXBuildFile; fileRef = F6570E443F2F7B4B556F499FBA92092B /* FBSDKLikeControl.h */; settings = {ATTRIBUTES = (Public, ); }; };
- E770B643BDFF92A38131DB0D90B4CDC9 /* UIDevice_Utils.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 50566CF1EC56A61C10E9F8040AE4B7E7 /* UIDevice_Utils.framework */; };
- E7988678C81F7CCB95D239375FC6986D /* AFNetworking.h in Headers */ = {isa = PBXBuildFile; fileRef = 87169B8D7D4BA6A06B6B146E3A0E9FFB /* AFNetworking.h */; settings = {ATTRIBUTES = (Public, ); }; };
- E83D085E1702EBF2941B74E83778AD3E /* Bolts-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 4A82A8C4692A7DAA54BE9D0EE532EE81 /* Bolts-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; };
- E9602FBF9DAF012DD2C03A2ABB380632 /* FBSDKAppGroupAddDialog.m in Sources */ = {isa = PBXBuildFile; fileRef = 467A6955DB9A5C78EF7050C50C17ADF3 /* FBSDKAppGroupAddDialog.m */; };
- E9D83491F14994CEC10D9722F98C2621 /* FBSDKTestUsersManager.h in Copy . Public Headers */ = {isa = PBXBuildFile; fileRef = 15BE015A3C02CD512B6FDBF20AFDD493 /* FBSDKTestUsersManager.h */; };
- EA5C8518DA1640EB827497582D60F5F8 /* PNObjectModel.m in Sources */ = {isa = PBXBuildFile; fileRef = C252A2B22DDE3643CC170745B5C0FA67 /* PNObjectModel.m */; };
- EA840679AC9463E0E3D371FCC3466B0A /* EXPMatchers+FBSnapshotTest.h in Headers */ = {isa = PBXBuildFile; fileRef = BBE3F45B6CDC0F4CF1C07F83ABEF213F /* EXPMatchers+FBSnapshotTest.h */; settings = {ATTRIBUTES = (Public, ); }; };
- EB48263D92C7471B431BCD305F3B9C98 /* FBSDKAppEventsUtility.m in Sources */ = {isa = PBXBuildFile; fileRef = A87B668CBC25F8366BF942597C96726C /* FBSDKAppEventsUtility.m */; };
- EB6F758820BB466F4B6FD2474F8317DF /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A80E35072AB7909E944FA803B973A45B /* Foundation.framework */; };
- EC7CADE416A78A1CD6936018A6695126 /* AFNetworking-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 7DB34EED0781E60D20AF367321B0B952 /* AFNetworking-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; };
- ED8E8565CE822D9F63077227C44F8EAA /* FBSDKCoreKit+Internal.h in Headers */ = {isa = PBXBuildFile; fileRef = E83FF3B7B243721732C79FC503972287 /* FBSDKCoreKit+Internal.h */; settings = {ATTRIBUTES = (Project, ); }; };
- EDB2130EF73D5EED8328A39EE245953E /* FBSDKProfilePictureView.h in Headers */ = {isa = PBXBuildFile; fileRef = 1E9AF4D3638A06B08FFCE91474C30231 /* FBSDKProfilePictureView.h */; };
- EDC1E9A948717C646535CD78857EF841 /* FBSDKButton.h in Headers */ = {isa = PBXBuildFile; fileRef = 6933F9EF07FA4640A95861786FEB3922 /* FBSDKButton.h */; };
- EDD254449CD8FF482448772C604D758A /* FBSDKLoginKit-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = BA1841C46D1F51ADFAAFAA5323F5CC86 /* FBSDKLoginKit-dummy.m */; };
- EDEE3D0D44B63270AC3F0A1F7E595450 /* BFWebViewAppLinkResolver.m in Sources */ = {isa = PBXBuildFile; fileRef = 9DBE0E52D2D99A184DB399F270347C63 /* BFWebViewAppLinkResolver.m */; };
- EE7F7D3CA0C1493CDBE5E67A516E4456 /* FBSDKAppEventsState.m in Sources */ = {isa = PBXBuildFile; fileRef = 96F361A48390DE67313A4B31E3372E3A /* FBSDKAppEventsState.m */; };
- EEADE26AEEE95AF121B8D39CEFDF9044 /* FBSDKShareOpenGraphContent.m in Sources */ = {isa = PBXBuildFile; fileRef = 31C989F8EFAA76C2C17699D023542E96 /* FBSDKShareOpenGraphContent.m */; };
- EEB93CE55083DA77EB9ABB52182D3628 /* BFTaskCompletionSource.m in Sources */ = {isa = PBXBuildFile; fileRef = 5B26BE16735CD4ABD287EDB9A4B87349 /* BFTaskCompletionSource.m */; };
- EEEFFCBA7E64D629BE5E57815DB49042 /* FBSDKSystemAccountStoreAdapter.h in Headers */ = {isa = PBXBuildFile; fileRef = 3089AAC7B1FB370F2F2B50A86B70A367 /* FBSDKSystemAccountStoreAdapter.h */; settings = {ATTRIBUTES = (Project, ); }; };
- EF6497EE123F6BC0C1B09717437C5908 /* EXPUnsupportedObject.m in Sources */ = {isa = PBXBuildFile; fileRef = D435243B7DF26E71130EAB0E511C8964 /* EXPUnsupportedObject.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; };
- EFE77D3F55F4A07C39B370B81B92F49F /* FBSDKAppLinkResolver.h in Copy . Public Headers */ = {isa = PBXBuildFile; fileRef = 1FEC164F45391FE495EC9104CFBE061D /* FBSDKAppLinkResolver.h */; };
- F070B95360E14EE8E51A72DD0A218B99 /* FBSDKAppInviteContent.m in Sources */ = {isa = PBXBuildFile; fileRef = 584A04915C8BC48EBA12A137EED2DA97 /* FBSDKAppInviteContent.m */; };
- F0A9495E5CD098FEA76F105A290C5100 /* StrongestPasswordValidator-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 9BB4DD70745C616049AB72BE1BE70BBC /* StrongestPasswordValidator-dummy.m */; };
- F0DDF02A078B917997FF025BB33BB842 /* EXPMatchers+conformTo.h in Headers */ = {isa = PBXBuildFile; fileRef = A623A5FB2EB4B01092327B4026418777 /* EXPMatchers+conformTo.h */; settings = {ATTRIBUTES = (Public, ); }; };
- F12D57414A73406831CC032A7170DBFF /* EXPMatchers+beginWith.m in Sources */ = {isa = PBXBuildFile; fileRef = 441DA1315E1579D07BE86A598FDF7263 /* EXPMatchers+beginWith.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; };
- F1867C99D4A92FC191093E4901E463B5 /* XCTest.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = EE4EC6FB4B2F6FD3D175A1635A7B2C12 /* XCTest.framework */; };
- F1C7451C6DB8D385D9B3185277AF839F /* FBSDKMessageDialog.m in Sources */ = {isa = PBXBuildFile; fileRef = 791D3A3EA41033E024773821B5F2F4C0 /* FBSDKMessageDialog.m */; };
- F211020303652B9950C244207D027A03 /* AFOAuthCredential.m in Sources */ = {isa = PBXBuildFile; fileRef = 5795DC7159A207645C274B57953AAE40 /* AFOAuthCredential.m */; };
- F294B75539C74EDB0B55D2350874A225 /* FBSDKLoginButton.h in Headers */ = {isa = PBXBuildFile; fileRef = 2B3265CA4C64A889E5B268C2190A779E /* FBSDKLoginButton.h */; settings = {ATTRIBUTES = (Public, ); }; };
- F2EC13DC8EAD5C164567FADEBAAD4652 /* PNUser.m in Sources */ = {isa = PBXBuildFile; fileRef = A64A46BA90440D57304BA7E254B21F17 /* PNUser.m */; };
- F3A1BD732F01439059FBC32F63E08946 /* FBSDKButton+Subclass.h in Headers */ = {isa = PBXBuildFile; fileRef = E3C72207E7ECC16B3179A7B44EF4D392 /* FBSDKButton+Subclass.h */; settings = {ATTRIBUTES = (Project, ); }; };
- F3D322FD5107531DBF87056174D8B587 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A80E35072AB7909E944FA803B973A45B /* Foundation.framework */; };
- F41209A94070904A00BDF24ACB6336B6 /* EXPMatchers+beFalsy.h in Headers */ = {isa = PBXBuildFile; fileRef = AC53771843F71A7F61714479243F71A5 /* EXPMatchers+beFalsy.h */; settings = {ATTRIBUTES = (Public, ); }; };
- F43554CAEDA7EE6D2E3B1DA2F60768EC /* BFExecutor.h in Headers */ = {isa = PBXBuildFile; fileRef = C6BFD7278726563871B8C8D99EC89746 /* BFExecutor.h */; settings = {ATTRIBUTES = (Public, ); }; };
- F58F9BC7759BB8A5007B8821A275AEDD /* FBSnapshotTestController.h in Headers */ = {isa = PBXBuildFile; fileRef = FFE9298E86679CAAB3A085DAD7E9B9B1 /* FBSnapshotTestController.h */; settings = {ATTRIBUTES = (Public, ); }; };
- F59074ABCB5D041E88E13F78BCE25BE6 /* BFMeasurementEvent_Internal.h in Headers */ = {isa = PBXBuildFile; fileRef = D6A22DECE1C285C8DC02B77C6FEE1FEA /* BFMeasurementEvent_Internal.h */; settings = {ATTRIBUTES = (Public, ); }; };
- F5F9597A3167E2AE7937E6CF4BD09AB8 /* FBSDKLoginCompletion.m in Sources */ = {isa = PBXBuildFile; fileRef = E33E0DED283CB09FF23213754E426AFA /* FBSDKLoginCompletion.m */; };
- F65411E9EF00A9BB39D6BD1521A4F3FD /* MobileCoreServices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 106FDB5348FD7288F67934FF3173E006 /* MobileCoreServices.framework */; };
- F6A2F44538464666F32290DC077EEC4A /* FBSDKErrorRecoveryAttempter.m in Sources */ = {isa = PBXBuildFile; fileRef = E571742531DCE3F10A0C5EBB62B4FA78 /* FBSDKErrorRecoveryAttempter.m */; };
- F6AA8D90B361D00CEEF60792F6D5B569 /* PNObjectConfig.m in Sources */ = {isa = PBXBuildFile; fileRef = 34AC0309A46D53DB00B2E64C928D3FCC /* PNObjectConfig.m */; };
- F7097A4E42600080F17AE6FF60DFC624 /* FBSDKGraphRequestConnection+Internal.h in Headers */ = {isa = PBXBuildFile; fileRef = CFA066C42A6CA6624F34DEA6EE3E5E73 /* FBSDKGraphRequestConnection+Internal.h */; settings = {ATTRIBUTES = (Project, ); }; };
- F7581524FBA63576F76650BAC9B15C04 /* FBSDKLoginKit-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = E6A0835CAEC7EF775E2FDBF2ADD465EB /* FBSDKLoginKit-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; };
- F75CB2A727F678C9A848A3A11EA7979B /* EXPMatchers+haveCountOf.h in Headers */ = {isa = PBXBuildFile; fileRef = 42E8F864F75ADDB601308971893A88DF /* EXPMatchers+haveCountOf.h */; settings = {ATTRIBUTES = (Public, ); }; };
- F7E17CB0EFE3C8B20DAF13FB263E1C7A /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A80E35072AB7909E944FA803B973A45B /* Foundation.framework */; };
- F8C6F4B226B41C1CDB49F244FA09A221 /* FBSDKAppInviteDialog.m in Sources */ = {isa = PBXBuildFile; fileRef = 05F4E660AEEDC05B4B42A80A61ABE458 /* FBSDKAppInviteDialog.m */; };
- F955C20213D1E3DB337B960F88B75914 /* FBSDKLikeObjectType.m in Sources */ = {isa = PBXBuildFile; fileRef = 376C54BD93A7673D42077B29677962C2 /* FBSDKLikeObjectType.m */; };
- F9BA81C41C3DDABA6BEC897850E45D8D /* _FBSDKLoginRecoveryAttempter.m in Sources */ = {isa = PBXBuildFile; fileRef = F0F11B0B853F95F0F49278A94AFD36A4 /* _FBSDKLoginRecoveryAttempter.m */; };
- FA19FBA2716C1914A35F077F6FC828E6 /* FBSDKTimeSpentData.m in Sources */ = {isa = PBXBuildFile; fileRef = 1578F78AAF32C4ACC604DDF88477E431 /* FBSDKTimeSpentData.m */; };
- FA29548E1469C36ED1FDCB5B197B1455 /* FBSDKAppEventsDeviceInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = 9489B7BBFA82D7CAFC248C6556527422 /* FBSDKAppEventsDeviceInfo.h */; settings = {ATTRIBUTES = (Project, ); }; };
- FA839F20BC13A260E089D374CAAB584E /* XCTest.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = EE4EC6FB4B2F6FD3D175A1635A7B2C12 /* XCTest.framework */; };
- FAF1D503EB3C6F7D07BEB4A1B4C6ACB9 /* BFURL.h in Headers */ = {isa = PBXBuildFile; fileRef = 0BEEBE46498B918C88D3D39400D42F1C /* BFURL.h */; settings = {ATTRIBUTES = (Public, ); }; };
- FAFBA5728037DC7E5FF6B500CCDBF64B /* FBSDKAccessTokenCacheV3_17.h in Headers */ = {isa = PBXBuildFile; fileRef = 264896594AC22C380A90D7B3255B49FF /* FBSDKAccessTokenCacheV3_17.h */; settings = {ATTRIBUTES = (Project, ); }; };
- FB6DCDE092836B9A5F6C0DA90C4B030D /* FBSDKTestUsersManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 0BEE41EF79C9F45B946D8219276EB1DB /* FBSDKTestUsersManager.m */; };
- FBDA8421287447622632E1B2D1F0147F /* FBSDKMath.h in Headers */ = {isa = PBXBuildFile; fileRef = 426CCDDCCA488AB94ADBAE94FB94647B /* FBSDKMath.h */; settings = {ATTRIBUTES = (Project, ); }; };
- FC20596ABFE14A61F171A29FD03275E7 /* EXPMatchers+contain.m in Sources */ = {isa = PBXBuildFile; fileRef = F95745944562A65F20690D0CBEE46179 /* EXPMatchers+contain.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; };
- FC2E21086C6646E0D52EC276A0A0E5B2 /* PNAddress.m in Sources */ = {isa = PBXBuildFile; fileRef = AEDC3D98383AD682D63DCE947DC1F816 /* PNAddress.m */; };
- FC45858927D3B6A0F922C4B697B04A38 /* EXPMatchers+match.m in Sources */ = {isa = PBXBuildFile; fileRef = 043E8816608FA82D825E1B097AC6F2A1 /* EXPMatchers+match.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; };
- FCC6A7395DC35FED6A800AC100B0CB7E /* SPTCallSite.h in Headers */ = {isa = PBXBuildFile; fileRef = E59CD4CA5F0C598E3994B2AA9DCE9ACB /* SPTCallSite.h */; settings = {ATTRIBUTES = (Public, ); }; };
- FCDC9C0B871F82CB1AEE73303F9A2927 /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 934D7FBF6EE3AB472313968B227A8293 /* QuartzCore.framework */; };
- FD2D4497BC41412128C2D87C1BDE7398 /* EXPMatchers+beginWith.h in Headers */ = {isa = PBXBuildFile; fileRef = 3B6B9460345FF2F522E0FB98BABD6E2C /* EXPMatchers+beginWith.h */; settings = {ATTRIBUTES = (Public, ); }; };
- FDE381A83A9E62D673C7AF1581271761 /* SPTGlobalBeforeAfterEach.h in Headers */ = {isa = PBXBuildFile; fileRef = 2BF886C40793890196F00248AE2A1736 /* SPTGlobalBeforeAfterEach.h */; settings = {ATTRIBUTES = (Public, ); }; };
- FE5EFE1631BFAE15994411002B426570 /* NSString+Helper.m in Sources */ = {isa = PBXBuildFile; fileRef = B89968D039657716AECA8CFF7F6DA9E5 /* NSString+Helper.m */; };
- FE8E34356D24F6759A8B010ED2F5707B /* EXPMatchers+raiseWithReason.m in Sources */ = {isa = PBXBuildFile; fileRef = 7244507F0BB9EECF1BFC656282791F50 /* EXPMatchers+raiseWithReason.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; };
+ 01A35AA58F2F92E83C5E27E8963BA21A /* BFTask.h in Headers */ = {isa = PBXBuildFile; fileRef = 28779C3F6C20F298B04D2775CB5D1AC5 /* BFTask.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 01EC8BB8C514F6C28AC0F630087D6829 /* Pods-PNObject_Tests-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = E46B7AFFF2CB3F42C731CF9CFA5DFC85 /* Pods-PNObject_Tests-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 021544FF4C8B456573628B0D495B0125 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 41A5B3B466CFAB9687B8380811DA3B86 /* Foundation.framework */; };
+ 02EBBBC0942F6DB255169C574C4FA9CA /* PNInstallation.h in Headers */ = {isa = PBXBuildFile; fileRef = 0A68CE26A7EB9B869CA141580484B818 /* PNInstallation.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 0339052284A47A46E7821D754BB990DF /* FBSDKLoginManager.m in Sources */ = {isa = PBXBuildFile; fileRef = BCFED7B5930A9170ABC260051C32EEAB /* FBSDKLoginManager.m */; };
+ 0459216D033D70B5396B92093AF34A9C /* PNAddress.h in Headers */ = {isa = PBXBuildFile; fileRef = 6B1CA5B94A36285BA97765CACA1DA7D1 /* PNAddress.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 04CA0F8BB3DA4CC9162593C027C03B97 /* FBSDKGraphErrorRecoveryProcessor.h in Headers */ = {isa = PBXBuildFile; fileRef = 110D63918299219399B5E686610A76C7 /* FBSDKGraphErrorRecoveryProcessor.h */; };
+ 058041A9896C70596F58370D3B951796 /* AFOAuthCredential.m in Sources */ = {isa = PBXBuildFile; fileRef = 4178FE4B5E5326A3A5F59B1729803271 /* AFOAuthCredential.m */; };
+ 06A76F90393CFBED0C24B0A5D48C0726 /* PNLocation.m in Sources */ = {isa = PBXBuildFile; fileRef = 6CFF4FFFBF4597311308FD6CD8F13CAB /* PNLocation.m */; };
+ 06B31A3343DB4AC44BAAA75A5BDD4639 /* FBSDKSettings.m in Sources */ = {isa = PBXBuildFile; fileRef = E31A54F259868A190AC4BFEEE8E285A2 /* FBSDKSettings.m */; };
+ 076A3A2B61F0FD904F12D21F0060FD8E /* FBSDKUIUtility.h in Headers */ = {isa = PBXBuildFile; fileRef = 3457B649910293340AF188B95CC50983 /* FBSDKUIUtility.h */; settings = {ATTRIBUTES = (Project, ); }; };
+ 076F1D0BD98EE797354FBA9AC406E02B /* FBSDKAccessTokenCacheV4.h in Headers */ = {isa = PBXBuildFile; fileRef = CD451BFBCA8ECA686D68DB3A4B6A6A4B /* FBSDKAccessTokenCacheV4.h */; settings = {ATTRIBUTES = (Project, ); }; };
+ 077BE2096BC7ACBA2DA9E945185C6EAD /* SpectaTypes.h in Headers */ = {isa = PBXBuildFile; fileRef = 160F2A2B1C5DB32CCA75C679201A8748 /* SpectaTypes.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 07CAFACAFAC87ABBF28D453E70832464 /* UIImage+Compare.m in Sources */ = {isa = PBXBuildFile; fileRef = 7926572D1A488D8C8EA27809126B4EBD /* UIImage+Compare.m */; };
+ 08DAC2F4AEE5BBA86F713F32A79E24AF /* FBSDKLoginUtility.m in Sources */ = {isa = PBXBuildFile; fileRef = 80B7CF5178D6D53DA7D0E9395821E898 /* FBSDKLoginUtility.m */; };
+ 0965EC017E6B1030E67D0E1CED9462A2 /* FBSDKAppGroupJoinDialog.m in Sources */ = {isa = PBXBuildFile; fileRef = 1F827D99DA03AF81C3BD33ED62AD877D /* FBSDKAppGroupJoinDialog.m */; };
+ 09AAF74DD2507F874F2AE2E6B8CE2DAF /* FBSDKMonotonicTime.h in Headers */ = {isa = PBXBuildFile; fileRef = 48D3653CE01FFE33BBE40BC4C1A8590C /* FBSDKMonotonicTime.h */; settings = {ATTRIBUTES = (Project, ); }; };
+ 09C370A9665D24C14E3909B415A0E8D8 /* BFAppLinkTarget.m in Sources */ = {isa = PBXBuildFile; fileRef = 6FFA6D33A993F9E9AB22E58D0E7BCBB9 /* BFAppLinkTarget.m */; };
+ 09EB0EE96E6C494EC577C620F4055BF2 /* FBSDKShareVideoContent.m in Sources */ = {isa = PBXBuildFile; fileRef = AAD10455E461889BAF4EC306957F92B8 /* FBSDKShareVideoContent.m */; };
+ 0A4061108C051401AA7754CE91231AB3 /* FBSDKAppEvents.h in Headers */ = {isa = PBXBuildFile; fileRef = 3F47B6A5B3D14EB6367A6ACA7B070AE0 /* FBSDKAppEvents.h */; };
+ 0A4FDA10DBFB82F864DCABAF73D1BAB9 /* FBSDKColor.m in Sources */ = {isa = PBXBuildFile; fileRef = 221CB94EF12C631BF08886039B6CCC74 /* FBSDKColor.m */; };
+ 0A5DFD94EE83E385C1C7D24986E04592 /* SwiftSupport.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8024405D72497ECE4294AC599F1685E /* SwiftSupport.swift */; };
+ 0B75EAE441184FD59EDDDD40ACA3599F /* StrongestPasswordValidator.m in Sources */ = {isa = PBXBuildFile; fileRef = FB02919A95ED53B229A3136E5BEB63CB /* StrongestPasswordValidator.m */; };
+ 0B8CC2AF308079AB286D518C8AA74DA7 /* XCTest+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = 120116F366AC19D6F7894F0A7F12CFA9 /* XCTest+Private.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 0B9F14106CC3962B366A6ABF8AD478E3 /* NSDate_Utils.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BA176AF495F12BFA24E6E8A3B14C039A /* NSDate_Utils.framework */; };
+ 0BA5928AEB4DE444B896A61F379C34C4 /* NACrypto.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4A6515A8A2231235286EC1636DFD6B9C /* NACrypto.framework */; };
+ 0C25A43F28DAD89FCDD01C0CDE5D4570 /* FBSDKURLConnection.m in Sources */ = {isa = PBXBuildFile; fileRef = 3638874836F936491DC778C1C9359BAD /* FBSDKURLConnection.m */; };
+ 0C6FF91EB1F0391ED75DC72D31D159EF /* EXPMatchers+beTruthy.m in Sources */ = {isa = PBXBuildFile; fileRef = 6D27B33DB78FBFE352BA7A996FA818BC /* EXPMatchers+beTruthy.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; };
+ 0CCB0C31677860FE4CBC3FB51C536115 /* FBSDKApplicationDelegate+Internal.h in Headers */ = {isa = PBXBuildFile; fileRef = EB6ACDA06E650F4E135FB669BDE968CF /* FBSDKApplicationDelegate+Internal.h */; settings = {ATTRIBUTES = (Project, ); }; };
+ 0D0F633E3C426F2A90B60AAB6FE2C5F3 /* FBSDKCoreKit.h in Copy . Public Headers */ = {isa = PBXBuildFile; fileRef = 2D4326567C9F0F74F92D9FFB3E4EFA3D /* FBSDKCoreKit.h */; };
+ 0D16B556212D317A0D4FEB71E102E207 /* EXPMatchers+beLessThan.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B351299EA0BADC3EA6A0C65C2D3818C /* EXPMatchers+beLessThan.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 0D309C7331C810468CD841066D3E8CBD /* SPTGlobalBeforeAfterEach.h in Headers */ = {isa = PBXBuildFile; fileRef = 8047470202D22C4FB49A4C9C248C520D /* SPTGlobalBeforeAfterEach.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 0D8CA7B7C31BC240184F6B509492D745 /* FBSDKSharePhoto.m in Sources */ = {isa = PBXBuildFile; fileRef = 3F2ADBF4FE7E02183B37865F8E009E92 /* FBSDKSharePhoto.m */; };
+ 0D96EF8921F4EB6F70486C00FCF48828 /* FBSDKGraphRequestPiggybackManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 4A69907821543FA3242CC8587E2FB377 /* FBSDKGraphRequestPiggybackManager.h */; settings = {ATTRIBUTES = (Project, ); }; };
+ 0DA4E12217002472B52B8C81154435DC /* BFAppLinkReturnToRefererController.h in Headers */ = {isa = PBXBuildFile; fileRef = 86240F2486CFF71AA9F230E5078D4CD6 /* BFAppLinkReturnToRefererController.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 0DC2950D3943DC1163E1E5C3C4E29F96 /* FBSDKAppInviteDialog.h in Headers */ = {isa = PBXBuildFile; fileRef = 072A9A7056F6F1B7573761BE6D6EEC50 /* FBSDKAppInviteDialog.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 0DD47426797BA0B068747C883D9526A2 /* CocoaSecurity.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 977413FBF7942CB0733E665C9B7FC6D0 /* CocoaSecurity.framework */; };
+ 0DF6D0850F82CC47266727B7F7FDE3C3 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 41A5B3B466CFAB9687B8380811DA3B86 /* Foundation.framework */; };
+ 0E69BFEDDF6225A3C18F23663BFC3C50 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 41A5B3B466CFAB9687B8380811DA3B86 /* Foundation.framework */; };
+ 0E80280C7F2BD58AF6DB07FE2F46C5DC /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 41A5B3B466CFAB9687B8380811DA3B86 /* Foundation.framework */; };
+ 0EAB8CDACC4DF99C482EDCE2E0BA31C5 /* Bolts.h in Headers */ = {isa = PBXBuildFile; fileRef = A5CE33F40DC8DDD07F024D03F470E460 /* Bolts.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 0EAC397BE2E04E25C86103C37316327A /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 41A5B3B466CFAB9687B8380811DA3B86 /* Foundation.framework */; };
+ 0EBFA5FBE4953A83B677CE2A75746761 /* EXPMatchers+beLessThan.m in Sources */ = {isa = PBXBuildFile; fileRef = 20724E44122A16167C1B886A13471817 /* EXPMatchers+beLessThan.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; };
+ 0ED11F997A7FCB3364974EAF33184EBF /* CodFis-Helper-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 90292B81AFA60FDCB0954FAFE4871416 /* CodFis-Helper-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 0EDA7AFB24C35AD20174869E9CD7469D /* FBSDKMaleSilhouetteIcon.h in Headers */ = {isa = PBXBuildFile; fileRef = FE18DD672BAF0D5E18841F7D37207E26 /* FBSDKMaleSilhouetteIcon.h */; settings = {ATTRIBUTES = (Project, ); }; };
+ 0F94F5B0ABB3252B9275B7C129EC7A26 /* EXPMatchers+equal.h in Headers */ = {isa = PBXBuildFile; fileRef = 8F2B54A3196FE85B572AFEB61DF113B9 /* EXPMatchers+equal.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 0FB1CE9AB76B77BEFC2F5DD025EB6032 /* FBSDKLoginUtility.h in Headers */ = {isa = PBXBuildFile; fileRef = C211EF03A9EF4ED67312585895883988 /* FBSDKLoginUtility.h */; settings = {ATTRIBUTES = (Project, ); }; };
+ 102A390273BA9E5D7AE899A8C059A37A /* FBSDKLoginKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D5310CDA48C0EB3F9D03D30057A92E5B /* FBSDKLoginKit.framework */; };
+ 10314226E41FC2CEB00F37CCD01ECA58 /* NSArray+PureLayout.h in Headers */ = {isa = PBXBuildFile; fileRef = EFBAF8BF8016A17DB531FD601C8A27CE /* NSArray+PureLayout.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 1036EF14A9C3EF984ADA3518121F4466 /* FBSDKAppLinkUtility.h in Headers */ = {isa = PBXBuildFile; fileRef = ECCF07F1A89D624A6A9C6FC9065857C9 /* FBSDKAppLinkUtility.h */; };
+ 103FBA9E8960F0B8CE61A4E546E006DA /* NANSData+Utils.m in Sources */ = {isa = PBXBuildFile; fileRef = 2B3BDADED9B8ED1DD15152CC0A6C721D /* NANSData+Utils.m */; };
+ 104E2D83D8C7403B401E4F4F7FA37AA9 /* FBSDKShareConstants.h in Headers */ = {isa = PBXBuildFile; fileRef = 6178FE48C880C9D5D6A843E1E1790CA2 /* FBSDKShareConstants.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 1102A24627656AAD7097BAD430420ABF /* SPTSharedExampleGroups.m in Sources */ = {isa = PBXBuildFile; fileRef = BC07B6A15CA7AB4D377B46172C651D56 /* SPTSharedExampleGroups.m */; };
+ 11701644ACB6B96BA0503F992EB5BD88 /* FBSDKSettings.h in Copy . Public Headers */ = {isa = PBXBuildFile; fileRef = 9D4B35E9A2C74E4A074EDECF261F628B /* FBSDKSettings.h */; };
+ 11C1AEB289C1EB80089349B71F09D04B /* EXPMatchers+raiseWithReason.h in Headers */ = {isa = PBXBuildFile; fileRef = D08B6EA8D805D985459D7A94A82CD23D /* EXPMatchers+raiseWithReason.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 1200A152A08388893BFA023980C2CF48 /* FBSDKLoginManagerLogger.h in Headers */ = {isa = PBXBuildFile; fileRef = EF221686C5D67C17D2D31195BC62C6A1 /* FBSDKLoginManagerLogger.h */; settings = {ATTRIBUTES = (Project, ); }; };
+ 120A3F0A3D8723E9767E2C27039A3F26 /* NANSData+Utils.h in Headers */ = {isa = PBXBuildFile; fileRef = 8707207BA54527191A780BA2CC2C234A /* NANSData+Utils.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 12E731E447739117B33B1B45D512B3AF /* FBSDKServerConfigurationManager.m in Sources */ = {isa = PBXBuildFile; fileRef = FBF2A39AE4259253DD066CC58A3273B6 /* FBSDKServerConfigurationManager.m */; };
+ 1312A7D381C51428CF481E33E3D37901 /* EXPMatchers+beGreaterThan.m in Sources */ = {isa = PBXBuildFile; fileRef = BB87CA97B9980628865E97F6CF2FAB14 /* EXPMatchers+beGreaterThan.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; };
+ 131532787AD40BE1F35DF288D2E6FFD7 /* EXPMatchers+beInTheRangeOf.h in Headers */ = {isa = PBXBuildFile; fileRef = 5484DD34BA870484E206F77CAE7104F2 /* EXPMatchers+beInTheRangeOf.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 13C99B73A28121849C4B6E3058FA9729 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1E61CC4B72D13C136480767E7A045131 /* UIKit.framework */; };
+ 1480F4923DBBF217F60572EEECB4027C /* AFNetworkActivityIndicatorManager.h in Headers */ = {isa = PBXBuildFile; fileRef = CCF2DC25BD75A571E4991B7D17F7F2D9 /* AFNetworkActivityIndicatorManager.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 1489117FFED47F9DBAB9BECC12DF5221 /* FBSDKBridgeAPIResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = EA5A4231AE71586C0317C64AC392958D /* FBSDKBridgeAPIResponse.m */; };
+ 14CCB9B9C95EBBD456D7E4EABD82E0BF /* FBSDKLoginCompletion+Internal.h in Headers */ = {isa = PBXBuildFile; fileRef = 464385FABA4BC202A91F6542131802A0 /* FBSDKLoginCompletion+Internal.h */; settings = {ATTRIBUTES = (Project, ); }; };
+ 1651C6B9C57C4B00AEAB1DB9C0FD1385 /* FBSDKGraphRequestConnection.h in Copy . Public Headers */ = {isa = PBXBuildFile; fileRef = 2E83107D0B39B92E17EB864633FA02CD /* FBSDKGraphRequestConnection.h */; };
+ 16AF6EEBA7A01DD99F15D4AA74267427 /* FBSDKShareOpenGraphAction.m in Sources */ = {isa = PBXBuildFile; fileRef = 84C4237CD7E2D5AFDC43E52CA5B5CB6B /* FBSDKShareOpenGraphAction.m */; };
+ 16B02D9903A128753425886827C87CB7 /* FBSDKTriStateBOOL.h in Headers */ = {isa = PBXBuildFile; fileRef = 6C1949D7A4EA90FB4ACC1E31FCFAEFD5 /* FBSDKTriStateBOOL.h */; settings = {ATTRIBUTES = (Project, ); }; };
+ 16B455F319A143930B24EAD475321259 /* FBSDKLikeActionController.h in Headers */ = {isa = PBXBuildFile; fileRef = F13B924E6CC5A724D5E5A14AC67ADCEE /* FBSDKLikeActionController.h */; settings = {ATTRIBUTES = (Project, ); }; };
+ 16B7FB6A06AFB2626CB37E24BCAD757C /* FBSDKLogger.h in Headers */ = {isa = PBXBuildFile; fileRef = FFD8E3B064E274DAD47435F4AD39D17A /* FBSDKLogger.h */; settings = {ATTRIBUTES = (Project, ); }; };
+ 16E6BDB2449AAF2E766A228AFF965AA0 /* FBSDKShareError.h in Headers */ = {isa = PBXBuildFile; fileRef = 8686254FF8A3A0BC733B2987A8FCC8D0 /* FBSDKShareError.h */; settings = {ATTRIBUTES = (Project, ); }; };
+ 174202BD6AE0E4A41F5CE66E975EAE52 /* UIRefreshControl+AFNetworking.m in Sources */ = {isa = PBXBuildFile; fileRef = 7E4FDA5034F1FA4BB7145193862C2FAE /* UIRefreshControl+AFNetworking.m */; };
+ 17572374B2AE183C6347C41E8DF8E579 /* EXPMatchers+beFalsy.m in Sources */ = {isa = PBXBuildFile; fileRef = 7104244C28CC937B4C554B0F37C2F75C /* EXPMatchers+beFalsy.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; };
+ 17CED2FBC3F5431AEB42D651D0E3DAB9 /* FBSDKConstants.h in Headers */ = {isa = PBXBuildFile; fileRef = 1EFBDC0643840BDD19CA60B88CA8D494 /* FBSDKConstants.h */; };
+ 181E2F204B7B25D4CF271EEDE3CCFD95 /* FBSDKAppGroupContent.m in Sources */ = {isa = PBXBuildFile; fileRef = 3FC50254A2C2693577C76D2D92D5D74A /* FBSDKAppGroupContent.m */; };
+ 189E13F5762AA85A50BEF525B5944907 /* twofish.h in Headers */ = {isa = PBXBuildFile; fileRef = B289659FC9D4B8EAAF0796893AD9E45E /* twofish.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 199195144DCDC687350AF63DFFC0F35E /* PNObjectConstants.h in Headers */ = {isa = PBXBuildFile; fileRef = 58263BE38CBF70447BA974C264711833 /* PNObjectConstants.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 1A1AB2EC52323C5EA28DAA99F1E1A90D /* EXPMatchers+endWith.h in Headers */ = {isa = PBXBuildFile; fileRef = 09D8056D33E0253A27B8B5BBECE4B223 /* EXPMatchers+endWith.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 1AB3304B6884F626BC54150AC7565E18 /* EXPMatchers+equal.m in Sources */ = {isa = PBXBuildFile; fileRef = 0B0C1E7874466D5B8CB3F4AB68607E10 /* EXPMatchers+equal.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; };
+ 1ABB76713A89CC189E5518A2475685AD /* FBSDKLikeObjectType.h in Headers */ = {isa = PBXBuildFile; fileRef = C64D813FFA44750E379587DCBC41458C /* FBSDKLikeObjectType.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 1B0389CD88AA949B34DC7269030FEC6F /* EXPMatchers+beGreaterThanOrEqualTo.m in Sources */ = {isa = PBXBuildFile; fileRef = 8E0D38BBC80BC248B0986171F27B6803 /* EXPMatchers+beGreaterThanOrEqualTo.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; };
+ 1B80FB199B323B92DA8BDA4CAFEAB7B6 /* FBSDKSharingContent.h in Headers */ = {isa = PBXBuildFile; fileRef = 854D7FC3B7E81F622D343DE4C81DA763 /* FBSDKSharingContent.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 1CC41985F8D7CEF07AD9FC1FCEACB73D /* UIDevice-Utils-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 48574AF5DB294EC1BC813CED8C920162 /* UIDevice-Utils-dummy.m */; };
+ 1D55ABC9DBB12804F8D0076A0DCFB830 /* CocoaSecurity-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 7E3EC4A1F76E07B10D5FDB6BE71A2528 /* CocoaSecurity-dummy.m */; };
+ 1D793FA5DFF773A261125B70D42BE3BE /* FBSDKErrorRecoveryConfiguration.m in Sources */ = {isa = PBXBuildFile; fileRef = 5CB66B9695857C35993FCC350273FB9E /* FBSDKErrorRecoveryConfiguration.m */; };
+ 1D8A6F0A9757FCCC1C5A218D9C30E6A7 /* KeccakF-1600-32-s1.h in Headers */ = {isa = PBXBuildFile; fileRef = 89C6466471D85392D6E45714288BDE24 /* KeccakF-1600-32-s1.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 1D8F0DD4F483C26350BD5C12753D315C /* FBSDKGraphRequestDataAttachment.h in Headers */ = {isa = PBXBuildFile; fileRef = 47327B420146316300628549F787F8C8 /* FBSDKGraphRequestDataAttachment.h */; };
+ 1E19B7057A92D69236C22181D551CBB3 /* FBSDKSharePhotoContent.m in Sources */ = {isa = PBXBuildFile; fileRef = 3DE9886278BA4001054377151286BD2A /* FBSDKSharePhotoContent.m */; };
+ 1E5B8F12ED7CC40ECDB9B1F755F387E5 /* UIActivityIndicatorView+AFNetworking.h in Headers */ = {isa = PBXBuildFile; fileRef = 934F03DBB78E890AFF23819B0AE3E0BE /* UIActivityIndicatorView+AFNetworking.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 201BF9C605852822CA5A65ADE282A310 /* EXPMatcherHelpers.m in Sources */ = {isa = PBXBuildFile; fileRef = 444BB7A468A4076E18CC446528F9E675 /* EXPMatcherHelpers.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; };
+ 204D694B03BFF3B244A6AB73FACFFC43 /* Expecta-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = ECBC1AC9F0644FB762151E5E211AC6FC /* Expecta-dummy.m */; };
+ 205E2A77E7B87C8248D453402498510E /* FBSDKBridgeAPIRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = BF889E816ACC16618BF1E50C7C8B28D5 /* FBSDKBridgeAPIRequest.h */; settings = {ATTRIBUTES = (Project, ); }; };
+ 20607BE2B1E5F31765026E5AC64DB27D /* AFSecurityPolicy.m in Sources */ = {isa = PBXBuildFile; fileRef = E734E775B6DA50617CFF52DCAD017FFD /* AFSecurityPolicy.m */; };
+ 207B0778FA44B677AA237F5D96C23E28 /* PEARFileManager.h in Headers */ = {isa = PBXBuildFile; fileRef = AAB24B3EAD7BBC81B82BB07AE75F7FE3 /* PEARFileManager.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 20C0CFB6F8C29123D1667E2676D8B2F5 /* FBSnapshotTestCase.h in Headers */ = {isa = PBXBuildFile; fileRef = 1450655E0535B7FD2AA7394CCA723CFF /* FBSnapshotTestCase.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 20EE8030FCF2402DAC7F1C9B9DDAEF79 /* AFURLRequestSerialization.h in Headers */ = {isa = PBXBuildFile; fileRef = FE2584A8D6C46F970FEA01B20507AD81 /* AFURLRequestSerialization.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 2183687C8190F2F74676AE1C69474B00 /* FBSDKShareOpenGraphValueContainer.m in Sources */ = {isa = PBXBuildFile; fileRef = 162DB249182718618FC6695A96D8F714 /* FBSDKShareOpenGraphValueContainer.m */; };
+ 21E87909C4CA1DECCCFB183C944011F6 /* Base64.h in Headers */ = {isa = PBXBuildFile; fileRef = 1443AF1F98A02B90B6E6FB4DF67930E7 /* Base64.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 2206113F360F58A003E22799D1A80307 /* SPTExample.m in Sources */ = {isa = PBXBuildFile; fileRef = 51E59A2C87CAC2B03B35492663DE1FCF /* SPTExample.m */; };
+ 2220F24E58BC8FF76B352A9C2DEDCD63 /* NSLayoutConstraint+PureLayout.h in Headers */ = {isa = PBXBuildFile; fileRef = 808037D1A02115889E0C7F7E6A790E62 /* NSLayoutConstraint+PureLayout.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 22CC0ACCC65E60E31971FBEE695284B2 /* NACounter.m in Sources */ = {isa = PBXBuildFile; fileRef = 1214AB21FBDE72A1C27060DB90B60C34 /* NACounter.m */; };
+ 22CD8C8A9D70E1C80F94A8129CFCE5C4 /* NASHA3.h in Headers */ = {isa = PBXBuildFile; fileRef = E7F1B82C6DDB8EFEBBF7C6D7B404D08D /* NASHA3.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 22D9F8C5346519C30FDD1CF8B2A93B20 /* FBSDKBase64.h in Headers */ = {isa = PBXBuildFile; fileRef = 0AD43E348BC6B69AC559C6E75A925EC5 /* FBSDKBase64.h */; settings = {ATTRIBUTES = (Project, ); }; };
+ 230411E479EE623F32821D22E2E72535 /* NAHMAC.h in Headers */ = {isa = PBXBuildFile; fileRef = 55969DFADBBC801C57086B716CAC9027 /* NAHMAC.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 23429D732B68F464D4483AD5B31D69C2 /* VatNumber+Helper.m in Sources */ = {isa = PBXBuildFile; fileRef = 5C9BDC7D8E92AD26623C0C6C0C08FE40 /* VatNumber+Helper.m */; };
+ 2377F8D1A56EA684F3CD81B8C4A2AB03 /* FBSDKShareOpenGraphValueContainer.h in Headers */ = {isa = PBXBuildFile; fileRef = E01D178669A5E9863FF3DE13BB587B6C /* FBSDKShareOpenGraphValueContainer.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 246C01D85BD8AD3CDAEBD7E019B854BF /* NSLayoutConstraint+PureLayout.m in Sources */ = {isa = PBXBuildFile; fileRef = AE5ED49F4DA3335377281A49A8750D59 /* NSLayoutConstraint+PureLayout.m */; };
+ 247A122177A60D4CC65244D7FA317551 /* FBSDKShareButton.h in Headers */ = {isa = PBXBuildFile; fileRef = F55924E5C95F659ABBC698502F762224 /* FBSDKShareButton.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 248C852D7304374F0D66FD2DB217139F /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 41A5B3B466CFAB9687B8380811DA3B86 /* Foundation.framework */; };
+ 2549CD1370AF63009DEC76693F5E9BD1 /* FBSnapshotTestCase.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 591CC8D74C571620F6DE6F1DA9288DCD /* FBSnapshotTestCase.framework */; };
+ 254A0FE70B70FE015FBD7539ACAE1C2A /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8B6B0C2055C01FF78C910CDEC7E2822E /* CoreGraphics.framework */; };
+ 260BC7EED9289AF321A6F791964CE472 /* EXPMatchers+respondTo.h in Headers */ = {isa = PBXBuildFile; fileRef = BAEE0E35E454AB37DBA2F54FBA85F56C /* EXPMatchers+respondTo.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 263C4BD09917BBA6B117EF910A9298F7 /* BFCancellationTokenSource.h in Headers */ = {isa = PBXBuildFile; fileRef = 44435C6C711F01B74BDDB9286C3A65C3 /* BFCancellationTokenSource.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 263EA0144A7DFC532A7A453AA28B7857 /* FBSDKShareOpenGraphObject.h in Headers */ = {isa = PBXBuildFile; fileRef = 16F3B67493D29F3920AFE9F8D235D569 /* FBSDKShareOpenGraphObject.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 274D9545D0357B667BCAA82B3FB38ECD /* UIImage+Diff.h in Headers */ = {isa = PBXBuildFile; fileRef = BCAF767FC247049E9AF5C7E0970C4443 /* UIImage+Diff.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ 274F210549B6705708051256FA6FC94B /* FBSDKLikeBoxView.h in Headers */ = {isa = PBXBuildFile; fileRef = E43BB0DD821E77B860E30BF4F3B43659 /* FBSDKLikeBoxView.h */; settings = {ATTRIBUTES = (Project, ); }; };
+ 27B378AAF73A1EBB45FFD7EA38D37247 /* FBSDKLoginManagerLoginResult.m in Sources */ = {isa = PBXBuildFile; fileRef = C4686A26F64735151D7984ED351C2B26 /* FBSDKLoginManagerLoginResult.m */; };
+ 27D8B2F1FFCD44D48A233E44CF552E56 /* BFMeasurementEvent.h in Headers */ = {isa = PBXBuildFile; fileRef = B5E340160A847EAF6B260B3FCB3A8B7C /* BFMeasurementEvent.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 280981151F21C4C7E0BBA396CD39BDB3 /* FBSDKShareKit-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 20784A589A4951F78D02B9EEF03EF81F /* FBSDKShareKit-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 2845FB31AEFD8E767105454310C3F5D1 /* FBSDKAppEventsStateManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 2D6D47B874B444E85AA9E6042DF772E5 /* FBSDKAppEventsStateManager.h */; settings = {ATTRIBUTES = (Project, ); }; };
+ 2916A0606136A9DC67F2463AB230868B /* EXPMatchers+match.h in Headers */ = {isa = PBXBuildFile; fileRef = 07C30D44AB8FFB23769BDDFBBB542F03 /* EXPMatchers+match.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 2955FF7187EC68E90009CFFEDC848402 /* FBSDKBridgeAPIProtocolNativeV1.m in Sources */ = {isa = PBXBuildFile; fileRef = 5925F23B030FFAF1A8103CAB6F5E9940 /* FBSDKBridgeAPIProtocolNativeV1.m */; };
+ 299E9DD0F4332D9DB6311B6E60C5832C /* SystemConfiguration.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7F423152AFF0D3931BCF822D60EF47DC /* SystemConfiguration.framework */; };
+ 29F2AEAF2B01E3739BF745ADE8E9D0A4 /* Expecta+Snapshots-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 1FC3E1127DA5470EAC4C5000F5A43098 /* Expecta+Snapshots-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 2A1DD5FBE78B486AB0698FEACFF50E88 /* PNUser.m in Sources */ = {isa = PBXBuildFile; fileRef = 1B27CB59DDCF9EFF5F39AE9E2A712325 /* PNUser.m */; };
+ 2A486D542629FC4CF99BECE9F1A8C7BC /* FBSDKDynamicFrameworkLoader.m in Sources */ = {isa = PBXBuildFile; fileRef = 88C0B14A6EB9A0B1240EE9A60EFEA23B /* FBSDKDynamicFrameworkLoader.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; };
+ 2AD0E7DE43F3D0562A7BE999892B58A8 /* StrongestPasswordValidator-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = ECF4AA61FE5368173DD7DEFEB0937503 /* StrongestPasswordValidator-dummy.m */; };
+ 2B5C644A0288B3C47241AB00A0BD539D /* FBSDKMacros.h in Headers */ = {isa = PBXBuildFile; fileRef = 749F255409C1F5936652A4DB0628B989 /* FBSDKMacros.h */; };
+ 2B6A083675F51F652906292F381C5D49 /* FBSDKBridgeAPIRequest+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = E027CCA590F75654130AB86332E419CE /* FBSDKBridgeAPIRequest+Private.h */; settings = {ATTRIBUTES = (Project, ); }; };
+ 2BFA55CA8DE1BC277E2B276DFBED390D /* BFAppLinkResolving.h in Headers */ = {isa = PBXBuildFile; fileRef = 420CC8F033186846F19144368FB195DB /* BFAppLinkResolving.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 2C0A8737FDB9B9C6A6BDF437FD11334C /* EXPMatchers+beNil.m in Sources */ = {isa = PBXBuildFile; fileRef = 587F2C5D4620F00023424B5CC52F3E45 /* EXPMatchers+beNil.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; };
+ 2CC84F367366E962E8710E53FDEEDB88 /* nv_ios_http_status.m in Sources */ = {isa = PBXBuildFile; fileRef = 65F59A3C764212191181CE4E3648B8E5 /* nv_ios_http_status.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; };
+ 2CFD65B80586B2704C0F5C18C6CEBDA6 /* NAAES.m in Sources */ = {isa = PBXBuildFile; fileRef = 337B1B37072D9351371523FEA4CB23B4 /* NAAES.m */; };
+ 2CFE2898496C1C7096DB8DA43AF19103 /* EXPMatchers+raise.m in Sources */ = {isa = PBXBuildFile; fileRef = 12AC4F6AF495CC4378D13383BB314E0B /* EXPMatchers+raise.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; };
+ 2D19F4BB2DC4A1582488349183A0700A /* Pods-PNObject_Example-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 60B530196848B62AA6D54AEEB46A06D8 /* Pods-PNObject_Example-dummy.m */; };
+ 2DAA80189B6344715A7E79A3EDED6628 /* FBSDKBridgeAPIProtocolWebV2.m in Sources */ = {isa = PBXBuildFile; fileRef = 25BDEBF84A231E3C1A61B394969C1259 /* FBSDKBridgeAPIProtocolWebV2.m */; };
+ 2DD461B03E98E4B0372AB86536ED59B7 /* NAHMAC.m in Sources */ = {isa = PBXBuildFile; fileRef = 45F9747DFBE66112A4529AC1E58AA534 /* NAHMAC.m */; };
+ 2DEF85366FF04B2090E6E026C0D1B709 /* Bolts-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = DB282510049008B5BF3A07E511582CF0 /* Bolts-dummy.m */; };
+ 2E14619153A453BB8DF389FB6EA147BE /* ExpectaObject.h in Headers */ = {isa = PBXBuildFile; fileRef = DC495E486BAF3316493F1D648227F3D0 /* ExpectaObject.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 2E8A32ED46194EDBE22146271F6D26DE /* UIImageView+AFNetworking.m in Sources */ = {isa = PBXBuildFile; fileRef = A68C3BD569BAB665EBD92B3B107B8416 /* UIImageView+AFNetworking.m */; };
+ 2F3B10BC0B44ACDE4D2905BA203A61B1 /* SPTCallSite.m in Sources */ = {isa = PBXBuildFile; fileRef = 223FA2741392E9122CC222EE6A09256C /* SPTCallSite.m */; };
+ 2F417AFFA6055D5490D34B64496CDD9A /* CocoaSecurity.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 977413FBF7942CB0733E665C9B7FC6D0 /* CocoaSecurity.framework */; };
+ 2F427490ACABC4408D57CC0592276678 /* EXPDoubleTuple.h in Headers */ = {isa = PBXBuildFile; fileRef = 34976B3278BB9749F361C7A1199D6C10 /* EXPDoubleTuple.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 2FB00EA6B695139035918D145929E388 /* FBSDKAccessTokenCaching.h in Headers */ = {isa = PBXBuildFile; fileRef = 3D5CB6CA00E996ECB95ADFDD0AABED31 /* FBSDKAccessTokenCaching.h */; settings = {ATTRIBUTES = (Project, ); }; };
+ 2FF133894F0ED2EC29181134D5785EBA /* FBSDKAudioResourceLoader.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A656D9C01C09E20117E1565F174B9C6 /* FBSDKAudioResourceLoader.h */; settings = {ATTRIBUTES = (Project, ); }; };
+ 2FFF7231054FB4D896754CC10AF6B65E /* FBSDKGameRequestDialog.h in Headers */ = {isa = PBXBuildFile; fileRef = 7AE1CE73E9F752D74DDB729F57FE855C /* FBSDKGameRequestDialog.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 3039D8A118A47CCAB0DD3310D3FE27E7 /* KeccakF-1600-32-rvk.h in Headers */ = {isa = PBXBuildFile; fileRef = F1E8A6323DABE1A2DB3CF2C14ECE7FD2 /* KeccakF-1600-32-rvk.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 309ED2CCA63AA247D91465FED20E1CC0 /* SPTTestSuite.h in Headers */ = {isa = PBXBuildFile; fileRef = A97B9B71C5A02DD000C64F332EE176CB /* SPTTestSuite.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 31BCAC99D51207AE896C919D317FD492 /* ALView+PureLayout.h in Headers */ = {isa = PBXBuildFile; fileRef = 598319A2ED248ABECE2A485DC12CD5AA /* ALView+PureLayout.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 31E196A38EB17B72B111E0B3C839D2D9 /* FBSDKMutableCopying.h in Copy . Public Headers */ = {isa = PBXBuildFile; fileRef = 1FF4ACD57C00F851C1DB78B19FFC8A18 /* FBSDKMutableCopying.h */; };
+ 31ED601761FE6CC37B30D6AE001F2215 /* BFAppLink_Internal.h in Headers */ = {isa = PBXBuildFile; fileRef = 86228E2157878F87003C78F96FE8C28A /* BFAppLink_Internal.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 31F3B72BC319AA1C61DEEF75A7335182 /* SPTSpec.h in Headers */ = {isa = PBXBuildFile; fileRef = 701551036B8348F631F9033F6C3DC273 /* SPTSpec.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 3249F988C94C1B64192C42A11902D850 /* FBSDKLoginError.h in Headers */ = {isa = PBXBuildFile; fileRef = 281CE1D6EF2620BBF5D281E8AB765C0A /* FBSDKLoginError.h */; settings = {ATTRIBUTES = (Project, ); }; };
+ 32671DA47189F296EF08A2A8E368D382 /* PureLayoutDefines.h in Headers */ = {isa = PBXBuildFile; fileRef = 0F3F907E4E10D952A09C4EC677EB3F80 /* PureLayoutDefines.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 334A9EB0A89E519A4CD425EF39DCDA2F /* FBSDKLoginManager+Internal.h in Headers */ = {isa = PBXBuildFile; fileRef = 204A562A9B303D94CD33977FB6B879F7 /* FBSDKLoginManager+Internal.h */; settings = {ATTRIBUTES = (Project, ); }; };
+ 336BFD2C4246A87A7F9EED7E5311E440 /* AFNetworking.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7734B334508FFD613933CE776CEE0859 /* AFNetworking.framework */; };
+ 34AB45DB13EBB49C8984C6792B64CF02 /* FBSDKButton.m in Sources */ = {isa = PBXBuildFile; fileRef = F8F1066E685199201BF92A44A9AABAF6 /* FBSDKButton.m */; };
+ 34B6E9A30603BEBBD87BA535B7D384CA /* EXPMatchers+beInstanceOf.h in Headers */ = {isa = PBXBuildFile; fileRef = FF7C1C98617D842335973487B3546477 /* EXPMatchers+beInstanceOf.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 35530621142D3FD3F8D122B087296559 /* FBSDKWebDialog.m in Sources */ = {isa = PBXBuildFile; fileRef = 494E53B80631D033602F4F2DC35EF8F1 /* FBSDKWebDialog.m */; };
+ 35747B0A597C4488E309D922D2B7F25A /* FBSDKBridgeAPIResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 5182196C82EABEB45B072930672E546C /* FBSDKBridgeAPIResponse.h */; settings = {ATTRIBUTES = (Project, ); }; };
+ 35BFE3A916989439727394864EA91E04 /* FBSDKGraphRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = E066E154319C1229187AC4A2D6BA3F67 /* FBSDKGraphRequest.m */; };
+ 35F15DE22B98C5FE7D7D9D40ED6E0008 /* FBSDKGraphRequest+Internal.h in Headers */ = {isa = PBXBuildFile; fileRef = E6A15E16E9A75A551EEDD7C83340AD41 /* FBSDKGraphRequest+Internal.h */; settings = {ATTRIBUTES = (Project, ); }; };
+ 36102BBEBFE8B221EE2BC92451C96ABF /* FBSDKCoreKit.h in Headers */ = {isa = PBXBuildFile; fileRef = 2D4326567C9F0F74F92D9FFB3E4EFA3D /* FBSDKCoreKit.h */; };
+ 36250E6B4E8FD1DA484ABBACA314253A /* FBSDKViewImpressionTracker.m in Sources */ = {isa = PBXBuildFile; fileRef = 2BC07B7E56BF0A5C31B8F2B714A3ECE3 /* FBSDKViewImpressionTracker.m */; };
+ 362C545BF62040C33E73349B8079F695 /* FBSDKGraphRequestConnection.h in Headers */ = {isa = PBXBuildFile; fileRef = 2E83107D0B39B92E17EB864633FA02CD /* FBSDKGraphRequestConnection.h */; };
+ 3637BC64699FECD40DB791C67CD45394 /* PEARFileManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 3BD3664DF01A72DA1512ACBF3FC4CC89 /* PEARFileManager.m */; };
+ 366ADCE1E2DEA175437DBDF4C2D7440D /* FBSDKPaymentObserver.h in Headers */ = {isa = PBXBuildFile; fileRef = 204CC269CCF56DD659DCD99510C29EA0 /* FBSDKPaymentObserver.h */; settings = {ATTRIBUTES = (Project, ); }; };
+ 3670B94F727E404D1316F9F013D34D44 /* NATwoFish.h in Headers */ = {isa = PBXBuildFile; fileRef = 8CA693C5EE5C091F1C01109668999AF9 /* NATwoFish.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 368F32C3C3604441AA06DF5093D5D8AB /* FBSDKShareLinkContent.m in Sources */ = {isa = PBXBuildFile; fileRef = 8CCA06E94BE8A53EB1A5C83BAECE022C /* FBSDKShareLinkContent.m */; };
+ 36F1F0CE51161C62C975E66802C829E7 /* FBSDKWebDialog.h in Headers */ = {isa = PBXBuildFile; fileRef = 88C8E9A1102DED4D9B739AB3BBDC9F28 /* FBSDKWebDialog.h */; settings = {ATTRIBUTES = (Project, ); }; };
+ 3708AA48F1D26CB56F88BB6FEC72DE36 /* Bolts.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C08B43A1654189468C9BB569CB9538D2 /* Bolts.framework */; };
+ 372F7A9CCE59CE86316CF436F832A3FC /* EXPMatchers+beGreaterThanOrEqualTo.h in Headers */ = {isa = PBXBuildFile; fileRef = A744F6E3398B3B7C22E65C288C27CA8B /* EXPMatchers+beGreaterThanOrEqualTo.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 377AB958BA56E394819495344B0F4B8C /* FBSDKBridgeAPIProtocol.h in Headers */ = {isa = PBXBuildFile; fileRef = C01799D10FA2561CC2654838924361BB /* FBSDKBridgeAPIProtocol.h */; settings = {ATTRIBUTES = (Project, ); }; };
+ 379DAA416186ABEE9DB943E163EF15BA /* FBSDKGraphRequestPiggybackManager.m in Sources */ = {isa = PBXBuildFile; fileRef = BF450E6C8977D0C2757A88DCF3934B69 /* FBSDKGraphRequestPiggybackManager.m */; };
+ 37A2D0F8493469EF2495FC689440F079 /* EXPMatchers+beLessThanOrEqualTo.h in Headers */ = {isa = PBXBuildFile; fileRef = DEE8ED282F2EBCC5C25A37E9A07CD478 /* EXPMatchers+beLessThanOrEqualTo.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 3801C38860198F0E227E42F95F857451 /* NAAES.h in Headers */ = {isa = PBXBuildFile; fileRef = 4452045B94298B128BD66BAE6E41E6FC /* NAAES.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 3876DCCA3DC3FE47B617749FE27BDD51 /* NSString_Helper.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DF6789B89C2A919D4893DF3A0D8DAB7E /* NSString_Helper.framework */; };
+ 38B912710AF7BC6CDC3913B99DEB57C9 /* FBSDKBoltsMeasurementEventListener.m in Sources */ = {isa = PBXBuildFile; fileRef = 416C038B5308F4C5434D20FE7A74F545 /* FBSDKBoltsMeasurementEventListener.m */; };
+ 3905546D39E18BDFAFC3D3F3CB7F1676 /* HTTPStatusCodes.h in Headers */ = {isa = PBXBuildFile; fileRef = 19E805A59003DE68968A06541D1BE975 /* HTTPStatusCodes.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 391BE90D98905993675EB9453977EE39 /* FBSDKShareAPI.h in Headers */ = {isa = PBXBuildFile; fileRef = D0EC9088F40F6B2716A957AC81A1C9A3 /* FBSDKShareAPI.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 3957423A19346D13857C61D1A5C777F1 /* FBSDKMessengerIcon.m in Sources */ = {isa = PBXBuildFile; fileRef = D284BDCFBE65AEDF5584291770734FA9 /* FBSDKMessengerIcon.m */; };
+ 397B320B7C59C168CC5B62E18ED8DEA0 /* EXPMatchers+beSubclassOf.h in Headers */ = {isa = PBXBuildFile; fileRef = 7B07B67723D86FD4E9FC5DCC3FDFBF8A /* EXPMatchers+beSubclassOf.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 39E5FAA1902E475ED630947A4B08BBAD /* FBSDKButton.h in Copy . Public Headers */ = {isa = PBXBuildFile; fileRef = 0C6D4FC68CACC097DF3E01B0E29B14F9 /* FBSDKButton.h */; };
+ 39F3AFD4DADD9BF4AEDFAF1FEA82B2F2 /* ExpectaObject+FBSnapshotTest.h in Headers */ = {isa = PBXBuildFile; fileRef = 469D973C891944DD20477A31BA9AC397 /* ExpectaObject+FBSnapshotTest.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 3A8F89BFD9F67737B7E44F94170E23CA /* FBSDKSystemAccountStoreAdapter.m in Sources */ = {isa = PBXBuildFile; fileRef = AA53709540CC25F94D9C44DB31643761 /* FBSDKSystemAccountStoreAdapter.m */; };
+ 3B5B7495707BF7133B9FB3F834045611 /* EXPBlockDefinedMatcher.h in Headers */ = {isa = PBXBuildFile; fileRef = 8FCDB882833E40AC7735EB75ABF763EB /* EXPBlockDefinedMatcher.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 3C2700C7DAA15C6AF84A595865C42F4D /* EXPMatchers+contain.h in Headers */ = {isa = PBXBuildFile; fileRef = 8DC98A97BF9B25757C5E9A70BC2E2DA7 /* EXPMatchers+contain.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 3D2789FC760A97301909F0B1201626CD /* AFNetworking-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = F126A22E12650143898F0ADF0965FFD2 /* AFNetworking-dummy.m */; };
+ 3D48EE131B6577ED73A5CC481A6FE40C /* Expecta.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0890DFD3FB25A709E9E787509F2862CE /* Expecta.framework */; };
+ 3D92E4ECE3D7B49CDD22F9F198501E78 /* NAKeychain.h in Headers */ = {isa = PBXBuildFile; fileRef = 8C8D8788D0AFB6166542F6B3E621468D /* NAKeychain.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 3DBBDEAC42888E8DFF0E0ACF5F5D941A /* SPTExcludeGlobalBeforeAfterEach.h in Headers */ = {isa = PBXBuildFile; fileRef = B36D146CC39B77740A56A130DEAEFF18 /* SPTExcludeGlobalBeforeAfterEach.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 3E7DB8CA31CF31EC465BE831F0FD88FA /* BFURL.m in Sources */ = {isa = PBXBuildFile; fileRef = 47E5E0380E22EF4E0C9A128ABC8D68F0 /* BFURL.m */; };
+ 3EA5245B08FA72B61E5BF1DBEE3D5599 /* Pods-PNObject_Example-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = AA1CE72928E46C7F70D4BBE1CD90756D /* Pods-PNObject_Example-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 3F1BC9BAFFEEABB1ABC7614DF0FC97D5 /* AFAutoPurgingImageCache.m in Sources */ = {isa = PBXBuildFile; fileRef = DA32DB689A61F496178A06FF31545A50 /* AFAutoPurgingImageCache.m */; };
+ 3F7385EE1C8D8283B17F46DBB96362D3 /* NSString-Helper-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 48883A1E378FFB8C55D19124755905F5 /* NSString-Helper-dummy.m */; };
+ 3FAF7FD9FC5529A9C65AD4DB966E463E /* VatNumber+Helper.h in Headers */ = {isa = PBXBuildFile; fileRef = 2E5DB6798EFD74F5BBFA05FB5F1F6314 /* VatNumber+Helper.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 3FCE0221C01FCDA673E17CC9BDCB0306 /* PureLayout.h in Headers */ = {isa = PBXBuildFile; fileRef = E48CB941173FD75A55D6ABD3FC71C488 /* PureLayout.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 40116C85BDE7EB57675473279A8B00A1 /* FBSDKGraphRequestMetadata.m in Sources */ = {isa = PBXBuildFile; fileRef = 0C9F883E8E9823216CA90174FCAFB27C /* FBSDKGraphRequestMetadata.m */; };
+ 403292D82DA62291204BF59524BC4EDB /* EXPMatchers+haveCountOf.m in Sources */ = {isa = PBXBuildFile; fileRef = 6921374CA451CA571A2237A53078D2CC /* EXPMatchers+haveCountOf.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; };
+ 4052EB66107F09D6F856EAA1F4FC0846 /* UIImage+Snapshot.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E19DC563AFE66D4615F26DC95496EE9 /* UIImage+Snapshot.m */; };
+ 40E822C084FA5E419CB4E7DD5F18FF5D /* FBSDKLogo.m in Sources */ = {isa = PBXBuildFile; fileRef = F297011C2D136CC6E67A6F3CD0E5960B /* FBSDKLogo.m */; };
+ 41C4656BC1F0106C433E2F027BF96033 /* FBSDKShareDialog.h in Headers */ = {isa = PBXBuildFile; fileRef = BD8B73261B665423AA0BFFF94085CA72 /* FBSDKShareDialog.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 42CAD64A63BE951B1886156CDDF767D8 /* NACrypto.h in Headers */ = {isa = PBXBuildFile; fileRef = AC8B822C9482D13D9A280D7A79B98342 /* NACrypto.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 436F74B6D846EE13A1AEFA0067B78EC4 /* FBSDKDynamicFrameworkLoader.h in Headers */ = {isa = PBXBuildFile; fileRef = 4E754A8F6BD99B6D71B2EC37305E8670 /* FBSDKDynamicFrameworkLoader.h */; settings = {ATTRIBUTES = (Project, ); }; };
+ 4389DBF8BD6CD92A017E2E8C7094FDB3 /* SPTSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = BF8FC81AD4D0D6617A1FB74E7A5BA0C1 /* SPTSpec.m */; };
+ 439FB25319C124AA7F8718B620A26072 /* FBSDKShareError.m in Sources */ = {isa = PBXBuildFile; fileRef = EAD81E95F2962FE929BCD93C161003A4 /* FBSDKShareError.m */; };
+ 43D2E52A4EF08EABF1770B14F3869CA9 /* NSUserDefaults+AESEncryptor.m in Sources */ = {isa = PBXBuildFile; fileRef = 763F35662E5E42EB215EB50FEA668D26 /* NSUserDefaults+AESEncryptor.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; };
+ 4441ED22FB6E40D085C28CC0812C04A5 /* FBSDKWebDialogView.m in Sources */ = {isa = PBXBuildFile; fileRef = 27F343D412F07EF450BB492F56AC7056 /* FBSDKWebDialogView.m */; };
+ 4471B2EB9B011CCD37B889F89194E4CC /* FBSDKCoreKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = ED3ACADE7D5CCFB0D41B9053F3604321 /* FBSDKCoreKit.framework */; };
+ 448F54A7D373F40E7CA6A579CF06D2BB /* FBSDKTypeUtility.h in Headers */ = {isa = PBXBuildFile; fileRef = 882113A5633F1BFBB82B9D9B544571E6 /* FBSDKTypeUtility.h */; settings = {ATTRIBUTES = (Project, ); }; };
+ 46137F5CC368BF38BAF0D0AF81DD8FFE /* EXPMatchers+raise.h in Headers */ = {isa = PBXBuildFile; fileRef = B05AB62813CC809EC3250D6477F8EEE9 /* EXPMatchers+raise.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 46E961BEA7247217652A5F012F82FECC /* FBSDKTooltipView.m in Sources */ = {isa = PBXBuildFile; fileRef = 3E8EA7B417F2ACCC1F99571CA3EAA620 /* FBSDKTooltipView.m */; };
+ 470B4A42DCCB28EF5611E942CD95F43D /* BFAppLinkReturnToRefererView_Internal.h in Headers */ = {isa = PBXBuildFile; fileRef = 4B14EDB8D1334F1AF05C9A09A046EA2C /* BFAppLinkReturnToRefererView_Internal.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 47172C974ECFB200C364C51FF7175FE8 /* FBSDKGraphRequestBody.m in Sources */ = {isa = PBXBuildFile; fileRef = 60783E1A5C23B8AD5834DC21152B787A /* FBSDKGraphRequestBody.m */; };
+ 471FD4F68E27AB26FA2AEBB8B245CEE4 /* NSValue+Expecta.h in Headers */ = {isa = PBXBuildFile; fileRef = 5943C90C11007AC9480E7B1C8130508A /* NSValue+Expecta.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 47D16DB1D23CFE027F5BE7F7E391AB4C /* EXPMatchers+FBSnapshotTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 1D1989B9D9081B91B3722A1471785640 /* EXPMatchers+FBSnapshotTest.m */; };
+ 488A67D157A4A3E96C46480FD5723761 /* FBSDKAppGroupAddDialog.h in Headers */ = {isa = PBXBuildFile; fileRef = 381599CF6C500631879F80BA0CFCE291 /* FBSDKAppGroupAddDialog.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 4922A960B9BFC1DCD0A60DB798E3D1A8 /* FBSDKAccessTokenCacheV3_21.m in Sources */ = {isa = PBXBuildFile; fileRef = 388F193E081A31E8B05520E20BCB1C3D /* FBSDKAccessTokenCacheV3_21.m */; };
+ 49239C6CF815B92F2DF5B5D79FB9B5AF /* FBSDKTooltipView.h in Headers */ = {isa = PBXBuildFile; fileRef = D0DEFDCE74E1110FCFDE5463BCAED0E9 /* FBSDKTooltipView.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 49445456A01CB6D1226BDE37AE40101C /* Bolts.m in Sources */ = {isa = PBXBuildFile; fileRef = 69CB750C73E15C973D1444D06523B1D0 /* Bolts.m */; };
+ 4B3672CCA80CE21A837AF91C5E5037FA /* FBSDKGraphErrorRecoveryProcessor.h in Copy . Public Headers */ = {isa = PBXBuildFile; fileRef = 110D63918299219399B5E686610A76C7 /* FBSDKGraphErrorRecoveryProcessor.h */; };
+ 4B5542E72A64100965FFFA704684CED4 /* ExpectaObject+FBSnapshotTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 8216232DC2C1A24F7711B9F7C66BDEFD /* ExpectaObject+FBSnapshotTest.m */; };
+ 4B71AC723494A4457B4E792490608807 /* Bolts.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C08B43A1654189468C9BB569CB9538D2 /* Bolts.framework */; };
+ 4BBCBB9D8EF0B241A4A4FE4982985481 /* ExpectaSupport.m in Sources */ = {isa = PBXBuildFile; fileRef = 8E20B83E3B9341C7632EDD662A1A1E89 /* ExpectaSupport.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; };
+ 4C06C68166BF7D8B8F8CCE701A2AEBB7 /* FBSDKColor.h in Headers */ = {isa = PBXBuildFile; fileRef = 459319AEC9027849E4466BE4E4964A51 /* FBSDKColor.h */; settings = {ATTRIBUTES = (Project, ); }; };
+ 4C563027F13C24615B421BC11F279811 /* FBSDKGraphRequestDataAttachment.m in Sources */ = {isa = PBXBuildFile; fileRef = 3ECC8443C0887B4F0A8CFA8CAF08544C /* FBSDKGraphRequestDataAttachment.m */; };
+ 4D334213818CAB5FD602BBD79CFC502C /* PNObject+Protected.h in Headers */ = {isa = PBXBuildFile; fileRef = 920C93A9DC86FDB4EC53C3505C1EA256 /* PNObject+Protected.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 4DA130F813859583C3363088029A470E /* _FBSDKLoginRecoveryAttempter.h in Headers */ = {isa = PBXBuildFile; fileRef = FB6BBDD3C948AA113411060F6796B9A5 /* _FBSDKLoginRecoveryAttempter.h */; settings = {ATTRIBUTES = (Project, ); }; };
+ 4E619F6D3D8B639CE59F336F1906D9CF /* Base64.m in Sources */ = {isa = PBXBuildFile; fileRef = BF6325AE2AFC5273B5E6A240B49576BF /* Base64.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; };
+ 4EEBAE627EF2C3017C7FEA30142570D2 /* FBSDKAppEventsUtility.h in Headers */ = {isa = PBXBuildFile; fileRef = D6F05561FE5C2C0ACE01533643B602B8 /* FBSDKAppEventsUtility.h */; settings = {ATTRIBUTES = (Project, ); }; };
+ 4F535B1FDEAB87D360A100F7055A806E /* PEAR-FileManager-iOS-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 57DFEC2B971E5AAECFCF97A8EF781D93 /* PEAR-FileManager-iOS-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 501A7D9BEC2DF74A2677C97FF8513C67 /* FBSDKLikeBoxView.m in Sources */ = {isa = PBXBuildFile; fileRef = 44FCFFC0191662E52FF7032843971CC3 /* FBSDKLikeBoxView.m */; };
+ 501F586BD1E2B594B43A2EA0445A406E /* PNObject+Protected.m in Sources */ = {isa = PBXBuildFile; fileRef = 834791DB699645460928D4DEE95453AC /* PNObject+Protected.m */; };
+ 5056E0520959CBC31CCB037B59BFC847 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1E61CC4B72D13C136480767E7A045131 /* UIKit.framework */; };
+ 50693AF96778E4C794D8E2BCBD3797DE /* Bolts.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C08B43A1654189468C9BB569CB9538D2 /* Bolts.framework */; };
+ 50D3F9877AEFB4B47F9F8D0DE44973AF /* FBSDKMaleSilhouetteIcon.m in Sources */ = {isa = PBXBuildFile; fileRef = 85FB5D3B456D90709D0A2B672D3C1556 /* FBSDKMaleSilhouetteIcon.m */; };
+ 51154970E31FD5924300F46438EC50F4 /* FBSDKSendButton.m in Sources */ = {isa = PBXBuildFile; fileRef = 03B1511AC730F140345C0C9D6EBBC07B /* FBSDKSendButton.m */; };
+ 51DDDB0FB4899757CF6A826B531B940D /* EXPUnsupportedObject.h in Headers */ = {isa = PBXBuildFile; fileRef = F73B8149F2EA32732B8E90554BA01923 /* EXPUnsupportedObject.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 51F186DB8FE70D903F4394B2F4BA98A1 /* FBSDKLikeBoxBorderView.h in Headers */ = {isa = PBXBuildFile; fileRef = 32015EB35929B94269C62D6EF15E3BD1 /* FBSDKLikeBoxBorderView.h */; settings = {ATTRIBUTES = (Project, ); }; };
+ 523B86D2D261C21C5E51DE4B60AAE9F8 /* NANSMutableData+Utils.h in Headers */ = {isa = PBXBuildFile; fileRef = 8C82443CB6E4DEA02E090F85048C4832 /* NANSMutableData+Utils.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 52457009AF3D5208D69014B413085AB8 /* FBSDKKeychainStore.h in Headers */ = {isa = PBXBuildFile; fileRef = 8EC562FC62623CDB8ED86E0D2124D8C3 /* FBSDKKeychainStore.h */; settings = {ATTRIBUTES = (Project, ); }; };
+ 526FDD1D611310F9735020F1364439BB /* AFOAuthCredential.h in Headers */ = {isa = PBXBuildFile; fileRef = 2DB8094B2A385015978BA0D576989435 /* AFOAuthCredential.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 533C97FBF0121CE0397E02EF5C26C2D0 /* PNObject+PNObjectConnection.m in Sources */ = {isa = PBXBuildFile; fileRef = 989FB8B593B9EEB5DEC0FFDFC0E0BBAD /* PNObject+PNObjectConnection.m */; };
+ 534C8DC9ED3C4967225003730185A1BA /* ResponseConstants.h in Headers */ = {isa = PBXBuildFile; fileRef = 4166585BFC2246786AD11FFEE8AE3F4F /* ResponseConstants.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 5389BB78986853F41452731E6EB0D101 /* FBSDKShareDialogMode.m in Sources */ = {isa = PBXBuildFile; fileRef = 0DFD8469CDAE787C5285EE3942CB20E9 /* FBSDKShareDialogMode.m */; };
+ 54AF62ACF67074BA98574325C3093D1F /* Security.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8B1A32DE41393152063724D1147545E8 /* Security.framework */; };
+ 54C51FDA59C0C15C4F3FF725F124C60E /* FBSDKGraphRequestConnection.m in Sources */ = {isa = PBXBuildFile; fileRef = 4ED9F978A265E9A18894D098D4D2D30F /* FBSDKGraphRequestConnection.m */; };
+ 54CA406F60DF428704FE7E894BD91D14 /* FBSDKAppLinkUtility.h in Copy . Public Headers */ = {isa = PBXBuildFile; fileRef = ECCF07F1A89D624A6A9C6FC9065857C9 /* FBSDKAppLinkUtility.h */; };
+ 5526E2332AE78F99A9EFD763159D509B /* BoltsVersion.h in Headers */ = {isa = PBXBuildFile; fileRef = 65E969736E0E77F4A09D416F251E80A1 /* BoltsVersion.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 55350D835B75F9746ADB9FB5DFDB4476 /* FBSDKCoreKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = ED3ACADE7D5CCFB0D41B9053F3604321 /* FBSDKCoreKit.framework */; };
+ 5542676C8A6F6F69CBA7CEE12C54C312 /* FBSDKShareOpenGraphValueContainer+Internal.h in Headers */ = {isa = PBXBuildFile; fileRef = 618E1C606195C3309D59169D3FBDBF81 /* FBSDKShareOpenGraphValueContainer+Internal.h */; settings = {ATTRIBUTES = (Project, ); }; };
+ 560698A4D707DCBCC1C8F98BC9B89B23 /* AFURLSessionManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 1904238C31CE83E793FF1DBD437E38C2 /* AFURLSessionManager.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 57916DAA7B1981AB0DAB6D47FD1B30AD /* FBSDKCopying.h in Copy . Public Headers */ = {isa = PBXBuildFile; fileRef = A9B1139E00B7A565A37BE6FF833D53BF /* FBSDKCopying.h */; };
+ 57933E9D8C03D6D92D3147953E0FB61E /* NSUserDefaults+AESEncryptor.h in Headers */ = {isa = PBXBuildFile; fileRef = F6E853C04F287E3574FD85133FAF7962 /* NSUserDefaults+AESEncryptor.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 5808B477EFF509D810B5CDCFDC944F80 /* AFImageDownloader.h in Headers */ = {isa = PBXBuildFile; fileRef = 1CA96E7E34630F730A20E35130F0A5CF /* AFImageDownloader.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 59053EC0A89FE58BCE4E88BB34BA0AD6 /* FBSDKAppEventsStateManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 0FE66BF28004AA011E120A0F837D5D30 /* FBSDKAppEventsStateManager.m */; };
+ 593CC7041B3BF65E9BAD9828E968D71C /* PNObjectFormData.m in Sources */ = {isa = PBXBuildFile; fileRef = F812BE477015902749E0E8397E41E778 /* PNObjectFormData.m */; };
+ 59496343C78DE69D77E31013D044168B /* BFAppLinkReturnToRefererView.h in Headers */ = {isa = PBXBuildFile; fileRef = CF1D4B9BC028EC2C7F8AFB3042FE479B /* BFAppLinkReturnToRefererView.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 59FC185BFC88003C00938CDEE2C61335 /* FBSDKLikeButtonPopWAV.h in Headers */ = {isa = PBXBuildFile; fileRef = F849119183B82530F4A547FDA34D20B3 /* FBSDKLikeButtonPopWAV.h */; settings = {ATTRIBUTES = (Project, ); }; };
+ 5A2DE8AF7CBAD6CA10EF99C9A92D2D11 /* FBSDKBridgeAPIProtocolWebV1.h in Headers */ = {isa = PBXBuildFile; fileRef = D91E799A562E90107B3FE72584B7F192 /* FBSDKBridgeAPIProtocolWebV1.h */; settings = {ATTRIBUTES = (Project, ); }; };
+ 5B02952007097B36C09521EECD640FD9 /* FBSDKAppLinkResolver.h in Headers */ = {isa = PBXBuildFile; fileRef = D6FB8A12FDEDD1CE9C6604B032B14446 /* FBSDKAppLinkResolver.h */; };
+ 5B1C065CC44031D0703887F2582D2BA3 /* FBSDKSendButton.h in Headers */ = {isa = PBXBuildFile; fileRef = 348B4F53E7EA28C8EF24EE0BF065A0D1 /* FBSDKSendButton.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 5B2D4A621D3DA971A474776AF36BB073 /* EXPBlockDefinedMatcher.m in Sources */ = {isa = PBXBuildFile; fileRef = 169DA4A865BE3BA98DDA6F1E2B0246D4 /* EXPBlockDefinedMatcher.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; };
+ 5C6975242C03EB7FD1E9AF7D5AAE317D /* SPTSharedExampleGroups.h in Headers */ = {isa = PBXBuildFile; fileRef = E83E764AD095EA7C70837F0ECA56F19D /* SPTSharedExampleGroups.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 5CC9668011877917C4122783AC36761D /* UIDevice-Hardware.h in Headers */ = {isa = PBXBuildFile; fileRef = 175D03DC1833AD9C70017A1B5210AB22 /* UIDevice-Hardware.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 5CF7526D330A734F7ABCDCFF3D1A9B35 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 41A5B3B466CFAB9687B8380811DA3B86 /* Foundation.framework */; };
+ 5D2A43254CD11AE497DFB4D0332CF651 /* CocoaSecurity.h in Headers */ = {isa = PBXBuildFile; fileRef = 74345CE36E1F4C0C65E44D3307A56911 /* CocoaSecurity.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 5EA7043FE10E75D02F3C3052AF8B8318 /* EXPDefines.h in Headers */ = {isa = PBXBuildFile; fileRef = 77BD4B4FE318EFC7EE91F05BDC21D279 /* EXPDefines.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 5FC46014065651ECC2B3B2561AFB0EC1 /* NATwoFish.m in Sources */ = {isa = PBXBuildFile; fileRef = 254E2DE5BB0612C2D3F355C0C2F57214 /* NATwoFish.m */; };
+ 5FF2081B0B5B32AA301FD409FC2FAABD /* PNObjcPassword.h in Headers */ = {isa = PBXBuildFile; fileRef = 7CD81967FF6E6D1F0561CB07BA5E1843 /* PNObjcPassword.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 5FF6453E55785669885F626B853FD2AA /* UIProgressView+AFNetworking.m in Sources */ = {isa = PBXBuildFile; fileRef = 9F0EF5E5E816ABCDBA0D310C15CF0895 /* UIProgressView+AFNetworking.m */; };
+ 6064520DF59F46C2B432E593F326AA9B /* FBSDKMutableCopying.h in Headers */ = {isa = PBXBuildFile; fileRef = 1FF4ACD57C00F851C1DB78B19FFC8A18 /* FBSDKMutableCopying.h */; };
+ 60A1675CA50855A7B319852E1202993D /* SPTExampleGroup.h in Headers */ = {isa = PBXBuildFile; fileRef = B39E7957E1C9CB65EF2E7073FD397DAD /* SPTExampleGroup.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 60C67342AEFF5BA626D029B6085DF087 /* FBSDKAccessTokenCache.h in Headers */ = {isa = PBXBuildFile; fileRef = 48663B0E227B795B112F8AADBC135D69 /* FBSDKAccessTokenCache.h */; settings = {ATTRIBUTES = (Project, ); }; };
+ 60E3009342BEE96D32C546BE2DB60052 /* UIImageView+AFNetworking.h in Headers */ = {isa = PBXBuildFile; fileRef = 3C185AA9E34BEC6275194477514B9A3D /* UIImageView+AFNetworking.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 612D4E1E803A238D8A03CA34B6E2328B /* FBSDKShareAPI.m in Sources */ = {isa = PBXBuildFile; fileRef = DD1EE3B763524D9A381E7FF29B64C2FE /* FBSDKShareAPI.m */; };
+ 616A35F7EF58EE5B0469CD8CD7BE342A /* NACounter.h in Headers */ = {isa = PBXBuildFile; fileRef = 92ABE4563DA0EF6D970F407FC1D01E17 /* NACounter.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 61A388B850CBEB449FD4DCCDC5EEF5E6 /* KeccakSponge.h in Headers */ = {isa = PBXBuildFile; fileRef = D8CE218BF3D10CB3162E633EEA0EEA46 /* KeccakSponge.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 624D3D84955B69CB5F0692329DD6D2E1 /* BFAppLinkTarget.h in Headers */ = {isa = PBXBuildFile; fileRef = E780B1FDE87174A9801BFF62B4756AE9 /* BFAppLinkTarget.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 62C97852C8264AB639D6A11DB456CB0A /* FBSDKGameRequestDialog.m in Sources */ = {isa = PBXBuildFile; fileRef = C14B769C69A5AEF06661CF6ADA838A9E /* FBSDKGameRequestDialog.m */; };
+ 62E6AC0E6906FA930F94418061278850 /* AFHTTPRequestSerializer+OAuth2.h in Headers */ = {isa = PBXBuildFile; fileRef = 9BB54B0075F3ADC8BCCEEB83F19F69FC /* AFHTTPRequestSerializer+OAuth2.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 63579F648CE01017DBABB4C4A852A910 /* BFAppLinkReturnToRefererController.m in Sources */ = {isa = PBXBuildFile; fileRef = 92E4C397330757F0836ACB3FFA6DDAC8 /* BFAppLinkReturnToRefererController.m */; };
+ 63B48DCFD7D5D1BA31DB64F19236AD53 /* FBSDKGameRequestFrictionlessRecipientCache.h in Headers */ = {isa = PBXBuildFile; fileRef = 2F34D1BACA96A30566F60D5D2E68544A /* FBSDKGameRequestFrictionlessRecipientCache.h */; settings = {ATTRIBUTES = (Project, ); }; };
+ 63D91ABE50ECED3198CCB5BF8F0991FD /* FBSDKShareOpenGraphObject.m in Sources */ = {isa = PBXBuildFile; fileRef = 180A24BC9965B2659473429032A9AB09 /* FBSDKShareOpenGraphObject.m */; };
+ 648D093C2A7EBE083D883C46DA9A55F8 /* BFCancellationTokenRegistration.h in Headers */ = {isa = PBXBuildFile; fileRef = 707750F0D3188DF9FF4E2EF0E16B018E /* BFCancellationTokenRegistration.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 65440DA60CE64F0AFFAD6D0CB4A121A8 /* FBSDKServerConfigurationManager+Internal.h in Headers */ = {isa = PBXBuildFile; fileRef = 4C88A4C32B0E1185E3688C9FE2B6A698 /* FBSDKServerConfigurationManager+Internal.h */; settings = {ATTRIBUTES = (Project, ); }; };
+ 659960F7E28E993E08CCC1E8A383E710 /* UIKit+AFNetworking.h in Headers */ = {isa = PBXBuildFile; fileRef = E790EC961A6AB97B1460DDDC64F0AF69 /* UIKit+AFNetworking.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 65BC31095CCDFC80CBF6BBA843751F23 /* EXPMatcher.h in Headers */ = {isa = PBXBuildFile; fileRef = E30D22291396ABB2E89B712C621F7977 /* EXPMatcher.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 65C1F131B24A46EF630429443212AFCB /* FBSDKShareOpenGraphContent.h in Headers */ = {isa = PBXBuildFile; fileRef = 2C068170BC8A615B58473639C64D1931 /* FBSDKShareOpenGraphContent.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 6676F7ECBE69B90B41DB7752DF1EC779 /* FBSDKMonotonicTime.m in Sources */ = {isa = PBXBuildFile; fileRef = FB4EC0FEAC282915AAC3680D85FD16EF /* FBSDKMonotonicTime.m */; };
+ 66A27898E989A3FA5C15AA671C4536F0 /* EXPMatchers+beIdenticalTo.m in Sources */ = {isa = PBXBuildFile; fileRef = FE115C90C4084F360B9910F9D5B430E0 /* EXPMatchers+beIdenticalTo.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; };
+ 67459AD239EF669A365519E06B45DCFE /* EXPExpect.h in Headers */ = {isa = PBXBuildFile; fileRef = E341BC136C2B04FA812AF47203295F01 /* EXPExpect.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 68152D921ABF6A423C192C04FDF94F0F /* AFNetworkReachabilityManager.h in Headers */ = {isa = PBXBuildFile; fileRef = D90432F78EDD442DD3782E3FF0715CF0 /* AFNetworkReachabilityManager.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 6817DE148CDBD0D314AFC83255A645E4 /* FBSDKLoginTooltipView.h in Headers */ = {isa = PBXBuildFile; fileRef = B32D9213B066C0852AE78D812483CA93 /* FBSDKLoginTooltipView.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 682CD6D15A0CFE176FDFCDE559D7DF4D /* BFURL_Internal.h in Headers */ = {isa = PBXBuildFile; fileRef = 6B6F4306F676875647606FB2614C6B16 /* BFURL_Internal.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 683FC99BAEA8DDE9EBEE2EC93F949B36 /* FBSDKLoginManagerLoginResult+Internal.h in Headers */ = {isa = PBXBuildFile; fileRef = 371F0E95ED3D42E2757C4DB8D395EFF5 /* FBSDKLoginManagerLoginResult+Internal.h */; settings = {ATTRIBUTES = (Project, ); }; };
+ 68A38977EBAE334DC3C22386D00D2622 /* AFNetworkReachabilityManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 165D738406E6A0CA5DC038ED975820EE /* AFNetworkReachabilityManager.m */; };
+ 6A644BF4D8710F70071FC4C61925C8E9 /* FBSDKIcon.h in Headers */ = {isa = PBXBuildFile; fileRef = AAC2482255E76EF184B92B937E5495EB /* FBSDKIcon.h */; settings = {ATTRIBUTES = (Project, ); }; };
+ 6A735230D56FF7AA8319197677E2AEF0 /* FBSDKProfile+Internal.h in Headers */ = {isa = PBXBuildFile; fileRef = 811A0223E28D330BE0F7B281C0AA0A0F /* FBSDKProfile+Internal.h */; settings = {ATTRIBUTES = (Project, ); }; };
+ 6AF7F779134F03B802B53312A79F3F2F /* FBSDKServerConfiguration.h in Headers */ = {isa = PBXBuildFile; fileRef = B54B780E0CB5359DFD49A3640A89743B /* FBSDKServerConfiguration.h */; settings = {ATTRIBUTES = (Project, ); }; };
+ 6B6A947A057175F83EA39D8737DAA8B1 /* FBSDKBridgeAPICrypto.m in Sources */ = {isa = PBXBuildFile; fileRef = D4998D366982245292E25D3462A2971A /* FBSDKBridgeAPICrypto.m */; };
+ 6C2C0F560BB40CCBDCA43AAF5CC9FC93 /* FBSDKShareKit.h in Headers */ = {isa = PBXBuildFile; fileRef = 971666E418BE0824E3D739FDABD3BC37 /* FBSDKShareKit.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 6C38120678BE5227BC9D25CB8CF1DB01 /* FBSDKKeychainStore.m in Sources */ = {isa = PBXBuildFile; fileRef = BAEA3E11E9E6217CC83AD7D974644AE1 /* FBSDKKeychainStore.m */; };
+ 6C9A92E8272233B92E575B71C03BEBE2 /* Specta-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 9F2E492726269DEFA28D6B633DB02531 /* Specta-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 6D0556DE38EB6EE8A35FB4F61846E9AD /* FBSDKMessengerIcon.h in Headers */ = {isa = PBXBuildFile; fileRef = E94D81D413E33F388AC91ABBDA0989DA /* FBSDKMessengerIcon.h */; settings = {ATTRIBUTES = (Project, ); }; };
+ 6D0CF82D9317F78FE1B723E5C50F2552 /* FBSDKApplicationDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = B82F3CF26CF059D862D091E4FFBDB39A /* FBSDKApplicationDelegate.h */; };
+ 6D5444F495A42710D85AF2B3EDFC3DC8 /* FBSDKAppEventsState.h in Headers */ = {isa = PBXBuildFile; fileRef = 9FC2F8179C38FAD640D7843B8ADA4AC3 /* FBSDKAppEventsState.h */; settings = {ATTRIBUTES = (Project, ); }; };
+ 6D82AF3B1574956D04200605CF000C90 /* NSString-Helper-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = C3FA0CF8CEA78EA1172D9C8202651053 /* NSString-Helper-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 6E1930A504A3E354437FDF2C42818EA9 /* FBSDKBridgeAPIProtocolWebV2.h in Headers */ = {isa = PBXBuildFile; fileRef = 8D7AD7D353B077EED26448970D714EB2 /* FBSDKBridgeAPIProtocolWebV2.h */; settings = {ATTRIBUTES = (Project, ); }; };
+ 6E1D978790705E137FDE439AA68DD3AA /* EXPFloatTuple.h in Headers */ = {isa = PBXBuildFile; fileRef = AE4B4DD538C273C10EDF064E30F09ADA /* EXPFloatTuple.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 6ED4ABEE8A5F51F5ECB59FA1781D29C6 /* UIActivityIndicatorView+AFNetworking.m in Sources */ = {isa = PBXBuildFile; fileRef = AA46CD7C9F8F5AAAF8CB056B35344D33 /* UIActivityIndicatorView+AFNetworking.m */; };
+ 6EFC63A5CED45BB39FC79D87F2C47D6B /* EXPMatchers+beGreaterThan.h in Headers */ = {isa = PBXBuildFile; fileRef = A6DA42DE6BB0FDFB02FFDCC1DBF16CDE /* EXPMatchers+beGreaterThan.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 6F278423C8AE1DA47F35E374BB5B91EC /* EXPMatchers+beSupersetOf.m in Sources */ = {isa = PBXBuildFile; fileRef = 74BD8A3A5418D52D9BD430B989D0F353 /* EXPMatchers+beSupersetOf.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; };
+ 6F932D9320F58992F7369FAE06B34828 /* FBSDKBridgeAPIProtocolType.h in Headers */ = {isa = PBXBuildFile; fileRef = A29864CA177F62357CFD767C7EC9363E /* FBSDKBridgeAPIProtocolType.h */; settings = {ATTRIBUTES = (Project, ); }; };
+ 6FA27A19897E7F8AE652B683332DEE1F /* ALView+PureLayout.m in Sources */ = {isa = PBXBuildFile; fileRef = C6F79436C17FFCF9F7E3D654ABA3A225 /* ALView+PureLayout.m */; };
+ 7062E916F797B3D9B8B8189BBBB14943 /* UIDevice_Utils.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 14C4D22A020F8F77D4C2010C51DB22FA /* UIDevice_Utils.framework */; };
+ 707B1A7541C8DBDDE8C27896A61370BE /* AFURLSessionManager.m in Sources */ = {isa = PBXBuildFile; fileRef = BE19C3CB34CBF85580B5043620A8C667 /* AFURLSessionManager.m */; };
+ 70E4BCC789D8C8F1033F23E0752502A7 /* FBSnapshotTestCase.m in Sources */ = {isa = PBXBuildFile; fileRef = 3C6DB10FF54589A4257A0E589A8308C0 /* FBSnapshotTestCase.m */; };
+ 715A1122272BB3A29A10AAE4C8C03913 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 41A5B3B466CFAB9687B8380811DA3B86 /* Foundation.framework */; };
+ 715A5021C3E73D708A2A16CCAC57DAFD /* PNObjcPassword.m in Sources */ = {isa = PBXBuildFile; fileRef = 3D1CECBE55FB5EC362A660A3EE9653B5 /* PNObjcPassword.m */; };
+ 720A7E8DA864D1B2B76704A5138C02E9 /* FBSDKAppEvents+Internal.h in Headers */ = {isa = PBXBuildFile; fileRef = 01758BF23FF07FA93CE50C54FDA892D2 /* FBSDKAppEvents+Internal.h */; settings = {ATTRIBUTES = (Project, ); }; };
+ 726D77AEA0FB88FE139A054FD85AC906 /* PNObjectFormData.h in Headers */ = {isa = PBXBuildFile; fileRef = E9D430FA8445F59878D1D19F95566256 /* PNObjectFormData.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 7332F15718920917F544F35CE2C038AA /* AFURLResponseSerialization.h in Headers */ = {isa = PBXBuildFile; fileRef = 4BD329B6BF2E7B8FAB8A78552A7EDD85 /* AFURLResponseSerialization.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 734B7F67FB9417B68B4F2E40CE56F826 /* FBSDKShareDialog.m in Sources */ = {isa = PBXBuildFile; fileRef = AADCD0B807BAF86C50F246B98F4478C4 /* FBSDKShareDialog.m */; };
+ 734E66ED991A40B092B486B68708DFC5 /* PureLayout-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = EF06DA5D569D5C1367AF7E84DEEEE866 /* PureLayout-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 73FC7216617A2463E1FEE8A36CA8B183 /* NSArray+PureLayout.m in Sources */ = {isa = PBXBuildFile; fileRef = 46C2C6BBFCD24075BF05D4DF4874AFC5 /* NSArray+PureLayout.m */; };
+ 74688BB92278B12E1697F8BBADEAAAB1 /* FBSDKAppEvents.h in Copy . Public Headers */ = {isa = PBXBuildFile; fileRef = 3F47B6A5B3D14EB6367A6ACA7B070AE0 /* FBSDKAppEvents.h */; };
+ 749BAE64608E8A0923033E2693E309D4 /* XCTestCase+Specta.m in Sources */ = {isa = PBXBuildFile; fileRef = B72B213607DFE0785B3CFB8635A327D4 /* XCTestCase+Specta.m */; };
+ 74DF5E7A04945911804EEC30D33A859A /* StrongestPasswordValidator-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = E984569832BC6CF076938CE1E92F7095 /* StrongestPasswordValidator-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 7500B0969D1E0F9F06C024AB95424487 /* FBSDKAudioResourceLoader.m in Sources */ = {isa = PBXBuildFile; fileRef = EFB9B66AB6F38CA2667B2E9B8441C802 /* FBSDKAudioResourceLoader.m */; };
+ 754D358064279F836DFDAF1E358FB732 /* UIDevice-Hardware.m in Sources */ = {isa = PBXBuildFile; fileRef = B8686191B9AE06FE385F3990F321604E /* UIDevice-Hardware.m */; };
+ 763F76FF18569C1C701FA8B251DA3AFE /* FBSDKLoginManagerLogger.m in Sources */ = {isa = PBXBuildFile; fileRef = 47AF7D6FBDEAE04A5B998FA789D402C8 /* FBSDKLoginManagerLogger.m */; };
+ 767C65F9CCCCA6B6E0A43C04594899BC /* FBSDKLoginConstants.m in Sources */ = {isa = PBXBuildFile; fileRef = BA4044FB16C4ECAC1DF193A3B3865EB1 /* FBSDKLoginConstants.m */; };
+ 76A995111F0407D9418606AA1BC6BCCE /* FBSDKErrorConfiguration.m in Sources */ = {isa = PBXBuildFile; fileRef = 271922E5060BA611AEC8C1C97148FE55 /* FBSDKErrorConfiguration.m */; };
+ 76B50C10F2D72324A7C50926772BBEE0 /* SpectaUtility.h in Headers */ = {isa = PBXBuildFile; fileRef = 2815AE1F69CC1E8056AD9A4E94B008E1 /* SpectaUtility.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 76CCABE79C04444450153424D7CE1DC1 /* EXPMatchers+beSupersetOf.h in Headers */ = {isa = PBXBuildFile; fileRef = CE6BD85332B8ECBC2EA444FDA36FC0D6 /* EXPMatchers+beSupersetOf.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 76D337327C10A7555447B69AA1562647 /* EXPMatchers+beInstanceOf.m in Sources */ = {isa = PBXBuildFile; fileRef = 3B6D8CB38D5DA5FDFCBB05948F0285DE /* EXPMatchers+beInstanceOf.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; };
+ 772A77DCA95BB8487CC66003C3D25B1F /* BFTaskCompletionSource.h in Headers */ = {isa = PBXBuildFile; fileRef = 8CF0C96BE59682A53623AD9336071156 /* BFTaskCompletionSource.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 772BFB9529121111C517FBA06EA26237 /* Expecta+Snapshots-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = FB3C2257290B5A10A8D903DC4ABFA9B8 /* Expecta+Snapshots-dummy.m */; };
+ 78086867BF7BBED7E16245632C4E84CA /* FBSDKLoginError.m in Sources */ = {isa = PBXBuildFile; fileRef = 10D2C7B2E74A8EB75CB6AD71324A6266 /* FBSDKLoginError.m */; };
+ 782E3BE698B7DA5773A6C6519B38CA10 /* NSDate+NSDate_Util.m in Sources */ = {isa = PBXBuildFile; fileRef = 85BFCE4100920011175A6A6F60D7190D /* NSDate+NSDate_Util.m */; };
+ 7834384035D0596C51C3A6D3DEAD1102 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 41A5B3B466CFAB9687B8380811DA3B86 /* Foundation.framework */; };
+ 7861523B9D5DFCF0F4A56E4DE3296AA2 /* FBSnapshotTestController.m in Sources */ = {isa = PBXBuildFile; fileRef = 373B7F03A1660C564B6629236BDC033F /* FBSnapshotTestController.m */; };
+ 78B80EA2CF10F9A6D2A50891C099873D /* FBSDKGraphRequest.h in Copy . Public Headers */ = {isa = PBXBuildFile; fileRef = 69899EC374BC2B7C36D04093EE66924B /* FBSDKGraphRequest.h */; };
+ 78C2DF6AE20AC5188754254DD6AE17A5 /* _FBSDKTemporaryErrorRecoveryAttempter.m in Sources */ = {isa = PBXBuildFile; fileRef = 74EC8102B0C7CE631BBDBFBF5EC2AB92 /* _FBSDKTemporaryErrorRecoveryAttempter.m */; };
+ 79558B1F97ABE4AB8942DC18BEBD4B82 /* EXPMatchers+beKindOf.h in Headers */ = {isa = PBXBuildFile; fileRef = 788652DDA7B2878615B7D1B96470D2B6 /* EXPMatchers+beKindOf.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 7977954372EDF07DB712AE03FBE249BE /* NACrypto-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = ADFE59A8103E31D0C9C63BCBD536B130 /* NACrypto-dummy.m */; };
+ 79B066CD2C7F172A3DAB5A3DE45128DF /* FBSDKAppLinkResolver.m in Sources */ = {isa = PBXBuildFile; fileRef = BF2654EAA9AD77F722E1022D376F4CE7 /* FBSDKAppLinkResolver.m */; };
+ 7A23129C6EF1F64D601C25B8CF8F62F7 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 41A5B3B466CFAB9687B8380811DA3B86 /* Foundation.framework */; };
+ 7AF5F4AA5776654625C7075BE77BEE0C /* NSDate_Utils-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = A7601B6BE1F3393F6AF8F1A65E93BC68 /* NSDate_Utils-dummy.m */; };
+ 7B135342D0E06FA661C05183A90B99A4 /* PNInstallation.m in Sources */ = {isa = PBXBuildFile; fileRef = 5B0C5F784C14AA689AA7E3CCBEEB9096 /* PNInstallation.m */; };
+ 7B18B111418EA558435CA6BB4D94AD43 /* FBSDKShareKit-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 66CC7FC2CE6A80808B2C06310CC78077 /* FBSDKShareKit-dummy.m */; };
+ 7B223B4E6EF14BA12DA113F7EE10B96C /* NSObject+Expecta.h in Headers */ = {isa = PBXBuildFile; fileRef = 48AC390DF4C3DD4A1A7D0B73415670C5 /* NSObject+Expecta.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 7B35CA64789C0F0848ABAB46C0BA3C37 /* NASecRandom.h in Headers */ = {isa = PBXBuildFile; fileRef = 64E36067E0B93235890A7FD743AAAD1A /* NASecRandom.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 7BBE6467668639F9ACA202BB798C8E1F /* FBSDKCheckmarkIcon.m in Sources */ = {isa = PBXBuildFile; fileRef = CD92F743374ED42819A37C15461F4E00 /* FBSDKCheckmarkIcon.m */; };
+ 7BEF24184A897B5AD81EF48F4FB74FBF /* twofish.c in Sources */ = {isa = PBXBuildFile; fileRef = 5AF7738F895C5BB3AEA88560D6CDDF9C /* twofish.c */; };
+ 7C848303DFC78D4349FB807A23CB12F0 /* FBSDKGraphRequestBody.h in Headers */ = {isa = PBXBuildFile; fileRef = 60747D14CB2133AB6067B4252D9112BE /* FBSDKGraphRequestBody.h */; settings = {ATTRIBUTES = (Project, ); }; };
+ 7D3F219BB989A7A36BE602D6D0004E58 /* FBSDKError.m in Sources */ = {isa = PBXBuildFile; fileRef = BB1730D9D9374C26EF5227ABF58EB1B4 /* FBSDKError.m */; };
+ 7D93FE61E16FD337D13D8DCA68DF1864 /* BFAppLinkNavigation.m in Sources */ = {isa = PBXBuildFile; fileRef = 7191EC284CA1DCD2FC86F37100284145 /* BFAppLinkNavigation.m */; };
+ 7D9BC01E823D2F526B90EBAB87573E62 /* nv-ios-http-status-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 769816AB86F2DDF92014C2489EF55340 /* nv-ios-http-status-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 7E77F54DD1DC89EC9EEE5EE2C3194995 /* FBSDKAccessToken.m in Sources */ = {isa = PBXBuildFile; fileRef = 733BAFF1346DF1F4B0D32DF7C2927E86 /* FBSDKAccessToken.m */; };
+ 7E7F02A51748EFD9F7D93B8F7979CA56 /* FBSDKViewImpressionTracker.h in Headers */ = {isa = PBXBuildFile; fileRef = 170E3A6A88C9DB2F2F51C61A5FBEA199 /* FBSDKViewImpressionTracker.h */; settings = {ATTRIBUTES = (Project, ); }; };
+ 805E425BBEF7A6133E32E1D30A073010 /* EXPExpect.m in Sources */ = {isa = PBXBuildFile; fileRef = 9D9C882564E2E369FDE9A58D9D61C5F5 /* EXPExpect.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; };
+ 8189BCAFD29BEF4BE70CB48112A4930E /* FBSDKShareVideo.h in Headers */ = {isa = PBXBuildFile; fileRef = F32CEC42870F79A66C1D04B4FB77CE80 /* FBSDKShareVideo.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 81A73BC9BA26F7E7D6BF01DF44B69362 /* FBSDKBridgeAPIProtocolWebV1.m in Sources */ = {isa = PBXBuildFile; fileRef = FC9520239745D2CFA46ADBAAF25C96E8 /* FBSDKBridgeAPIProtocolWebV1.m */; };
+ 81B617F8D26BB10C5726D75E85D21EB7 /* UIButton+AFNetworking.h in Headers */ = {isa = PBXBuildFile; fileRef = 2BFC621392C04AB81549F9113746EB52 /* UIButton+AFNetworking.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 8247F34C45EDD7B97CBC3488E090D15D /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 41A5B3B466CFAB9687B8380811DA3B86 /* Foundation.framework */; };
+ 828A250670EEC2897DACA767080A8CA7 /* FBSDKLoginManagerLoginResult.h in Headers */ = {isa = PBXBuildFile; fileRef = 16959F0EF1CF0866C17E18E16035303F /* FBSDKLoginManagerLoginResult.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 828A722DC1977840C71130F785B9DE9E /* PNObject+PNObjectConnection.h in Headers */ = {isa = PBXBuildFile; fileRef = 62CADFE95A057EA5BE45CC976BD86892 /* PNObject+PNObjectConnection.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 82B2DC85A0B1D0C5C6953B965977056E /* FBSDKVideoUploader.h in Headers */ = {isa = PBXBuildFile; fileRef = 4BBDA6BD02AC65559B134D26DE9AAA64 /* FBSDKVideoUploader.h */; settings = {ATTRIBUTES = (Project, ); }; };
+ 8302757F7A46F3D19E05D69C258A3001 /* FBSDKAppLinkUtility.m in Sources */ = {isa = PBXBuildFile; fileRef = 3316916809CF0EB18A1323976C932D05 /* FBSDKAppLinkUtility.m */; };
+ 834F40DF910BBC7EA7AF256A30BD4858 /* KeccakF-1600-opt32-settings.h in Headers */ = {isa = PBXBuildFile; fileRef = 4E3E94604C8872EEF447C81B1C7481C5 /* KeccakF-1600-opt32-settings.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 837261A927BBEB33A7CE5E7146A3EBED /* BFExecutor.m in Sources */ = {isa = PBXBuildFile; fileRef = B67DAADF8BDC1B616999952244898019 /* BFExecutor.m */; };
+ 837B593D7C1D01B4EA400247309D6AB0 /* Expecta-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 34B65B04197A59BE68592A93F5162745 /* Expecta-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 844C5F6F925DB192BF8EB46E44B3740A /* BFCancellationToken.m in Sources */ = {isa = PBXBuildFile; fileRef = D4343C4D2AB98E0782BCCF8F4D964230 /* BFCancellationToken.m */; };
+ 858F54B22A89D86291F07ED94D0BF828 /* FBSDKServerConfiguration+Internal.h in Headers */ = {isa = PBXBuildFile; fileRef = 90E85567B72A8CA76C1B51F6A2444AA5 /* FBSDKServerConfiguration+Internal.h */; settings = {ATTRIBUTES = (Project, ); }; };
+ 85B0B22D874F67F142A7F2A3EA721328 /* FBSDKCopying.h in Headers */ = {isa = PBXBuildFile; fileRef = A9B1139E00B7A565A37BE6FF833D53BF /* FBSDKCopying.h */; };
+ 85BA5B1900BB32EB2B3CED0256951165 /* NASecRandom.m in Sources */ = {isa = PBXBuildFile; fileRef = 4BDD9DA971F21174541D695BB701322D /* NASecRandom.m */; };
+ 85CA7FAC95E680BA0B90AB9D3EB1C6C5 /* FBSDKConstants.h in Copy . Public Headers */ = {isa = PBXBuildFile; fileRef = 1EFBDC0643840BDD19CA60B88CA8D494 /* FBSDKConstants.h */; };
+ 85E31076D5530AEEB45ACF16B2B8A983 /* EXPMatchers.h in Headers */ = {isa = PBXBuildFile; fileRef = 95FC5F3C0C32622D4482DFE211928DEF /* EXPMatchers.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 85EB2F216487CB2E8F3FCCFBC4D69912 /* EXPMatchers+beTruthy.h in Headers */ = {isa = PBXBuildFile; fileRef = 5BF716362CC598B36A9A8431F8CFA00A /* EXPMatchers+beTruthy.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 86A77793007A74EBA7DE4E4E5CCD28A6 /* BFAppLinkNavigation.h in Headers */ = {isa = PBXBuildFile; fileRef = 282BD715765A754CC7DD147F049AF3E7 /* BFAppLinkNavigation.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 86C7B4DC7245C1E31565C74EBC34B5A8 /* FBSDKLoginManager.h in Headers */ = {isa = PBXBuildFile; fileRef = B3F9E9EF8B8F8A5C3B077D97EA3113FE /* FBSDKLoginManager.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 87FD5F0F682CDEB6A348CA448889E3EA /* EXPMatchers+beKindOf.m in Sources */ = {isa = PBXBuildFile; fileRef = 3CB70C68E41C963944630ED2D46E0CB2 /* EXPMatchers+beKindOf.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; };
+ 87FF5B37713727B944C6BFDDEA677606 /* PNAddress.m in Sources */ = {isa = PBXBuildFile; fileRef = A733C86B8A3EE566CEBB3A9C9D35CB43 /* PNAddress.m */; };
+ 89447A22394ECDD16F78F0C510BD05BE /* StrongestPasswordValidator.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BCDE5ABD027CCC64B11D403A8215BC6C /* StrongestPasswordValidator.framework */; };
+ 89A46B63E469F17791D14FC64466794A /* UIImage+Diff.m in Sources */ = {isa = PBXBuildFile; fileRef = D485EE260FAF6BCE70DA136675203361 /* UIImage+Diff.m */; };
+ 89B59BD52908BA3B2EEED23398CF79E6 /* FBSDKCoreKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = ED3ACADE7D5CCFB0D41B9053F3604321 /* FBSDKCoreKit.framework */; };
+ 8A12C7B695670F4A501C2F23B469E4A6 /* PNObject.m in Sources */ = {isa = PBXBuildFile; fileRef = 2C01E6DFFB44D529C46947D525FBA743 /* PNObject.m */; };
+ 8A36A8E8B3844AED3C7DBD9D1E2BFBE0 /* nv_ios_http_status.h in Headers */ = {isa = PBXBuildFile; fileRef = CFB8C8F5D5FDFB1868936C9374B704B2 /* nv_ios_http_status.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 8A3EFE216D8DCA36AADB28AA3DAC93AD /* KeccakF-1600-32.h in Headers */ = {isa = PBXBuildFile; fileRef = 57720C51FFD3BA414D0CEC6114154240 /* KeccakF-1600-32.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 8AA12CA6E8413E0E6E4CB1084217B0B1 /* Pods-PNObject_Tests-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = A838922082CBB903238CF0302A9F06FC /* Pods-PNObject_Tests-dummy.m */; };
+ 8C50A3C9FB67B28289D9AC132BA8B4E2 /* FBSDKShareLinkContent+Internal.h in Headers */ = {isa = PBXBuildFile; fileRef = 21BDEFED719999A3A3EE833401B21009 /* FBSDKShareLinkContent+Internal.h */; settings = {ATTRIBUTES = (Project, ); }; };
+ 8C8C1B0D83FE6A4352F15154DB16372C /* EXPMatcherHelpers.h in Headers */ = {isa = PBXBuildFile; fileRef = 6C022294E0CB2085EC09D1907F4002EC /* EXPMatcherHelpers.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 8DD814923C31D596735ABA63B294BE1C /* FBSDKAccessTokenCacheV3_21.h in Headers */ = {isa = PBXBuildFile; fileRef = 5F493056E4E44B1544845AF491E0AF73 /* FBSDKAccessTokenCacheV3_21.h */; settings = {ATTRIBUTES = (Project, ); }; };
+ 8DE74D13781B16204B95D3F408C3B699 /* PNObject-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = D8A2E50CBFDAE97EEEC7517124C1251D /* PNObject-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 8ED947D54E17C0B9ABDD0E541875D5D5 /* FBSDKAccessTokenCacheV3_17.m in Sources */ = {isa = PBXBuildFile; fileRef = B4CC7F146DA3AA951C9C53CB15A168A7 /* FBSDKAccessTokenCacheV3_17.m */; };
+ 8F2D501DB8FA13EB2A177AC9C560221E /* PureLayout-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 05ECA213712D5A55A5030D99D28129B8 /* PureLayout-dummy.m */; };
+ 8F3C011D2D1C0F80712B805DC47D3664 /* FBSDKAppGroupContent.h in Headers */ = {isa = PBXBuildFile; fileRef = E494450D1ED9021CB525A2D3D7720C0B /* FBSDKAppGroupContent.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 904C440B7E7E20FF76B4403111EF62A6 /* FBSDKGraphErrorRecoveryProcessor.m in Sources */ = {isa = PBXBuildFile; fileRef = CBBD6C1F5B8CBD19F80155C8A0760196 /* FBSDKGraphErrorRecoveryProcessor.m */; };
+ 90CC7CA091BD1C63A0801D293486C9C3 /* FBSDKURLConnection.h in Headers */ = {isa = PBXBuildFile; fileRef = 46150B81E14199A48449ED09D7F1FB67 /* FBSDKURLConnection.h */; settings = {ATTRIBUTES = (Project, ); }; };
+ 9172B81F27603000CBA6A2ECBF49970D /* BFCancellationTokenSource.m in Sources */ = {isa = PBXBuildFile; fileRef = B90D0EFFA2F5514EABDB01A9B0FC540A /* BFCancellationTokenSource.m */; };
+ 918E06480F28F27361B19D19432F8538 /* EXPMatchers+endWith.m in Sources */ = {isa = PBXBuildFile; fileRef = 37A34944667ACBF9CEC71874DF931AD1 /* EXPMatchers+endWith.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; };
+ 9280DE709B0FD8A557A82B6752C19121 /* FBSDKConstants.m in Sources */ = {isa = PBXBuildFile; fileRef = 5933C89F388C8D620F91185A5A9D6FA9 /* FBSDKConstants.m */; };
+ 92A2A17C9610E6507EA24D659F836F09 /* FBSDKTypeUtility.m in Sources */ = {isa = PBXBuildFile; fileRef = 54E0809D5C087B4BA0A392C8A6D26113 /* FBSDKTypeUtility.m */; };
+ 92F6DD216B6CBCBF8313DC3F9D65CD69 /* FBSDKInternalUtility.h in Headers */ = {isa = PBXBuildFile; fileRef = 5E5BC6FD520236ECF5B154A5173F1DA1 /* FBSDKInternalUtility.h */; settings = {ATTRIBUTES = (Project, ); }; };
+ 9302BC1E3F630FBF1368BCE8DAADF291 /* FBSDKShareKit+Internal.h in Headers */ = {isa = PBXBuildFile; fileRef = 81A10CA26C774439543C1BC1F23A05D1 /* FBSDKShareKit+Internal.h */; settings = {ATTRIBUTES = (Project, ); }; };
+ 931D410B9F8ACB935883DF8C59F9C93E /* EXPMatchers+postNotification.m in Sources */ = {isa = PBXBuildFile; fileRef = E1D74409109B9306C8D01B7AA6341CB6 /* EXPMatchers+postNotification.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; };
+ 9346A056A063B5D9197806859888346C /* FBSDKLikeActionControllerCache.m in Sources */ = {isa = PBXBuildFile; fileRef = 77E5806373870B5DD3C72EF1F00BD196 /* FBSDKLikeActionControllerCache.m */; };
+ 94C47C87E397972CE98F75929F3B706C /* ExpectaObject.m in Sources */ = {isa = PBXBuildFile; fileRef = 498E5A41E0F5008BB277526C973FD9EE /* ExpectaObject.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; };
+ 94EE4E96E07D0333A77BB8FD10CBD69C /* FBSDKUtility.h in Headers */ = {isa = PBXBuildFile; fileRef = 2DFCD3E7B05C51442B83C2C9BB9F18F4 /* FBSDKUtility.h */; };
+ 953D8C14F70C45AED99F39D25774E31F /* FBSDKGraphRequestMetadata.h in Headers */ = {isa = PBXBuildFile; fileRef = 1D67F20F0AAC18EF875EE34E9FEA66C9 /* FBSDKGraphRequestMetadata.h */; settings = {ATTRIBUTES = (Project, ); }; };
+ 95DEC4104BC553C0B3C98964A53FD281 /* FBSDKDialogConfiguration.m in Sources */ = {isa = PBXBuildFile; fileRef = 9AC31C1AA42E9C6429D554E59C236F10 /* FBSDKDialogConfiguration.m */; };
+ 9698F7404425A6C8CC851AC2657476E0 /* PNLocation.h in Headers */ = {isa = PBXBuildFile; fileRef = 210CC8A47CD81BCA8D71AAAD022C58EE /* PNLocation.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 96BB7F039CDB9C2ACF9C715C26E16FD6 /* FBSDKMath.m in Sources */ = {isa = PBXBuildFile; fileRef = 816DD3750C29F800A3809F23C6061BD8 /* FBSDKMath.m */; };
+ 97517DE01665763C343C56A5A9C9DBFA /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 41A5B3B466CFAB9687B8380811DA3B86 /* Foundation.framework */; };
+ 98DCF90DFBD9775D84E2119D6C325E1F /* FBSDKServerConfigurationManager.h in Headers */ = {isa = PBXBuildFile; fileRef = A69895FDD1941F05DE30E72CEBB4D942 /* FBSDKServerConfigurationManager.h */; settings = {ATTRIBUTES = (Project, ); }; };
+ 990BE87837E7891FDFD98798D0F9D357 /* FBSDKSharePhoto.h in Headers */ = {isa = PBXBuildFile; fileRef = BE84CCF04EB917DF662B915AB431DE74 /* FBSDKSharePhoto.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 996C2014C8320E8DB7DAA7411605B5B0 /* BFAppLink.m in Sources */ = {isa = PBXBuildFile; fileRef = 69008FAC4CF6266439FB6EAC0401701C /* BFAppLink.m */; };
+ 99ACF940F0E57393D76DC43E969179C3 /* FBSDKVideoUploader.m in Sources */ = {isa = PBXBuildFile; fileRef = E434DCCD46063F71C8E3B11BEE095679 /* FBSDKVideoUploader.m */; };
+ 9A117E5B1287A5AEB9CD7A6055E5E25D /* FBSDKShareUtility.h in Headers */ = {isa = PBXBuildFile; fileRef = 354BBB78FBC7D8CAF0C550BA1787A1B2 /* FBSDKShareUtility.h */; settings = {ATTRIBUTES = (Project, ); }; };
+ 9AA2B18E2104739BDF4DF161BA8586CF /* SPTCallSite.h in Headers */ = {isa = PBXBuildFile; fileRef = DE81206018E06170FE47DD67AF5C777C /* SPTCallSite.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 9AA6D3DA23FD89F1B6D94F4C72B6EE34 /* FBSDKUtility.h in Copy . Public Headers */ = {isa = PBXBuildFile; fileRef = 2DFCD3E7B05C51442B83C2C9BB9F18F4 /* FBSDKUtility.h */; };
+ 9B2E761A064459F77EA9870BEF03ACC3 /* EXPMatchers+postNotification.h in Headers */ = {isa = PBXBuildFile; fileRef = 175D925BE28F8A02DBB4CA48231447B7 /* EXPMatchers+postNotification.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 9BB9159FBA757600D3D4C0FF645F3911 /* EXPMatchers+beInTheRangeOf.m in Sources */ = {isa = PBXBuildFile; fileRef = 1FAF5C735E8C7A40B2FCAC693EEE9743 /* EXPMatchers+beInTheRangeOf.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; };
+ 9C2323E7953E4DF60D004738C2764793 /* FBSDKAppInviteContent.h in Headers */ = {isa = PBXBuildFile; fileRef = 5306C38DC83AEDB5AA57DB741BA186C0 /* FBSDKAppInviteContent.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 9CC01ED81EB7C90171EB139502DD66A6 /* _FBSDKTemporaryErrorRecoveryAttempter.h in Headers */ = {isa = PBXBuildFile; fileRef = 7332CCA238E5A72BFEE60ABB05A6C4EF /* _FBSDKTemporaryErrorRecoveryAttempter.h */; settings = {ATTRIBUTES = (Project, ); }; };
+ 9CC556B3B4C59329AB75C78B8FFC984F /* NACrypto-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = AA2196ACF06F43AFA0674C6D2103B4FF /* NACrypto-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 9DF4BC5EBB9EF2E8CF7BA1D1A9A488F1 /* FBSDKGraphRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = 69899EC374BC2B7C36D04093EE66924B /* FBSDKGraphRequest.h */; };
+ 9E1723E2FE89DC9BD907271B23B585F2 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 41A5B3B466CFAB9687B8380811DA3B86 /* Foundation.framework */; };
+ 9E1E90DED74B73ECE53C9AD76DE53E2D /* UIImage+AFNetworking.h in Headers */ = {isa = PBXBuildFile; fileRef = 3B013CAE653FF050EA91E9595FA2851B /* UIImage+AFNetworking.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 9E291AE56EDB6ABC117DDC23EDE5F1C9 /* SPTCompiledExample.m in Sources */ = {isa = PBXBuildFile; fileRef = BF2F4309F4DF81AC10FC012BD3F6170C /* SPTCompiledExample.m */; };
+ 9E656C4610258294F523EBBB1B0078FF /* FBSDKCrypto.m in Sources */ = {isa = PBXBuildFile; fileRef = B8692CEB18FC51E9478C135D83B1E60E /* FBSDKCrypto.m */; };
+ 9E8048D5D816E9AFBAB92700521382B0 /* FBSDKLikeBoxBorderView.m in Sources */ = {isa = PBXBuildFile; fileRef = B8F4606BF35CB246B1352701347C10A7 /* FBSDKLikeBoxBorderView.m */; };
+ 9F16CBC702844229EB8F4DD82083980F /* FBSDKCoreKit-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 4F0D303F4597662B6389AFE40071A09D /* FBSDKCoreKit-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ A0475FDE8906D6597FB4D53499809EF8 /* KeccakF-1600-int-set.h in Headers */ = {isa = PBXBuildFile; fileRef = 5A778C6CD86590133DBC8A665636BE6A /* KeccakF-1600-int-set.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ A0CC2A20641BE58617524B9DB4F912D8 /* SpectaDSL.m in Sources */ = {isa = PBXBuildFile; fileRef = E909F2808A7750DAFED73559097DC23E /* SpectaDSL.m */; };
+ A1E6313956F1C564777EDDE171C2A9F0 /* PNObject-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = ADB5A8D408033C40D9295B6983F2F7ED /* PNObject-dummy.m */; };
+ A1F7A1E899C169C59400768EB4A37779 /* Specta-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 71D87EB34FBF1C58135B00BE4C136535 /* Specta-dummy.m */; };
+ A2B3013891AC615DA24C2CB0AA75082B /* FBSDKShareKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C70A5FD6624A348DD59D784BE17F9F3A /* FBSDKShareKit.framework */; };
+ A2B6F86CBF6BC8927BB2852CDE04F398 /* FBSDKSharing.h in Headers */ = {isa = PBXBuildFile; fileRef = 764AD33D98229850C2B85DAF673EF9BF /* FBSDKSharing.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ A2C76543B1FCCA0AB7F3A0F2FD66AA9A /* FBSDKLiking.h in Headers */ = {isa = PBXBuildFile; fileRef = 821148969F35D4C2A1389146D698ACBE /* FBSDKLiking.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ A3AF5DB4354D74ADB26485677340CBE9 /* FBSDKKeychainStoreViaBundleID.h in Headers */ = {isa = PBXBuildFile; fileRef = 0B88056D2C5A2ABB0ABC526D5B0DD524 /* FBSDKKeychainStoreViaBundleID.h */; settings = {ATTRIBUTES = (Project, ); }; };
+ A3C215E13AC8A81BED094DB40C0899CD /* XCTest.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0A88B715BAC45F633959A65C2E5C6300 /* XCTest.framework */; };
+ A45D6BF90B85B42C3BA102D27B0EAF7E /* BFAppLink.h in Headers */ = {isa = PBXBuildFile; fileRef = CAD08E21753B7905318C6DC37F3FF631 /* BFAppLink.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ A462945883F7729B185B64B679A6BFBE /* UIWebView+AFNetworking.m in Sources */ = {isa = PBXBuildFile; fileRef = 2F42210C35E982002E7FC07A7F4D57DA /* UIWebView+AFNetworking.m */; };
+ A5D4C21EECA66DFDB6E4ACE1A04777AA /* FBSDKErrorRecoveryConfiguration.h in Headers */ = {isa = PBXBuildFile; fileRef = ACF863DA081E270DF6E6A78DEA6CB839 /* FBSDKErrorRecoveryConfiguration.h */; settings = {ATTRIBUTES = (Project, ); }; };
+ A62593EE293042D349A0C83E3F28DC56 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 41A5B3B466CFAB9687B8380811DA3B86 /* Foundation.framework */; };
+ A69128071A53DBC4882CC8DC76782334 /* FBSDKLoginTooltipView.m in Sources */ = {isa = PBXBuildFile; fileRef = 62BDC1C3E3FA3A9530CE7030A417DFFB /* FBSDKLoginTooltipView.m */; };
+ A6C6019D45BE62C61210A9CC619368EF /* AFNetworkActivityIndicatorManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 27BA32B027BB0452048639E6BD745908 /* AFNetworkActivityIndicatorManager.m */; };
+ A73AE62E3C70DBBF38CB7C96697D763F /* FBSDKLikeControl.m in Sources */ = {isa = PBXBuildFile; fileRef = 525832FDCA6511F71D5D3E8703D28787 /* FBSDKLikeControl.m */; };
+ A769A86B421000E9EEE430373A45666C /* Bolts.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C08B43A1654189468C9BB569CB9538D2 /* Bolts.framework */; };
+ A80A5E5DFB74DEE52D15872B074559DF /* FBSDKSharePhotoContent.h in Headers */ = {isa = PBXBuildFile; fileRef = B8F877859254054D5DD712A258DC5BC9 /* FBSDKSharePhotoContent.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ A84245FE52EC5995B5D31EA4356A56C0 /* BFCancellationTokenRegistration.m in Sources */ = {isa = PBXBuildFile; fileRef = AF9E96EDC086B8A7477A6AA71754D7B0 /* BFCancellationTokenRegistration.m */; };
+ A8B0C39E9BFCD004930A94FBA66A3CEB /* BFCancellationToken.h in Headers */ = {isa = PBXBuildFile; fileRef = 152858D19FBE4FC368C0B4A2A79F3353 /* BFCancellationToken.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ AAB83D6D9BD6A9A9E8E03BD4B40965CE /* NANSString+Utils.m in Sources */ = {isa = PBXBuildFile; fileRef = 0D0FC91143EA3E5178CC9F840FE10922 /* NANSString+Utils.m */; };
+ AAC7A4957359E640044B9108D1F17C4C /* FBSDKTestUsersManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 82B1804349C0F69DB9664707AEB75F7F /* FBSDKTestUsersManager.h */; };
+ AB39AC9746E7575D7449700475E41B0B /* AFHTTPSessionManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 80EC212AB5D2796B798A13727CB9309E /* AFHTTPSessionManager.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ AB60E290BD7BEB9B899F622BE80F1745 /* FBSDKContainerViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = 410CDADD37696B78409F183205FBC72F /* FBSDKContainerViewController.h */; settings = {ATTRIBUTES = (Project, ); }; };
+ AB889BC8C7B93051E0C88B77E41444D3 /* PEAR-FileManager-iOS-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 3F777C1C211C048E4F6DD1248A7135B2 /* PEAR-FileManager-iOS-dummy.m */; };
+ AC57C2BD7630CCD4F689A5E4ED4D342D /* FBSDKErrorConfiguration.h in Headers */ = {isa = PBXBuildFile; fileRef = 7A9CA2FD30B940942EF649275711DFA8 /* FBSDKErrorConfiguration.h */; settings = {ATTRIBUTES = (Project, ); }; };
+ ACD6E2410430E755D7D079FFABEB83F1 /* FBSDKSettings.h in Headers */ = {isa = PBXBuildFile; fileRef = 9D4B35E9A2C74E4A074EDECF261F628B /* FBSDKSettings.h */; };
+ AD30FE7D936BE1FFB8B1126684B674A3 /* PNUser.h in Headers */ = {isa = PBXBuildFile; fileRef = F021550469668B8B10B4C80FC0D341FE /* PNUser.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ AD4D9C9467544A49E49FCDD2962A6421 /* FBSDKErrorRecoveryAttempter.h in Headers */ = {isa = PBXBuildFile; fileRef = 418A55691E84E934997A36C2E8A940BB /* FBSDKErrorRecoveryAttempter.h */; settings = {ATTRIBUTES = (Project, ); }; };
+ AD52B349A273F0EB40F823990A40D2CD /* FBSDKLoginConstants.h in Headers */ = {isa = PBXBuildFile; fileRef = 287A86DB9FC8F02ED0F57DF83C700AEB /* FBSDKLoginConstants.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ AE2A07407FB50BA249984DC0620E84C0 /* UIWebView+AFNetworking.h in Headers */ = {isa = PBXBuildFile; fileRef = 9050E80C383D2F4945F7B48884943913 /* UIWebView+AFNetworking.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ AE953537F404B4B4F3692A400688AFF1 /* FBSDKGameRequestContent.h in Headers */ = {isa = PBXBuildFile; fileRef = 04F850B2D3C6545A95E6FC0EE15D3DE8 /* FBSDKGameRequestContent.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ AF03C11A1FAC8132AD3749D8F541701A /* UIButton+AFNetworking.m in Sources */ = {isa = PBXBuildFile; fileRef = 3D7DF2141055E82C51B04122AFB06F31 /* UIButton+AFNetworking.m */; };
+ AF1F46668D4591602887998C6E9C10AD /* EXPMatchers+beCloseTo.h in Headers */ = {isa = PBXBuildFile; fileRef = 61F356F17F6F7E4C07216BD7384FAF65 /* EXPMatchers+beCloseTo.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ AF48AA3E577B04A43AE5F526B803540B /* FBSDKLikeActionController.m in Sources */ = {isa = PBXBuildFile; fileRef = D10D24CCC5578D5E8C8DAF9DDF27AAC2 /* FBSDKLikeActionController.m */; };
+ AFAB3F06C68E046BA56A05ED857F7D6A /* BFTask.m in Sources */ = {isa = PBXBuildFile; fileRef = FE4F47953FF79AA5CD3C04B885E132DD /* BFTask.m */; };
+ AFFC8900E52BBEC72059334132F3A8F3 /* ExpectaSupport.h in Headers */ = {isa = PBXBuildFile; fileRef = B5EE7DB1ECFF023EEBD63B0AC154BE01 /* ExpectaSupport.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ B03506CCC0191AA3382F36B1FAC9E2EF /* FBSDKBridgeAPICrypto.h in Headers */ = {isa = PBXBuildFile; fileRef = 6FA529BDDFFDC6F64843F13B0794B247 /* FBSDKBridgeAPICrypto.h */; settings = {ATTRIBUTES = (Project, ); }; };
+ B0708CE47B50CEBC6E35C404D18A1639 /* FBSDKAppEventsDeviceInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = 726EDFD68EE56412A92D4E70C6B3946F /* FBSDKAppEventsDeviceInfo.m */; };
+ B08816C00B79EB4AEC7C7F4B027307E0 /* CodFisResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = D35EE8E2BE775D0229B81D86E790B677 /* CodFisResponse.m */; };
+ B0E9F81E9F4B204D89AD01C306855FFD /* NANSString+Utils.h in Headers */ = {isa = PBXBuildFile; fileRef = FDA365DA32004F3C201D7D04E5992DB7 /* NANSString+Utils.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ B14F512867AFCAA08A6840787DD3E2D4 /* FBSDKLikeButton.h in Headers */ = {isa = PBXBuildFile; fileRef = 95DA65A13DB454A13204F60AF0055F61 /* FBSDKLikeButton.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ B168720AAFEA07354ACA1F848F1554F6 /* FBSDKProfile.h in Headers */ = {isa = PBXBuildFile; fileRef = DC518AEF56515041F3EF08EE2359DD98 /* FBSDKProfile.h */; };
+ B190D5BA558C5C48B978E9B3ED07DCDB /* FBSDKAccessTokenCacheV3.h in Headers */ = {isa = PBXBuildFile; fileRef = 536AD185B334B029C6C36F7E6106ADF6 /* FBSDKAccessTokenCacheV3.h */; settings = {ATTRIBUTES = (Project, ); }; };
+ B205E803C5345910769B1E9FB29D7B47 /* NADigest.m in Sources */ = {isa = PBXBuildFile; fileRef = CF5234D1508564D081486507896F5E26 /* NADigest.m */; };
+ B2E64934CA0D8B056A7379F409871368 /* NSDate+NSDate_Util.h in Headers */ = {isa = PBXBuildFile; fileRef = EF90EDE09905D5FE4942FF3842F91FF8 /* NSDate+NSDate_Util.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ B362F869459930C324FDDB6BC02F1FC3 /* FBSDKLikeButtonPopWAV.m in Sources */ = {isa = PBXBuildFile; fileRef = 206CBA3ED3A77BFA642359BD2C05F19D /* FBSDKLikeButtonPopWAV.m */; };
+ B3B07B7A87BE23752DC8BE61D8383FF4 /* KeccakF-1600-opt32.c in Sources */ = {isa = PBXBuildFile; fileRef = C6DB479BDE2C56AF26B07CF263B1DA1C /* KeccakF-1600-opt32.c */; };
+ B3C5C2D4D8B7366C5E23F6E521E7A440 /* FBSDKLikeButton.m in Sources */ = {isa = PBXBuildFile; fileRef = 4A5CA4EEB35C873F5342A80231CAA163 /* FBSDKLikeButton.m */; };
+ B4993E3AF61E167FD02E795F115A62C2 /* FBSDKShareUtility.m in Sources */ = {isa = PBXBuildFile; fileRef = A7717A22E8542684CDD24D25E4882281 /* FBSDKShareUtility.m */; };
+ B4EFC6384BAB54378FEFAD61780858E9 /* SPTTestSuite.m in Sources */ = {isa = PBXBuildFile; fileRef = 543348521E9336407FA36742DD59C798 /* SPTTestSuite.m */; };
+ B51A7A72BC9EA8644DCAB55F5340BF45 /* KeccakF-1600-interface.h in Headers */ = {isa = PBXBuildFile; fileRef = D56FF048598ED48206EF8205A715B648 /* KeccakF-1600-interface.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ B5226CD1A92B393DA9C14777E646F668 /* NSUserDefaults-AESEncryptor-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = BBC36FCEC8357327825DE80AE2498F26 /* NSUserDefaults-AESEncryptor-dummy.m */; };
+ B534C8C1D32294DB54F3C5CFFD5AAA9B /* FBSDKLoginButton.m in Sources */ = {isa = PBXBuildFile; fileRef = A00E2A3EBAE3142DE64A87FA2769BC90 /* FBSDKLoginButton.m */; };
+ B54F7314FDB86E66C1A7418F13C403E6 /* FBSDKContainerViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 0939B61F4217A7DE3B15F0533C73395C /* FBSDKContainerViewController.m */; };
+ B55A487D069BE38832FE5C0E80BF01B7 /* PNObjectConfig.m in Sources */ = {isa = PBXBuildFile; fileRef = 73A90103D113E0F101E315D9895972ED /* PNObjectConfig.m */; };
+ B57E7F72EC8FD7CFFD6C35657CB84C0D /* FBSDKAccessTokenCache.m in Sources */ = {isa = PBXBuildFile; fileRef = 5D5F1C9D8D283474F8CDAEDA3DEF9157 /* FBSDKAccessTokenCache.m */; };
+ B5852322ADE88AAD56EE042B80BA81E4 /* AFURLResponseSerialization.m in Sources */ = {isa = PBXBuildFile; fileRef = DDDDC216DEFBCAC8EF0BA1AD959E62F9 /* AFURLResponseSerialization.m */; };
+ B586C424D5F40EE18D097FE6601CFF97 /* FBSDKShareConstants.m in Sources */ = {isa = PBXBuildFile; fileRef = 949D32E3E63C6E1E38545D8D1FCAEEA6 /* FBSDKShareConstants.m */; };
+ B6376131E673115D7F121B1110BCE4BD /* FBSDKCloseIcon.m in Sources */ = {isa = PBXBuildFile; fileRef = 733564AE2E9B093FC19A5592E7FC18FC /* FBSDKCloseIcon.m */; };
+ B6969FF78E8B790F92C23F03AA4F6BDC /* Specta.h in Headers */ = {isa = PBXBuildFile; fileRef = 9904CCBB9355C0DA0E592BD9549725A7 /* Specta.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ B6A71178B550B786C5D4956197806582 /* nv-ios-http-status-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 11B7DA58BAE6F4334DDF2C3185A5F93E /* nv-ios-http-status-dummy.m */; };
+ B6F1EA2F55E84873A4023D434E1597B9 /* FBSDKApplicationDelegate.h in Copy . Public Headers */ = {isa = PBXBuildFile; fileRef = B82F3CF26CF059D862D091E4FFBDB39A /* FBSDKApplicationDelegate.h */; };
+ B82356C0A8C502128EDE4B04D440A6A1 /* FBSDKProfilePictureView.m in Sources */ = {isa = PBXBuildFile; fileRef = EE929543558C2E18E82A4B4BE65078B0 /* FBSDKProfilePictureView.m */; };
+ B84431CF8C64F363A334AA7089F6C134 /* NSValue+Expecta.m in Sources */ = {isa = PBXBuildFile; fileRef = 22B1F591560188C6C20E063617441582 /* NSValue+Expecta.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; };
+ B84F1DBDE967EF9965CF4F4BCB29816C /* FBSDKBase64.m in Sources */ = {isa = PBXBuildFile; fileRef = 6F432114DACF8F627FD822D803090EC4 /* FBSDKBase64.m */; };
+ B8563820C993DFE2D9B92ABEFEFC9B4A /* FBSDKError.h in Headers */ = {isa = PBXBuildFile; fileRef = CA79D33EEE8B0DA153B0410AA5E3C87C /* FBSDKError.h */; settings = {ATTRIBUTES = (Project, ); }; };
+ B941D835EF945D46304763BF3BF22DC3 /* FBSDKShareDefines.h in Headers */ = {isa = PBXBuildFile; fileRef = 2CA88CD4FEA8E945827CB18E4B7301D1 /* FBSDKShareDefines.h */; settings = {ATTRIBUTES = (Project, ); }; };
+ B9670D886A95B11200609EF7E6526BD1 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 41A5B3B466CFAB9687B8380811DA3B86 /* Foundation.framework */; };
+ BA12B131F10BCE3BE6E9A02FC908FE9D /* EXPMatchers+beCloseTo.m in Sources */ = {isa = PBXBuildFile; fileRef = 8CF948B3669B51DC55B0062C7CDB9DF1 /* EXPMatchers+beCloseTo.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; };
+ BAE667128DD0CF6A2FF99B8FF068C49F /* FBSDKBridgeAPIRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = 1AEDFC37BA0799EC2BCF7AD1E6A0325F /* FBSDKBridgeAPIRequest.m */; };
+ BAFF30C8BB8A6FD018F57EE643AB5A24 /* FBSDKAppEvents.m in Sources */ = {isa = PBXBuildFile; fileRef = D0FAA154336F41C126ED047D513EF9BA /* FBSDKAppEvents.m */; };
+ BB62B38C5AE87EB9F1A3CDDF395888E0 /* FBSDKAccessToken.h in Copy . Public Headers */ = {isa = PBXBuildFile; fileRef = 6C2C36ED1EC90202DD536FBC421BFA1A /* FBSDKAccessToken.h */; };
+ BB72447AE168D9ADDDDEC9303BF5EDF8 /* FBSDKGraphRequestDataAttachment.h in Copy . Public Headers */ = {isa = PBXBuildFile; fileRef = 47327B420146316300628549F787F8C8 /* FBSDKGraphRequestDataAttachment.h */; };
+ BC55C8365AEFF8217F6A567607754854 /* EXPDoubleTuple.m in Sources */ = {isa = PBXBuildFile; fileRef = CB18F6720CF47E6C8E3651620062E2E0 /* EXPDoubleTuple.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; };
+ BC63A115FE14B49663B95CA13192F572 /* FBSDKSharingButton.h in Headers */ = {isa = PBXBuildFile; fileRef = DB3214C843960367250516F2D11CC16E /* FBSDKSharingButton.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ BCDC86A74BE28C44660A70F4C1F103EA /* UIDevice-Utils-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 95FB2ADE8C46C240697F6AD15DBFAEFB /* UIDevice-Utils-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ BD9DA5293114BC5D99E8120ED39D5A04 /* FBSDKKeychainStoreViaBundleID.m in Sources */ = {isa = PBXBuildFile; fileRef = C4F95DF377139D976DEE24CEECBB7F03 /* FBSDKKeychainStoreViaBundleID.m */; };
+ BDAA0F2D337C0AE260C95A7D50B65A85 /* FBSDKGameRequestFrictionlessRecipientCache.m in Sources */ = {isa = PBXBuildFile; fileRef = 54B52924697544846010984492FCD652 /* FBSDKGameRequestFrictionlessRecipientCache.m */; };
+ BDBF7EB2A751AE50B3BC5EA9D1D9D555 /* FBSDKGameRequestContent.m in Sources */ = {isa = PBXBuildFile; fileRef = 604CE65E602DD048191E48D232963E92 /* FBSDKGameRequestContent.m */; };
+ BE4A35631FC59F9EBEB486044401D323 /* FBSDKCrypto.h in Headers */ = {isa = PBXBuildFile; fileRef = 9FF23E0142D4FA8587CC23F3C542155A /* FBSDKCrypto.h */; settings = {ATTRIBUTES = (Project, ); }; };
+ BEA0D39D14AD866781796B9C6B09F9F6 /* SPTExampleGroup.m in Sources */ = {isa = PBXBuildFile; fileRef = 8BA82C2EED569E41834A29BBAD3AE67F /* SPTExampleGroup.m */; };
+ BEFFE9FFE52E9A0833A7D2D8FB67EB4D /* EXPMatchers+beSubclassOf.m in Sources */ = {isa = PBXBuildFile; fileRef = 5EBCA7101D5A3563E0C15875764CFD0D /* EXPMatchers+beSubclassOf.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; };
+ BF7DE969D16104EB45811FA03B0C3B45 /* PNObjectConfig.h in Headers */ = {isa = PBXBuildFile; fileRef = A54BAE87B0E11319B148A3A587C5C273 /* PNObjectConfig.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ BFB5375E08114AA9198ACA9F67866236 /* PNObjectModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 3E4E979ACFF415459C58E75ECC12A134 /* PNObjectModel.m */; };
+ BFE8E4EED3C4FF8094319153094100CD /* FBSDKTriStateBOOL.m in Sources */ = {isa = PBXBuildFile; fileRef = 8C7A5BBB21C4BA9A224A8D555B912C75 /* FBSDKTriStateBOOL.m */; };
+ BFED925EB94280480AA732F3D05C4BE9 /* FBSDKLikeControl+Internal.h in Headers */ = {isa = PBXBuildFile; fileRef = B48C0D46CEFD9C6625668B962927E4D6 /* FBSDKLikeControl+Internal.h */; settings = {ATTRIBUTES = (Project, ); }; };
+ BFFA5894CC2FAA27699FD628AE843799 /* CocoaSecurity-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 4E98C21E3A7EC4BE755A2A5C5852072B /* CocoaSecurity-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ C0E3BE017747C2AA0363A30A9E77FA84 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 41A5B3B466CFAB9687B8380811DA3B86 /* Foundation.framework */; };
+ C0ED90612B3A858D0EC256A9B4B58519 /* PureLayout+Internal.h in Headers */ = {isa = PBXBuildFile; fileRef = 6DC4EAA9E17187E73A954B50BB190314 /* PureLayout+Internal.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ C186D00BB65A9AEC5991C17B19AD12D3 /* FBSDKLikeButton+Internal.h in Headers */ = {isa = PBXBuildFile; fileRef = 4A0FCF2C3405378A65CB656A00D634FE /* FBSDKLikeButton+Internal.h */; settings = {ATTRIBUTES = (Project, ); }; };
+ C2DD28375E1F0B1D0D1D2E4E607C499F /* AFSecurityPolicy.h in Headers */ = {isa = PBXBuildFile; fileRef = DBD43E0FB73D08484C7543D4AE5E713F /* AFSecurityPolicy.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ C36804844322E4EE1712F84E089ED775 /* FBSDKLikeDialog.m in Sources */ = {isa = PBXBuildFile; fileRef = 47AF435A5B6DFD40C3DF7311F20D95C8 /* FBSDKLikeDialog.m */; };
+ C419EDB3DF8CB5A6BDC560A8DFFAD120 /* FBSDKAppGroupJoinDialog.h in Headers */ = {isa = PBXBuildFile; fileRef = 51C107211387C44010FD465D019AD506 /* FBSDKAppGroupJoinDialog.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ C45BD0762A3F32FC005B35F857C2D38C /* FBSDKShareVideoContent.h in Headers */ = {isa = PBXBuildFile; fileRef = 499F6CD0A4D20FA636873C5298D34F06 /* FBSDKShareVideoContent.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ C4694B78FC525E2C52C4E84EECA4234D /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 41A5B3B466CFAB9687B8380811DA3B86 /* Foundation.framework */; };
+ C583FF6D5F3A73498E46D8D80B21E3DB /* FBSDKLoginKit+Internal.h in Headers */ = {isa = PBXBuildFile; fileRef = 93D2C837D2238CCE610EB5F4B953C7AC /* FBSDKLoginKit+Internal.h */; settings = {ATTRIBUTES = (Project, ); }; };
+ C6354FEC7728A4C86DAD8092509BA7D4 /* UIRefreshControl+AFNetworking.h in Headers */ = {isa = PBXBuildFile; fileRef = 984E0E2FEC4E2898D4478ECB86229250 /* UIRefreshControl+AFNetworking.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ C6E9B0A908F410317F2DBBECA0944AAB /* FBSnapshotTestCase-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 9644FC2752AE781A2385FDEFE3F274B9 /* FBSnapshotTestCase-dummy.m */; };
+ C7BA49564BC2BCDC3415CF9A1ADC8FF3 /* NSUserDefaults_AESEncryptor.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 419C46456BD485C12341803527F18516 /* NSUserDefaults_AESEncryptor.framework */; };
+ C7E36EFEC52D3C6B4BAD80DF87BF81F0 /* FBSDKLikeActionControllerCache.h in Headers */ = {isa = PBXBuildFile; fileRef = B333A2BE8364CEDF0028F1825EFD4FA1 /* FBSDKLikeActionControllerCache.h */; settings = {ATTRIBUTES = (Project, ); }; };
+ C7F74D39A93BBA300670D3C5D8C8EAC9 /* FBSDKLogo.h in Headers */ = {isa = PBXBuildFile; fileRef = 7D9229A149F757CCBCBCE9D3CF9CC4D7 /* FBSDKLogo.h */; settings = {ATTRIBUTES = (Project, ); }; };
+ C999F4F2377B0A4989747A6E2FF12824 /* FBSDKAccessTokenCacheV3.m in Sources */ = {isa = PBXBuildFile; fileRef = 315246601A0A8C2A2568FBBE5FA1BE1C /* FBSDKAccessTokenCacheV3.m */; };
+ C9B57D939AB4480C7A93482A12D87C4B /* FBSDKLoginCompletion.h in Headers */ = {isa = PBXBuildFile; fileRef = 4E1A6EEA3088685B9A9FFB4523FA80DC /* FBSDKLoginCompletion.h */; settings = {ATTRIBUTES = (Project, ); }; };
+ CAC483EF637FB4A2C2E2FC75BA631B87 /* AFAutoPurgingImageCache.h in Headers */ = {isa = PBXBuildFile; fileRef = 9DFC1FEAF91CFCB1A6803FBBCD34F4A3 /* AFAutoPurgingImageCache.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ CAD619F21A98965A67142D9C03D4DEE0 /* NAKeychain.m in Sources */ = {isa = PBXBuildFile; fileRef = 5517A0D66695D59C4FCFA71B35E75C1D /* NAKeychain.m */; };
+ CAF0435ED0DFD398908923904EBC326C /* BFMeasurementEvent.m in Sources */ = {isa = PBXBuildFile; fileRef = 9DC195FC652AD2F55832D265889CC5B7 /* BFMeasurementEvent.m */; };
+ CB62E2E929C227DBA2E982337C7550BD /* KeccakNISTInterface.c in Sources */ = {isa = PBXBuildFile; fileRef = E0F74B964341D7CEB90BDE11717EC2EC /* KeccakNISTInterface.c */; };
+ CBB0ECA79704A5C406450B85CF2166E2 /* FBSDKAccessTokenCacheV4.m in Sources */ = {isa = PBXBuildFile; fileRef = EB1459F19F5DFB6C5BA02120B48BDEA4 /* FBSDKAccessTokenCacheV4.m */; };
+ CC27931BF42C946771AA5A66FA703D6B /* FBSDKLogger.m in Sources */ = {isa = PBXBuildFile; fileRef = 9733D2E9FC25A3FD185E501F8FBEE377 /* FBSDKLogger.m */; };
+ CC911BC6D29AB474A3A9F776BC04BBCC /* FBSDKShareVideo.m in Sources */ = {isa = PBXBuildFile; fileRef = 7413586DB8F1B13C8708A8AC9A86F077 /* FBSDKShareVideo.m */; };
+ CD11B572C0245E5444BB56494A3B3D64 /* FBSDKDialogConfiguration.h in Headers */ = {isa = PBXBuildFile; fileRef = 132BF416536D19040AE45C5874827BFA /* FBSDKDialogConfiguration.h */; settings = {ATTRIBUTES = (Project, ); }; };
+ CD224C38C2785D1A525A6E15662F1CC5 /* KeccakNISTInterface.h in Headers */ = {isa = PBXBuildFile; fileRef = FAED273C5B965341995178AC4D6B2537 /* KeccakNISTInterface.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ CDCBA43CAD64C2BE9394FB050AA8B335 /* CodFis+Helper.h in Headers */ = {isa = PBXBuildFile; fileRef = 31F3DD5C803FCE8AACBAB372E2EF22B2 /* CodFis+Helper.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ CE3F4ECBB0BC095577D66AE50C8E604C /* EXPFloatTuple.m in Sources */ = {isa = PBXBuildFile; fileRef = 7E48149F7DF147C8AEFA22613BFACBEC /* EXPFloatTuple.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; };
+ CE91E0B7C2BF362403CB3A75E69AA061 /* UIImage+Snapshot.h in Headers */ = {isa = PBXBuildFile; fileRef = 421151B34ABE7105B32DD28AEFA3F22D /* UIImage+Snapshot.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ CEC382CA17D24F65E41078E033C9EBB0 /* nv_ios_http_status.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5098F0400412D237D349973F15A5A5D7 /* nv_ios_http_status.framework */; };
+ CF7444C64BC44FF4D52DF95F65003A47 /* FBSDKBoltsMeasurementEventListener.h in Headers */ = {isa = PBXBuildFile; fileRef = FA920C1A5FEE846E3F0EF2A03B41B4FD /* FBSDKBoltsMeasurementEventListener.h */; settings = {ATTRIBUTES = (Project, ); }; };
+ CF76D6EA339E5B8DB5939726197B1105 /* FBSDKProfile.h in Copy . Public Headers */ = {isa = PBXBuildFile; fileRef = DC518AEF56515041F3EF08EE2359DD98 /* FBSDKProfile.h */; };
+ CF91C79C2D8D491BFCFEE85744C69EB9 /* brg_endian.h in Headers */ = {isa = PBXBuildFile; fileRef = AD60D3888C90B0F1DC7AFF15D5B6BBDC /* brg_endian.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ CFA8D6B529A0EBFF0316F2629AB2556E /* AFImageDownloader.m in Sources */ = {isa = PBXBuildFile; fileRef = 51F5626378278570E9778467F6CE0CEF /* AFImageDownloader.m */; };
+ D02ACBA2A4AFC9D855CBF9AE94587A3B /* NANSMutableData+Utils.m in Sources */ = {isa = PBXBuildFile; fileRef = CA2CB783ECD25587FB00624CE0AB3218 /* NANSMutableData+Utils.m */; };
+ D06C35047988D22A1DFA319DB6ECA8D0 /* BFAppLinkReturnToRefererView.m in Sources */ = {isa = PBXBuildFile; fileRef = E67782128955791D513B5030B6D2D721 /* BFAppLinkReturnToRefererView.m */; };
+ D120D86361651E55859D77AF662140BD /* AFOAuth2Manager.h in Headers */ = {isa = PBXBuildFile; fileRef = 754A339079A143FDCBA1E2522979E640 /* AFOAuth2Manager.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ D1257B0AD51234A7047D3CCE518426E9 /* FBSDKShareLinkContent.h in Headers */ = {isa = PBXBuildFile; fileRef = E8A650BACB0E1E32EE270693F9FD84EE /* FBSDKShareLinkContent.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ D1634238166E52119AD66B33DA845140 /* KeccakF-1600-32-s2.h in Headers */ = {isa = PBXBuildFile; fileRef = ECE43C2DD03985F3317BB47398DD6A30 /* KeccakF-1600-32-s2.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ D181FA8D3863D4294F5CD912DBEDA7C2 /* XCTest.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0A88B715BAC45F633959A65C2E5C6300 /* XCTest.framework */; };
+ D1C8131DAEFE2AD88BC911932EAE1368 /* StrongestPasswordValidator.h in Headers */ = {isa = PBXBuildFile; fileRef = 77F4EA56037ED3422AE7570F59BFE975 /* StrongestPasswordValidator.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ D1E9E55D21C92E33ACE7E911BCB96269 /* FBSnapshotTestCasePlatform.h in Headers */ = {isa = PBXBuildFile; fileRef = 47B01DB9A332C816A1CA2D74A4A2EA24 /* FBSnapshotTestCasePlatform.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ D2FA291DD639A8F4CE0D2EC28CD65057 /* FBSDKLikeDialog.h in Headers */ = {isa = PBXBuildFile; fileRef = 94FA85BAD78251B84AAD4AC232D37315 /* FBSDKLikeDialog.h */; settings = {ATTRIBUTES = (Project, ); }; };
+ D323A5AAA18E104407BEF9A1C6F039F4 /* FBSDKURLOpening.h in Headers */ = {isa = PBXBuildFile; fileRef = 24DD323A762754CD4D38F86486881A38 /* FBSDKURLOpening.h */; settings = {ATTRIBUTES = (Project, ); }; };
+ D43EB60615448D41F5B6D038EF508C37 /* FBSDKServerConfiguration.m in Sources */ = {isa = PBXBuildFile; fileRef = 43426EBD1AE2D489A6712A66C9C466A9 /* FBSDKServerConfiguration.m */; };
+ D46DB970A24693D6F6D5EE19333FBE59 /* FBSDKMessageDialog.h in Headers */ = {isa = PBXBuildFile; fileRef = A617FC5E2DD3115AA042D721552470ED /* FBSDKMessageDialog.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ D4835890F05659C261959725C53CC8D1 /* FBSDKShareOpenGraphAction.h in Headers */ = {isa = PBXBuildFile; fileRef = 6B9DCDEAD0BC31D6011C59FC9BD2D0BD /* FBSDKShareOpenGraphAction.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ D536FC956904C4A4CF8D9202D788F98F /* FBSDKAccessToken.h in Headers */ = {isa = PBXBuildFile; fileRef = 6C2C36ED1EC90202DD536FBC421BFA1A /* FBSDKAccessToken.h */; };
+ D5ABADB4F214A506F76B6437E646FB8E /* FBSDKSettings+Internal.h in Headers */ = {isa = PBXBuildFile; fileRef = A4202C31C791397643652B152BBCE096 /* FBSDKSettings+Internal.h */; settings = {ATTRIBUTES = (Project, ); }; };
+ D5F8C5492512E2BD458325B8491C6EED /* FBSDKApplicationDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 55E8A79A6BFBCF6F613FD4F6F825D53D /* FBSDKApplicationDelegate.m */; };
+ D7118C8C970E476D4ACF63E358258136 /* FBSDKShareButton.m in Sources */ = {isa = PBXBuildFile; fileRef = 192670155DC824CED3032DDA12C42590 /* FBSDKShareButton.m */; };
+ D73688A70800307D9448F963DC921B82 /* CodFis+Helper.m in Sources */ = {isa = PBXBuildFile; fileRef = A7F849AA5BB7A58C221C7408499AD24B /* CodFis+Helper.m */; };
+ D767E76ADDAB5CEA4B9B324A15A20ED3 /* FBSDKShareDialogMode.h in Headers */ = {isa = PBXBuildFile; fileRef = 7E7C13158B726A6C318D753115D29D9A /* FBSDKShareDialogMode.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ D7FA6C12672CBC4EA8AD467141A6D01C /* NADigest.h in Headers */ = {isa = PBXBuildFile; fileRef = FA5479946450ED02B0CDCC896549FDCB /* NADigest.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ D80E3A1971AF7FDCE82F3241BA53B59B /* FBSDKLoginKit.h in Headers */ = {isa = PBXBuildFile; fileRef = 78DECC6463FC8751C80DDE64DDCEFD5E /* FBSDKLoginKit.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ D83677C54D2226C67886A525B0B46FBE /* EXPMatchers+beLessThanOrEqualTo.m in Sources */ = {isa = PBXBuildFile; fileRef = EFDA625EA6E913B83E6E3B81AD22B9B7 /* EXPMatchers+beLessThanOrEqualTo.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; };
+ D850A8DA79AC08E12FF8C2544FD08F26 /* FBSDKTimeSpentData.h in Headers */ = {isa = PBXBuildFile; fileRef = 113836F233CE3267194C751D245BD642 /* FBSDKTimeSpentData.h */; settings = {ATTRIBUTES = (Project, ); }; };
+ D87E507EE5C6A61CAB53FDE43559B9F9 /* KeccakSponge.c in Sources */ = {isa = PBXBuildFile; fileRef = 14D50D04BE4021BC628AFFB630AA617C /* KeccakSponge.c */; };
+ D8DDC1FE940EA061A264799704714161 /* FBSDKCheckmarkIcon.h in Headers */ = {isa = PBXBuildFile; fileRef = 13BE7B654648C7A428287C3B3FBDF300 /* FBSDKCheckmarkIcon.h */; settings = {ATTRIBUTES = (Project, ); }; };
+ D9C9B21422DA694F0D84EAF37A7200AD /* FBSDKPaymentObserver.m in Sources */ = {isa = PBXBuildFile; fileRef = 89273B1AC48F1B360518F4A384208BD7 /* FBSDKPaymentObserver.m */; };
+ D9F4E833E37B611B432F6B5D7072DDA2 /* UIProgressView+AFNetworking.h in Headers */ = {isa = PBXBuildFile; fileRef = 96A136315A37D0F782CEC90BD77CF206 /* UIProgressView+AFNetworking.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ DAA37C4CD213B2861ADD1B7603D4D21F /* FBSDKInternalUtility.m in Sources */ = {isa = PBXBuildFile; fileRef = 5A102D62E8DC59EC54199023E69A4844 /* FBSDKInternalUtility.m */; };
+ DAD7738518AF36481D5D11A4780B2848 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 41A5B3B466CFAB9687B8380811DA3B86 /* Foundation.framework */; };
+ DB2B67CAFC71813E233E5B7724BE0791 /* FBSDKProfilePictureView.h in Copy . Public Headers */ = {isa = PBXBuildFile; fileRef = 4F34F1A867F9F70C0A7E8E53A809E2DD /* FBSDKProfilePictureView.h */; };
+ DB30F82FB1BE083D9471B965FB500CA2 /* EXPMatchers+conformTo.m in Sources */ = {isa = PBXBuildFile; fileRef = 6912A0B32C2F7129A6BC3545805E4371 /* EXPMatchers+conformTo.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; };
+ DBDB67C484DC1BA7C87C251677DB96D1 /* SpectaDSL.h in Headers */ = {isa = PBXBuildFile; fileRef = E2A974A25B5A10150640A1961BF77249 /* SpectaDSL.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ DCAE6DB7E24A9C0C2E5F95A9FB8F4D74 /* XCTestCase+Specta.h in Headers */ = {isa = PBXBuildFile; fileRef = 944242F09A5CBEAB38846C9DFB5E9CA6 /* XCTestCase+Specta.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ DD6C44C96850BCF015ECB9F6D75616E2 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 41A5B3B466CFAB9687B8380811DA3B86 /* Foundation.framework */; };
+ DEE8F8E9808D83A26C64B6E6ECDA72D8 /* BFWebViewAppLinkResolver.h in Headers */ = {isa = PBXBuildFile; fileRef = 40DA5413671729C27B969A7FA3FB1C95 /* BFWebViewAppLinkResolver.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ DF6BF523EB9180309F1EEF0C6915CF96 /* AFJSONResponseSerializerWithData.m in Sources */ = {isa = PBXBuildFile; fileRef = 7D6F950014B496ED07A9A7EFB4EBAC3B /* AFJSONResponseSerializerWithData.m */; };
+ DFFA215EEAA8DDBD540076927535275C /* AFURLRequestSerialization.m in Sources */ = {isa = PBXBuildFile; fileRef = 81493C7AB69E65B0E8372C3535AE88B9 /* AFURLRequestSerialization.m */; };
+ E0A077DFB064B79685B810CCEFB2F1EF /* EXPMatchers+respondTo.m in Sources */ = {isa = PBXBuildFile; fileRef = 3E7C79224C54239C3A5E21BECA4FA4C7 /* EXPMatchers+respondTo.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; };
+ E0AAF49134A0505DF00E20E7B62087E1 /* EXPMatchers+beIdenticalTo.h in Headers */ = {isa = PBXBuildFile; fileRef = 1D9526013F0A33162931993059BBEC10 /* EXPMatchers+beIdenticalTo.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ E0D4045AC4C1B41917FCA23A042D18B2 /* AFHTTPSessionManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 8343109F5A5B70FE38D5535F08523CE0 /* AFHTTPSessionManager.m */; };
+ E10811B5E4578C31FB675361C99EDED6 /* UIImage+Compare.h in Headers */ = {isa = PBXBuildFile; fileRef = 5F20615AD1C574C409FAC6108846E9A0 /* UIImage+Compare.h */; settings = {ATTRIBUTES = (Private, ); }; };
+ E113030462AD8FB83B155414E775DEFB /* FBSDKMacros.h in Copy . Public Headers */ = {isa = PBXBuildFile; fileRef = 749F255409C1F5936652A4DB0628B989 /* FBSDKMacros.h */; };
+ E116D580872542237C78668D2DA28095 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 41A5B3B466CFAB9687B8380811DA3B86 /* Foundation.framework */; };
+ E172FCA4494C73E671A8B198BFD7CF31 /* SPTExample.h in Headers */ = {isa = PBXBuildFile; fileRef = CE637D512B97881021A5F75D6FB6928E /* SPTExample.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ E1A545D3C101CD9D652565A63F65FA91 /* FBSDKCoreKit-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 0F85CCE5CF7042F095C6F91F1241ADF0 /* FBSDKCoreKit-dummy.m */; };
+ E1EC4532663CA75DE5BD00CB0A56814D /* Expecta.h in Headers */ = {isa = PBXBuildFile; fileRef = EC100484AA77E58BDEBDC728D30A2F6C /* Expecta.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ E202FA16CD9472E2472690B3413291B8 /* FBSDKBridgeAPIProtocolNativeV1.h in Headers */ = {isa = PBXBuildFile; fileRef = DCD4338D5900528ADCB65B3D4F13A27B /* FBSDKBridgeAPIProtocolNativeV1.h */; settings = {ATTRIBUTES = (Project, ); }; };
+ E3C61206BEDBA3EBAA0A69B51DE0F3AA /* FBSnapshotTestCasePlatform.m in Sources */ = {isa = PBXBuildFile; fileRef = A73B5E1041A9CFA326C8299D2134655F /* FBSnapshotTestCasePlatform.m */; };
+ E43B4B0C17AB97DE5D5F168A1146052E /* FBSDKUtility.m in Sources */ = {isa = PBXBuildFile; fileRef = 71C45CE9F343179695F0A86DA2CDCD5B /* FBSDKUtility.m */; };
+ E4AA4A6081D98F1090BE4A64673608B2 /* NSDate_Utils-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = CCE0A94D1B18867A052B60D228E9A29B /* NSDate_Utils-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ E4D3C159E4A8DD217E6CEFD6F9549DBC /* FBSDKIcon.m in Sources */ = {isa = PBXBuildFile; fileRef = B4F78A1159D01CCD0E519B15326ACA2D /* FBSDKIcon.m */; };
+ E4EC16570D46F25B3BD2830D65C06AE5 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 41A5B3B466CFAB9687B8380811DA3B86 /* Foundation.framework */; };
+ E53C7DCFB48289382A67508217D07073 /* FBSDKWebDialogView.h in Headers */ = {isa = PBXBuildFile; fileRef = 4FBD6CE0E5F71722B10D8165F15E25DF /* FBSDKWebDialogView.h */; settings = {ATTRIBUTES = (Project, ); }; };
+ E66A0248B1EFD2E312A3D47DB9BD8F74 /* FBSDKProfile.m in Sources */ = {isa = PBXBuildFile; fileRef = C04D930C00929E86F42121F90769A537 /* FBSDKProfile.m */; };
+ E735386085CE344F6A01178CF4763852 /* EXPMatchers+beNil.h in Headers */ = {isa = PBXBuildFile; fileRef = 0C89B575425D4CE5A502B1F98A4B87EC /* EXPMatchers+beNil.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ E7360EED52B408BE8FDBA494E4A45327 /* FBSDKCloseIcon.h in Headers */ = {isa = PBXBuildFile; fileRef = CE1D87641A9D0BB4CC6DC4AC1E75F721 /* FBSDKCloseIcon.h */; settings = {ATTRIBUTES = (Project, ); }; };
+ E753834535C79767BC82A8304996B109 /* FBSDKLikeControl.h in Headers */ = {isa = PBXBuildFile; fileRef = B1C6E414F20F18AB02A531CAEFEB2C7A /* FBSDKLikeControl.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ E7988678C81F7CCB95D239375FC6986D /* AFNetworking.h in Headers */ = {isa = PBXBuildFile; fileRef = DFFBFA3F2CF0EFFC5D03A6997677DA13 /* AFNetworking.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ E83D085E1702EBF2941B74E83778AD3E /* Bolts-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 49528E15377F148738258A9E885728F9 /* Bolts-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ E9602FBF9DAF012DD2C03A2ABB380632 /* FBSDKAppGroupAddDialog.m in Sources */ = {isa = PBXBuildFile; fileRef = 8348CE5285E6F51739D8AAFB48864145 /* FBSDKAppGroupAddDialog.m */; };
+ E9D83491F14994CEC10D9722F98C2621 /* FBSDKTestUsersManager.h in Copy . Public Headers */ = {isa = PBXBuildFile; fileRef = 82B1804349C0F69DB9664707AEB75F7F /* FBSDKTestUsersManager.h */; };
+ EA1A6647EEFE029A2C2F6EC712A2A4C6 /* CodFisResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = A02FBCBFACC820260B2DC0FBB75CA5A4 /* CodFisResponse.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ EA840679AC9463E0E3D371FCC3466B0A /* EXPMatchers+FBSnapshotTest.h in Headers */ = {isa = PBXBuildFile; fileRef = 9B38E2E0F5526F0DCF76C069288CAF04 /* EXPMatchers+FBSnapshotTest.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ EB48263D92C7471B431BCD305F3B9C98 /* FBSDKAppEventsUtility.m in Sources */ = {isa = PBXBuildFile; fileRef = B5A5FE1F9B77B94D5E11D62B9F19DD67 /* FBSDKAppEventsUtility.m */; };
+ EB6F758820BB466F4B6FD2474F8317DF /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 41A5B3B466CFAB9687B8380811DA3B86 /* Foundation.framework */; };
+ EC7CADE416A78A1CD6936018A6695126 /* AFNetworking-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 880CC385A45D01CFA3CC4A5DAD05DFEE /* AFNetworking-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ ED33258049A896A11AF6706306F20E45 /* NSUserDefaults-AESEncryptor-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = ED6FE09E54B83AE1F5D8303903AE9B59 /* NSUserDefaults-AESEncryptor-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ ED8E8565CE822D9F63077227C44F8EAA /* FBSDKCoreKit+Internal.h in Headers */ = {isa = PBXBuildFile; fileRef = 149E2B540DB3F47AD1603549D9D99B54 /* FBSDKCoreKit+Internal.h */; settings = {ATTRIBUTES = (Project, ); }; };
+ EDB2130EF73D5EED8328A39EE245953E /* FBSDKProfilePictureView.h in Headers */ = {isa = PBXBuildFile; fileRef = 4F34F1A867F9F70C0A7E8E53A809E2DD /* FBSDKProfilePictureView.h */; };
+ EDC1E9A948717C646535CD78857EF841 /* FBSDKButton.h in Headers */ = {isa = PBXBuildFile; fileRef = 0C6D4FC68CACC097DF3E01B0E29B14F9 /* FBSDKButton.h */; };
+ EDD254449CD8FF482448772C604D758A /* FBSDKLoginKit-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 4D9D888E7D9711524F6B9AA9725951F4 /* FBSDKLoginKit-dummy.m */; };
+ EDEE3D0D44B63270AC3F0A1F7E595450 /* BFWebViewAppLinkResolver.m in Sources */ = {isa = PBXBuildFile; fileRef = 589EC8EBE322E832BEED2F0AD1B31ED4 /* BFWebViewAppLinkResolver.m */; };
+ EE5842CD8CD4FF874610FF07CE8F5E77 /* CodFis_Helper.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C1F0BF2C43242FA29D72B2EF4F056E16 /* CodFis_Helper.framework */; };
+ EE7F7D3CA0C1493CDBE5E67A516E4456 /* FBSDKAppEventsState.m in Sources */ = {isa = PBXBuildFile; fileRef = F420BE963855B69C62637E33D6C05A31 /* FBSDKAppEventsState.m */; };
+ EEADE26AEEE95AF121B8D39CEFDF9044 /* FBSDKShareOpenGraphContent.m in Sources */ = {isa = PBXBuildFile; fileRef = DFBB857C217A8E36D80AD983839940CA /* FBSDKShareOpenGraphContent.m */; };
+ EEB93CE55083DA77EB9ABB52182D3628 /* BFTaskCompletionSource.m in Sources */ = {isa = PBXBuildFile; fileRef = B5CBD9ECFD7BB6FEB6CFDB8610DFE58F /* BFTaskCompletionSource.m */; };
+ EED85CFF38F44EF6AD8DECCCF1D5DF39 /* KeccakF-1600-unrolling.h in Headers */ = {isa = PBXBuildFile; fileRef = C384B2A153246EC65E7B24F134911BA4 /* KeccakF-1600-unrolling.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ EEEFFCBA7E64D629BE5E57815DB49042 /* FBSDKSystemAccountStoreAdapter.h in Headers */ = {isa = PBXBuildFile; fileRef = 8628089100EFBF497CA59F7366D812FA /* FBSDKSystemAccountStoreAdapter.h */; settings = {ATTRIBUTES = (Project, ); }; };
+ EF6497EE123F6BC0C1B09717437C5908 /* EXPUnsupportedObject.m in Sources */ = {isa = PBXBuildFile; fileRef = 22DA02E197D4B1F7B4694EE679E3FF1E /* EXPUnsupportedObject.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; };
+ EFE77D3F55F4A07C39B370B81B92F49F /* FBSDKAppLinkResolver.h in Copy . Public Headers */ = {isa = PBXBuildFile; fileRef = D6FB8A12FDEDD1CE9C6604B032B14446 /* FBSDKAppLinkResolver.h */; };
+ F070B95360E14EE8E51A72DD0A218B99 /* FBSDKAppInviteContent.m in Sources */ = {isa = PBXBuildFile; fileRef = EB7D46C627687CA20F50B5D94AB1B605 /* FBSDKAppInviteContent.m */; };
+ F0DDF02A078B917997FF025BB33BB842 /* EXPMatchers+conformTo.h in Headers */ = {isa = PBXBuildFile; fileRef = A14FA33C40A93908FC333642C979EE7B /* EXPMatchers+conformTo.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ F0FCD44F0773C0006FACAF9BFC1A0A03 /* PNObject.h in Headers */ = {isa = PBXBuildFile; fileRef = 7BE0A72CC75BA228E84BEE9868C45D29 /* PNObject.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ F12D57414A73406831CC032A7170DBFF /* EXPMatchers+beginWith.m in Sources */ = {isa = PBXBuildFile; fileRef = C2A11B1D6BBE22BACC0F87029FAF8782 /* EXPMatchers+beginWith.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; };
+ F1867C99D4A92FC191093E4901E463B5 /* XCTest.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0A88B715BAC45F633959A65C2E5C6300 /* XCTest.framework */; };
+ F1C7451C6DB8D385D9B3185277AF839F /* FBSDKMessageDialog.m in Sources */ = {isa = PBXBuildFile; fileRef = BC51B6478BFEA68A8F78555A7D72BCF2 /* FBSDKMessageDialog.m */; };
+ F26833B757BC82F1FE254143E86A9C0D /* AFOAuth2Manager.m in Sources */ = {isa = PBXBuildFile; fileRef = 5EFC308BAA509D85B67F0AFAA8B51D73 /* AFOAuth2Manager.m */; };
+ F294B75539C74EDB0B55D2350874A225 /* FBSDKLoginButton.h in Headers */ = {isa = PBXBuildFile; fileRef = 6F08E1614B97C3D23974F2B72819A693 /* FBSDKLoginButton.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ F3A1BD732F01439059FBC32F63E08946 /* FBSDKButton+Subclass.h in Headers */ = {isa = PBXBuildFile; fileRef = FF6FE866142E80814A309EB08855B680 /* FBSDKButton+Subclass.h */; settings = {ATTRIBUTES = (Project, ); }; };
+ F3D322FD5107531DBF87056174D8B587 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 41A5B3B466CFAB9687B8380811DA3B86 /* Foundation.framework */; };
+ F41209A94070904A00BDF24ACB6336B6 /* EXPMatchers+beFalsy.h in Headers */ = {isa = PBXBuildFile; fileRef = C2EE529FA0AB181B4A78AB2A55565A21 /* EXPMatchers+beFalsy.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ F43554CAEDA7EE6D2E3B1DA2F60768EC /* BFExecutor.h in Headers */ = {isa = PBXBuildFile; fileRef = 6EB45F48B34F7435FD24C5A3D33B503F /* BFExecutor.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ F47EE42CFAE342AB4B79F55D789C5CC9 /* SpectaUtility.m in Sources */ = {isa = PBXBuildFile; fileRef = 4AE848BE1AAE4EA7DFC4FBE4C6A27DFE /* SpectaUtility.m */; };
+ F51B742DACDE7D12F1C3015628603542 /* AFHTTPRequestSerializer+OAuth2.m in Sources */ = {isa = PBXBuildFile; fileRef = 6C46F91771B5147B0088A10778018A64 /* AFHTTPRequestSerializer+OAuth2.m */; };
+ F58F9BC7759BB8A5007B8821A275AEDD /* FBSnapshotTestController.h in Headers */ = {isa = PBXBuildFile; fileRef = 4FD82B50F6F18A70775DE065F1DF098A /* FBSnapshotTestController.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ F59074ABCB5D041E88E13F78BCE25BE6 /* BFMeasurementEvent_Internal.h in Headers */ = {isa = PBXBuildFile; fileRef = F512EEC5B88F735D9396B58734B519D7 /* BFMeasurementEvent_Internal.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ F5F9597A3167E2AE7937E6CF4BD09AB8 /* FBSDKLoginCompletion.m in Sources */ = {isa = PBXBuildFile; fileRef = 6C2AA9E5D127BCDF36465A8FAFF670F5 /* FBSDKLoginCompletion.m */; };
+ F65411E9EF00A9BB39D6BD1521A4F3FD /* MobileCoreServices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B44450515FEA107398E341DDF59630A1 /* MobileCoreServices.framework */; };
+ F6A2F44538464666F32290DC077EEC4A /* FBSDKErrorRecoveryAttempter.m in Sources */ = {isa = PBXBuildFile; fileRef = 91D2B83E75F81F59834B3E7A332D6556 /* FBSDKErrorRecoveryAttempter.m */; };
+ F7097A4E42600080F17AE6FF60DFC624 /* FBSDKGraphRequestConnection+Internal.h in Headers */ = {isa = PBXBuildFile; fileRef = 29DD6A21C0410C4C3CD78A3B2F893AE1 /* FBSDKGraphRequestConnection+Internal.h */; settings = {ATTRIBUTES = (Project, ); }; };
+ F7347B4C4591C327B90F876A059A7BFE /* AFJSONResponseSerializerWithData.h in Headers */ = {isa = PBXBuildFile; fileRef = E482525BB0905203F6A2A7E8CC768754 /* AFJSONResponseSerializerWithData.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ F7581524FBA63576F76650BAC9B15C04 /* FBSDKLoginKit-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 8086F1ECE22639D9A92208CF589BD346 /* FBSDKLoginKit-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ F75CB2A727F678C9A848A3A11EA7979B /* EXPMatchers+haveCountOf.h in Headers */ = {isa = PBXBuildFile; fileRef = 944AABF6EED58809913F1938878390E4 /* EXPMatchers+haveCountOf.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ F818CA8BDFE1259CEAC22A2236DD4EDD /* NSString+Helper.m in Sources */ = {isa = PBXBuildFile; fileRef = 99AF3DEEDBBB298974D42DD1FA75CBD0 /* NSString+Helper.m */; };
+ F8C6F4B226B41C1CDB49F244FA09A221 /* FBSDKAppInviteDialog.m in Sources */ = {isa = PBXBuildFile; fileRef = CE882E3AB808501F71530802959A07B8 /* FBSDKAppInviteDialog.m */; };
+ F955C20213D1E3DB337B960F88B75914 /* FBSDKLikeObjectType.m in Sources */ = {isa = PBXBuildFile; fileRef = 48C37B0BEBC08D94DA5F1960CFA396F6 /* FBSDKLikeObjectType.m */; };
+ F9BA81C41C3DDABA6BEC897850E45D8D /* _FBSDKLoginRecoveryAttempter.m in Sources */ = {isa = PBXBuildFile; fileRef = A5EFF5314C708D5DCC7AA6530F4F20B1 /* _FBSDKLoginRecoveryAttempter.m */; };
+ FA19FBA2716C1914A35F077F6FC828E6 /* FBSDKTimeSpentData.m in Sources */ = {isa = PBXBuildFile; fileRef = 83CF9F598A378ECB92C79262D988BEF2 /* FBSDKTimeSpentData.m */; };
+ FA29548E1469C36ED1FDCB5B197B1455 /* FBSDKAppEventsDeviceInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = 323F562827DAE7B5959ABBF6AB5D57D4 /* FBSDKAppEventsDeviceInfo.h */; settings = {ATTRIBUTES = (Project, ); }; };
+ FA839F20BC13A260E089D374CAAB584E /* XCTest.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0A88B715BAC45F633959A65C2E5C6300 /* XCTest.framework */; };
+ FAF1D503EB3C6F7D07BEB4A1B4C6ACB9 /* BFURL.h in Headers */ = {isa = PBXBuildFile; fileRef = 5D31CFA004A707B6C158E0FBDF7D5CCF /* BFURL.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ FAFBA5728037DC7E5FF6B500CCDBF64B /* FBSDKAccessTokenCacheV3_17.h in Headers */ = {isa = PBXBuildFile; fileRef = C729C32D5FEF4719A2F2531C5D417CDF /* FBSDKAccessTokenCacheV3_17.h */; settings = {ATTRIBUTES = (Project, ); }; };
+ FB0431CF32781341437DA35F1D1B4BB6 /* CocoaSecurity.m in Sources */ = {isa = PBXBuildFile; fileRef = 9C81B1B125B1E4DA2216A5757D65F35E /* CocoaSecurity.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; };
+ FB6DCDE092836B9A5F6C0DA90C4B030D /* FBSDKTestUsersManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 41122604048D43A4DA14B1C76381DECF /* FBSDKTestUsersManager.m */; };
+ FB7549AED3B510E676F2DAA0BAD007C4 /* NASHA3.m in Sources */ = {isa = PBXBuildFile; fileRef = 26422046775D771F4A7EC4C86A7E3E8C /* NASHA3.m */; };
+ FBDA8421287447622632E1B2D1F0147F /* FBSDKMath.h in Headers */ = {isa = PBXBuildFile; fileRef = 349AF51451F1496E8B68E77CDCB8F4B0 /* FBSDKMath.h */; settings = {ATTRIBUTES = (Project, ); }; };
+ FC20596ABFE14A61F171A29FD03275E7 /* EXPMatchers+contain.m in Sources */ = {isa = PBXBuildFile; fileRef = 36B57F379C69ABF8B43141F3DBFF8FFD /* EXPMatchers+contain.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; };
+ FC45858927D3B6A0F922C4B697B04A38 /* EXPMatchers+match.m in Sources */ = {isa = PBXBuildFile; fileRef = 023C91065EEE2995D5705A2AD5D621AD /* EXPMatchers+match.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; };
+ FC72ABEFA1DDCA86CB758003E0C65264 /* NSString+Helper.h in Headers */ = {isa = PBXBuildFile; fileRef = F26272B7742D8B16E135347BFBCB8109 /* NSString+Helper.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ FCDC9C0B871F82CB1AEE73303F9A2927 /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 57062F44694E855010CE07F33F269B52 /* QuartzCore.framework */; };
+ FD2D4497BC41412128C2D87C1BDE7398 /* EXPMatchers+beginWith.h in Headers */ = {isa = PBXBuildFile; fileRef = 3F4FC88B6C259EE7DE6366CEB6965F0F /* EXPMatchers+beginWith.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ FD3B526C33F59B142E0711990813ECBD /* CodFis-Helper-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = BBA36289A50D379C8BF1DD58EEB60475 /* CodFis-Helper-dummy.m */; };
+ FDC186559A82CFFFAFE9704C705ED569 /* SPTCompiledExample.h in Headers */ = {isa = PBXBuildFile; fileRef = A5849263C46B80886928005F8F250369 /* SPTCompiledExample.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ FE8E34356D24F6759A8B010ED2F5707B /* EXPMatchers+raiseWithReason.m in Sources */ = {isa = PBXBuildFile; fileRef = 8806D6DDD9EC3D0E11D1695FCBE3C536 /* EXPMatchers+raiseWithReason.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; };
+ FFC84177A7159D583B5A5B6A5D69BCD9 /* PEAR_FileManager_iOS.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6A7072D26047300D029D3079E8ACCD56 /* PEAR_FileManager_iOS.framework */; };
+ FFD438CB26C9A171280CE83C4B371997 /* PNObjectModel.h in Headers */ = {isa = PBXBuildFile; fileRef = 55BF948C6032B6BD2E8C30833B2DA82F /* PNObjectModel.h */; settings = {ATTRIBUTES = (Public, ); }; };
/* End PBXBuildFile section */
/* Begin PBXContainerItemProxy section */
- 0C0F8E8B73A919EBA4E9CF056AA363D8 /* PBXContainerItemProxy */ = {
+ 0812A81C8D8429C60FE05506A16FDF6E /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */;
proxyType = 1;
- remoteGlobalIDString = 20B8A8681820FA8513BD7E48A85DC18D;
- remoteInfo = NSDate_Utils;
+ remoteGlobalIDString = 07E7B1F2B822E2C3756A80B3A630FFFD;
+ remoteInfo = NACrypto;
};
- 0CD167825DC3C6EBCB6F12FF7295B619 /* PBXContainerItemProxy */ = {
+ 084ECD926B43D7C77B83D8CF0AE383A1 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */;
proxyType = 1;
- remoteGlobalIDString = 3241BF41D67FE3979A15BEAA18A92CA3;
- remoteInfo = "NSDate_Utils-NSDate_Utils";
+ remoteGlobalIDString = 63A18C6A528BD7E47DDAF39B2AEAF1D1;
+ remoteInfo = Bolts;
};
- 110B742FF30FC5157BD474CE54ED7CA9 /* PBXContainerItemProxy */ = {
+ 129CED387B7C1F3ADDA2D6959D460308 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */;
proxyType = 1;
- remoteGlobalIDString = 696DC08CBD3C0FD568286BDBAA47325B;
+ remoteGlobalIDString = 404EE043C7E580CAEA95F9A357C81415;
+ remoteInfo = FBSDKShareKit;
+ };
+ 1499B473F7F5172316AEE9DB84FB168F /* PBXContainerItemProxy */ = {
+ isa = PBXContainerItemProxy;
+ containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */;
+ proxyType = 1;
+ remoteGlobalIDString = 8C9AA22D1A042FA2D1BB0B695DAC1B62;
remoteInfo = StrongestPasswordValidator;
};
- 17BDC5509D4509049976A8518242BF03 /* PBXContainerItemProxy */ = {
+ 183781BB4684AB8EBD7CE6F032FB930F /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */;
proxyType = 1;
- remoteGlobalIDString = 3C748212C173CFB68E606D9CE25722D3;
- remoteInfo = RNCryptor;
+ remoteGlobalIDString = 90B2840AB96CFDCBD62C7A56DFD6562C;
+ remoteInfo = CocoaSecurity;
};
- 1876653167F9A1DC5CFB6E89535A49CE /* PBXContainerItemProxy */ = {
+ 1D92A116B3FF366D95FE600A5E87B79F /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */;
proxyType = 1;
- remoteGlobalIDString = 1C3436CEA5C3D39764C5F54374794ECB;
- remoteInfo = AFNetworking;
- };
- 28F15044017B0C9BD8CB2945A321D91B /* PBXContainerItemProxy */ = {
- isa = PBXContainerItemProxy;
- containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */;
- proxyType = 1;
- remoteGlobalIDString = C151757236ED425D4575FA96E3D67F5A;
- remoteInfo = "NSString-Helper-NSString-Helper";
- };
- 2AED98184C06743F4A6D2D9374E5DAE8 /* PBXContainerItemProxy */ = {
- isa = PBXContainerItemProxy;
- containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */;
- proxyType = 1;
- remoteGlobalIDString = 404EE043C7E580CAEA95F9A357C81415;
- remoteInfo = FBSDKShareKit;
- };
- 2CEA8448B2D6729C2A6875720DEB1F96 /* PBXContainerItemProxy */ = {
- isa = PBXContainerItemProxy;
- containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */;
- proxyType = 1;
- remoteGlobalIDString = 88643B90725E3BDB1F15DA88BB66A9C9;
- remoteInfo = "nv-ios-http-status";
- };
- 2E02BFA69440770B44E79B5042EFF227 /* PBXContainerItemProxy */ = {
- isa = PBXContainerItemProxy;
- containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */;
- proxyType = 1;
- remoteGlobalIDString = 1A54A167C32DFCCEA6CDB5334A0DB6AC;
- remoteInfo = FBSDKCoreKit;
- };
- 338508182D709CEBFC55DE8EC820BF37 /* PBXContainerItemProxy */ = {
- isa = PBXContainerItemProxy;
- containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */;
- proxyType = 1;
- remoteGlobalIDString = 404EE043C7E580CAEA95F9A357C81415;
- remoteInfo = FBSDKShareKit;
- };
- 3484B5DD08B7BDE56D49693AEE76F590 /* PBXContainerItemProxy */ = {
- isa = PBXContainerItemProxy;
- containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */;
- proxyType = 1;
- remoteGlobalIDString = A16BA43B8EB21BD50220570B52B1616F;
- remoteInfo = "UIDevice-Utils";
- };
- 375056DCFEF4080310518704A56215AD /* PBXContainerItemProxy */ = {
- isa = PBXContainerItemProxy;
- containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */;
- proxyType = 1;
- remoteGlobalIDString = B289CB22CC811B5C297D8875BA1D848A;
- remoteInfo = PNObject;
- };
- 393C74EA0B5448B730C910D7D50BA38D /* PBXContainerItemProxy */ = {
- isa = PBXContainerItemProxy;
- containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */;
- proxyType = 1;
- remoteGlobalIDString = 6F621F2F34EEA2E2A05B25FA44939F5D;
+ remoteGlobalIDString = 933814502F34C61F1CE931BDE5926FE2;
remoteInfo = "NSString-Helper";
};
- 3C6A7AEADAC32B49A9EA58A76D8954B9 /* PBXContainerItemProxy */ = {
+ 23A3AAF1CA04B0D019146D8AB0DDD843 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */;
proxyType = 1;
- remoteGlobalIDString = 6EDC37F3FA92533C6AC3562458AA91F1;
- remoteInfo = FBSDKLoginKit;
+ remoteGlobalIDString = 2FFC9285C507681846C93EEDEE0FB684;
+ remoteInfo = PNObject;
};
- 3FAD12CFA146E163BE7A7C211B209E99 /* PBXContainerItemProxy */ = {
- isa = PBXContainerItemProxy;
- containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */;
- proxyType = 1;
- remoteGlobalIDString = 619F0D28240534293108906FED04836F;
- remoteInfo = "Expecta+Snapshots";
- };
- 4FCD74BA68C1A574B01555F824846CA4 /* PBXContainerItemProxy */ = {
+ 2A7A6826FB0E3D4837FDD5A7910F6FA7 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */;
proxyType = 1;
remoteGlobalIDString = 88643B90725E3BDB1F15DA88BB66A9C9;
remoteInfo = "nv-ios-http-status";
};
- 51E5E0E0358657D1ED056EEC636D9FE5 /* PBXContainerItemProxy */ = {
+ 31C01B0CD18933632EB7408DBE2398F1 /* PBXContainerItemProxy */ = {
+ isa = PBXContainerItemProxy;
+ containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */;
+ proxyType = 1;
+ remoteGlobalIDString = 39704F162130712391CF441D51F50591;
+ remoteInfo = PureLayout;
+ };
+ 330E3FB56C3F0754C00F365443C942F2 /* PBXContainerItemProxy */ = {
+ isa = PBXContainerItemProxy;
+ containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */;
+ proxyType = 1;
+ remoteGlobalIDString = 44E0A443C7B5AAF9367BC919E00F78FE;
+ remoteInfo = NSDate_Utils;
+ };
+ 39EB530A7DD22C8C48E821BA9D02653A /* PBXContainerItemProxy */ = {
+ isa = PBXContainerItemProxy;
+ containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */;
+ proxyType = 1;
+ remoteGlobalIDString = D07447EE3CEBB0BCB8D61DFCB8EA915F;
+ remoteInfo = FBSnapshotTestCase;
+ };
+ 3A11E881FBC3CF14713329FA986F18C1 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */;
proxyType = 1;
remoteGlobalIDString = 1C3436CEA5C3D39764C5F54374794ECB;
remoteInfo = AFNetworking;
};
- 53BE8668B3C448AD516408856F64B4D0 /* PBXContainerItemProxy */ = {
+ 3ADB4C4F363B48FD66FD64222AC037B3 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */;
proxyType = 1;
- remoteGlobalIDString = 9A86D57356F20F2D0E6A1DF60C124F42;
- remoteInfo = "UIDevice-Utils-UIDevice-Utils";
+ remoteGlobalIDString = B1C26CF5D7BC4752BFC1F8EAEE738DEE;
+ remoteInfo = "CodFis-Helper";
};
- 582174FA553F6AEF0197BF3FDEB0A85C /* PBXContainerItemProxy */ = {
+ 4465DEA1B5C65B559C6428801791AA84 /* PBXContainerItemProxy */ = {
+ isa = PBXContainerItemProxy;
+ containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */;
+ proxyType = 1;
+ remoteGlobalIDString = 404EE043C7E580CAEA95F9A357C81415;
+ remoteInfo = FBSDKShareKit;
+ };
+ 49CF39CF9D2B207FA027C9F15F05E7FB /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */;
proxyType = 1;
remoteGlobalIDString = 1A54A167C32DFCCEA6CDB5334A0DB6AC;
remoteInfo = FBSDKCoreKit;
};
+ 49DAB6C20D26460237880E657CD7C128 /* PBXContainerItemProxy */ = {
+ isa = PBXContainerItemProxy;
+ containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */;
+ proxyType = 1;
+ remoteGlobalIDString = 07E7B1F2B822E2C3756A80B3A630FFFD;
+ remoteInfo = NACrypto;
+ };
+ 4CE017C9BB2F9E2D6308FEF9C6E6BD74 /* PBXContainerItemProxy */ = {
+ isa = PBXContainerItemProxy;
+ containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */;
+ proxyType = 1;
+ remoteGlobalIDString = 88643B90725E3BDB1F15DA88BB66A9C9;
+ remoteInfo = "nv-ios-http-status";
+ };
5942476AD09356C4EB89789F19208560 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */;
@@ -785,167 +817,195 @@
remoteGlobalIDString = 1A54A167C32DFCCEA6CDB5334A0DB6AC;
remoteInfo = FBSDKCoreKit;
};
- 64824134F85EBD7F92DDCA213370E4D6 /* PBXContainerItemProxy */ = {
- isa = PBXContainerItemProxy;
- containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */;
- proxyType = 1;
- remoteGlobalIDString = 3C748212C173CFB68E606D9CE25722D3;
- remoteInfo = RNCryptor;
- };
- 67D8DEAF5ABBC07A632AF3476E8F61A2 /* PBXContainerItemProxy */ = {
- isa = PBXContainerItemProxy;
- containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */;
- proxyType = 1;
- remoteGlobalIDString = 3C748212C173CFB68E606D9CE25722D3;
- remoteInfo = RNCryptor;
- };
- 6E76E0D2557513CF9D4D9031E4DA62E5 /* PBXContainerItemProxy */ = {
- isa = PBXContainerItemProxy;
- containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */;
- proxyType = 1;
- remoteGlobalIDString = 20B8A8681820FA8513BD7E48A85DC18D;
- remoteInfo = NSDate_Utils;
- };
- 6F24BDCEBC39A28EBCFAD0180A7EDBC4 /* PBXContainerItemProxy */ = {
- isa = PBXContainerItemProxy;
- containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */;
- proxyType = 1;
- remoteGlobalIDString = A16BA43B8EB21BD50220570B52B1616F;
- remoteInfo = "UIDevice-Utils";
- };
- 75000DAD477752C3AC6516B0B9B56251 /* PBXContainerItemProxy */ = {
- isa = PBXContainerItemProxy;
- containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */;
- proxyType = 1;
- remoteGlobalIDString = 0D888F29E05E498D0CD91A51D28599A5;
- remoteInfo = Expecta;
- };
- 776816FABAE1CDE0D505F291E71FD45D /* PBXContainerItemProxy */ = {
+ 59E7258F1317AC89F682B48E4204F20C /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */;
proxyType = 1;
remoteGlobalIDString = BF088AF63E437970817C1E809577C700;
remoteInfo = "PEAR-FileManager-iOS";
};
- 7A774F27853C3582EA11B6D13AE1D672 /* PBXContainerItemProxy */ = {
- isa = PBXContainerItemProxy;
- containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */;
- proxyType = 1;
- remoteGlobalIDString = 20B8A8681820FA8513BD7E48A85DC18D;
- remoteInfo = NSDate_Utils;
- };
- 7CA0C8255721FB2AF3218FBB745A61B6 /* PBXContainerItemProxy */ = {
- isa = PBXContainerItemProxy;
- containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */;
- proxyType = 1;
- remoteGlobalIDString = A16BA43B8EB21BD50220570B52B1616F;
- remoteInfo = "UIDevice-Utils";
- };
- 7F50E346E2789F6D78CDA6E42286A209 /* PBXContainerItemProxy */ = {
- isa = PBXContainerItemProxy;
- containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */;
- proxyType = 1;
- remoteGlobalIDString = 6EDC37F3FA92533C6AC3562458AA91F1;
- remoteInfo = FBSDKLoginKit;
- };
- 83C10DE677A2F8EF8A9B3EB574180FFD /* PBXContainerItemProxy */ = {
- isa = PBXContainerItemProxy;
- containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */;
- proxyType = 1;
- remoteGlobalIDString = D07447EE3CEBB0BCB8D61DFCB8EA915F;
- remoteInfo = FBSnapshotTestCase;
- };
- 8C53F4461C9D1CEF4ECD210F7D3831C7 /* PBXContainerItemProxy */ = {
- isa = PBXContainerItemProxy;
- containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */;
- proxyType = 1;
- remoteGlobalIDString = E14B7AF3D24BE951D0A73307B65567AA;
- remoteInfo = "CodFis-Helper-CodFis-Helper";
- };
- 8CB2FE5F4C133B87AC9A33E217934B97 /* PBXContainerItemProxy */ = {
+ 5A3867BCBA9A675DDA26EC476574614A /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */;
proxyType = 1;
remoteGlobalIDString = BF088AF63E437970817C1E809577C700;
remoteInfo = "PEAR-FileManager-iOS";
};
- 90F9FBF95E6880F6DAB9D88F52473370 /* PBXContainerItemProxy */ = {
- isa = PBXContainerItemProxy;
- containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */;
- proxyType = 1;
- remoteGlobalIDString = B289CB22CC811B5C297D8875BA1D848A;
- remoteInfo = PNObject;
- };
- 958AA7C828748DD52008C06259083C75 /* PBXContainerItemProxy */ = {
+ 5BB0FFE113726C01C4313A8A795975E7 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */;
proxyType = 1;
remoteGlobalIDString = 1A54A167C32DFCCEA6CDB5334A0DB6AC;
remoteInfo = FBSDKCoreKit;
};
- 96B8CDD895DC91DD558B4598B5111484 /* PBXContainerItemProxy */ = {
+ 5DEA0CE9D2B6668B30E7BA13BD6FD604 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */;
proxyType = 1;
- remoteGlobalIDString = 6F621F2F34EEA2E2A05B25FA44939F5D;
+ remoteGlobalIDString = CB10C2556DB4A96AB0846B2A1A030FAF;
+ remoteInfo = "UIDevice-Utils";
+ };
+ 603B5175A300C756A4A78FBBF748FF7D /* PBXContainerItemProxy */ = {
+ isa = PBXContainerItemProxy;
+ containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */;
+ proxyType = 1;
+ remoteGlobalIDString = 933814502F34C61F1CE931BDE5926FE2;
remoteInfo = "NSString-Helper";
};
- 97AF319D526810A5E02D258CDBD7B3BF /* PBXContainerItemProxy */ = {
+ 60BF8288AC1D2AB50A63DF6462FA6335 /* PBXContainerItemProxy */ = {
+ isa = PBXContainerItemProxy;
+ containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */;
+ proxyType = 1;
+ remoteGlobalIDString = BF088AF63E437970817C1E809577C700;
+ remoteInfo = "PEAR-FileManager-iOS";
+ };
+ 67C223C41FC8F4C3BE7490C180B049BE /* PBXContainerItemProxy */ = {
+ isa = PBXContainerItemProxy;
+ containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */;
+ proxyType = 1;
+ remoteGlobalIDString = 6EDC37F3FA92533C6AC3562458AA91F1;
+ remoteInfo = FBSDKLoginKit;
+ };
+ 71FA255690CC3AF809E1C180108F1EDB /* PBXContainerItemProxy */ = {
+ isa = PBXContainerItemProxy;
+ containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */;
+ proxyType = 1;
+ remoteGlobalIDString = 8C9AA22D1A042FA2D1BB0B695DAC1B62;
+ remoteInfo = StrongestPasswordValidator;
+ };
+ 7A69BDE10AF98DD5F84DB19D035E8DB2 /* PBXContainerItemProxy */ = {
+ isa = PBXContainerItemProxy;
+ containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */;
+ proxyType = 1;
+ remoteGlobalIDString = A9B93CAF9380B9A062D05C07FC77C9EB;
+ remoteInfo = "NSUserDefaults-AESEncryptor";
+ };
+ 7E5FA6CF08CB75950E850A0A0EFB0BEA /* PBXContainerItemProxy */ = {
+ isa = PBXContainerItemProxy;
+ containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */;
+ proxyType = 1;
+ remoteGlobalIDString = 2FFC9285C507681846C93EEDEE0FB684;
+ remoteInfo = PNObject;
+ };
+ 7EBB2A2F8DB977A25B8D474876C13CCA /* PBXContainerItemProxy */ = {
+ isa = PBXContainerItemProxy;
+ containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */;
+ proxyType = 1;
+ remoteGlobalIDString = CB10C2556DB4A96AB0846B2A1A030FAF;
+ remoteInfo = "UIDevice-Utils";
+ };
+ 83FED21D0DB2551DC340C02DD09B1BB0 /* PBXContainerItemProxy */ = {
+ isa = PBXContainerItemProxy;
+ containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */;
+ proxyType = 1;
+ remoteGlobalIDString = A9B93CAF9380B9A062D05C07FC77C9EB;
+ remoteInfo = "NSUserDefaults-AESEncryptor";
+ };
+ 8974E9CC766AE6BBB7CA151308304D5B /* PBXContainerItemProxy */ = {
+ isa = PBXContainerItemProxy;
+ containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */;
+ proxyType = 1;
+ remoteGlobalIDString = 90B2840AB96CFDCBD62C7A56DFD6562C;
+ remoteInfo = CocoaSecurity;
+ };
+ 8F94568AE0361355FDD8010B2E3FB0FD /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */;
proxyType = 1;
remoteGlobalIDString = 404EE043C7E580CAEA95F9A357C81415;
remoteInfo = FBSDKShareKit;
};
- 988A61EAE4BD33C0F1E196F96BFE91BB /* PBXContainerItemProxy */ = {
+ 911E9AAFF63B465A185AEE8B03E2BB74 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */;
proxyType = 1;
- remoteGlobalIDString = 6F621F2F34EEA2E2A05B25FA44939F5D;
- remoteInfo = "NSString-Helper";
+ remoteGlobalIDString = A9B93CAF9380B9A062D05C07FC77C9EB;
+ remoteInfo = "NSUserDefaults-AESEncryptor";
};
- 9C96F10EAC07713BC83FAC1AE6E68EC0 /* PBXContainerItemProxy */ = {
+ 98952AE3694B8C8B8A820375CE11C2B2 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */;
proxyType = 1;
remoteGlobalIDString = 63A18C6A528BD7E47DDAF39B2AEAF1D1;
remoteInfo = Bolts;
};
- 9F2F33A868D38D8DEF2CCD493B20ADCD /* PBXContainerItemProxy */ = {
+ 9B11F6123BF1C3125804E9B0C90DE03D /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */;
proxyType = 1;
- remoteGlobalIDString = F36421BE3CA2CFC3461C5BE492620FBB;
- remoteInfo = Specta;
+ remoteGlobalIDString = 0D888F29E05E498D0CD91A51D28599A5;
+ remoteInfo = Expecta;
};
- A1CF4B0C91C4F5AB6ED844A0E93FCD2C /* PBXContainerItemProxy */ = {
+ 9D9DC1C9AD4EDCDFE7FC3F8AD454B605 /* PBXContainerItemProxy */ = {
+ isa = PBXContainerItemProxy;
+ containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */;
+ proxyType = 1;
+ remoteGlobalIDString = 1A54A167C32DFCCEA6CDB5334A0DB6AC;
+ remoteInfo = FBSDKCoreKit;
+ };
+ A1BE9ABC3EB0688CA082862266D34502 /* PBXContainerItemProxy */ = {
+ isa = PBXContainerItemProxy;
+ containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */;
+ proxyType = 1;
+ remoteGlobalIDString = 44E0A443C7B5AAF9367BC919E00F78FE;
+ remoteInfo = NSDate_Utils;
+ };
+ A6F137614A3332DDFF881E603612E66C /* PBXContainerItemProxy */ = {
+ isa = PBXContainerItemProxy;
+ containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */;
+ proxyType = 1;
+ remoteGlobalIDString = 90B2840AB96CFDCBD62C7A56DFD6562C;
+ remoteInfo = CocoaSecurity;
+ };
+ A7013DB10E0A484AF7B9962B192595F9 /* PBXContainerItemProxy */ = {
+ isa = PBXContainerItemProxy;
+ containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */;
+ proxyType = 1;
+ remoteGlobalIDString = B1C26CF5D7BC4752BFC1F8EAEE738DEE;
+ remoteInfo = "CodFis-Helper";
+ };
+ AFF3B9A69D927EF5AF8648D0A61282FC /* PBXContainerItemProxy */ = {
+ isa = PBXContainerItemProxy;
+ containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */;
+ proxyType = 1;
+ remoteGlobalIDString = 90B2840AB96CFDCBD62C7A56DFD6562C;
+ remoteInfo = CocoaSecurity;
+ };
+ B0438BFE23CFC39E2E96C30A72BC2DE1 /* PBXContainerItemProxy */ = {
+ isa = PBXContainerItemProxy;
+ containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */;
+ proxyType = 1;
+ remoteGlobalIDString = CB10C2556DB4A96AB0846B2A1A030FAF;
+ remoteInfo = "UIDevice-Utils";
+ };
+ B3280E2C93A931B70F06B5EA986B2E9D /* PBXContainerItemProxy */ = {
+ isa = PBXContainerItemProxy;
+ containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */;
+ proxyType = 1;
+ remoteGlobalIDString = 619F0D28240534293108906FED04836F;
+ remoteInfo = "Expecta+Snapshots";
+ };
+ B73409454D354FB1224E679A3BC06016 /* PBXContainerItemProxy */ = {
+ isa = PBXContainerItemProxy;
+ containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */;
+ proxyType = 1;
+ remoteGlobalIDString = 88643B90725E3BDB1F15DA88BB66A9C9;
+ remoteInfo = "nv-ios-http-status";
+ };
+ BE6ED4FD1EC06567A0105BF29A9E4E6C /* PBXContainerItemProxy */ = {
+ isa = PBXContainerItemProxy;
+ containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */;
+ proxyType = 1;
+ remoteGlobalIDString = 07E7B1F2B822E2C3756A80B3A630FFFD;
+ remoteInfo = NACrypto;
+ };
+ BECDDC0745F5C88A32BC89D54700B3E9 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */;
proxyType = 1;
remoteGlobalIDString = 1C3436CEA5C3D39764C5F54374794ECB;
remoteInfo = AFNetworking;
};
- A500AD659DA1E4DB35D853EC0D44B468 /* PBXContainerItemProxy */ = {
- isa = PBXContainerItemProxy;
- containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */;
- proxyType = 1;
- remoteGlobalIDString = C0851D68DBB934EC9D9EB9D311094A6F;
- remoteInfo = "StrongestPasswordValidator-StrongestPasswordValidator";
- };
- A5BAA654832B7D4EF7A09163C7510397 /* PBXContainerItemProxy */ = {
- isa = PBXContainerItemProxy;
- containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */;
- proxyType = 1;
- remoteGlobalIDString = E8EACB2759BAA815FAC2E1B98932203D;
- remoteInfo = "CodFis-Helper";
- };
- B32BF74C12B1F9E12E1EEED25D335B60 /* PBXContainerItemProxy */ = {
- isa = PBXContainerItemProxy;
- containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */;
- proxyType = 1;
- remoteGlobalIDString = 823DCC47A39BF05022FD243FFA57350E;
- remoteInfo = PureLayout;
- };
C1D515C316B5D5FE5C581F2529C4666C /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */;
@@ -953,26 +1013,12 @@
remoteGlobalIDString = 63A18C6A528BD7E47DDAF39B2AEAF1D1;
remoteInfo = Bolts;
};
- C24D823B2F7EA35FBE5BF3A58575E39F /* PBXContainerItemProxy */ = {
+ C331E9CCDA8284CB1097D913F5D345F5 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */;
proxyType = 1;
- remoteGlobalIDString = 696DC08CBD3C0FD568286BDBAA47325B;
- remoteInfo = StrongestPasswordValidator;
- };
- C384052F7AA7D08E000424DE270EB279 /* PBXContainerItemProxy */ = {
- isa = PBXContainerItemProxy;
- containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */;
- proxyType = 1;
- remoteGlobalIDString = 88643B90725E3BDB1F15DA88BB66A9C9;
- remoteInfo = "nv-ios-http-status";
- };
- CC3CBFB0561ED67B51C0008C309B6951 /* PBXContainerItemProxy */ = {
- isa = PBXContainerItemProxy;
- containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */;
- proxyType = 1;
- remoteGlobalIDString = 63A18C6A528BD7E47DDAF39B2AEAF1D1;
- remoteInfo = Bolts;
+ remoteGlobalIDString = 6EDC37F3FA92533C6AC3562458AA91F1;
+ remoteInfo = FBSDKLoginKit;
};
CCF83280732A67033B72EE54815FFD3F /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
@@ -981,19 +1027,12 @@
remoteGlobalIDString = 0D888F29E05E498D0CD91A51D28599A5;
remoteInfo = Expecta;
};
- CD86A93C8846FF5A773D7F7FBD605805 /* PBXContainerItemProxy */ = {
+ CF9FA6AA45AD678770F376AF749FFF6E /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */;
proxyType = 1;
- remoteGlobalIDString = E8EACB2759BAA815FAC2E1B98932203D;
- remoteInfo = "CodFis-Helper";
- };
- CFA9DBB873C5616E12FB50B4DAAE5D7F /* PBXContainerItemProxy */ = {
- isa = PBXContainerItemProxy;
- containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */;
- proxyType = 1;
- remoteGlobalIDString = 6EDC37F3FA92533C6AC3562458AA91F1;
- remoteInfo = FBSDKLoginKit;
+ remoteGlobalIDString = 44E0A443C7B5AAF9367BC919E00F78FE;
+ remoteInfo = NSDate_Utils;
};
D14F7336F6970CF5EA3D085D7584DF5E /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
@@ -1002,6 +1041,27 @@
remoteGlobalIDString = 63A18C6A528BD7E47DDAF39B2AEAF1D1;
remoteInfo = Bolts;
};
+ D7D0BBDCB99E270FE406A3C79963E143 /* PBXContainerItemProxy */ = {
+ isa = PBXContainerItemProxy;
+ containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */;
+ proxyType = 1;
+ remoteGlobalIDString = 6B25CC9A9201E9CF730AD91ADD1B2FDC;
+ remoteInfo = Specta;
+ };
+ D7FE54C5716BB44CA75FBCB46B1FF0D0 /* PBXContainerItemProxy */ = {
+ isa = PBXContainerItemProxy;
+ containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */;
+ proxyType = 1;
+ remoteGlobalIDString = 63A18C6A528BD7E47DDAF39B2AEAF1D1;
+ remoteInfo = Bolts;
+ };
+ DE8126E62230BA3A36CAD86B80001E76 /* PBXContainerItemProxy */ = {
+ isa = PBXContainerItemProxy;
+ containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */;
+ proxyType = 1;
+ remoteGlobalIDString = 8C9AA22D1A042FA2D1BB0B695DAC1B62;
+ remoteInfo = StrongestPasswordValidator;
+ };
DFB7D8638BEFDCC4CCF33BEB67F1B89B /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */;
@@ -1009,40 +1069,26 @@
remoteGlobalIDString = 63A18C6A528BD7E47DDAF39B2AEAF1D1;
remoteInfo = Bolts;
};
- E0DD39CAAFB312F800B3CF5DCB496849 /* PBXContainerItemProxy */ = {
+ E0C5953453E015C7B8B5FFB4B1C5929E /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */;
proxyType = 1;
- remoteGlobalIDString = 696DC08CBD3C0FD568286BDBAA47325B;
- remoteInfo = StrongestPasswordValidator;
- };
- E1A919B9977FB460D57719F22929D3D0 /* PBXContainerItemProxy */ = {
- isa = PBXContainerItemProxy;
- containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */;
- proxyType = 1;
- remoteGlobalIDString = E8EACB2759BAA815FAC2E1B98932203D;
+ remoteGlobalIDString = B1C26CF5D7BC4752BFC1F8EAEE738DEE;
remoteInfo = "CodFis-Helper";
};
- E64414A663DA182AD5EA29A599BF9603 /* PBXContainerItemProxy */ = {
+ E42EC834FE7F21B7F1B280C40F3229A1 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */;
proxyType = 1;
- remoteGlobalIDString = 63A18C6A528BD7E47DDAF39B2AEAF1D1;
- remoteInfo = Bolts;
+ remoteGlobalIDString = 1C3436CEA5C3D39764C5F54374794ECB;
+ remoteInfo = AFNetworking;
};
- E778550645B7ACFE61AF06F1572FB64E /* PBXContainerItemProxy */ = {
+ E912A2BCA043209309B72519B25774F0 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */;
proxyType = 1;
- remoteGlobalIDString = ADA721173AEF9DD576ACB9663713F3DD;
- remoteInfo = "PNObject-PNObject";
- };
- EA7E27B6CB69CFE90723D7EE6EDC904C /* PBXContainerItemProxy */ = {
- isa = PBXContainerItemProxy;
- containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */;
- proxyType = 1;
- remoteGlobalIDString = BF088AF63E437970817C1E809577C700;
- remoteInfo = "PEAR-FileManager-iOS";
+ remoteGlobalIDString = 933814502F34C61F1CE931BDE5926FE2;
+ remoteInfo = "NSString-Helper";
};
ED9B8F8F8F84D09DE8A86E81383E7B0D /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
@@ -1051,6 +1097,13 @@
remoteGlobalIDString = 1A54A167C32DFCCEA6CDB5334A0DB6AC;
remoteInfo = FBSDKCoreKit;
};
+ F4559928D9F6C4306AF8B43DC5328C66 /* PBXContainerItemProxy */ = {
+ isa = PBXContainerItemProxy;
+ containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */;
+ proxyType = 1;
+ remoteGlobalIDString = 6EDC37F3FA92533C6AC3562458AA91F1;
+ remoteInfo = FBSDKLoginKit;
+ };
F9BBA6CBCE0B1A136EAFACE5185B512D /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */;
@@ -1094,720 +1147,776 @@
/* End PBXCopyFilesBuildPhase section */
/* Begin PBXFileReference section */
- 015667A81F6FC724E311D564F751F8AA /* SPTTestSuite.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SPTTestSuite.m; path = Specta/Specta/SPTTestSuite.m; sourceTree = ""; };
- 019D27ADA91B8FEB6E773BD22585422A /* SystemConfiguration.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SystemConfiguration.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS9.2.sdk/System/Library/Frameworks/SystemConfiguration.framework; sourceTree = DEVELOPER_DIR; };
- 01F88E5AD62978F752DAC9898B20AC4C /* Expecta+Snapshots-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Expecta+Snapshots-umbrella.h"; sourceTree = ""; };
- 024570ED2C04D7FACB7942AEDC6E6CB7 /* FBSDKCopying.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKCopying.h; path = FBSDKCoreKit/FBSDKCoreKit/FBSDKCopying.h; sourceTree = ""; };
- 027063E0117D2454157B56D70FF67BC6 /* FBSDKColor.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKColor.h; path = FBSDKCoreKit/FBSDKCoreKit/Internal/UI/FBSDKColor.h; sourceTree = ""; };
- 028339F9423F30A373DB82CB09F0D4C4 /* FBSDKLoginUtility.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKLoginUtility.h; path = FBSDKLoginKit/FBSDKLoginKit/Internal/FBSDKLoginUtility.h; sourceTree = ""; };
- 031D832872DF068B7E2C88C49484CAAD /* FBSDKLikeBoxView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKLikeBoxView.m; path = FBSDKShareKit/FBSDKShareKit/Internal/FBSDKLikeBoxView.m; sourceTree = ""; };
- 031E45769F7897993E8EF5154A836176 /* EXPMatchers+beLessThan.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "EXPMatchers+beLessThan.h"; path = "Expecta/Matchers/EXPMatchers+beLessThan.h"; sourceTree = ""; };
- 0341647EC8481DF0005B85E6CCA0BDB0 /* FBSDKCoreKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = FBSDKCoreKit.framework; sourceTree = BUILT_PRODUCTS_DIR; };
- 043E8816608FA82D825E1B097AC6F2A1 /* EXPMatchers+match.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "EXPMatchers+match.m"; path = "Expecta/Matchers/EXPMatchers+match.m"; sourceTree = ""; };
- 04B6FF96E22C297CEECBC7CECB2A661B /* Expecta.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = "sourcecode.module-map"; path = Expecta.modulemap; sourceTree = ""; };
- 04E8B44D4D6D436319C146BB023059A3 /* BFAppLink.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = BFAppLink.m; path = Bolts/iOS/BFAppLink.m; sourceTree = ""; };
- 05F4E660AEEDC05B4B42A80A61ABE458 /* FBSDKAppInviteDialog.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKAppInviteDialog.m; path = FBSDKShareKit/FBSDKShareKit/FBSDKAppInviteDialog.m; sourceTree = ""; };
- 062B2D28A1EAC9CD3F14D4C4B9CEF1B1 /* NSDate+NSDate_Util.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSDate+NSDate_Util.h"; path = "Pod/Classes/NSDate+NSDate_Util.h"; sourceTree = ""; };
- 08AA89639EB1EEF2AFC27DFA74D9F816 /* PEARFileManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = PEARFileManager.m; path = "PEAR-FileManager-iOS/PEARFileManager.m"; sourceTree = ""; };
- 08EABDBB1872A8FF0094A19FC655AD7C /* nv_ios_http_status.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = nv_ios_http_status.framework; sourceTree = BUILT_PRODUCTS_DIR; };
- 09CE30467C1D28BCEAD4DE77B4C2E41E /* NSDate_Utils.bundle */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = NSDate_Utils.bundle; sourceTree = BUILT_PRODUCTS_DIR; };
- 09CEE404DAEE6949021744B7E9DB80E1 /* FBSDKGraphErrorRecoveryProcessor.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKGraphErrorRecoveryProcessor.m; path = FBSDKCoreKit/FBSDKCoreKit/FBSDKGraphErrorRecoveryProcessor.m; sourceTree = ""; };
- 0A3DF7600DEB00BAC34120A9777E1A74 /* FBSDKDynamicFrameworkLoader.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKDynamicFrameworkLoader.h; path = FBSDKCoreKit/FBSDKCoreKit/Internal/FBSDKDynamicFrameworkLoader.h; sourceTree = ""; };
- 0A65E4047F53D5007AC3761AA1F27797 /* FBSDKShareError.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKShareError.m; path = FBSDKShareKit/FBSDKShareKit/Internal/FBSDKShareError.m; sourceTree = ""; };
- 0A8D5F91E3E036CCC36AE6EED47590E6 /* AFImageDownloader.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = AFImageDownloader.h; path = "UIKit+AFNetworking/AFImageDownloader.h"; sourceTree = ""; };
- 0B0E176030973F1950CB5CE9BBC62B05 /* UIDevice_Utils.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = UIDevice_Utils.framework; sourceTree = BUILT_PRODUCTS_DIR; };
- 0BA5E33D38BE6334E1755B0C20E24DA7 /* PNObject.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = PNObject.framework; sourceTree = BUILT_PRODUCTS_DIR; };
- 0BAA78AF7B596D75186ADBDCAE789650 /* SPTExample.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SPTExample.m; path = Specta/Specta/SPTExample.m; sourceTree = ""; };
- 0BC932C7674764ED0A380050D42C5923 /* NSString_Helper.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = NSString_Helper.framework; sourceTree = BUILT_PRODUCTS_DIR; };
- 0BEE41EF79C9F45B946D8219276EB1DB /* FBSDKTestUsersManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKTestUsersManager.m; path = FBSDKCoreKit/FBSDKCoreKit/FBSDKTestUsersManager.m; sourceTree = ""; };
- 0BEEBE46498B918C88D3D39400D42F1C /* BFURL.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = BFURL.h; path = Bolts/iOS/BFURL.h; sourceTree = ""; };
- 0BF756E47E4D8D7EC739CBC9209B2397 /* FBSDKShareDialog.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKShareDialog.h; path = FBSDKShareKit/FBSDKShareKit/FBSDKShareDialog.h; sourceTree = ""; };
- 0C7B28A423EE8BFFDD6CA0E80FC2E780 /* FBSDKApplicationDelegate+Internal.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "FBSDKApplicationDelegate+Internal.h"; path = "FBSDKCoreKit/FBSDKCoreKit/Internal/FBSDKApplicationDelegate+Internal.h"; sourceTree = ""; };
- 0C90C2516D6FF48D6D46EC79C5EEBAC9 /* ResourceBundle-NSDate_Utils-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "ResourceBundle-NSDate_Utils-Info.plist"; sourceTree = ""; };
- 0CC2FDB1E73E42068C9B34807CC532F4 /* FBSDKGraphRequestConnection.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKGraphRequestConnection.h; path = FBSDKCoreKit/FBSDKCoreKit/FBSDKGraphRequestConnection.h; sourceTree = ""; };
- 0D908F53D6C6D4B0B6CB100B45A7E440 /* BFAppLink_Internal.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = BFAppLink_Internal.h; path = Bolts/iOS/BFAppLink_Internal.h; sourceTree = ""; };
- 0DE1364F96B4E610C4DE91CF779B4EFF /* FBSDKGraphErrorRecoveryProcessor.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKGraphErrorRecoveryProcessor.h; path = FBSDKCoreKit/FBSDKCoreKit/FBSDKGraphErrorRecoveryProcessor.h; sourceTree = ""; };
- 0E4AF82CA136279A9279CF3AF92CD10B /* Expecta_Snapshots.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Expecta_Snapshots.framework; sourceTree = BUILT_PRODUCTS_DIR; };
- 0E58D8A725B06266599FBA4D916EE3BF /* FBSDKLoginError.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKLoginError.h; path = FBSDKLoginKit/FBSDKLoginKit/Internal/FBSDKLoginError.h; sourceTree = ""; };
- 0E81589989E516062DB4219ABB7F73F9 /* AFURLRequestSerialization.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = AFURLRequestSerialization.m; path = AFNetworking/AFURLRequestSerialization.m; sourceTree = ""; };
- 0EE38D2200B1A63FE661CCE556A8AA30 /* PNInstallation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = PNInstallation.h; sourceTree = ""; };
- 0F5CCB7BF69E45AF8C1AACC8CD547CA0 /* _FBSDKTemporaryErrorRecoveryAttempter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = _FBSDKTemporaryErrorRecoveryAttempter.m; path = FBSDKCoreKit/FBSDKCoreKit/Internal/ErrorRecovery/_FBSDKTemporaryErrorRecoveryAttempter.m; sourceTree = ""; };
- 0F79F69D5CF15A94063B66DD2E2B8053 /* PEAR_FileManager_iOS.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = PEAR_FileManager_iOS.framework; sourceTree = BUILT_PRODUCTS_DIR; };
- 106FDB5348FD7288F67934FF3173E006 /* MobileCoreServices.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = MobileCoreServices.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS9.2.sdk/System/Library/Frameworks/MobileCoreServices.framework; sourceTree = DEVELOPER_DIR; };
- 10E1B65976FD696EF47E5CDF3C3F3FC0 /* SPTExampleGroup.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SPTExampleGroup.m; path = Specta/Specta/SPTExampleGroup.m; sourceTree = ""; };
- 10FAA02D1E778815C50AD69908748415 /* CodFis-Helper-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "CodFis-Helper-umbrella.h"; sourceTree = ""; };
- 111140B956B413206DFA9A03CF73B4B3 /* FBSDKMacros.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKMacros.h; path = FBSDKCoreKit/FBSDKCoreKit/FBSDKMacros.h; sourceTree = ""; };
- 117C74BB14103913FCC7F8CEBD7D6D0F /* FBSDKUtility.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKUtility.h; path = FBSDKCoreKit/FBSDKCoreKit/FBSDKUtility.h; sourceTree = ""; };
- 123F1ED5D629CE1BE0337058CF62FED6 /* EXPMatchers+equal.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "EXPMatchers+equal.m"; path = "Expecta/Matchers/EXPMatchers+equal.m"; sourceTree = ""; };
- 12CBF355BF26305ADE265DA7AFCBDC17 /* Bolts-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Bolts-prefix.pch"; sourceTree = ""; };
- 12F9933D00252C5208692725C62480A9 /* Expecta+Snapshots-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Expecta+Snapshots-prefix.pch"; sourceTree = ""; };
- 133A18D57DF50F09D644C874F4A74366 /* CodFis_Helper.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = CodFis_Helper.framework; sourceTree = BUILT_PRODUCTS_DIR; };
- 1385DB87DF3FEFC3AE491427C5559470 /* EXPExpect.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = EXPExpect.m; path = Expecta/EXPExpect.m; sourceTree = ""; };
- 143FE8F47A316509C56455C13DF0B797 /* FBSDKLogger.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKLogger.h; path = FBSDKCoreKit/FBSDKCoreKit/Internal/FBSDKLogger.h; sourceTree = ""; };
- 153EF48BC28A7EAF93BF2D5BAD19DED7 /* NSDate_Utils.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = NSDate_Utils.xcconfig; sourceTree = ""; };
- 1578F78AAF32C4ACC604DDF88477E431 /* FBSDKTimeSpentData.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKTimeSpentData.m; path = FBSDKCoreKit/FBSDKCoreKit/Internal/AppEvents/FBSDKTimeSpentData.m; sourceTree = ""; };
- 15BE015A3C02CD512B6FDBF20AFDD493 /* FBSDKTestUsersManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKTestUsersManager.h; path = FBSDKCoreKit/FBSDKCoreKit/FBSDKTestUsersManager.h; sourceTree = ""; };
- 161676199EA4E922250924F0D2AD32D2 /* EXPMatchers+postNotification.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "EXPMatchers+postNotification.h"; path = "Expecta/Matchers/EXPMatchers+postNotification.h"; sourceTree = ""; };
- 177DC0770D0BC4C4969311AB8036EB7D /* nv_ios_http_status.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = nv_ios_http_status.framework; sourceTree = BUILT_PRODUCTS_DIR; };
- 1835617E1C07FC6D7A48DB4B58F7319C /* FBSDKURLConnection.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKURLConnection.h; path = FBSDKCoreKit/FBSDKCoreKit/Internal/Network/FBSDKURLConnection.h; sourceTree = ""; };
- 184AF8DCB8AA77A378A53DB3DC9E0BAA /* FBSDKLoginConstants.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKLoginConstants.m; path = FBSDKLoginKit/FBSDKLoginKit/FBSDKLoginConstants.m; sourceTree = ""; };
- 1880963B37697EA728E158300FC0A2F7 /* NSString-Helper.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "NSString-Helper.xcconfig"; sourceTree = ""; };
- 18CE81405F326BE792700F85A46E8581 /* FBSDKAccessTokenCaching.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKAccessTokenCaching.h; path = FBSDKCoreKit/FBSDKCoreKit/Internal/TokenCaching/FBSDKAccessTokenCaching.h; sourceTree = ""; };
- 19984EF92CC03AAD80A978E722B16F34 /* FBSDKSharingButton.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKSharingButton.h; path = FBSDKShareKit/FBSDKShareKit/FBSDKSharingButton.h; sourceTree = ""; };
- 19A9F1AE6780F766396308CCDBFF2BAE /* Bolts.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = Bolts.m; path = Bolts/Common/Bolts.m; sourceTree = ""; };
- 19D412475C9261014664CE7F7E00F350 /* BFAppLinkReturnToRefererView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = BFAppLinkReturnToRefererView.h; path = Bolts/iOS/BFAppLinkReturnToRefererView.h; sourceTree = ""; };
- 1A44AA3050492D5A9C66C43B38AFF65C /* NSDate_Utils.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = NSDate_Utils.framework; sourceTree = BUILT_PRODUCTS_DIR; };
- 1AF95870BD68BDA6ECC5C81F8AF2F630 /* FBSDKLoginKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = FBSDKLoginKit.framework; sourceTree = BUILT_PRODUCTS_DIR; };
- 1B22524919C091767D0FC64BA711E98B /* ExpectaSupport.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = ExpectaSupport.m; path = Expecta/ExpectaSupport.m; sourceTree = ""; };
- 1BD15965862C4EC312F8941F955745CF /* ResourceBundle-CodFis-Helper-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "ResourceBundle-CodFis-Helper-Info.plist"; sourceTree = ""; };
- 1C2312C2F99EA26536E3F7733B1DFF97 /* BFCancellationTokenSource.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = BFCancellationTokenSource.m; path = Bolts/Common/BFCancellationTokenSource.m; sourceTree = ""; };
- 1C2474D996B46142F57ACC9EE9594BAA /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; };
- 1D65BA9ABC06DE969EC9C39BB3F6D336 /* FBSDKLikeActionControllerCache.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKLikeActionControllerCache.h; path = FBSDKShareKit/FBSDKShareKit/Internal/FBSDKLikeActionControllerCache.h; sourceTree = ""; };
- 1D676635A2D83E8906EA2857E24A7DDE /* FBSDKAppEventsStateManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKAppEventsStateManager.h; path = FBSDKCoreKit/FBSDKCoreKit/Internal/AppEvents/FBSDKAppEventsStateManager.h; sourceTree = ""; };
- 1E13DBB089AF8C5B4F7874A32D27A5E2 /* EXPBlockDefinedMatcher.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = EXPBlockDefinedMatcher.h; path = Expecta/EXPBlockDefinedMatcher.h; sourceTree = ""; };
- 1E1599FDFC6D3C422C384F457D3D75A8 /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; };
- 1E34306F34A51F2120D099CB060A8EB5 /* FBSDKSystemAccountStoreAdapter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKSystemAccountStoreAdapter.m; path = FBSDKCoreKit/FBSDKCoreKit/Internal/FBSDKSystemAccountStoreAdapter.m; sourceTree = ""; };
- 1E3AB7D39EDB9ED45D4B130D4F23AA90 /* FBSDKAccessTokenCacheV3_21.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKAccessTokenCacheV3_21.h; path = FBSDKCoreKit/FBSDKCoreKit/Internal/TokenCaching/FBSDKAccessTokenCacheV3_21.h; sourceTree = ""; };
- 1E92B7AA6DE0CB4E58869892D9B34967 /* FBSDKLikeBoxBorderView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKLikeBoxBorderView.h; path = FBSDKShareKit/FBSDKShareKit/Internal/FBSDKLikeBoxBorderView.h; sourceTree = ""; };
- 1E9AF4D3638A06B08FFCE91474C30231 /* FBSDKProfilePictureView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKProfilePictureView.h; path = FBSDKCoreKit/FBSDKCoreKit/FBSDKProfilePictureView.h; sourceTree = ""; };
- 1F9E753A0ADD867247650CA5C959C74A /* XCTestCase+Specta.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "XCTestCase+Specta.m"; path = "Specta/Specta/XCTestCase+Specta.m"; sourceTree = ""; };
- 1FEC164F45391FE495EC9104CFBE061D /* FBSDKAppLinkResolver.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKAppLinkResolver.h; path = FBSDKCoreKit/FBSDKCoreKit/FBSDKAppLinkResolver.h; sourceTree = ""; };
- 21702FBC7D6FA2EF0726B1609DF6407E /* FBSDKShareUtility.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKShareUtility.h; path = FBSDKShareKit/FBSDKShareKit/Internal/FBSDKShareUtility.h; sourceTree = ""; };
- 218AF1ECF876B28B484AD438E085D491 /* PNObject.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = PNObject.xcconfig; sourceTree = ""; };
- 220A56D448F3427CD44CFDF2F582F3FF /* FBSDKTooltipView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKTooltipView.h; path = FBSDKLoginKit/FBSDKLoginKit/FBSDKTooltipView.h; sourceTree = ""; };
- 2255793633A270EB73D390C2B35A02A7 /* FBSDKAppGroupContent.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKAppGroupContent.h; path = FBSDKShareKit/FBSDKShareKit/FBSDKAppGroupContent.h; sourceTree = ""; };
- 22FCAFDB940F1C2553B7F4DA27AB3CFC /* PNObjectFormData.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = PNObjectFormData.m; sourceTree = ""; };
- 23A905C809471CFE8C5326F10BBE6D05 /* UIWebView+AFNetworking.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIWebView+AFNetworking.m"; path = "UIKit+AFNetworking/UIWebView+AFNetworking.m"; sourceTree = ""; };
- 23DBBA16C2398B90440276A73199F4DE /* FBSDKAppEventsState.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKAppEventsState.h; path = FBSDKCoreKit/FBSDKCoreKit/Internal/AppEvents/FBSDKAppEventsState.h; sourceTree = ""; };
- 23F9A55263A15D88829D706E22AC80F6 /* FBSDKDialogConfiguration.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKDialogConfiguration.m; path = FBSDKCoreKit/FBSDKCoreKit/Internal/ServerConfiguration/FBSDKDialogConfiguration.m; sourceTree = ""; };
- 244B32EE3886377A49AD3AEBB8E47769 /* FBSnapshotTestCasePlatform.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSnapshotTestCasePlatform.m; path = FBSnapshotTestCase/FBSnapshotTestCasePlatform.m; sourceTree = ""; };
- 246D5F04BAABC508428F18B4F816E01F /* PEAR-FileManager-iOS-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "PEAR-FileManager-iOS-umbrella.h"; sourceTree = ""; };
- 24C90A906A81F0A0C99ACB2B129E95F3 /* Specta-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Specta-dummy.m"; sourceTree = ""; };
- 254F25EB9E8C4553D54BF506A40DC795 /* FBSDKShareKit-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "FBSDKShareKit-dummy.m"; sourceTree = ""; };
- 2570729A110E15D485BC8C9542CAFF8F /* FBSDKProfilePictureView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKProfilePictureView.m; path = FBSDKCoreKit/FBSDKCoreKit/FBSDKProfilePictureView.m; sourceTree = ""; };
- 25DB35E151F005D470865DE15BBA872A /* FBSDKMath.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKMath.m; path = FBSDKCoreKit/FBSDKCoreKit/Internal/FBSDKMath.m; sourceTree = ""; };
- 2647DC2503AE9CABFE089D10F80E02DC /* StrongestPasswordValidator.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = StrongestPasswordValidator.framework; sourceTree = BUILT_PRODUCTS_DIR; };
- 264896594AC22C380A90D7B3255B49FF /* FBSDKAccessTokenCacheV3_17.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKAccessTokenCacheV3_17.h; path = FBSDKCoreKit/FBSDKCoreKit/Internal/TokenCaching/FBSDKAccessTokenCacheV3_17.h; sourceTree = ""; };
+ 016EAEBE0BC696D1D34CAD7B0FBD868C /* NACrypto.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = "sourcecode.module-map"; path = NACrypto.modulemap; sourceTree = ""; };
+ 01758BF23FF07FA93CE50C54FDA892D2 /* FBSDKAppEvents+Internal.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "FBSDKAppEvents+Internal.h"; path = "FBSDKCoreKit/FBSDKCoreKit/Internal/AppEvents/FBSDKAppEvents+Internal.h"; sourceTree = ""; };
+ 023C91065EEE2995D5705A2AD5D621AD /* EXPMatchers+match.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "EXPMatchers+match.m"; path = "Expecta/Matchers/EXPMatchers+match.m"; sourceTree = ""; };
+ 03B1511AC730F140345C0C9D6EBBC07B /* FBSDKSendButton.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKSendButton.m; path = FBSDKShareKit/FBSDKShareKit/FBSDKSendButton.m; sourceTree = ""; };
+ 041D05058111918430EDAD83681B98C4 /* NACrypto.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = NACrypto.framework; sourceTree = BUILT_PRODUCTS_DIR; };
+ 04F850B2D3C6545A95E6FC0EE15D3DE8 /* FBSDKGameRequestContent.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKGameRequestContent.h; path = FBSDKShareKit/FBSDKShareKit/FBSDKGameRequestContent.h; sourceTree = ""; };
+ 052A495E6F3AF41973A3790D717C2258 /* PEAR-FileManager-iOS-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "PEAR-FileManager-iOS-prefix.pch"; sourceTree = ""; };
+ 05ECA213712D5A55A5030D99D28129B8 /* PureLayout-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "PureLayout-dummy.m"; sourceTree = ""; };
+ 061CF1293688F3033F4E0985BEA19ED6 /* Expecta+Snapshots.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = "sourcecode.module-map"; path = "Expecta+Snapshots.modulemap"; sourceTree = ""; };
+ 06350CE9C444FCEA732C6294907949B4 /* FBSnapshotTestCase-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "FBSnapshotTestCase-prefix.pch"; sourceTree = ""; };
+ 072A9A7056F6F1B7573761BE6D6EEC50 /* FBSDKAppInviteDialog.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKAppInviteDialog.h; path = FBSDKShareKit/FBSDKShareKit/FBSDKAppInviteDialog.h; sourceTree = ""; };
+ 07C30D44AB8FFB23769BDDFBBB542F03 /* EXPMatchers+match.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "EXPMatchers+match.h"; path = "Expecta/Matchers/EXPMatchers+match.h"; sourceTree = ""; };
+ 0890DFD3FB25A709E9E787509F2862CE /* Expecta.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Expecta.framework; sourceTree = BUILT_PRODUCTS_DIR; };
+ 08DA5B54743E39B57A18D0DFF51410F9 /* nv-ios-http-status.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "nv-ios-http-status.xcconfig"; sourceTree = ""; };
+ 092A3ABAB59A2E64FDB7EB06E4928AEB /* PEAR_FileManager_iOS.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = PEAR_FileManager_iOS.framework; sourceTree = BUILT_PRODUCTS_DIR; };
+ 0939B61F4217A7DE3B15F0533C73395C /* FBSDKContainerViewController.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKContainerViewController.m; path = FBSDKCoreKit/FBSDKCoreKit/Internal/FBSDKContainerViewController.m; sourceTree = ""; };
+ 09D8056D33E0253A27B8B5BBECE4B223 /* EXPMatchers+endWith.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "EXPMatchers+endWith.h"; path = "Expecta/Matchers/EXPMatchers+endWith.h"; sourceTree = ""; };
+ 0A68CE26A7EB9B869CA141580484B818 /* PNInstallation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = PNInstallation.h; sourceTree = ""; };
+ 0A88B715BAC45F633959A65C2E5C6300 /* XCTest.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = XCTest.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS9.2.sdk/System/Library/Frameworks/XCTest.framework; sourceTree = DEVELOPER_DIR; };
+ 0AD43E348BC6B69AC559C6E75A925EC5 /* FBSDKBase64.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKBase64.h; path = FBSDKCoreKit/FBSDKCoreKit/Internal/Base64/FBSDKBase64.h; sourceTree = ""; };
+ 0B0C1E7874466D5B8CB3F4AB68607E10 /* EXPMatchers+equal.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "EXPMatchers+equal.m"; path = "Expecta/Matchers/EXPMatchers+equal.m"; sourceTree = ""; };
+ 0B88056D2C5A2ABB0ABC526D5B0DD524 /* FBSDKKeychainStoreViaBundleID.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKKeychainStoreViaBundleID.h; path = FBSDKCoreKit/FBSDKCoreKit/Internal/TokenCaching/FBSDKKeychainStoreViaBundleID.h; sourceTree = ""; };
+ 0BD2F7165924DDF581F728F15481D6CA /* Bolts.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = Bolts.xcconfig; sourceTree = ""; };
+ 0C6D4FC68CACC097DF3E01B0E29B14F9 /* FBSDKButton.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKButton.h; path = FBSDKCoreKit/FBSDKCoreKit/FBSDKButton.h; sourceTree = ""; };
+ 0C89B575425D4CE5A502B1F98A4B87EC /* EXPMatchers+beNil.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "EXPMatchers+beNil.h"; path = "Expecta/Matchers/EXPMatchers+beNil.h"; sourceTree = ""; };
+ 0C9F883E8E9823216CA90174FCAFB27C /* FBSDKGraphRequestMetadata.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKGraphRequestMetadata.m; path = FBSDKCoreKit/FBSDKCoreKit/Internal/Network/FBSDKGraphRequestMetadata.m; sourceTree = ""; };
+ 0D0FC91143EA3E5178CC9F840FE10922 /* NANSString+Utils.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NANSString+Utils.m"; path = "NACrypto/NANSString+Utils.m"; sourceTree = ""; };
+ 0D3F583C7330430F999E0353FF2A3968 /* FBSDKShareKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = FBSDKShareKit.framework; sourceTree = BUILT_PRODUCTS_DIR; };
+ 0DFD8469CDAE787C5285EE3942CB20E9 /* FBSDKShareDialogMode.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKShareDialogMode.m; path = FBSDKShareKit/FBSDKShareKit/FBSDKShareDialogMode.m; sourceTree = ""; };
+ 0F3F907E4E10D952A09C4EC677EB3F80 /* PureLayoutDefines.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = PureLayoutDefines.h; path = PureLayout/PureLayout/PureLayoutDefines.h; sourceTree = ""; };
+ 0F85CCE5CF7042F095C6F91F1241ADF0 /* FBSDKCoreKit-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "FBSDKCoreKit-dummy.m"; sourceTree = ""; };
+ 0FE66BF28004AA011E120A0F837D5D30 /* FBSDKAppEventsStateManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKAppEventsStateManager.m; path = FBSDKCoreKit/FBSDKCoreKit/Internal/AppEvents/FBSDKAppEventsStateManager.m; sourceTree = ""; };
+ 10D2C7B2E74A8EB75CB6AD71324A6266 /* FBSDKLoginError.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKLoginError.m; path = FBSDKLoginKit/FBSDKLoginKit/Internal/FBSDKLoginError.m; sourceTree = ""; };
+ 110D63918299219399B5E686610A76C7 /* FBSDKGraphErrorRecoveryProcessor.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKGraphErrorRecoveryProcessor.h; path = FBSDKCoreKit/FBSDKCoreKit/FBSDKGraphErrorRecoveryProcessor.h; sourceTree = ""; };
+ 1114AE3FB1E9C4F48DA13DFBAE9D65BA /* Expecta+Snapshots-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Expecta+Snapshots-prefix.pch"; sourceTree = ""; };
+ 113836F233CE3267194C751D245BD642 /* FBSDKTimeSpentData.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKTimeSpentData.h; path = FBSDKCoreKit/FBSDKCoreKit/Internal/AppEvents/FBSDKTimeSpentData.h; sourceTree = ""; };
+ 11B7DA58BAE6F4334DDF2C3185A5F93E /* nv-ios-http-status-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "nv-ios-http-status-dummy.m"; sourceTree = ""; };
+ 120116F366AC19D6F7894F0A7F12CFA9 /* XCTest+Private.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "XCTest+Private.h"; path = "Specta/Specta/XCTest+Private.h"; sourceTree = ""; };
+ 1214AB21FBDE72A1C27060DB90B60C34 /* NACounter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = NACounter.m; path = NACrypto/NACounter.m; sourceTree = ""; };
+ 12AC4F6AF495CC4378D13383BB314E0B /* EXPMatchers+raise.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "EXPMatchers+raise.m"; path = "Expecta/Matchers/EXPMatchers+raise.m"; sourceTree = ""; };
+ 1304A412F9BCE149E88D52CAC9FF3E3D /* NACrypto-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "NACrypto-prefix.pch"; sourceTree = ""; };
+ 132BF416536D19040AE45C5874827BFA /* FBSDKDialogConfiguration.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKDialogConfiguration.h; path = FBSDKCoreKit/FBSDKCoreKit/Internal/ServerConfiguration/FBSDKDialogConfiguration.h; sourceTree = ""; };
+ 13BE7B654648C7A428287C3B3FBDF300 /* FBSDKCheckmarkIcon.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKCheckmarkIcon.h; path = FBSDKShareKit/FBSDKShareKit/Internal/FBSDKCheckmarkIcon.h; sourceTree = ""; };
+ 1443AF1F98A02B90B6E6FB4DF67930E7 /* Base64.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = Base64.h; path = submodules/Base64/Base64/Base64.h; sourceTree = ""; };
+ 1450655E0535B7FD2AA7394CCA723CFF /* FBSnapshotTestCase.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSnapshotTestCase.h; path = FBSnapshotTestCase/FBSnapshotTestCase.h; sourceTree = ""; };
+ 149E2B540DB3F47AD1603549D9D99B54 /* FBSDKCoreKit+Internal.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "FBSDKCoreKit+Internal.h"; path = "FBSDKCoreKit/FBSDKCoreKit/Internal/FBSDKCoreKit+Internal.h"; sourceTree = ""; };
+ 14C4D22A020F8F77D4C2010C51DB22FA /* UIDevice_Utils.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = UIDevice_Utils.framework; sourceTree = BUILT_PRODUCTS_DIR; };
+ 14D50D04BE4021BC628AFFB630AA617C /* KeccakSponge.c */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.c; name = KeccakSponge.c; path = NACrypto/keccak/KeccakSponge.c; sourceTree = ""; };
+ 152858D19FBE4FC368C0B4A2A79F3353 /* BFCancellationToken.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = BFCancellationToken.h; path = Bolts/Common/BFCancellationToken.h; sourceTree = ""; };
+ 160F2A2B1C5DB32CCA75C679201A8748 /* SpectaTypes.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SpectaTypes.h; path = Specta/Specta/SpectaTypes.h; sourceTree = ""; };
+ 162DB249182718618FC6695A96D8F714 /* FBSDKShareOpenGraphValueContainer.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKShareOpenGraphValueContainer.m; path = FBSDKShareKit/FBSDKShareKit/FBSDKShareOpenGraphValueContainer.m; sourceTree = ""; };
+ 165D738406E6A0CA5DC038ED975820EE /* AFNetworkReachabilityManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = AFNetworkReachabilityManager.m; path = AFNetworking/AFNetworkReachabilityManager.m; sourceTree = ""; };
+ 166BFAD7C923BBA0E6988EC1CADCB33C /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; };
+ 16959F0EF1CF0866C17E18E16035303F /* FBSDKLoginManagerLoginResult.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKLoginManagerLoginResult.h; path = FBSDKLoginKit/FBSDKLoginKit/FBSDKLoginManagerLoginResult.h; sourceTree = ""; };
+ 169DA4A865BE3BA98DDA6F1E2B0246D4 /* EXPBlockDefinedMatcher.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = EXPBlockDefinedMatcher.m; path = Expecta/EXPBlockDefinedMatcher.m; sourceTree = ""; };
+ 16F05343A37C11D6122A3C527E914287 /* NSString-Helper.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = "sourcecode.module-map"; path = "NSString-Helper.modulemap"; sourceTree = ""; };
+ 16F3B67493D29F3920AFE9F8D235D569 /* FBSDKShareOpenGraphObject.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKShareOpenGraphObject.h; path = FBSDKShareKit/FBSDKShareKit/FBSDKShareOpenGraphObject.h; sourceTree = ""; };
+ 170E3A6A88C9DB2F2F51C61A5FBEA199 /* FBSDKViewImpressionTracker.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKViewImpressionTracker.h; path = FBSDKCoreKit/FBSDKCoreKit/Internal/UI/FBSDKViewImpressionTracker.h; sourceTree = ""; };
+ 175D03DC1833AD9C70017A1B5210AB22 /* UIDevice-Hardware.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIDevice-Hardware.h"; path = "Pod/Classes/UIDevice-Hardware.h"; sourceTree = ""; };
+ 175D925BE28F8A02DBB4CA48231447B7 /* EXPMatchers+postNotification.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "EXPMatchers+postNotification.h"; path = "Expecta/Matchers/EXPMatchers+postNotification.h"; sourceTree = ""; };
+ 180A24BC9965B2659473429032A9AB09 /* FBSDKShareOpenGraphObject.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKShareOpenGraphObject.m; path = FBSDKShareKit/FBSDKShareKit/FBSDKShareOpenGraphObject.m; sourceTree = ""; };
+ 1904238C31CE83E793FF1DBD437E38C2 /* AFURLSessionManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = AFURLSessionManager.h; path = AFNetworking/AFURLSessionManager.h; sourceTree = ""; };
+ 192670155DC824CED3032DDA12C42590 /* FBSDKShareButton.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKShareButton.m; path = FBSDKShareKit/FBSDKShareKit/FBSDKShareButton.m; sourceTree = ""; };
+ 19CE1B12F8E5DA929583451E503008E7 /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; };
+ 19E805A59003DE68968A06541D1BE975 /* HTTPStatusCodes.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HTTPStatusCodes.h; path = "nv-ios-http-status/HTTPStatusCodes.h"; sourceTree = ""; };
+ 1A444C84E5AEC696C0237390C2231363 /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; };
+ 1AEDFC37BA0799EC2BCF7AD1E6A0325F /* FBSDKBridgeAPIRequest.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKBridgeAPIRequest.m; path = FBSDKCoreKit/FBSDKCoreKit/Internal/BridgeAPI/FBSDKBridgeAPIRequest.m; sourceTree = ""; };
+ 1B27CB59DDCF9EFF5F39AE9E2A712325 /* PNUser.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = PNUser.m; sourceTree = ""; };
+ 1B55EED5B2B10EF380F551DD20CC222A /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; };
+ 1CA96E7E34630F730A20E35130F0A5CF /* AFImageDownloader.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = AFImageDownloader.h; path = "UIKit+AFNetworking/AFImageDownloader.h"; sourceTree = ""; };
+ 1D1989B9D9081B91B3722A1471785640 /* EXPMatchers+FBSnapshotTest.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "EXPMatchers+FBSnapshotTest.m"; sourceTree = ""; };
+ 1D67F20F0AAC18EF875EE34E9FEA66C9 /* FBSDKGraphRequestMetadata.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKGraphRequestMetadata.h; path = FBSDKCoreKit/FBSDKCoreKit/Internal/Network/FBSDKGraphRequestMetadata.h; sourceTree = ""; };
+ 1D9526013F0A33162931993059BBEC10 /* EXPMatchers+beIdenticalTo.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "EXPMatchers+beIdenticalTo.h"; path = "Expecta/Matchers/EXPMatchers+beIdenticalTo.h"; sourceTree = ""; };
+ 1E0DC34DF95907718855C13449C7D7DC /* CodFis_Helper.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = CodFis_Helper.framework; sourceTree = BUILT_PRODUCTS_DIR; };
+ 1E61CC4B72D13C136480767E7A045131 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS9.2.sdk/System/Library/Frameworks/UIKit.framework; sourceTree = DEVELOPER_DIR; };
+ 1EFBDC0643840BDD19CA60B88CA8D494 /* FBSDKConstants.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKConstants.h; path = FBSDKCoreKit/FBSDKCoreKit/FBSDKConstants.h; sourceTree = ""; };
+ 1F827D99DA03AF81C3BD33ED62AD877D /* FBSDKAppGroupJoinDialog.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKAppGroupJoinDialog.m; path = FBSDKShareKit/FBSDKShareKit/FBSDKAppGroupJoinDialog.m; sourceTree = ""; };
+ 1FAF5C735E8C7A40B2FCAC693EEE9743 /* EXPMatchers+beInTheRangeOf.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "EXPMatchers+beInTheRangeOf.m"; path = "Expecta/Matchers/EXPMatchers+beInTheRangeOf.m"; sourceTree = ""; };
+ 1FC3E1127DA5470EAC4C5000F5A43098 /* Expecta+Snapshots-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Expecta+Snapshots-umbrella.h"; sourceTree = ""; };
+ 1FF4ACD57C00F851C1DB78B19FFC8A18 /* FBSDKMutableCopying.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKMutableCopying.h; path = FBSDKCoreKit/FBSDKCoreKit/FBSDKMutableCopying.h; sourceTree = ""; };
+ 204A562A9B303D94CD33977FB6B879F7 /* FBSDKLoginManager+Internal.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "FBSDKLoginManager+Internal.h"; path = "FBSDKLoginKit/FBSDKLoginKit/Internal/FBSDKLoginManager+Internal.h"; sourceTree = ""; };
+ 204CC269CCF56DD659DCD99510C29EA0 /* FBSDKPaymentObserver.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKPaymentObserver.h; path = FBSDKCoreKit/FBSDKCoreKit/Internal/AppEvents/FBSDKPaymentObserver.h; sourceTree = ""; };
+ 206CBA3ED3A77BFA642359BD2C05F19D /* FBSDKLikeButtonPopWAV.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKLikeButtonPopWAV.m; path = FBSDKShareKit/FBSDKShareKit/Internal/FBSDKLikeButtonPopWAV.m; sourceTree = ""; };
+ 20724E44122A16167C1B886A13471817 /* EXPMatchers+beLessThan.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "EXPMatchers+beLessThan.m"; path = "Expecta/Matchers/EXPMatchers+beLessThan.m"; sourceTree = ""; };
+ 20784A589A4951F78D02B9EEF03EF81F /* FBSDKShareKit-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "FBSDKShareKit-umbrella.h"; sourceTree = ""; };
+ 210CC8A47CD81BCA8D71AAAD022C58EE /* PNLocation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = PNLocation.h; sourceTree = ""; };
+ 21BDEFED719999A3A3EE833401B21009 /* FBSDKShareLinkContent+Internal.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "FBSDKShareLinkContent+Internal.h"; path = "FBSDKShareKit/FBSDKShareKit/Internal/FBSDKShareLinkContent+Internal.h"; sourceTree = ""; };
+ 221CB94EF12C631BF08886039B6CCC74 /* FBSDKColor.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKColor.m; path = FBSDKCoreKit/FBSDKCoreKit/Internal/UI/FBSDKColor.m; sourceTree = ""; };
+ 223FA2741392E9122CC222EE6A09256C /* SPTCallSite.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SPTCallSite.m; path = Specta/Specta/SPTCallSite.m; sourceTree = ""; };
+ 22B1F591560188C6C20E063617441582 /* NSValue+Expecta.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSValue+Expecta.m"; path = "Expecta/NSValue+Expecta.m"; sourceTree = ""; };
+ 22DA02E197D4B1F7B4694EE679E3FF1E /* EXPUnsupportedObject.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = EXPUnsupportedObject.m; path = Expecta/EXPUnsupportedObject.m; sourceTree = ""; };
+ 24540C64C4FB6788C8BFB9912A832608 /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; };
+ 24DD323A762754CD4D38F86486881A38 /* FBSDKURLOpening.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKURLOpening.h; path = FBSDKCoreKit/FBSDKCoreKit/Internal/BridgeAPI/FBSDKURLOpening.h; sourceTree = ""; };
+ 254E2DE5BB0612C2D3F355C0C2F57214 /* NATwoFish.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = NATwoFish.m; path = NACrypto/NATwoFish.m; sourceTree = ""; };
+ 25BDEBF84A231E3C1A61B394969C1259 /* FBSDKBridgeAPIProtocolWebV2.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKBridgeAPIProtocolWebV2.m; path = FBSDKCoreKit/FBSDKCoreKit/Internal/BridgeAPI/ProtocolVersions/FBSDKBridgeAPIProtocolWebV2.m; sourceTree = ""; };
+ 26422046775D771F4A7EC4C86A7E3E8C /* NASHA3.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = NASHA3.m; path = NACrypto/NASHA3.m; sourceTree = ""; };
+ 269152C6A03486F78CE871291B2315E5 /* UIDevice_Utils.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = UIDevice_Utils.framework; sourceTree = BUILT_PRODUCTS_DIR; };
2701DCB1C4CA2591F34532CBFE0BC596 /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; };
- 27E02A07C54429C2E4DF80F204D731F1 /* Expecta-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Expecta-dummy.m"; sourceTree = ""; };
- 27FE056362B56D01CB354DFA81FC7470 /* UIDevice-Utils-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "UIDevice-Utils-dummy.m"; sourceTree = ""; };
- 2A12339CE3502085612FF731B48C2166 /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; };
- 2AC36C181B406F31796C32B6EB8BB3AF /* VatNumber+Helper.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "VatNumber+Helper.m"; path = "CodFis-Helper/VatNumber+Helper.m"; sourceTree = ""; };
- 2B22B75292CB3C5B451474803BEF3C92 /* StrongestPasswordValidator.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = StrongestPasswordValidator.h; path = Pod/Classes/StrongestPasswordValidator.h; sourceTree = ""; };
- 2B2C00E8B4191825906EAB274E3DBC16 /* FBSDKShareOpenGraphObject.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKShareOpenGraphObject.h; path = FBSDKShareKit/FBSDKShareKit/FBSDKShareOpenGraphObject.h; sourceTree = ""; };
- 2B3265CA4C64A889E5B268C2190A779E /* FBSDKLoginButton.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKLoginButton.h; path = FBSDKLoginKit/FBSDKLoginKit/FBSDKLoginButton.h; sourceTree = ""; };
- 2B5CEF91C53F17BD1B3BFD279BDAED78 /* UIImage+Snapshot.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIImage+Snapshot.m"; path = "FBSnapshotTestCase/Categories/UIImage+Snapshot.m"; sourceTree = ""; };
- 2BF886C40793890196F00248AE2A1736 /* SPTGlobalBeforeAfterEach.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SPTGlobalBeforeAfterEach.h; path = Specta/Specta/SPTGlobalBeforeAfterEach.h; sourceTree = ""; };
- 2C11E487F5B0D41461C7CC5105A7C45C /* FBSDKAppEventsStateManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKAppEventsStateManager.m; path = FBSDKCoreKit/FBSDKCoreKit/Internal/AppEvents/FBSDKAppEventsStateManager.m; sourceTree = ""; };
- 2C8C4901FC6A30AEC6162569CB69A5ED /* FBSDKServerConfiguration.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKServerConfiguration.m; path = FBSDKCoreKit/FBSDKCoreKit/Internal/ServerConfiguration/FBSDKServerConfiguration.m; sourceTree = ""; };
- 2CEB36A633CECB76D6838E2E9C892579 /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; };
- 2CFAC21835D54078080C7B6AC770775F /* FBSDKCrypto.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = FBSDKCrypto.m; path = FBSDKCoreKit/FBSDKCoreKit/Internal/Cryptography/FBSDKCrypto.m; sourceTree = ""; };
- 2DF6275EA9617E82375B652324EF56E7 /* XCTest+Private.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "XCTest+Private.h"; path = "Specta/Specta/XCTest+Private.h"; sourceTree = ""; };
- 2E52B5C6B84E6630681D149C5EC1C801 /* FBSDKSharing.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKSharing.h; path = FBSDKShareKit/FBSDKShareKit/FBSDKSharing.h; sourceTree = ""; };
- 2E7631FE5FF32DA7D05E326CD8536268 /* FBSDKAccessTokenCacheV3.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKAccessTokenCacheV3.h; path = FBSDKCoreKit/FBSDKCoreKit/Internal/TokenCaching/FBSDKAccessTokenCacheV3.h; sourceTree = ""; };
- 2E7C8F4F4486FE70D94453D7294FE687 /* AFNetworkActivityIndicatorManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = AFNetworkActivityIndicatorManager.m; path = "UIKit+AFNetworking/AFNetworkActivityIndicatorManager.m"; sourceTree = ""; };
- 2EC6FA678332DC3495DC88D38943C6A3 /* Bolts.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = Bolts.h; path = Bolts/Common/Bolts.h; sourceTree = ""; };
- 3028274A2D3024E1AC7889D1994AB346 /* SPTCompiledExample.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SPTCompiledExample.m; path = Specta/Specta/SPTCompiledExample.m; sourceTree = ""; };
- 3054FF74DD95D1D22928A1D43A4E81E3 /* EXPMatchers+endWith.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "EXPMatchers+endWith.m"; path = "Expecta/Matchers/EXPMatchers+endWith.m"; sourceTree = ""; };
- 3089AAC7B1FB370F2F2B50A86B70A367 /* FBSDKSystemAccountStoreAdapter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKSystemAccountStoreAdapter.h; path = FBSDKCoreKit/FBSDKCoreKit/Internal/FBSDKSystemAccountStoreAdapter.h; sourceTree = ""; };
- 30ED9CE6AE0CAE7EE4B27ADC1F8B5EC7 /* FBSDKBridgeAPIProtocolWebV1.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = FBSDKBridgeAPIProtocolWebV1.h; path = FBSDKCoreKit/FBSDKCoreKit/Internal/BridgeAPI/ProtocolVersions/FBSDKBridgeAPIProtocolWebV1.h; sourceTree = ""; };
- 30F80493C20050B0C1FC23099CD3CE9F /* FBSnapshotTestCase.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = FBSnapshotTestCase.xcconfig; sourceTree = ""; };
- 3127752AA07703849645BD1E296F0E82 /* FBSDKCoreKit-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "FBSDKCoreKit-umbrella.h"; sourceTree = ""; };
- 31AC5C57CC37523518C40A573BBF07E0 /* EXPMatchers+contain.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "EXPMatchers+contain.h"; path = "Expecta/Matchers/EXPMatchers+contain.h"; sourceTree = ""; };
- 31BDB3D8DFB272D42E0963F9CDC99DEC /* EXPMatcherHelpers.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = EXPMatcherHelpers.h; path = Expecta/Matchers/EXPMatcherHelpers.h; sourceTree = "