From c42f1f5030d3e2b58a85df5679650b2a5577c77a Mon Sep 17 00:00:00 2001 From: wu736139669 Date: Thu, 2 Apr 2015 09:37:44 +0800 Subject: [PATCH] =?UTF-8?q?add=20=E5=9B=BE=E7=89=87=E6=B5=8F=E8=A7=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Podfile.lock | 15 +- .../DACircularProgressView.h | 25 + .../DACircularProgressView.m | 271 + .../MJRefresh/MJRefreshConst.m | 2 +- .../MJRefresh/MJRefreshFooter.m | 2 + .../MJRefresh/MJRefreshHeader.m | 9 +- .../MWPhotoBrowser/Classes/MWCaptionView.h | 33 + .../MWPhotoBrowser/Classes/MWCaptionView.m | 106 + .../MWPhotoBrowser/Classes/MWCommon.h | 12 + .../MWPhotoBrowser/Classes/MWGridCell.h | 24 + .../MWPhotoBrowser/Classes/MWGridCell.m | 223 + .../Classes/MWGridViewController.h | 19 + .../Classes/MWGridViewController.m | 205 + .../MWPhotoBrowser/Classes/MWPhoto.h | 32 + .../MWPhotoBrowser/Classes/MWPhoto.m | 219 + .../MWPhotoBrowser/Classes/MWPhotoBrowser.h | 71 + .../MWPhotoBrowser/Classes/MWPhotoBrowser.m | 1665 +++++ .../Classes/MWPhotoBrowserPrivate.h | 136 + .../MWPhotoBrowser/Classes/MWPhotoProtocol.h | 64 + .../Classes/MWTapDetectingImageView.h | 27 + .../Classes/MWTapDetectingImageView.m | 68 + .../Classes/MWTapDetectingView.h | 27 + .../Classes/MWTapDetectingView.m | 61 + .../Classes/MWZoomingScrollView.h | 31 + .../Classes/MWZoomingScrollView.m | 411 ++ .../images/Checkmark.png | Bin 0 -> 1609 bytes .../images/Checkmark@2x.png | Bin 0 -> 2156 bytes .../images/ImageError.png | Bin 0 -> 1187 bytes .../images/ImageError@2x.png | Bin 0 -> 1533 bytes .../images/ImageSelectedOff.png | Bin 0 -> 2641 bytes .../images/ImageSelectedOff@2x.png | Bin 0 -> 4839 bytes .../images/ImageSelectedOn.png | Bin 0 -> 2682 bytes .../images/ImageSelectedOn@2x.png | Bin 0 -> 4571 bytes .../images/ImageSelectedSmallOff.png | Bin 0 -> 1932 bytes .../images/ImageSelectedSmallOff@2x.png | Bin 0 -> 3296 bytes .../images/ImageSelectedSmallOn.png | Bin 0 -> 2141 bytes .../images/ImageSelectedSmallOn@2x.png | Bin 0 -> 3543 bytes .../images/UIBarButtonItemArrowLeft.png | Bin 0 -> 1169 bytes .../images/UIBarButtonItemArrowLeft@2x.png | Bin 0 -> 1360 bytes .../UIBarButtonItemArrowOutlineLeft.png | Bin 0 -> 1135 bytes .../UIBarButtonItemArrowOutlineLeft@2x.png | Bin 0 -> 1261 bytes .../UIBarButtonItemArrowOutlineRight.png | Bin 0 -> 1115 bytes .../UIBarButtonItemArrowOutlineRight@2x.png | Bin 0 -> 1253 bytes .../images/UIBarButtonItemArrowRight.png | Bin 0 -> 1158 bytes .../images/UIBarButtonItemArrowRight@2x.png | Bin 0 -> 1355 bytes .../images/UIBarButtonItemGrid.png | Bin 0 -> 1044 bytes .../images/UIBarButtonItemGrid@2x.png | Bin 0 -> 1063 bytes .../images/UIBarButtonItemGridiOS6.png | Bin 0 -> 1028 bytes .../images/UIBarButtonItemGridiOS6@2x.png | Bin 0 -> 1058 bytes Pods/Manifest.lock | 15 +- .../NSIndexPath+PSTCollectionViewAdditions.h | 20 + .../NSIndexPath+PSTCollectionViewAdditions.m | 25 + .../PSTCollectionView/PSTCollectionView.h | 136 + .../PSTCollectionView/PSTCollectionView.m | 2311 +++++++ .../PSTCollectionView/PSTCollectionViewCell.h | 49 + .../PSTCollectionView/PSTCollectionViewCell.m | 264 + .../PSTCollectionViewCommon.h | 73 + .../PSTCollectionViewController.h | 24 + .../PSTCollectionViewController.m | 145 + .../PSTCollectionView/PSTCollectionViewData.h | 75 + .../PSTCollectionView/PSTCollectionViewData.m | 235 + .../PSTCollectionViewFlowLayout.h | 115 + .../PSTCollectionViewFlowLayout.m | 420 ++ .../PSTCollectionViewItemKey.h | 28 + .../PSTCollectionViewItemKey.m | 77 + .../PSTCollectionViewLayout+Internals.h | 18 + .../PSTCollectionViewLayout.h | 128 + .../PSTCollectionViewLayout.m | 481 ++ .../PSTCollectionViewUpdateItem.h | 41 + .../PSTCollectionViewUpdateItem.m | 117 + .../PSTCollectionView/PSTGridLayoutInfo.h | 43 + .../PSTCollectionView/PSTGridLayoutInfo.m | 76 + .../PSTCollectionView/PSTGridLayoutItem.h | 19 + .../PSTCollectionView/PSTGridLayoutItem.m | 19 + .../PSTCollectionView/PSTGridLayoutRow.h | 43 + .../PSTCollectionView/PSTGridLayoutRow.m | 193 + .../PSTCollectionView/PSTGridLayoutSection.h | 64 + .../PSTCollectionView/PSTGridLayoutSection.m | 210 + Pods/Pods.xcodeproj/project.pbxproj | 6121 +++++++++-------- .../xcschemes/Pods-AFNetworking.xcscheme | 2 +- .../xcschemes/Pods-DTCoreText.xcscheme | 2 +- .../xcschemes/Pods-DTFoundation.xcscheme | 2 +- .../xcschemes/Pods-EGOCache.xcscheme | 2 +- .../xcschemes/Pods-Godzippa.xcscheme | 2 +- .../xcschemes/Pods-MBProgressHUD.xcscheme | 2 +- .../xcschemes/Pods-MJRefresh.xcscheme | 2 +- .../xcschemes/Pods-Mantle.xcscheme | 2 +- .../xcschemes/Pods-Reachability.xcscheme | 2 +- .../xcschemes/Pods-SBJson.xcscheme | 2 +- .../xcschemes/Pods-SDWebImage.xcscheme | 2 +- .../Pods-STableViewController.xcscheme | 2 +- .../xcschemes/Pods-SecureUDID.xcscheme | 2 +- .../xcschemes/Pods.xcscheme | 2 +- .../xcschemes/xcschememanagement.plist | 58 +- .../Pods-AFNetworking-Private.xcconfig | 2 +- .../Pods-DACircularProgress-Private.xcconfig | 6 + .../Pods-DACircularProgress-dummy.m | 5 + .../Pods-DACircularProgress-prefix.pch | 5 + .../Pods-DACircularProgress.xcconfig | 1 + .../Pods-DTCoreText-Private.xcconfig | 2 +- .../Pods-DTFoundation-Private.xcconfig | 2 +- .../Pods-EGOCache-Private.xcconfig | 2 +- .../Pods-Godzippa-Private.xcconfig | 2 +- .../Pods-MBProgressHUD-Private.xcconfig | 2 +- .../Pods-MJRefresh-Private.xcconfig | 2 +- .../Pods-MWPhotoBrowser-Private.xcconfig | 6 + .../Pods-MWPhotoBrowser-dummy.m | 5 + .../Pods-MWPhotoBrowser-prefix.pch | 5 + .../Pods-MWPhotoBrowser.xcconfig | 1 + .../Pods-Mantle/Pods-Mantle-Private.xcconfig | 2 +- .../Pods-PSTCollectionView-Private.xcconfig | 6 + .../Pods-PSTCollectionView-dummy.m | 5 + .../Pods-PSTCollectionView-prefix.pch | 5 + .../Pods-PSTCollectionView.xcconfig | 1 + .../Pods-Reachability-Private.xcconfig | 2 +- .../Pods-SBJson/Pods-SBJson-Private.xcconfig | 2 +- .../Pods-SDWebImage-Private.xcconfig | 2 +- ...Pods-STableViewController-Private.xcconfig | 2 +- .../Pods-SecureUDID-Private.xcconfig | 2 +- .../Pods/Pods-acknowledgements.markdown | 71 + .../Pods/Pods-acknowledgements.plist | 83 + .../Pods/Pods-environment.h | 20 +- .../Pods/Pods-resources.sh | 2 + .../Pods/Pods.debug.xcconfig | 6 +- .../Pods/Pods.release.xcconfig | 6 +- 125 files changed, 12910 insertions(+), 2784 deletions(-) create mode 100644 Pods/DACircularProgress/DACircularProgress/DACircularProgressView.h create mode 100644 Pods/DACircularProgress/DACircularProgress/DACircularProgressView.m create mode 100644 Pods/MWPhotoBrowser/MWPhotoBrowser/Classes/MWCaptionView.h create mode 100644 Pods/MWPhotoBrowser/MWPhotoBrowser/Classes/MWCaptionView.m create mode 100644 Pods/MWPhotoBrowser/MWPhotoBrowser/Classes/MWCommon.h create mode 100644 Pods/MWPhotoBrowser/MWPhotoBrowser/Classes/MWGridCell.h create mode 100644 Pods/MWPhotoBrowser/MWPhotoBrowser/Classes/MWGridCell.m create mode 100644 Pods/MWPhotoBrowser/MWPhotoBrowser/Classes/MWGridViewController.h create mode 100644 Pods/MWPhotoBrowser/MWPhotoBrowser/Classes/MWGridViewController.m create mode 100644 Pods/MWPhotoBrowser/MWPhotoBrowser/Classes/MWPhoto.h create mode 100644 Pods/MWPhotoBrowser/MWPhotoBrowser/Classes/MWPhoto.m create mode 100644 Pods/MWPhotoBrowser/MWPhotoBrowser/Classes/MWPhotoBrowser.h create mode 100644 Pods/MWPhotoBrowser/MWPhotoBrowser/Classes/MWPhotoBrowser.m create mode 100644 Pods/MWPhotoBrowser/MWPhotoBrowser/Classes/MWPhotoBrowserPrivate.h create mode 100644 Pods/MWPhotoBrowser/MWPhotoBrowser/Classes/MWPhotoProtocol.h create mode 100644 Pods/MWPhotoBrowser/MWPhotoBrowser/Classes/MWTapDetectingImageView.h create mode 100644 Pods/MWPhotoBrowser/MWPhotoBrowser/Classes/MWTapDetectingImageView.m create mode 100644 Pods/MWPhotoBrowser/MWPhotoBrowser/Classes/MWTapDetectingView.h create mode 100644 Pods/MWPhotoBrowser/MWPhotoBrowser/Classes/MWTapDetectingView.m create mode 100644 Pods/MWPhotoBrowser/MWPhotoBrowser/Classes/MWZoomingScrollView.h create mode 100644 Pods/MWPhotoBrowser/MWPhotoBrowser/Classes/MWZoomingScrollView.m create mode 100755 Pods/MWPhotoBrowser/MWPhotoBrowser/MWPhotoBrowser.bundle/images/Checkmark.png create mode 100755 Pods/MWPhotoBrowser/MWPhotoBrowser/MWPhotoBrowser.bundle/images/Checkmark@2x.png create mode 100644 Pods/MWPhotoBrowser/MWPhotoBrowser/MWPhotoBrowser.bundle/images/ImageError.png create mode 100644 Pods/MWPhotoBrowser/MWPhotoBrowser/MWPhotoBrowser.bundle/images/ImageError@2x.png create mode 100644 Pods/MWPhotoBrowser/MWPhotoBrowser/MWPhotoBrowser.bundle/images/ImageSelectedOff.png create mode 100644 Pods/MWPhotoBrowser/MWPhotoBrowser/MWPhotoBrowser.bundle/images/ImageSelectedOff@2x.png create mode 100644 Pods/MWPhotoBrowser/MWPhotoBrowser/MWPhotoBrowser.bundle/images/ImageSelectedOn.png create mode 100644 Pods/MWPhotoBrowser/MWPhotoBrowser/MWPhotoBrowser.bundle/images/ImageSelectedOn@2x.png create mode 100644 Pods/MWPhotoBrowser/MWPhotoBrowser/MWPhotoBrowser.bundle/images/ImageSelectedSmallOff.png create mode 100644 Pods/MWPhotoBrowser/MWPhotoBrowser/MWPhotoBrowser.bundle/images/ImageSelectedSmallOff@2x.png create mode 100644 Pods/MWPhotoBrowser/MWPhotoBrowser/MWPhotoBrowser.bundle/images/ImageSelectedSmallOn.png create mode 100644 Pods/MWPhotoBrowser/MWPhotoBrowser/MWPhotoBrowser.bundle/images/ImageSelectedSmallOn@2x.png create mode 100644 Pods/MWPhotoBrowser/MWPhotoBrowser/MWPhotoBrowser.bundle/images/UIBarButtonItemArrowLeft.png create mode 100644 Pods/MWPhotoBrowser/MWPhotoBrowser/MWPhotoBrowser.bundle/images/UIBarButtonItemArrowLeft@2x.png create mode 100644 Pods/MWPhotoBrowser/MWPhotoBrowser/MWPhotoBrowser.bundle/images/UIBarButtonItemArrowOutlineLeft.png create mode 100644 Pods/MWPhotoBrowser/MWPhotoBrowser/MWPhotoBrowser.bundle/images/UIBarButtonItemArrowOutlineLeft@2x.png create mode 100644 Pods/MWPhotoBrowser/MWPhotoBrowser/MWPhotoBrowser.bundle/images/UIBarButtonItemArrowOutlineRight.png create mode 100644 Pods/MWPhotoBrowser/MWPhotoBrowser/MWPhotoBrowser.bundle/images/UIBarButtonItemArrowOutlineRight@2x.png create mode 100644 Pods/MWPhotoBrowser/MWPhotoBrowser/MWPhotoBrowser.bundle/images/UIBarButtonItemArrowRight.png create mode 100644 Pods/MWPhotoBrowser/MWPhotoBrowser/MWPhotoBrowser.bundle/images/UIBarButtonItemArrowRight@2x.png create mode 100644 Pods/MWPhotoBrowser/MWPhotoBrowser/MWPhotoBrowser.bundle/images/UIBarButtonItemGrid.png create mode 100644 Pods/MWPhotoBrowser/MWPhotoBrowser/MWPhotoBrowser.bundle/images/UIBarButtonItemGrid@2x.png create mode 100644 Pods/MWPhotoBrowser/MWPhotoBrowser/MWPhotoBrowser.bundle/images/UIBarButtonItemGridiOS6.png create mode 100644 Pods/MWPhotoBrowser/MWPhotoBrowser/MWPhotoBrowser.bundle/images/UIBarButtonItemGridiOS6@2x.png create mode 100644 Pods/PSTCollectionView/PSTCollectionView/NSIndexPath+PSTCollectionViewAdditions.h create mode 100644 Pods/PSTCollectionView/PSTCollectionView/NSIndexPath+PSTCollectionViewAdditions.m create mode 100644 Pods/PSTCollectionView/PSTCollectionView/PSTCollectionView.h create mode 100644 Pods/PSTCollectionView/PSTCollectionView/PSTCollectionView.m create mode 100644 Pods/PSTCollectionView/PSTCollectionView/PSTCollectionViewCell.h create mode 100644 Pods/PSTCollectionView/PSTCollectionView/PSTCollectionViewCell.m create mode 100644 Pods/PSTCollectionView/PSTCollectionView/PSTCollectionViewCommon.h create mode 100644 Pods/PSTCollectionView/PSTCollectionView/PSTCollectionViewController.h create mode 100644 Pods/PSTCollectionView/PSTCollectionView/PSTCollectionViewController.m create mode 100644 Pods/PSTCollectionView/PSTCollectionView/PSTCollectionViewData.h create mode 100644 Pods/PSTCollectionView/PSTCollectionView/PSTCollectionViewData.m create mode 100644 Pods/PSTCollectionView/PSTCollectionView/PSTCollectionViewFlowLayout.h create mode 100644 Pods/PSTCollectionView/PSTCollectionView/PSTCollectionViewFlowLayout.m create mode 100644 Pods/PSTCollectionView/PSTCollectionView/PSTCollectionViewItemKey.h create mode 100644 Pods/PSTCollectionView/PSTCollectionView/PSTCollectionViewItemKey.m create mode 100644 Pods/PSTCollectionView/PSTCollectionView/PSTCollectionViewLayout+Internals.h create mode 100644 Pods/PSTCollectionView/PSTCollectionView/PSTCollectionViewLayout.h create mode 100644 Pods/PSTCollectionView/PSTCollectionView/PSTCollectionViewLayout.m create mode 100644 Pods/PSTCollectionView/PSTCollectionView/PSTCollectionViewUpdateItem.h create mode 100644 Pods/PSTCollectionView/PSTCollectionView/PSTCollectionViewUpdateItem.m create mode 100644 Pods/PSTCollectionView/PSTCollectionView/PSTGridLayoutInfo.h create mode 100644 Pods/PSTCollectionView/PSTCollectionView/PSTGridLayoutInfo.m create mode 100644 Pods/PSTCollectionView/PSTCollectionView/PSTGridLayoutItem.h create mode 100644 Pods/PSTCollectionView/PSTCollectionView/PSTGridLayoutItem.m create mode 100644 Pods/PSTCollectionView/PSTCollectionView/PSTGridLayoutRow.h create mode 100644 Pods/PSTCollectionView/PSTCollectionView/PSTGridLayoutRow.m create mode 100644 Pods/PSTCollectionView/PSTCollectionView/PSTGridLayoutSection.h create mode 100644 Pods/PSTCollectionView/PSTCollectionView/PSTGridLayoutSection.m create mode 100644 Pods/Target Support Files/Pods-DACircularProgress/Pods-DACircularProgress-Private.xcconfig create mode 100644 Pods/Target Support Files/Pods-DACircularProgress/Pods-DACircularProgress-dummy.m create mode 100644 Pods/Target Support Files/Pods-DACircularProgress/Pods-DACircularProgress-prefix.pch create mode 100644 Pods/Target Support Files/Pods-DACircularProgress/Pods-DACircularProgress.xcconfig create mode 100644 Pods/Target Support Files/Pods-MWPhotoBrowser/Pods-MWPhotoBrowser-Private.xcconfig create mode 100644 Pods/Target Support Files/Pods-MWPhotoBrowser/Pods-MWPhotoBrowser-dummy.m create mode 100644 Pods/Target Support Files/Pods-MWPhotoBrowser/Pods-MWPhotoBrowser-prefix.pch create mode 100644 Pods/Target Support Files/Pods-MWPhotoBrowser/Pods-MWPhotoBrowser.xcconfig create mode 100644 Pods/Target Support Files/Pods-PSTCollectionView/Pods-PSTCollectionView-Private.xcconfig create mode 100644 Pods/Target Support Files/Pods-PSTCollectionView/Pods-PSTCollectionView-dummy.m create mode 100644 Pods/Target Support Files/Pods-PSTCollectionView/Pods-PSTCollectionView-prefix.pch create mode 100644 Pods/Target Support Files/Pods-PSTCollectionView/Pods-PSTCollectionView.xcconfig diff --git a/Podfile.lock b/Podfile.lock index c4f2bc9..65a873b 100644 --- a/Podfile.lock +++ b/Podfile.lock @@ -20,6 +20,7 @@ PODS: - AFNetworking/UIKit (2.5.2): - AFNetworking/NSURLConnection - AFNetworking/NSURLSession + - DACircularProgress (2.2.0) - DTCoreText (1.6.15): - DTFoundation/Core (~> 1.7.5) - DTFoundation/DTAnimatedGIF (~> 1.7.5) @@ -37,7 +38,13 @@ PODS: - Mantle/extobjc (= 1.5.4) - Mantle/extobjc (1.5.4) - MBProgressHUD (0.9.1) - - MJRefresh (1.4.1) + - MJRefresh (1.4.3) + - MWPhotoBrowser (1.4.1): + - DACircularProgress + - MBProgressHUD (~> 0.8) + - PSTCollectionView (~> 1.2) + - SDWebImage (~> 3.7) + - PSTCollectionView (1.2.3) - Reachability (3.2) - SBJson (4.0.1) - SDWebImage (3.7.2): @@ -54,6 +61,7 @@ DEPENDENCIES: - Mantle - MBProgressHUD - MJRefresh + - MWPhotoBrowser - Reachability - SBJson - SDWebImage @@ -62,13 +70,16 @@ DEPENDENCIES: SPEC CHECKSUMS: AFNetworking: fefbce9660acb17f48ae0011292d4da0f457bf36 + DACircularProgress: 0f92b77239d5f3c612fc66185e2998391ac8e054 DTCoreText: 13ce06e63204a3b47c9db974e3d9be982bb0b1ed DTFoundation: 1d28080c20c3da041706545363f8238ab53a6204 EGOCache: e7bdb2bf15a2ad23bf6c67c664c9fc3694652482 Godzippa: 21621e8ddc2f1521db473a72b48148c3f0e79d76 Mantle: 60acd0cd363e27d945bda0a6b8e90577112d28f3 MBProgressHUD: c47f2c166c126cf2ce36498d80f33e754d4e93ad - MJRefresh: 6a0fd4c81a957803bd99bbbf55a956d1d6f41263 + MJRefresh: 6eb09aefa9622f0908fdf42d63c2070478c04c42 + MWPhotoBrowser: 2531e682860d62b8a7ba8659de02eb9040e431e5 + PSTCollectionView: 6749df92885353521f55279a7ce2b293762e2be4 Reachability: 33e18b67625424e47b6cde6d202dce689ad7af96 SBJson: 68f16f446bd6047dc3dd1ec4919a468c2cd7fedd SDWebImage: 71b7cdc1d1721d6a82ed62889030225f2c249e29 diff --git a/Pods/DACircularProgress/DACircularProgress/DACircularProgressView.h b/Pods/DACircularProgress/DACircularProgress/DACircularProgressView.h new file mode 100644 index 0000000..7814688 --- /dev/null +++ b/Pods/DACircularProgress/DACircularProgress/DACircularProgressView.h @@ -0,0 +1,25 @@ +// +// DACircularProgressView.h +// DACircularProgress +// +// Created by Daniel Amitay on 2/6/12. +// Copyright (c) 2012 Daniel Amitay. All rights reserved. +// + +#import + +@interface DACircularProgressView : UIView + +@property(nonatomic, strong) UIColor *trackTintColor UI_APPEARANCE_SELECTOR; +@property(nonatomic, strong) UIColor *progressTintColor UI_APPEARANCE_SELECTOR; +@property(nonatomic) NSInteger roundedCorners UI_APPEARANCE_SELECTOR; // Can not use BOOL with UI_APPEARANCE_SELECTOR :-( +@property(nonatomic) CGFloat thicknessRatio UI_APPEARANCE_SELECTOR; +@property(nonatomic) NSInteger clockwiseProgress UI_APPEARANCE_SELECTOR; // Can not use BOOL with UI_APPEARANCE_SELECTOR :-( +@property(nonatomic) CGFloat progress; + +@property(nonatomic) CGFloat indeterminateDuration UI_APPEARANCE_SELECTOR; +@property(nonatomic) NSInteger indeterminate UI_APPEARANCE_SELECTOR; // Can not use BOOL with UI_APPEARANCE_SELECTOR :-( + +- (void)setProgress:(CGFloat)progress animated:(BOOL)animated; + +@end diff --git a/Pods/DACircularProgress/DACircularProgress/DACircularProgressView.m b/Pods/DACircularProgress/DACircularProgress/DACircularProgressView.m new file mode 100644 index 0000000..928206c --- /dev/null +++ b/Pods/DACircularProgress/DACircularProgress/DACircularProgressView.m @@ -0,0 +1,271 @@ +// +// DACircularProgressView.m +// DACircularProgress +// +// Created by Daniel Amitay on 2/6/12. +// Copyright (c) 2012 Daniel Amitay. All rights reserved. +// + +#import "DACircularProgressView.h" + +#import + +@interface DACircularProgressLayer : CALayer + +@property(nonatomic, strong) UIColor *trackTintColor; +@property(nonatomic, strong) UIColor *progressTintColor; +@property(nonatomic) NSInteger roundedCorners; +@property(nonatomic) CGFloat thicknessRatio; +@property(nonatomic) CGFloat progress; +@property(nonatomic) NSInteger clockwiseProgress; + +@end + +@implementation DACircularProgressLayer + +@dynamic trackTintColor; +@dynamic progressTintColor; +@dynamic roundedCorners; +@dynamic thicknessRatio; +@dynamic progress; +@dynamic clockwiseProgress; + ++ (BOOL)needsDisplayForKey:(NSString *)key +{ + if ([key isEqualToString:@"progress"]) { + return YES; + } else { + return [super needsDisplayForKey:key]; + } +} + +- (void)drawInContext:(CGContextRef)context +{ + CGRect rect = self.bounds; + CGPoint centerPoint = CGPointMake(rect.size.width / 2.0f, rect.size.height / 2.0f); + CGFloat radius = MIN(rect.size.height, rect.size.width) / 2.0f; + + BOOL clockwise = (self.clockwiseProgress != 0); + + CGFloat progress = MIN(self.progress, 1.0f - FLT_EPSILON); + CGFloat radians = 0; + if (clockwise) + { + radians = (float)((progress * 2.0f * M_PI) - M_PI_2); + } + else + { + radians = (float)(3 * M_PI_2 - (progress * 2.0f * M_PI)); + } + + CGContextSetFillColorWithColor(context, self.trackTintColor.CGColor); + CGMutablePathRef trackPath = CGPathCreateMutable(); + CGPathMoveToPoint(trackPath, NULL, centerPoint.x, centerPoint.y); + CGPathAddArc(trackPath, NULL, centerPoint.x, centerPoint.y, radius, (float)(2.0f * M_PI), 0.0f, TRUE); + CGPathCloseSubpath(trackPath); + CGContextAddPath(context, trackPath); + CGContextFillPath(context); + CGPathRelease(trackPath); + + if (progress > 0.0f) { + CGContextSetFillColorWithColor(context, self.progressTintColor.CGColor); + CGMutablePathRef progressPath = CGPathCreateMutable(); + CGPathMoveToPoint(progressPath, NULL, centerPoint.x, centerPoint.y); + CGPathAddArc(progressPath, NULL, centerPoint.x, centerPoint.y, radius, (float)(3.0f * M_PI_2), radians, !clockwise); + CGPathCloseSubpath(progressPath); + CGContextAddPath(context, progressPath); + CGContextFillPath(context); + CGPathRelease(progressPath); + } + + if (progress > 0.0f && self.roundedCorners) { + CGFloat pathWidth = radius * self.thicknessRatio; + CGFloat xOffset = radius * (1.0f + ((1.0f - (self.thicknessRatio / 2.0f)) * cosf(radians))); + CGFloat yOffset = radius * (1.0f + ((1.0f - (self.thicknessRatio / 2.0f)) * sinf(radians))); + CGPoint endPoint = CGPointMake(xOffset, yOffset); + + CGRect startEllipseRect = (CGRect) { + .origin.x = centerPoint.x - pathWidth / 2.0f, + .origin.y = 0.0f, + .size.width = pathWidth, + .size.height = pathWidth + }; + CGContextAddEllipseInRect(context, startEllipseRect); + CGContextFillPath(context); + + CGRect endEllipseRect = (CGRect) { + .origin.x = endPoint.x - pathWidth / 2.0f, + .origin.y = endPoint.y - pathWidth / 2.0f, + .size.width = pathWidth, + .size.height = pathWidth + }; + CGContextAddEllipseInRect(context, endEllipseRect); + CGContextFillPath(context); + } + + CGContextSetBlendMode(context, kCGBlendModeClear); + CGFloat innerRadius = radius * (1.0f - self.thicknessRatio); + CGRect clearRect = (CGRect) { + .origin.x = centerPoint.x - innerRadius, + .origin.y = centerPoint.y - innerRadius, + .size.width = innerRadius * 2.0f, + .size.height = innerRadius * 2.0f + }; + CGContextAddEllipseInRect(context, clearRect); + CGContextFillPath(context); +} + +@end + +@interface DACircularProgressView () + +@end + +@implementation DACircularProgressView + ++ (void) initialize +{ + if (self == [DACircularProgressView class]) { + DACircularProgressView *circularProgressViewAppearance = [DACircularProgressView appearance]; + [circularProgressViewAppearance setTrackTintColor:[[UIColor whiteColor] colorWithAlphaComponent:0.3f]]; + [circularProgressViewAppearance setProgressTintColor:[UIColor whiteColor]]; + [circularProgressViewAppearance setBackgroundColor:[UIColor clearColor]]; + [circularProgressViewAppearance setThicknessRatio:0.3f]; + [circularProgressViewAppearance setRoundedCorners:NO]; + [circularProgressViewAppearance setClockwiseProgress:YES]; + + [circularProgressViewAppearance setIndeterminateDuration:2.0f]; + [circularProgressViewAppearance setIndeterminate:NO]; + } +} + ++ (Class)layerClass +{ + return [DACircularProgressLayer class]; +} + +- (DACircularProgressLayer *)circularProgressLayer +{ + return (DACircularProgressLayer *)self.layer; +} + +- (id)init +{ + return [super initWithFrame:CGRectMake(0.0f, 0.0f, 40.0f, 40.0f)]; +} + +- (void)didMoveToWindow +{ + CGFloat windowContentsScale = self.window.screen.scale; + self.circularProgressLayer.contentsScale = windowContentsScale; + [self.circularProgressLayer setNeedsDisplay]; +} + +#pragma mark - Progress + +- (CGFloat)progress +{ + return self.circularProgressLayer.progress; +} + +- (void)setProgress:(CGFloat)progress +{ + [self setProgress:progress animated:NO]; +} + +- (void)setProgress:(CGFloat)progress animated:(BOOL)animated +{ + [self.layer removeAnimationForKey:@"indeterminateAnimation"]; + [self.circularProgressLayer removeAnimationForKey:@"progress"]; + + CGFloat pinnedProgress = MIN(MAX(progress, 0.0f), 1.0f); + if (animated) { + CABasicAnimation *animation = [CABasicAnimation animationWithKeyPath:@"progress"]; + animation.duration = fabsf(self.progress - pinnedProgress); // Same duration as UIProgressView animation + animation.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut]; + animation.fromValue = [NSNumber numberWithFloat:self.progress]; + animation.toValue = [NSNumber numberWithFloat:pinnedProgress]; + [self.circularProgressLayer addAnimation:animation forKey:@"progress"]; + } else { + [self.circularProgressLayer setNeedsDisplay]; + } + self.circularProgressLayer.progress = pinnedProgress; +} + +#pragma mark - UIAppearance methods + +- (UIColor *)trackTintColor +{ + return self.circularProgressLayer.trackTintColor; +} + +- (void)setTrackTintColor:(UIColor *)trackTintColor +{ + self.circularProgressLayer.trackTintColor = trackTintColor; + [self.circularProgressLayer setNeedsDisplay]; +} + +- (UIColor *)progressTintColor +{ + return self.circularProgressLayer.progressTintColor; +} + +- (void)setProgressTintColor:(UIColor *)progressTintColor +{ + self.circularProgressLayer.progressTintColor = progressTintColor; + [self.circularProgressLayer setNeedsDisplay]; +} + +- (NSInteger)roundedCorners +{ + return self.roundedCorners; +} + +- (void)setRoundedCorners:(NSInteger)roundedCorners +{ + self.circularProgressLayer.roundedCorners = roundedCorners; + [self.circularProgressLayer setNeedsDisplay]; +} + +- (CGFloat)thicknessRatio +{ + return self.circularProgressLayer.thicknessRatio; +} + +- (void)setThicknessRatio:(CGFloat)thicknessRatio +{ + self.circularProgressLayer.thicknessRatio = MIN(MAX(thicknessRatio, 0.f), 1.f); + [self.circularProgressLayer setNeedsDisplay]; +} + +- (NSInteger)indeterminate +{ + CAAnimation *spinAnimation = [self.layer animationForKey:@"indeterminateAnimation"]; + return (spinAnimation == nil ? 0 : 1); +} + +- (void)setIndeterminate:(NSInteger)indeterminate +{ + if (indeterminate && !self.indeterminate) { + CABasicAnimation *spinAnimation = [CABasicAnimation animationWithKeyPath:@"transform.rotation"]; + spinAnimation.byValue = [NSNumber numberWithFloat:indeterminate > 0 ? 2.0f*M_PI : -2.0f*M_PI]; + spinAnimation.duration = self.indeterminateDuration; + spinAnimation.repeatCount = HUGE_VALF; + [self.layer addAnimation:spinAnimation forKey:@"indeterminateAnimation"]; + } else { + [self.layer removeAnimationForKey:@"indeterminateAnimation"]; + } +} + +- (NSInteger)clockwiseProgress +{ + return self.circularProgressLayer.clockwiseProgress; +} + +- (void)setClockwiseProgress:(NSInteger)clockwiseProgres +{ + self.circularProgressLayer.clockwiseProgress = clockwiseProgres; + [self.circularProgressLayer setNeedsDisplay]; +} + +@end diff --git a/Pods/MJRefresh/MJRefreshExample/MJRefreshExample/MJRefresh/MJRefreshConst.m b/Pods/MJRefresh/MJRefreshExample/MJRefreshExample/MJRefresh/MJRefreshConst.m index 4c5e684..5d44bdb 100644 --- a/Pods/MJRefresh/MJRefreshExample/MJRefreshExample/MJRefresh/MJRefreshConst.m +++ b/Pods/MJRefresh/MJRefreshExample/MJRefreshExample/MJRefresh/MJRefreshConst.m @@ -2,7 +2,7 @@ // 代码地址: http://code4app.com/ios/%E5%BF%AB%E9%80%9F%E9%9B%86%E6%88%90%E4%B8%8B%E6%8B%89%E4%B8%8A%E6%8B%89%E5%88%B7%E6%96%B0/52326ce26803fabc46000000 #import -const CGFloat MJRefreshHeaderHeight = 64.0; +const CGFloat MJRefreshHeaderHeight = 54.0; const CGFloat MJRefreshFooterHeight = 44.0; const CGFloat MJRefreshFastAnimationDuration = 0.25; const CGFloat MJRefreshSlowAnimationDuration = 0.4; diff --git a/Pods/MJRefresh/MJRefreshExample/MJRefreshExample/MJRefresh/MJRefreshFooter.m b/Pods/MJRefresh/MJRefreshExample/MJRefreshExample/MJRefresh/MJRefreshFooter.m index 16dde6d..c96e335 100644 --- a/Pods/MJRefresh/MJRefreshExample/MJRefreshExample/MJRefresh/MJRefreshFooter.m +++ b/Pods/MJRefresh/MJRefreshExample/MJRefreshExample/MJRefresh/MJRefreshFooter.m @@ -105,6 +105,8 @@ // 重新调整frame [self adjustFrameWithContentSize]; + } else { // 被移除了 + _scrollView.mj_insetB -= self.mj_h; } } diff --git a/Pods/MJRefresh/MJRefreshExample/MJRefreshExample/MJRefresh/MJRefreshHeader.m b/Pods/MJRefresh/MJRefreshExample/MJRefreshExample/MJRefresh/MJRefreshHeader.m index 369651b..69478b5 100644 --- a/Pods/MJRefresh/MJRefreshExample/MJRefreshExample/MJRefresh/MJRefreshHeader.m +++ b/Pods/MJRefresh/MJRefreshExample/MJRefreshExample/MJRefresh/MJRefreshHeader.m @@ -266,7 +266,14 @@ // 恢复inset和offset [UIView animateWithDuration:MJRefreshSlowAnimationDuration delay:0.0 options:UIViewAnimationOptionAllowUserInteraction|UIViewAnimationOptionBeginFromCurrentState animations:^{ - _scrollView.mj_insetT -= self.mj_h; +// _scrollView.mj_insetT -= self.mj_h; + if (_scrollViewOriginalInset.top == 0) { + _scrollView.mj_insetT = 0; + } else if (_scrollViewOriginalInset.top ==_scrollView.mj_insetT) { + _scrollView.mj_insetT -= self.mj_h; + } else { + _scrollView.mj_insetT = _scrollViewOriginalInset.top; + } } completion:nil]; } break; diff --git a/Pods/MWPhotoBrowser/MWPhotoBrowser/Classes/MWCaptionView.h b/Pods/MWPhotoBrowser/MWPhotoBrowser/Classes/MWCaptionView.h new file mode 100644 index 0000000..6fd2c8c --- /dev/null +++ b/Pods/MWPhotoBrowser/MWPhotoBrowser/Classes/MWCaptionView.h @@ -0,0 +1,33 @@ +// +// MWCaptionView.h +// MWPhotoBrowser +// +// Created by Michael Waterfall on 30/12/2011. +// Copyright (c) 2011 __MyCompanyName__. All rights reserved. +// + +#import +#import "MWPhotoProtocol.h" + +@interface MWCaptionView : UIToolbar + +// Init +- (id)initWithPhoto:(id)photo; + +// To create your own custom caption view, subclass this view +// and override the following two methods (as well as any other +// UIView methods that you see fit): + +// Override -setupCaption so setup your subviews and customise the appearance +// of your custom caption +// You can access the photo's data by accessing the _photo ivar +// If you need more data per photo then simply subclass MWPhoto and return your +// subclass to the photo browsers -photoBrowser:photoAtIndex: delegate method +- (void)setupCaption; + +// Override -sizeThatFits: and return a CGSize specifying the height of your +// custom caption view. With width property is ignored and the caption is displayed +// the full width of the screen +- (CGSize)sizeThatFits:(CGSize)size; + +@end diff --git a/Pods/MWPhotoBrowser/MWPhotoBrowser/Classes/MWCaptionView.m b/Pods/MWPhotoBrowser/MWPhotoBrowser/Classes/MWCaptionView.m new file mode 100644 index 0000000..27ba422 --- /dev/null +++ b/Pods/MWPhotoBrowser/MWPhotoBrowser/Classes/MWCaptionView.m @@ -0,0 +1,106 @@ +// +// MWCaptionView.m +// MWPhotoBrowser +// +// Created by Michael Waterfall on 30/12/2011. +// Copyright (c) 2011 __MyCompanyName__. All rights reserved. +// + +#import "MWCommon.h" +#import "MWCaptionView.h" +#import "MWPhoto.h" + +static const CGFloat labelPadding = 10; + +// Private +@interface MWCaptionView () { + id _photo; + UILabel *_label; +} +@end + +@implementation MWCaptionView + +- (id)initWithPhoto:(id)photo { + self = [super initWithFrame:CGRectMake(0, 0, 320, 44)]; // Random initial frame + if (self) { + self.userInteractionEnabled = NO; + _photo = photo; + if (SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(@"7")) { + // Use iOS 7 blurry goodness + self.barStyle = UIBarStyleBlackTranslucent; + self.tintColor = nil; + self.barTintColor = nil; + self.barStyle = UIBarStyleBlackTranslucent; + [self setBackgroundImage:nil forToolbarPosition:UIBarPositionAny barMetrics:UIBarMetricsDefault]; + } else { + // Transparent black with no gloss + CGRect rect = CGRectMake(0.0f, 0.0f, 1.0f, 1.0f); + UIGraphicsBeginImageContext(rect.size); + CGContextRef context = UIGraphicsGetCurrentContext(); + CGContextSetFillColorWithColor(context, [[UIColor colorWithWhite:0 alpha:0.6] CGColor]); + CGContextFillRect(context, rect); + UIImage *image = UIGraphicsGetImageFromCurrentImageContext(); + UIGraphicsEndImageContext(); + [self setBackgroundImage:image forToolbarPosition:UIBarPositionAny barMetrics:UIBarMetricsDefault]; + } + self.autoresizingMask = UIViewAutoresizingFlexibleWidth|UIViewAutoresizingFlexibleTopMargin|UIViewAutoresizingFlexibleLeftMargin|UIViewAutoresizingFlexibleRightMargin; + [self setupCaption]; + } + return self; +} + +- (CGSize)sizeThatFits:(CGSize)size { + CGFloat maxHeight = 9999; + if (_label.numberOfLines > 0) maxHeight = _label.font.leading*_label.numberOfLines; + CGSize textSize; + if ([NSString instancesRespondToSelector:@selector(boundingRectWithSize:options:attributes:context:)]) { + textSize = [_label.text boundingRectWithSize:CGSizeMake(size.width - labelPadding*2, maxHeight) + options:NSStringDrawingUsesLineFragmentOrigin + attributes:@{NSFontAttributeName:_label.font} + context:nil].size; + } else { +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" + textSize = [_label.text sizeWithFont:_label.font + constrainedToSize:CGSizeMake(size.width - labelPadding*2, maxHeight) + lineBreakMode:_label.lineBreakMode]; +#pragma clang diagnostic pop + } + return CGSizeMake(size.width, textSize.height + labelPadding * 2); +} + +- (void)setupCaption { + _label = [[UILabel alloc] initWithFrame:CGRectIntegral(CGRectMake(labelPadding, 0, + self.bounds.size.width-labelPadding*2, + self.bounds.size.height))]; + _label.autoresizingMask = UIViewAutoresizingFlexibleWidth|UIViewAutoresizingFlexibleHeight; + _label.opaque = NO; + _label.backgroundColor = [UIColor clearColor]; + if (SYSTEM_VERSION_LESS_THAN(@"6")) { +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" + _label.textAlignment = UITextAlignmentCenter; + _label.lineBreakMode = UILineBreakModeWordWrap; +#pragma clang diagnostic pop + } else { + _label.textAlignment = NSTextAlignmentCenter; + _label.lineBreakMode = NSLineBreakByWordWrapping; + } + + _label.numberOfLines = 0; + _label.textColor = [UIColor whiteColor]; + if (SYSTEM_VERSION_LESS_THAN(@"7")) { + // Shadow on 6 and below + _label.shadowColor = [UIColor blackColor]; + _label.shadowOffset = CGSizeMake(1, 1); + } + _label.font = [UIFont systemFontOfSize:17]; + if ([_photo respondsToSelector:@selector(caption)]) { + _label.text = [_photo caption] ? [_photo caption] : @" "; + } + [self addSubview:_label]; +} + + +@end diff --git a/Pods/MWPhotoBrowser/MWPhotoBrowser/Classes/MWCommon.h b/Pods/MWPhotoBrowser/MWPhotoBrowser/Classes/MWCommon.h new file mode 100644 index 0000000..b15d282 --- /dev/null +++ b/Pods/MWPhotoBrowser/MWPhotoBrowser/Classes/MWCommon.h @@ -0,0 +1,12 @@ +// +// MWPreprocessor.h +// MWPhotoBrowser +// +// Created by Michael Waterfall on 01/10/2013. +// + +#define SYSTEM_VERSION_EQUAL_TO(v) ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] == NSOrderedSame) +#define SYSTEM_VERSION_GREATER_THAN(v) ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] == NSOrderedDescending) +#define SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(v) ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] != NSOrderedAscending) +#define SYSTEM_VERSION_LESS_THAN(v) ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] == NSOrderedAscending) +#define SYSTEM_VERSION_LESS_THAN_OR_EQUAL_TO(v) ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] != NSOrderedDescending) diff --git a/Pods/MWPhotoBrowser/MWPhotoBrowser/Classes/MWGridCell.h b/Pods/MWPhotoBrowser/MWPhotoBrowser/Classes/MWGridCell.h new file mode 100644 index 0000000..59536ab --- /dev/null +++ b/Pods/MWPhotoBrowser/MWPhotoBrowser/Classes/MWGridCell.h @@ -0,0 +1,24 @@ +// +// MWGridCell.h +// MWPhotoBrowser +// +// Created by Michael Waterfall on 08/10/2013. +// +// + +#import +#import "MWPhoto.h" +#import "MWGridViewController.h" +#import "PSTCollectionView.h" + +@interface MWGridCell : PSTCollectionViewCell {} + +@property (nonatomic, weak) MWGridViewController *gridController; +@property (nonatomic) NSUInteger index; +@property (nonatomic) id photo; +@property (nonatomic) BOOL selectionMode; +@property (nonatomic) BOOL isSelected; + +- (void)displayImage; + +@end diff --git a/Pods/MWPhotoBrowser/MWPhotoBrowser/Classes/MWGridCell.m b/Pods/MWPhotoBrowser/MWPhotoBrowser/Classes/MWGridCell.m new file mode 100644 index 0000000..ecc1d7c --- /dev/null +++ b/Pods/MWPhotoBrowser/MWPhotoBrowser/Classes/MWGridCell.m @@ -0,0 +1,223 @@ +// +// MWGridCell.m +// MWPhotoBrowser +// +// Created by Michael Waterfall on 08/10/2013. +// +// + +#import "MWGridCell.h" +#import "MWCommon.h" +#import "MWPhotoBrowserPrivate.h" +#import "DACircularProgressView.h" + +@interface MWGridCell () { + + UIImageView *_imageView; + UIImageView *_loadingError; + DACircularProgressView *_loadingIndicator; + UIButton *_selectedButton; + +} + +@end + +@implementation MWGridCell + +- (id)initWithFrame:(CGRect)frame { + if ((self = [super initWithFrame:frame])) { + + // Grey background + self.backgroundColor = [UIColor colorWithWhite:0.12 alpha:1]; + + // Image + _imageView = [UIImageView new]; + _imageView.frame = self.bounds; + _imageView.contentMode = UIViewContentModeScaleAspectFill; + _imageView.clipsToBounds = YES; + _imageView.autoresizesSubviews = UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleWidth; + [self addSubview:_imageView]; + + // Selection button + _selectedButton = [UIButton buttonWithType:UIButtonTypeCustom]; + _selectedButton.contentMode = UIViewContentModeTopRight; + _selectedButton.adjustsImageWhenHighlighted = NO; + [_selectedButton setImage:nil forState:UIControlStateNormal]; + [_selectedButton setImage:[UIImage imageNamed:@"MWPhotoBrowser.bundle/images/ImageSelectedSmallOff.png"] forState:UIControlStateNormal]; + [_selectedButton setImage:[UIImage imageNamed:@"MWPhotoBrowser.bundle/images/ImageSelectedSmallOn.png"] forState:UIControlStateSelected]; + [_selectedButton addTarget:self action:@selector(selectionButtonPressed) forControlEvents:UIControlEventTouchDown]; + _selectedButton.hidden = YES; + _selectedButton.frame = CGRectMake(0, 0, 44, 44); + [self addSubview:_selectedButton]; + + // Loading indicator + _loadingIndicator = [[DACircularProgressView alloc] initWithFrame:CGRectMake(0, 0, 40.0f, 40.0f)]; + _loadingIndicator.userInteractionEnabled = NO; + if (SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(@"7")) { + _loadingIndicator.thicknessRatio = 0.1; + _loadingIndicator.roundedCorners = NO; + } else { + _loadingIndicator.thicknessRatio = 0.2; + _loadingIndicator.roundedCorners = YES; + } + [self addSubview:_loadingIndicator]; + + // Listen for photo loading notifications + [[NSNotificationCenter defaultCenter] addObserver:self + selector:@selector(setProgressFromNotification:) + name:MWPHOTO_PROGRESS_NOTIFICATION + object:nil]; + [[NSNotificationCenter defaultCenter] addObserver:self + selector:@selector(handleMWPhotoLoadingDidEndNotification:) + name:MWPHOTO_LOADING_DID_END_NOTIFICATION + object:nil]; + + } + return self; +} + +- (void)dealloc { + [[NSNotificationCenter defaultCenter] removeObserver:self]; +} + +#pragma mark - View + +- (void)layoutSubviews { + [super layoutSubviews]; + _imageView.frame = self.bounds; + _loadingIndicator.frame = CGRectMake(floorf((self.bounds.size.width - _loadingIndicator.frame.size.width) / 2.), + floorf((self.bounds.size.height - _loadingIndicator.frame.size.height) / 2), + _loadingIndicator.frame.size.width, + _loadingIndicator.frame.size.height); + _selectedButton.frame = CGRectMake(self.bounds.size.width - _selectedButton.frame.size.width - 0, + 0, _selectedButton.frame.size.width, _selectedButton.frame.size.height); +} + +#pragma mark - Cell + +- (void)prepareForReuse { + _photo = nil; + _gridController = nil; + _imageView.image = nil; + _loadingIndicator.progress = 0; + _selectedButton.hidden = YES; + [self hideImageFailure]; + [super prepareForReuse]; +} + +#pragma mark - Image Handling + +- (void)setPhoto:(id )photo { + _photo = photo; + if (_photo) { + if (![_photo underlyingImage]) { + [self showLoadingIndicator]; + } else { + [self hideLoadingIndicator]; + } + } else { + [self showImageFailure]; + } +} + +- (void)displayImage { + _imageView.image = [_photo underlyingImage]; + _selectedButton.hidden = !_selectionMode; + [self hideImageFailure]; +} + +#pragma mark - Selection + +- (void)setSelectionMode:(BOOL)selectionMode { + _selectionMode = selectionMode; +} + +- (void)setIsSelected:(BOOL)isSelected { + _isSelected = isSelected; + _selectedButton.selected = isSelected; +} + +- (void)selectionButtonPressed { + _selectedButton.selected = !_selectedButton.selected; + [_gridController.browser setPhotoSelected:_selectedButton.selected atIndex:_index]; +} + +#pragma mark - Touches + +- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event { + _imageView.alpha = 0.6; + [super touchesBegan:touches withEvent:event]; +} + +- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event { + _imageView.alpha = 1; + [super touchesEnded:touches withEvent:event]; +} + +- (void)touchesCancelled:(NSSet *)touches withEvent:(UIEvent *)event { + _imageView.alpha = 1; + [super touchesCancelled:touches withEvent:event]; +} + +#pragma mark Indicators + +- (void)hideLoadingIndicator { + _loadingIndicator.hidden = YES; +} + +- (void)showLoadingIndicator { + _loadingIndicator.progress = 0; + _loadingIndicator.hidden = NO; + [self hideImageFailure]; +} + +- (void)showImageFailure { + if (!_loadingError) { + _loadingError = [UIImageView new]; + _loadingError.image = [UIImage imageNamed:@"MWPhotoBrowser.bundle/images/ImageError.png"]; + _loadingError.userInteractionEnabled = NO; + [_loadingError sizeToFit]; + [self addSubview:_loadingError]; + } + [self hideLoadingIndicator]; + _imageView.image = nil; + _loadingError.frame = CGRectMake(floorf((self.bounds.size.width - _loadingError.frame.size.width) / 2.), + floorf((self.bounds.size.height - _loadingError.frame.size.height) / 2), + _loadingError.frame.size.width, + _loadingError.frame.size.height); +} + +- (void)hideImageFailure { + if (_loadingError) { + [_loadingError removeFromSuperview]; + _loadingError = nil; + } +} + +#pragma mark - Notifications + +- (void)setProgressFromNotification:(NSNotification *)notification { + NSDictionary *dict = [notification object]; + id photoWithProgress = [dict objectForKey:@"photo"]; + if (photoWithProgress == _photo) { + // NSLog(@"%f", [[dict valueForKey:@"progress"] floatValue]); + float progress = [[dict valueForKey:@"progress"] floatValue]; + _loadingIndicator.progress = MAX(MIN(1, progress), 0); + } +} + +- (void)handleMWPhotoLoadingDidEndNotification:(NSNotification *)notification { + id photo = [notification object]; + if (photo == _photo) { + if ([photo underlyingImage]) { + // Successful load + [self displayImage]; + } else { + // Failed to load + [self showImageFailure]; + } + [self hideLoadingIndicator]; + } +} + +@end diff --git a/Pods/MWPhotoBrowser/MWPhotoBrowser/Classes/MWGridViewController.h b/Pods/MWPhotoBrowser/MWPhotoBrowser/Classes/MWGridViewController.h new file mode 100644 index 0000000..5dc238b --- /dev/null +++ b/Pods/MWPhotoBrowser/MWPhotoBrowser/Classes/MWGridViewController.h @@ -0,0 +1,19 @@ +// +// MWGridViewController.h +// MWPhotoBrowser +// +// Created by Michael Waterfall on 08/10/2013. +// +// + +#import +#import "MWPhotoBrowser.h" +#import "PSTCollectionView.h" + +@interface MWGridViewController : PSTCollectionViewController {} + +@property (nonatomic, assign) MWPhotoBrowser *browser; +@property (nonatomic) BOOL selectionMode; +@property (nonatomic) CGPoint initialContentOffset; + +@end diff --git a/Pods/MWPhotoBrowser/MWPhotoBrowser/Classes/MWGridViewController.m b/Pods/MWPhotoBrowser/MWPhotoBrowser/Classes/MWGridViewController.m new file mode 100644 index 0000000..b7bae62 --- /dev/null +++ b/Pods/MWPhotoBrowser/MWPhotoBrowser/Classes/MWGridViewController.m @@ -0,0 +1,205 @@ +// +// MWGridViewController.m +// MWPhotoBrowser +// +// Created by Michael Waterfall on 08/10/2013. +// +// + +#import "MWGridViewController.h" +#import "MWGridCell.h" +#import "MWPhotoBrowserPrivate.h" +#import "MWCommon.h" + +@interface MWGridViewController () { + + // Store margins for current setup + CGFloat _margin, _gutter, _marginL, _gutterL, _columns, _columnsL; + +} + +@end + +@implementation MWGridViewController + +- (id)init { + if ((self = [super initWithCollectionViewLayout:[PSTCollectionViewFlowLayout new]])) { + + // Defaults + _columns = 3, _columnsL = 4; + _margin = 0, _gutter = 1; + _marginL = 0, _gutterL = 1; + + // For pixel perfection... + if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) { + // iPad + _columns = 6, _columnsL = 8; + _margin = 1, _gutter = 2; + _marginL = 1, _gutterL = 2; + } else if ([UIScreen mainScreen].bounds.size.height == 480) { + // iPhone 3.5 inch + _columns = 3, _columnsL = 4; + _margin = 0, _gutter = 1; + _marginL = 1, _gutterL = 2; + } else { + // iPhone 4 inch + _columns = 3, _columnsL = 5; + _margin = 0, _gutter = 1; + _marginL = 0, _gutterL = 2; + } + + _initialContentOffset = CGPointMake(0, CGFLOAT_MAX); + + } + return self; +} + +#pragma mark - View + +- (void)viewDidLoad { + [super viewDidLoad]; + [self.collectionView registerClass:[MWGridCell class] forCellWithReuseIdentifier:@"GridCell"]; + self.collectionView.alwaysBounceVertical = YES; + self.collectionView.backgroundColor = [UIColor blackColor]; +} + +- (void)viewWillDisappear:(BOOL)animated { + // Cancel outstanding loading + NSArray *visibleCells = [self.collectionView visibleCells]; + if (visibleCells) { + for (MWGridCell *cell in visibleCells) { + [cell.photo cancelAnyLoading]; + } + } + [super viewWillDisappear:animated]; +} + +- (void)viewWillLayoutSubviews { + [super viewWillLayoutSubviews]; + [self performLayout]; +} + +- (void)viewDidLayoutSubviews { + [super viewDidLayoutSubviews]; + + // Move to previous content offset + if (_initialContentOffset.y != CGFLOAT_MAX) { + self.collectionView.contentOffset = _initialContentOffset; + } + CGPoint currentContentOffset = self.collectionView.contentOffset; + + // Get scroll position to have the current photo on screen + if (_browser.numberOfPhotos > 0) { + NSIndexPath *currentPhotoIndexPath = [NSIndexPath indexPathForItem:_browser.currentIndex inSection:0]; + [self.collectionView scrollToItemAtIndexPath:currentPhotoIndexPath atScrollPosition:PSTCollectionViewScrollPositionNone animated:NO]; + } + CGPoint offsetToShowCurrent = self.collectionView.contentOffset; + + // Only commit to using the scrolled position if it differs from the initial content offset + if (!CGPointEqualToPoint(offsetToShowCurrent, currentContentOffset)) { + // Use offset to show current + self.collectionView.contentOffset = offsetToShowCurrent; + } else { + // Stick with initial + self.collectionView.contentOffset = currentContentOffset; + } + +} + +- (void)performLayout { + UINavigationBar *navBar = self.navigationController.navigationBar; + CGFloat yAdjust = 0; +#if __IPHONE_OS_VERSION_MIN_REQUIRED < __IPHONE_7_0 + if (SYSTEM_VERSION_LESS_THAN(@"7") && !self.browser.wantsFullScreenLayout) yAdjust = -20; +#endif + self.collectionView.contentInset = UIEdgeInsetsMake(navBar.frame.origin.y + navBar.frame.size.height + [self getGutter] + yAdjust, 0, 0, 0); +} + +- (void)willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration { + [self.collectionView reloadData]; + [self performLayout]; // needed for iOS 5 & 6 +} + +#pragma mark - Layout + +- (CGFloat)getColumns { + if ((UIInterfaceOrientationIsPortrait(self.interfaceOrientation))) { + return _columns; + } else { + return _columnsL; + } +} + +- (CGFloat)getMargin { + if ((UIInterfaceOrientationIsPortrait(self.interfaceOrientation))) { + return _margin; + } else { + return _marginL; + } +} + +- (CGFloat)getGutter { + if ((UIInterfaceOrientationIsPortrait(self.interfaceOrientation))) { + return _gutter; + } else { + return _gutterL; + } +} + +#pragma mark - Collection View + +- (NSInteger)collectionView:(UICollectionView *)view numberOfItemsInSection:(NSInteger)section { + return [_browser numberOfPhotos]; +} + +- (PSTCollectionViewCell *)collectionView:(PSTCollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath { + MWGridCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"GridCell" forIndexPath:indexPath]; + if (!cell) { + cell = [[MWGridCell alloc] init]; + } + id photo = [_browser thumbPhotoAtIndex:indexPath.row]; + cell.photo = photo; + cell.gridController = self; + cell.selectionMode = _selectionMode; + cell.isSelected = [_browser photoIsSelectedAtIndex:indexPath.row]; + cell.index = indexPath.row; + UIImage *img = [_browser imageForPhoto:photo]; + if (img) { + [cell displayImage]; + } else { + [photo loadUnderlyingImageAndNotify]; + } + return cell; +} + +- (void)collectionView:(PSTCollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath { + [_browser setCurrentPhotoIndex:indexPath.row]; + [_browser hideGrid]; +} + +- (void)collectionView:(PSTCollectionView *)collectionView didEndDisplayingCell:(PSTCollectionViewCell *)cell forItemAtIndexPath:(NSIndexPath *)indexPath { + [((MWGridCell *)cell).photo cancelAnyLoading]; +} + +- (CGSize)collectionView:(PSTCollectionView *)collectionView layout:(PSTCollectionViewLayout*)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath { + CGFloat margin = [self getMargin]; + CGFloat gutter = [self getGutter]; + CGFloat columns = [self getColumns]; + CGFloat value = floorf(((self.view.bounds.size.width - (columns - 1) * gutter - 2 * margin) / columns)); + return CGSizeMake(value, value); +} + +- (CGFloat)collectionView:(PSTCollectionView *)collectionView layout:(PSTCollectionViewLayout*)collectionViewLayout minimumInteritemSpacingForSectionAtIndex:(NSInteger)section { + return [self getGutter]; +} + +- (CGFloat)collectionView:(PSTCollectionView *)collectionView layout:(PSTCollectionViewLayout*)collectionViewLayout minimumLineSpacingForSectionAtIndex:(NSInteger)section { + return [self getGutter]; +} + +- (UIEdgeInsets)collectionView:(PSTCollectionView *)collectionView layout:(PSTCollectionViewLayout*)collectionViewLayout insetForSectionAtIndex:(NSInteger)section { + CGFloat margin = [self getMargin]; + return UIEdgeInsetsMake(margin, margin, margin, margin); +} + +@end diff --git a/Pods/MWPhotoBrowser/MWPhotoBrowser/Classes/MWPhoto.h b/Pods/MWPhotoBrowser/MWPhotoBrowser/Classes/MWPhoto.h new file mode 100644 index 0000000..7bfd960 --- /dev/null +++ b/Pods/MWPhotoBrowser/MWPhotoBrowser/Classes/MWPhoto.h @@ -0,0 +1,32 @@ +// +// MWPhoto.h +// MWPhotoBrowser +// +// Created by Michael Waterfall on 17/10/2010. +// Copyright 2010 d3i. All rights reserved. +// + +#import +#import "MWPhotoProtocol.h" + +// This class models a photo/image and it's caption +// If you want to handle photos, caching, decompression +// yourself then you can simply ensure your custom data model +// conforms to MWPhotoProtocol +@interface MWPhoto : NSObject + +@property (nonatomic, strong) NSString *caption; +@property (nonatomic, readonly) UIImage *image; +@property (nonatomic, readonly) NSURL *photoURL; +@property (nonatomic, readonly) NSString *filePath __attribute__((deprecated("Use photoURL"))); // Depreciated + ++ (MWPhoto *)photoWithImage:(UIImage *)image; ++ (MWPhoto *)photoWithFilePath:(NSString *)path __attribute__((deprecated("Use photoWithURL: with a file URL"))); // Depreciated ++ (MWPhoto *)photoWithURL:(NSURL *)url; + +- (id)initWithImage:(UIImage *)image; +- (id)initWithURL:(NSURL *)url; +- (id)initWithFilePath:(NSString *)path __attribute__((deprecated("Use initWithURL: with a file URL"))); // Depreciated + +@end + diff --git a/Pods/MWPhotoBrowser/MWPhotoBrowser/Classes/MWPhoto.m b/Pods/MWPhotoBrowser/MWPhotoBrowser/Classes/MWPhoto.m new file mode 100644 index 0000000..de8201a --- /dev/null +++ b/Pods/MWPhotoBrowser/MWPhotoBrowser/Classes/MWPhoto.m @@ -0,0 +1,219 @@ +// +// MWPhoto.m +// MWPhotoBrowser +// +// Created by Michael Waterfall on 17/10/2010. +// Copyright 2010 d3i. All rights reserved. +// + +#import "MWPhoto.h" +#import "MWPhotoBrowser.h" +#import "SDWebImageDecoder.h" +#import "SDWebImageManager.h" +#import "SDWebImageOperation.h" +#import + +@interface MWPhoto () { + + BOOL _loadingInProgress; + id _webImageOperation; + +} + +- (void)imageLoadingComplete; + +@end + +@implementation MWPhoto + +@synthesize underlyingImage = _underlyingImage; // synth property from protocol + +#pragma mark - Class Methods + ++ (MWPhoto *)photoWithImage:(UIImage *)image { + return [[MWPhoto alloc] initWithImage:image]; +} + +// Deprecated ++ (MWPhoto *)photoWithFilePath:(NSString *)path { + return [MWPhoto photoWithURL:[NSURL fileURLWithPath:path]]; +} + ++ (MWPhoto *)photoWithURL:(NSURL *)url { + return [[MWPhoto alloc] initWithURL:url]; +} + +#pragma mark - Init + +- (id)initWithImage:(UIImage *)image { + if ((self = [super init])) { + _image = image; + } + return self; +} + +// Deprecated +- (id)initWithFilePath:(NSString *)path { + if ((self = [super init])) { + _photoURL = [NSURL fileURLWithPath:path]; + } + return self; +} + +- (id)initWithURL:(NSURL *)url { + if ((self = [super init])) { + _photoURL = [url copy]; + } + return self; +} + +#pragma mark - MWPhoto Protocol Methods + +- (UIImage *)underlyingImage { + return _underlyingImage; +} + +- (void)loadUnderlyingImageAndNotify { + NSAssert([[NSThread currentThread] isMainThread], @"This method must be called on the main thread."); + if (_loadingInProgress) return; + _loadingInProgress = YES; + @try { + if (self.underlyingImage) { + [self imageLoadingComplete]; + } else { + [self performLoadUnderlyingImageAndNotify]; + } + } + @catch (NSException *exception) { + self.underlyingImage = nil; + _loadingInProgress = NO; + [self imageLoadingComplete]; + } + @finally { + } +} + +// Set the underlyingImage +- (void)performLoadUnderlyingImageAndNotify { + + // Get underlying image + if (_image) { + + // We have UIImage! + self.underlyingImage = _image; + [self imageLoadingComplete]; + + } else if (_photoURL) { + + // Check what type of url it is + if ([[[_photoURL scheme] lowercaseString] isEqualToString:@"assets-library"]) { + + // Load from asset library async + dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ + @autoreleasepool { + @try { + ALAssetsLibrary *assetslibrary = [[ALAssetsLibrary alloc] init]; + [assetslibrary assetForURL:_photoURL + resultBlock:^(ALAsset *asset){ + ALAssetRepresentation *rep = [asset defaultRepresentation]; + CGImageRef iref = [rep fullScreenImage]; + if (iref) { + self.underlyingImage = [UIImage imageWithCGImage:iref]; + } + [self performSelectorOnMainThread:@selector(imageLoadingComplete) withObject:nil waitUntilDone:NO]; + } + failureBlock:^(NSError *error) { + self.underlyingImage = nil; + MWLog(@"Photo from asset library error: %@",error); + [self performSelectorOnMainThread:@selector(imageLoadingComplete) withObject:nil waitUntilDone:NO]; + }]; + } @catch (NSException *e) { + MWLog(@"Photo from asset library error: %@", e); + [self performSelectorOnMainThread:@selector(imageLoadingComplete) withObject:nil waitUntilDone:NO]; + } + } + }); + + } else if ([_photoURL isFileReferenceURL]) { + + // Load from local file async + dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ + @autoreleasepool { + @try { + self.underlyingImage = [UIImage imageWithContentsOfFile:_photoURL.path]; + if (!_underlyingImage) { + MWLog(@"Error loading photo from path: %@", _photoURL.path); + } + } @finally { + [self performSelectorOnMainThread:@selector(imageLoadingComplete) withObject:nil waitUntilDone:NO]; + } + } + }); + + } else { + + // Load async from web (using SDWebImage) + @try { + SDWebImageManager *manager = [SDWebImageManager sharedManager]; + _webImageOperation = [manager downloadImageWithURL:_photoURL + options:0 + progress:^(NSInteger receivedSize, NSInteger expectedSize) { + if (expectedSize > 0) { + float progress = receivedSize / (float)expectedSize; + NSDictionary* dict = [NSDictionary dictionaryWithObjectsAndKeys: + [NSNumber numberWithFloat:progress], @"progress", + self, @"photo", nil]; + [[NSNotificationCenter defaultCenter] postNotificationName:MWPHOTO_PROGRESS_NOTIFICATION object:dict]; + } + } + completed:^(UIImage *image, NSError *error, SDImageCacheType cacheType, BOOL finished, NSURL *imageURL) { + if (error) { + MWLog(@"SDWebImage failed to download image: %@", error); + } + _webImageOperation = nil; + self.underlyingImage = image; + [self imageLoadingComplete]; + }]; + } @catch (NSException *e) { + MWLog(@"Photo from web: %@", e); + _webImageOperation = nil; + [self imageLoadingComplete]; + } + + } + + } else { + + // Failed - no source + @throw [NSException exceptionWithName:nil reason:nil userInfo:nil]; + + } +} + +// Release if we can get it again from path or url +- (void)unloadUnderlyingImage { + _loadingInProgress = NO; + self.underlyingImage = nil; +} + +- (void)imageLoadingComplete { + NSAssert([[NSThread currentThread] isMainThread], @"This method must be called on the main thread."); + // Complete so notify + _loadingInProgress = NO; + // Notify on next run loop + [self performSelector:@selector(postCompleteNotification) withObject:nil afterDelay:0]; +} + +- (void)postCompleteNotification { + [[NSNotificationCenter defaultCenter] postNotificationName:MWPHOTO_LOADING_DID_END_NOTIFICATION + object:self]; +} + +- (void)cancelAnyLoading { + if (_webImageOperation) { + [_webImageOperation cancel]; + _loadingInProgress = NO; + } +} + +@end diff --git a/Pods/MWPhotoBrowser/MWPhotoBrowser/Classes/MWPhotoBrowser.h b/Pods/MWPhotoBrowser/MWPhotoBrowser/Classes/MWPhotoBrowser.h new file mode 100644 index 0000000..728d5cf --- /dev/null +++ b/Pods/MWPhotoBrowser/MWPhotoBrowser/Classes/MWPhotoBrowser.h @@ -0,0 +1,71 @@ +// +// MWPhotoBrowser.h +// MWPhotoBrowser +// +// Created by Michael Waterfall on 14/10/2010. +// Copyright 2010 d3i. All rights reserved. +// + +#import +#import +#import "MWPhoto.h" +#import "MWPhotoProtocol.h" +#import "MWCaptionView.h" + +// Debug Logging +#if 0 // Set to 1 to enable debug logging +#define MWLog(x, ...) NSLog(x, ## __VA_ARGS__); +#else +#define MWLog(x, ...) +#endif + +@class MWPhotoBrowser; + +@protocol MWPhotoBrowserDelegate + +- (NSUInteger)numberOfPhotosInPhotoBrowser:(MWPhotoBrowser *)photoBrowser; +- (id )photoBrowser:(MWPhotoBrowser *)photoBrowser photoAtIndex:(NSUInteger)index; + +@optional + +- (id )photoBrowser:(MWPhotoBrowser *)photoBrowser thumbPhotoAtIndex:(NSUInteger)index; +- (MWCaptionView *)photoBrowser:(MWPhotoBrowser *)photoBrowser captionViewForPhotoAtIndex:(NSUInteger)index; +- (NSString *)photoBrowser:(MWPhotoBrowser *)photoBrowser titleForPhotoAtIndex:(NSUInteger)index; +- (void)photoBrowser:(MWPhotoBrowser *)photoBrowser didDisplayPhotoAtIndex:(NSUInteger)index; +- (void)photoBrowser:(MWPhotoBrowser *)photoBrowser actionButtonPressedForPhotoAtIndex:(NSUInteger)index; +- (BOOL)photoBrowser:(MWPhotoBrowser *)photoBrowser isPhotoSelectedAtIndex:(NSUInteger)index; +- (void)photoBrowser:(MWPhotoBrowser *)photoBrowser photoAtIndex:(NSUInteger)index selectedChanged:(BOOL)selected; +- (void)photoBrowserDidFinishModalPresentation:(MWPhotoBrowser *)photoBrowser; + +@end + +@interface MWPhotoBrowser : UIViewController + +@property (nonatomic, weak) IBOutlet id delegate; +@property (nonatomic) BOOL zoomPhotosToFill; +@property (nonatomic) BOOL displayNavArrows; +@property (nonatomic) BOOL displayActionButton; +@property (nonatomic) BOOL displaySelectionButtons; +@property (nonatomic) BOOL alwaysShowControls; +@property (nonatomic) BOOL enableGrid; +@property (nonatomic) BOOL enableSwipeToDismiss; +@property (nonatomic) BOOL startOnGrid; +@property (nonatomic) NSUInteger delayToHideElements; +@property (nonatomic, readonly) NSUInteger currentIndex; + +// Init +- (id)initWithPhotos:(NSArray *)photosArray __attribute__((deprecated("Use initWithDelegate: instead"))); // Depreciated +- (id)initWithDelegate:(id )delegate; + +// Reloads the photo browser and refetches data +- (void)reloadData; + +// Set page that photo browser starts on +- (void)setCurrentPhotoIndex:(NSUInteger)index; +- (void)setInitialPageIndex:(NSUInteger)index __attribute__((deprecated("Use setCurrentPhotoIndex: instead"))); // Depreciated + +// Navigation +- (void)showNextPhotoAnimated:(BOOL)animated; +- (void)showPreviousPhotoAnimated:(BOOL)animated; + +@end diff --git a/Pods/MWPhotoBrowser/MWPhotoBrowser/Classes/MWPhotoBrowser.m b/Pods/MWPhotoBrowser/MWPhotoBrowser/Classes/MWPhotoBrowser.m new file mode 100644 index 0000000..456676e --- /dev/null +++ b/Pods/MWPhotoBrowser/MWPhotoBrowser/Classes/MWPhotoBrowser.m @@ -0,0 +1,1665 @@ +// +// MWPhotoBrowser.m +// MWPhotoBrowser +// +// Created by Michael Waterfall on 14/10/2010. +// Copyright 2010 d3i. All rights reserved. +// + +#import +#import "MWCommon.h" +#import "MWPhotoBrowser.h" +#import "MWPhotoBrowserPrivate.h" +#import "SDImageCache.h" + +#define PADDING 10 +#define ACTION_SHEET_OLD_ACTIONS 2000 + +@implementation MWPhotoBrowser + +#pragma mark - Init + +- (id)init { + if ((self = [super init])) { + [self _initialisation]; + } + return self; +} + +- (id)initWithDelegate:(id )delegate { + if ((self = [self init])) { + _delegate = delegate; + } + return self; +} + +- (id)initWithPhotos:(NSArray *)photosArray { + if ((self = [self init])) { + _depreciatedPhotoData = photosArray; + } + return self; +} + +- (id)initWithCoder:(NSCoder *)decoder { + if ((self = [super initWithCoder:decoder])) { + [self _initialisation]; + } + return self; +} + +- (void)_initialisation { + + // Defaults + NSNumber *isVCBasedStatusBarAppearanceNum = [[NSBundle mainBundle] objectForInfoDictionaryKey:@"UIViewControllerBasedStatusBarAppearance"]; + if (isVCBasedStatusBarAppearanceNum) { + _isVCBasedStatusBarAppearance = isVCBasedStatusBarAppearanceNum.boolValue; + } else { + _isVCBasedStatusBarAppearance = YES; // default + } +#if __IPHONE_OS_VERSION_MIN_REQUIRED < __IPHONE_7_0 + if (SYSTEM_VERSION_LESS_THAN(@"7")) self.wantsFullScreenLayout = YES; +#endif + self.hidesBottomBarWhenPushed = YES; + _hasBelongedToViewController = NO; + _photoCount = NSNotFound; + _previousLayoutBounds = CGRectZero; + _currentPageIndex = 0; + _previousPageIndex = NSUIntegerMax; + _displayActionButton = YES; + _displayNavArrows = NO; + _zoomPhotosToFill = YES; + _performingLayout = NO; // Reset on view did appear + _rotating = NO; + _viewIsActive = NO; + _enableGrid = YES; + _startOnGrid = NO; + _enableSwipeToDismiss = YES; + _delayToHideElements = 5; + _visiblePages = [[NSMutableSet alloc] init]; + _recycledPages = [[NSMutableSet alloc] init]; + _photos = [[NSMutableArray alloc] init]; + _thumbPhotos = [[NSMutableArray alloc] init]; + _currentGridContentOffset = CGPointMake(0, CGFLOAT_MAX); + _didSavePreviousStateOfNavBar = NO; + if ([self respondsToSelector:@selector(automaticallyAdjustsScrollViewInsets)]){ + self.automaticallyAdjustsScrollViewInsets = NO; + } + + // Listen for MWPhoto notifications + [[NSNotificationCenter defaultCenter] addObserver:self + selector:@selector(handleMWPhotoLoadingDidEndNotification:) + name:MWPHOTO_LOADING_DID_END_NOTIFICATION + object:nil]; + +} + +- (void)dealloc { + _pagingScrollView.delegate = nil; + [[NSNotificationCenter defaultCenter] removeObserver:self]; + [self releaseAllUnderlyingPhotos:NO]; + [[SDImageCache sharedImageCache] clearMemory]; // clear memory +} + +- (void)releaseAllUnderlyingPhotos:(BOOL)preserveCurrent { + // Create a copy in case this array is modified while we are looping through + // Release photos + NSArray *copy = [_photos copy]; + for (id p in copy) { + if (p != [NSNull null]) { + if (preserveCurrent && p == [self photoAtIndex:self.currentIndex]) { + continue; // skip current + } + [p unloadUnderlyingImage]; + } + } + // Release thumbs + copy = [_thumbPhotos copy]; + for (id p in copy) { + if (p != [NSNull null]) { + [p unloadUnderlyingImage]; + } + } +} + +- (void)didReceiveMemoryWarning { + + // Release any cached data, images, etc that aren't in use. + [self releaseAllUnderlyingPhotos:YES]; + [_recycledPages removeAllObjects]; + + // Releases the view if it doesn't have a superview. + [super didReceiveMemoryWarning]; + +} + +#pragma mark - View Loading + +// Implement viewDidLoad to do additional setup after loading the view, typically from a nib. +- (void)viewDidLoad { + + // Validate grid settings + if (_startOnGrid) _enableGrid = YES; + if (_enableGrid) { + _enableGrid = [_delegate respondsToSelector:@selector(photoBrowser:thumbPhotoAtIndex:)]; + } + if (!_enableGrid) _startOnGrid = NO; + + // View + self.view.backgroundColor = [UIColor blackColor]; + self.view.clipsToBounds = YES; + + // Setup paging scrolling view + CGRect pagingScrollViewFrame = [self frameForPagingScrollView]; + _pagingScrollView = [[UIScrollView alloc] initWithFrame:pagingScrollViewFrame]; + _pagingScrollView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight; + _pagingScrollView.pagingEnabled = YES; + _pagingScrollView.delegate = self; + _pagingScrollView.showsHorizontalScrollIndicator = NO; + _pagingScrollView.showsVerticalScrollIndicator = NO; + _pagingScrollView.backgroundColor = [UIColor blackColor]; + _pagingScrollView.contentSize = [self contentSizeForPagingScrollView]; + [self.view addSubview:_pagingScrollView]; + + // Toolbar + _toolbar = [[UIToolbar alloc] initWithFrame:[self frameForToolbarAtOrientation:self.interfaceOrientation]]; + _toolbar.tintColor = SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(@"7") ? [UIColor whiteColor] : nil; + if ([_toolbar respondsToSelector:@selector(setBarTintColor:)]) { + _toolbar.barTintColor = nil; + } + if ([[UIToolbar class] respondsToSelector:@selector(appearance)]) { + [_toolbar setBackgroundImage:nil forToolbarPosition:UIToolbarPositionAny barMetrics:UIBarMetricsDefault]; + [_toolbar setBackgroundImage:nil forToolbarPosition:UIToolbarPositionAny barMetrics:UIBarMetricsLandscapePhone]; + } + _toolbar.barStyle = UIBarStyleBlackTranslucent; + _toolbar.autoresizingMask = UIViewAutoresizingFlexibleTopMargin | UIViewAutoresizingFlexibleWidth; + + // Toolbar Items + if (self.displayNavArrows) { + NSString *arrowPathFormat; + if (SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(@"7")) { + arrowPathFormat = @"MWPhotoBrowser.bundle/images/UIBarButtonItemArrowOutline%@.png"; + } else { + arrowPathFormat = @"MWPhotoBrowser.bundle/images/UIBarButtonItemArrow%@.png"; + } + _previousButton = [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:[NSString stringWithFormat:arrowPathFormat, @"Left"]] style:UIBarButtonItemStylePlain target:self action:@selector(gotoPreviousPage)]; + _nextButton = [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:[NSString stringWithFormat:arrowPathFormat, @"Right"]] style:UIBarButtonItemStylePlain target:self action:@selector(gotoNextPage)]; + } + if (self.displayActionButton) { + _actionButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAction target:self action:@selector(actionButtonPressed:)]; + } + + // Update + [self reloadData]; + + // Swipe to dismiss + if (_enableSwipeToDismiss) { + UISwipeGestureRecognizer *swipeGesture = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(doneButtonPressed:)]; + swipeGesture.direction = UISwipeGestureRecognizerDirectionDown | UISwipeGestureRecognizerDirectionUp; + [self.view addGestureRecognizer:swipeGesture]; + } + + // Super + [super viewDidLoad]; + +} + +- (void)performLayout { + + // Setup + _performingLayout = YES; + NSUInteger numberOfPhotos = [self numberOfPhotos]; + + // Setup pages + [_visiblePages removeAllObjects]; + [_recycledPages removeAllObjects]; + + // Navigation buttons + if ([self.navigationController.viewControllers objectAtIndex:0] == self) { + // We're first on stack so show done button + _doneButton = [[UIBarButtonItem alloc] initWithTitle:NSLocalizedString(@"Done", nil) style:UIBarButtonItemStylePlain target:self action:@selector(doneButtonPressed:)]; + // Set appearance + if ([UIBarButtonItem respondsToSelector:@selector(appearance)]) { + [_doneButton setBackgroundImage:nil forState:UIControlStateNormal barMetrics:UIBarMetricsDefault]; + [_doneButton setBackgroundImage:nil forState:UIControlStateNormal barMetrics:UIBarMetricsLandscapePhone]; + [_doneButton setBackgroundImage:nil forState:UIControlStateHighlighted barMetrics:UIBarMetricsDefault]; + [_doneButton setBackgroundImage:nil forState:UIControlStateHighlighted barMetrics:UIBarMetricsLandscapePhone]; + [_doneButton setTitleTextAttributes:[NSDictionary dictionary] forState:UIControlStateNormal]; + [_doneButton setTitleTextAttributes:[NSDictionary dictionary] forState:UIControlStateHighlighted]; + } + self.navigationItem.rightBarButtonItem = _doneButton; + } else { + // We're not first so show back button + UIViewController *previousViewController = [self.navigationController.viewControllers objectAtIndex:self.navigationController.viewControllers.count-2]; + NSString *backButtonTitle = previousViewController.navigationItem.backBarButtonItem ? previousViewController.navigationItem.backBarButtonItem.title : previousViewController.title; + UIBarButtonItem *newBackButton = [[UIBarButtonItem alloc] initWithTitle:backButtonTitle style:UIBarButtonItemStylePlain target:nil action:nil]; + // Appearance + if ([UIBarButtonItem respondsToSelector:@selector(appearance)]) { + [newBackButton setBackButtonBackgroundImage:nil forState:UIControlStateNormal barMetrics:UIBarMetricsDefault]; + [newBackButton setBackButtonBackgroundImage:nil forState:UIControlStateNormal barMetrics:UIBarMetricsLandscapePhone]; + [newBackButton setBackButtonBackgroundImage:nil forState:UIControlStateHighlighted barMetrics:UIBarMetricsDefault]; + [newBackButton setBackButtonBackgroundImage:nil forState:UIControlStateHighlighted barMetrics:UIBarMetricsLandscapePhone]; + [newBackButton setTitleTextAttributes:[NSDictionary dictionary] forState:UIControlStateNormal]; + [newBackButton setTitleTextAttributes:[NSDictionary dictionary] forState:UIControlStateHighlighted]; + } + _previousViewControllerBackButton = previousViewController.navigationItem.backBarButtonItem; // remember previous + previousViewController.navigationItem.backBarButtonItem = newBackButton; + } + + // Toolbar items + BOOL hasItems = NO; + UIBarButtonItem *fixedSpace = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFixedSpace target:self action:nil]; + fixedSpace.width = 32; // To balance action button + UIBarButtonItem *flexSpace = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:self action:nil]; + NSMutableArray *items = [[NSMutableArray alloc] init]; + + // Left button - Grid + if (_enableGrid) { + hasItems = YES; + NSString *buttonName = @"UIBarButtonItemGrid"; + if (SYSTEM_VERSION_LESS_THAN(@"7")) buttonName = @"UIBarButtonItemGridiOS6"; + [items addObject:[[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:[NSString stringWithFormat:@"MWPhotoBrowser.bundle/images/%@.png", buttonName]] style:UIBarButtonItemStylePlain target:self action:@selector(showGridAnimated)]]; + } else { + [items addObject:fixedSpace]; + } + + // Middle - Nav + if (_previousButton && _nextButton && numberOfPhotos > 1) { + hasItems = YES; + [items addObject:flexSpace]; + [items addObject:_previousButton]; + [items addObject:flexSpace]; + [items addObject:_nextButton]; + [items addObject:flexSpace]; + } else { + [items addObject:flexSpace]; + } + + // Right - Action + if (_actionButton && !(!hasItems && !self.navigationItem.rightBarButtonItem)) { + [items addObject:_actionButton]; + } else { + // We're not showing the toolbar so try and show in top right + if (_actionButton) + self.navigationItem.rightBarButtonItem = _actionButton; + [items addObject:fixedSpace]; + } + + // Toolbar visibility + [_toolbar setItems:items]; + BOOL hideToolbar = YES; + for (UIBarButtonItem* item in _toolbar.items) { + if (item != fixedSpace && item != flexSpace) { + hideToolbar = NO; + break; + } + } + if (hideToolbar) { + [_toolbar removeFromSuperview]; + } else { + [self.view addSubview:_toolbar]; + } + + // Update nav + [self updateNavigation]; + + // Content offset + _pagingScrollView.contentOffset = [self contentOffsetForPageAtIndex:_currentPageIndex]; + [self tilePages]; + _performingLayout = NO; + +} + +// Release any retained subviews of the main view. +- (void)viewDidUnload { + _currentPageIndex = 0; + _pagingScrollView = nil; + _visiblePages = nil; + _recycledPages = nil; + _toolbar = nil; + _previousButton = nil; + _nextButton = nil; + _progressHUD = nil; + [super viewDidUnload]; +} + +- (BOOL)presentingViewControllerPrefersStatusBarHidden { + UIViewController *presenting = self.presentingViewController; + if (presenting) { + if ([presenting isKindOfClass:[UINavigationController class]]) { + presenting = [(UINavigationController *)presenting topViewController]; + } + } else { + // We're in a navigation controller so get previous one! + if (self.navigationController && self.navigationController.viewControllers.count > 1) { + presenting = [self.navigationController.viewControllers objectAtIndex:self.navigationController.viewControllers.count-2]; + } + } + if (presenting) { + return [presenting prefersStatusBarHidden]; + } else { + return NO; + } +} + +#pragma mark - Appearance + +- (void)viewWillAppear:(BOOL)animated { + + // Super + [super viewWillAppear:animated]; + + // Status bar + if ([UIViewController instancesRespondToSelector:@selector(prefersStatusBarHidden)]) { + _leaveStatusBarAlone = [self presentingViewControllerPrefersStatusBarHidden]; + } else { + _leaveStatusBarAlone = [UIApplication sharedApplication].statusBarHidden; + } + if (CGRectEqualToRect([[UIApplication sharedApplication] statusBarFrame], CGRectZero)) { + // If the frame is zero then definitely leave it alone + _leaveStatusBarAlone = YES; + } + BOOL fullScreen = YES; +#if __IPHONE_OS_VERSION_MIN_REQUIRED < __IPHONE_7_0 + if (SYSTEM_VERSION_LESS_THAN(@"7")) fullScreen = self.wantsFullScreenLayout; +#endif + if (!_leaveStatusBarAlone && fullScreen && UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone) { + _previousStatusBarStyle = [[UIApplication sharedApplication] statusBarStyle]; + if (SYSTEM_VERSION_LESS_THAN(@"7")) { +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" + [[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleBlackTranslucent animated:animated]; +#pragma clang diagnostic push + } else { + [[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleDefault animated:animated]; + } + } + + // Navigation bar appearance + if (!_viewIsActive && [self.navigationController.viewControllers objectAtIndex:0] != self) { + [self storePreviousNavBarAppearance]; + } + [self setNavBarAppearance:animated]; + + // Update UI + [self hideControlsAfterDelay]; + + // Initial appearance + if (!_viewHasAppearedInitially) { + if (_startOnGrid) { + [self showGrid:NO]; + } + _viewHasAppearedInitially = YES; + } + +} + +- (void)viewWillDisappear:(BOOL)animated { + + // Check that we're being popped for good + if ([self.navigationController.viewControllers objectAtIndex:0] != self && + ![self.navigationController.viewControllers containsObject:self]) { + + // State + _viewIsActive = NO; + + // Bar state / appearance + [self restorePreviousNavBarAppearance:animated]; + + } + + // Controls + [self.navigationController.navigationBar.layer removeAllAnimations]; // Stop all animations on nav bar + [NSObject cancelPreviousPerformRequestsWithTarget:self]; // Cancel any pending toggles from taps + [self setControlsHidden:NO animated:NO permanent:YES]; + + // Status bar + BOOL fullScreen = YES; +#if __IPHONE_OS_VERSION_MIN_REQUIRED < __IPHONE_7_0 + if (SYSTEM_VERSION_LESS_THAN(@"7")) fullScreen = self.wantsFullScreenLayout; +#endif + if (!_leaveStatusBarAlone && fullScreen && UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone) { + [[UIApplication sharedApplication] setStatusBarStyle:_previousStatusBarStyle animated:animated]; + } + + // Super + [super viewWillDisappear:animated]; + +} + +- (void)viewDidAppear:(BOOL)animated { + [super viewDidAppear:animated]; + _viewIsActive = YES; +} + +- (void)willMoveToParentViewController:(UIViewController *)parent { + if (parent && _hasBelongedToViewController) { + [NSException raise:@"MWPhotoBrowser Instance Reuse" format:@"MWPhotoBrowser instances cannot be reused."]; + } +} + +- (void)didMoveToParentViewController:(UIViewController *)parent { + if (!parent) _hasBelongedToViewController = YES; +} + +#pragma mark - Nav Bar Appearance + +- (void)setNavBarAppearance:(BOOL)animated { + [self.navigationController setNavigationBarHidden:NO animated:animated]; + UINavigationBar *navBar = self.navigationController.navigationBar; + navBar.tintColor = SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(@"7") ? [UIColor whiteColor] : nil; + if ([navBar respondsToSelector:@selector(setBarTintColor:)]) { + navBar.barTintColor = nil; + navBar.shadowImage = nil; + } + navBar.translucent = YES; + navBar.barStyle = UIBarStyleBlackTranslucent; + if ([[UINavigationBar class] respondsToSelector:@selector(appearance)]) { + [navBar setBackgroundImage:nil forBarMetrics:UIBarMetricsDefault]; + [navBar setBackgroundImage:nil forBarMetrics:UIBarMetricsLandscapePhone]; + } +} + +- (void)storePreviousNavBarAppearance { + _didSavePreviousStateOfNavBar = YES; + if ([UINavigationBar instancesRespondToSelector:@selector(barTintColor)]) { + _previousNavBarBarTintColor = self.navigationController.navigationBar.barTintColor; + } + _previousNavBarTranslucent = self.navigationController.navigationBar.translucent; + _previousNavBarTintColor = self.navigationController.navigationBar.tintColor; + _previousNavBarHidden = self.navigationController.navigationBarHidden; + _previousNavBarStyle = self.navigationController.navigationBar.barStyle; + if ([[UINavigationBar class] respondsToSelector:@selector(appearance)]) { + _previousNavigationBarBackgroundImageDefault = [self.navigationController.navigationBar backgroundImageForBarMetrics:UIBarMetricsDefault]; + _previousNavigationBarBackgroundImageLandscapePhone = [self.navigationController.navigationBar backgroundImageForBarMetrics:UIBarMetricsLandscapePhone]; + } +} + +- (void)restorePreviousNavBarAppearance:(BOOL)animated { + if (_didSavePreviousStateOfNavBar) { + [self.navigationController setNavigationBarHidden:_previousNavBarHidden animated:animated]; + UINavigationBar *navBar = self.navigationController.navigationBar; + navBar.tintColor = _previousNavBarTintColor; + navBar.translucent = _previousNavBarTranslucent; + if ([UINavigationBar instancesRespondToSelector:@selector(barTintColor)]) { + navBar.barTintColor = _previousNavBarBarTintColor; + } + navBar.barStyle = _previousNavBarStyle; + if ([[UINavigationBar class] respondsToSelector:@selector(appearance)]) { + [navBar setBackgroundImage:_previousNavigationBarBackgroundImageDefault forBarMetrics:UIBarMetricsDefault]; + [navBar setBackgroundImage:_previousNavigationBarBackgroundImageLandscapePhone forBarMetrics:UIBarMetricsLandscapePhone]; + } + // Restore back button if we need to + if (_previousViewControllerBackButton) { + UIViewController *previousViewController = [self.navigationController topViewController]; // We've disappeared so previous is now top + previousViewController.navigationItem.backBarButtonItem = _previousViewControllerBackButton; + _previousViewControllerBackButton = nil; + } + } +} + +#pragma mark - Layout + +- (void)viewWillLayoutSubviews { + [super viewWillLayoutSubviews]; + [self layoutVisiblePages]; +} + +- (void)layoutVisiblePages { + + // Flag + _performingLayout = YES; + + // Toolbar + _toolbar.frame = [self frameForToolbarAtOrientation:self.interfaceOrientation]; + + // Remember index + NSUInteger indexPriorToLayout = _currentPageIndex; + + // Get paging scroll view frame to determine if anything needs changing + CGRect pagingScrollViewFrame = [self frameForPagingScrollView]; + + // Frame needs changing + if (!_skipNextPagingScrollViewPositioning) { + _pagingScrollView.frame = pagingScrollViewFrame; + } + _skipNextPagingScrollViewPositioning = NO; + + // Recalculate contentSize based on current orientation + _pagingScrollView.contentSize = [self contentSizeForPagingScrollView]; + + // Adjust frames and configuration of each visible page + for (MWZoomingScrollView *page in _visiblePages) { + NSUInteger index = page.index; + page.frame = [self frameForPageAtIndex:index]; + if (page.captionView) { + page.captionView.frame = [self frameForCaptionView:page.captionView atIndex:index]; + } + if (page.selectedButton) { + page.selectedButton.frame = [self frameForSelectedButton:page.selectedButton atIndex:index]; + } + + // Adjust scales if bounds has changed since last time + if (!CGRectEqualToRect(_previousLayoutBounds, self.view.bounds)) { + // Update zooms for new bounds + [page setMaxMinZoomScalesForCurrentBounds]; + _previousLayoutBounds = self.view.bounds; + } + + } + + // Adjust contentOffset to preserve page location based on values collected prior to location + _pagingScrollView.contentOffset = [self contentOffsetForPageAtIndex:indexPriorToLayout]; + [self didStartViewingPageAtIndex:_currentPageIndex]; // initial + + // Reset + _currentPageIndex = indexPriorToLayout; + _performingLayout = NO; + +} + +#pragma mark - Rotation + +- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation { + return YES; +} + +- (NSUInteger)supportedInterfaceOrientations { + return UIInterfaceOrientationMaskAll; +} + +- (void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration { + + // Remember page index before rotation + _pageIndexBeforeRotation = _currentPageIndex; + _rotating = YES; + + // In iOS 7 the nav bar gets shown after rotation, but might as well do this for everything! + if ([self areControlsHidden]) { + // Force hidden + self.navigationController.navigationBarHidden = YES; + } + +} + +- (void)willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration { + + // Perform layout + _currentPageIndex = _pageIndexBeforeRotation; + + // Delay control holding + [self hideControlsAfterDelay]; + + // Layout + [self layoutVisiblePages]; + +} + +- (void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation { + _rotating = NO; + // Ensure nav bar isn't re-displayed + if ([self areControlsHidden]) { + self.navigationController.navigationBarHidden = NO; + self.navigationController.navigationBar.alpha = 0; + } +} + +#pragma mark - Data + +- (NSUInteger)currentIndex { + return _currentPageIndex; +} + +- (void)reloadData { + + // Reset + _photoCount = NSNotFound; + + // Get data + NSUInteger numberOfPhotos = [self numberOfPhotos]; + [self releaseAllUnderlyingPhotos:YES]; + [_photos removeAllObjects]; + [_thumbPhotos removeAllObjects]; + for (int i = 0; i < numberOfPhotos; i++) { + [_photos addObject:[NSNull null]]; + [_thumbPhotos addObject:[NSNull null]]; + } + + // Update current page index + if (numberOfPhotos > 0) { + _currentPageIndex = MAX(0, MIN(_currentPageIndex, numberOfPhotos - 1)); + } else { + _currentPageIndex = 0; + } + + // Update layout + if ([self isViewLoaded]) { + while (_pagingScrollView.subviews.count) { + [[_pagingScrollView.subviews lastObject] removeFromSuperview]; + } + [self performLayout]; + [self.view setNeedsLayout]; + } + +} + +- (NSUInteger)numberOfPhotos { + if (_photoCount == NSNotFound) { + if ([_delegate respondsToSelector:@selector(numberOfPhotosInPhotoBrowser:)]) { + _photoCount = [_delegate numberOfPhotosInPhotoBrowser:self]; + } else if (_depreciatedPhotoData) { + _photoCount = _depreciatedPhotoData.count; + } + } + if (_photoCount == NSNotFound) _photoCount = 0; + return _photoCount; +} + +- (id)photoAtIndex:(NSUInteger)index { + id photo = nil; + if (index < _photos.count) { + if ([_photos objectAtIndex:index] == [NSNull null]) { + if ([_delegate respondsToSelector:@selector(photoBrowser:photoAtIndex:)]) { + photo = [_delegate photoBrowser:self photoAtIndex:index]; + } else if (_depreciatedPhotoData && index < _depreciatedPhotoData.count) { + photo = [_depreciatedPhotoData objectAtIndex:index]; + } + if (photo) [_photos replaceObjectAtIndex:index withObject:photo]; + } else { + photo = [_photos objectAtIndex:index]; + } + } + return photo; +} + +- (id)thumbPhotoAtIndex:(NSUInteger)index { + id photo = nil; + if (index < _thumbPhotos.count) { + if ([_thumbPhotos objectAtIndex:index] == [NSNull null]) { + if ([_delegate respondsToSelector:@selector(photoBrowser:thumbPhotoAtIndex:)]) { + photo = [_delegate photoBrowser:self thumbPhotoAtIndex:index]; + } + if (photo) [_thumbPhotos replaceObjectAtIndex:index withObject:photo]; + } else { + photo = [_thumbPhotos objectAtIndex:index]; + } + } + return photo; +} + +- (MWCaptionView *)captionViewForPhotoAtIndex:(NSUInteger)index { + MWCaptionView *captionView = nil; + if ([_delegate respondsToSelector:@selector(photoBrowser:captionViewForPhotoAtIndex:)]) { + captionView = [_delegate photoBrowser:self captionViewForPhotoAtIndex:index]; + } else { + id photo = [self photoAtIndex:index]; + if ([photo respondsToSelector:@selector(caption)]) { + if ([photo caption]) captionView = [[MWCaptionView alloc] initWithPhoto:photo]; + } + } + captionView.alpha = [self areControlsHidden] ? 0 : 1; // Initial alpha + return captionView; +} + +- (BOOL)photoIsSelectedAtIndex:(NSUInteger)index { + BOOL value = NO; + if (_displaySelectionButtons) { + if ([self.delegate respondsToSelector:@selector(photoBrowser:isPhotoSelectedAtIndex:)]) { + value = [self.delegate photoBrowser:self isPhotoSelectedAtIndex:index]; + } + } + return value; +} + +- (void)setPhotoSelected:(BOOL)selected atIndex:(NSUInteger)index { + if (_displaySelectionButtons) { + if ([self.delegate respondsToSelector:@selector(photoBrowser:photoAtIndex:selectedChanged:)]) { + [self.delegate photoBrowser:self photoAtIndex:index selectedChanged:selected]; + } + } +} + +- (UIImage *)imageForPhoto:(id)photo { + if (photo) { + // Get image or obtain in background + if ([photo underlyingImage]) { + return [photo underlyingImage]; + } else { + [photo loadUnderlyingImageAndNotify]; + } + } + return nil; +} + +- (void)loadAdjacentPhotosIfNecessary:(id)photo { + MWZoomingScrollView *page = [self pageDisplayingPhoto:photo]; + if (page) { + // If page is current page then initiate loading of previous and next pages + NSUInteger pageIndex = page.index; + if (_currentPageIndex == pageIndex) { + if (pageIndex > 0) { + // Preload index - 1 + id photo = [self photoAtIndex:pageIndex-1]; + if (![photo underlyingImage]) { + [photo loadUnderlyingImageAndNotify]; + MWLog(@"Pre-loading image at index %lu", (unsigned long)pageIndex-1); + } + } + if (pageIndex < [self numberOfPhotos] - 1) { + // Preload index + 1 + id photo = [self photoAtIndex:pageIndex+1]; + if (![photo underlyingImage]) { + [photo loadUnderlyingImageAndNotify]; + MWLog(@"Pre-loading image at index %lu", (unsigned long)pageIndex+1); + } + } + } + } +} + +#pragma mark - MWPhoto Loading Notification + +- (void)handleMWPhotoLoadingDidEndNotification:(NSNotification *)notification { + id photo = [notification object]; + MWZoomingScrollView *page = [self pageDisplayingPhoto:photo]; + if (page) { + if ([photo underlyingImage]) { + // Successful load + [page displayImage]; + [self loadAdjacentPhotosIfNecessary:photo]; + } else { + // Failed to load + [page displayImageFailure]; + } + // Update nav + [self updateNavigation]; + } +} + +#pragma mark - Paging + +- (void)tilePages { + + // Calculate which pages should be visible + // Ignore padding as paging bounces encroach on that + // and lead to false page loads + CGRect visibleBounds = _pagingScrollView.bounds; + NSInteger iFirstIndex = (NSInteger)floorf((CGRectGetMinX(visibleBounds)+PADDING*2) / CGRectGetWidth(visibleBounds)); + NSInteger iLastIndex = (NSInteger)floorf((CGRectGetMaxX(visibleBounds)-PADDING*2-1) / CGRectGetWidth(visibleBounds)); + if (iFirstIndex < 0) iFirstIndex = 0; + if (iFirstIndex > [self numberOfPhotos] - 1) iFirstIndex = [self numberOfPhotos] - 1; + if (iLastIndex < 0) iLastIndex = 0; + if (iLastIndex > [self numberOfPhotos] - 1) iLastIndex = [self numberOfPhotos] - 1; + + // Recycle no longer needed pages + NSInteger pageIndex; + for (MWZoomingScrollView *page in _visiblePages) { + pageIndex = page.index; + if (pageIndex < (NSUInteger)iFirstIndex || pageIndex > (NSUInteger)iLastIndex) { + [_recycledPages addObject:page]; + [page.captionView removeFromSuperview]; + [page.selectedButton removeFromSuperview]; + [page prepareForReuse]; + [page removeFromSuperview]; + MWLog(@"Removed page at index %lu", (unsigned long)pageIndex); + } + } + [_visiblePages minusSet:_recycledPages]; + while (_recycledPages.count > 2) // Only keep 2 recycled pages + [_recycledPages removeObject:[_recycledPages anyObject]]; + + // Add missing pages + for (NSUInteger index = (NSUInteger)iFirstIndex; index <= (NSUInteger)iLastIndex; index++) { + if (![self isDisplayingPageForIndex:index]) { + + // Add new page + MWZoomingScrollView *page = [self dequeueRecycledPage]; + if (!page) { + page = [[MWZoomingScrollView alloc] initWithPhotoBrowser:self]; + } + [_visiblePages addObject:page]; + [self configurePage:page forIndex:index]; + + [_pagingScrollView addSubview:page]; + MWLog(@"Added page at index %lu", (unsigned long)index); + + // Add caption + MWCaptionView *captionView = [self captionViewForPhotoAtIndex:index]; + if (captionView) { + captionView.frame = [self frameForCaptionView:captionView atIndex:index]; + [_pagingScrollView addSubview:captionView]; + page.captionView = captionView; + } + + // Add selected button + if (self.displaySelectionButtons) { + UIButton *selectedButton = [UIButton buttonWithType:UIButtonTypeCustom]; + [selectedButton setImage:[UIImage imageNamed:@"MWPhotoBrowser.bundle/images/ImageSelectedOff.png"] forState:UIControlStateNormal]; + [selectedButton setImage:[UIImage imageNamed:@"MWPhotoBrowser.bundle/images/ImageSelectedOn.png"] forState:UIControlStateSelected]; + [selectedButton sizeToFit]; + selectedButton.adjustsImageWhenHighlighted = NO; + [selectedButton addTarget:self action:@selector(selectedButtonTapped:) forControlEvents:UIControlEventTouchUpInside]; + selectedButton.frame = [self frameForSelectedButton:selectedButton atIndex:index]; + [_pagingScrollView addSubview:selectedButton]; + page.selectedButton = selectedButton; + selectedButton.selected = [self photoIsSelectedAtIndex:index]; + } + + } + } + +} + +- (void)updateVisiblePageStates { + NSSet *copy = [_visiblePages copy]; + for (MWZoomingScrollView *page in copy) { + + // Update selection + page.selectedButton.selected = [self photoIsSelectedAtIndex:page.index]; + + } +} + +- (BOOL)isDisplayingPageForIndex:(NSUInteger)index { + for (MWZoomingScrollView *page in _visiblePages) + if (page.index == index) return YES; + return NO; +} + +- (MWZoomingScrollView *)pageDisplayedAtIndex:(NSUInteger)index { + MWZoomingScrollView *thePage = nil; + for (MWZoomingScrollView *page in _visiblePages) { + if (page.index == index) { + thePage = page; break; + } + } + return thePage; +} + +- (MWZoomingScrollView *)pageDisplayingPhoto:(id)photo { + MWZoomingScrollView *thePage = nil; + for (MWZoomingScrollView *page in _visiblePages) { + if (page.photo == photo) { + thePage = page; break; + } + } + return thePage; +} + +- (void)configurePage:(MWZoomingScrollView *)page forIndex:(NSUInteger)index { + page.frame = [self frameForPageAtIndex:index]; + page.index = index; + page.photo = [self photoAtIndex:index]; +} + +- (MWZoomingScrollView *)dequeueRecycledPage { + MWZoomingScrollView *page = [_recycledPages anyObject]; + if (page) { + [_recycledPages removeObject:page]; + } + return page; +} + +// Handle page changes +- (void)didStartViewingPageAtIndex:(NSUInteger)index { + + if (![self numberOfPhotos]) { + // Show controls + [self setControlsHidden:NO animated:YES permanent:YES]; + return; + } + + // Release images further away than +/-1 + NSUInteger i; + if (index > 0) { + // Release anything < index - 1 + for (i = 0; i < index-1; i++) { + id photo = [_photos objectAtIndex:i]; + if (photo != [NSNull null]) { + [photo unloadUnderlyingImage]; + [_photos replaceObjectAtIndex:i withObject:[NSNull null]]; + MWLog(@"Released underlying image at index %lu", (unsigned long)i); + } + } + } + if (index < [self numberOfPhotos] - 1) { + // Release anything > index + 1 + for (i = index + 2; i < _photos.count; i++) { + id photo = [_photos objectAtIndex:i]; + if (photo != [NSNull null]) { + [photo unloadUnderlyingImage]; + [_photos replaceObjectAtIndex:i withObject:[NSNull null]]; + MWLog(@"Released underlying image at index %lu", (unsigned long)i); + } + } + } + + // Load adjacent images if needed and the photo is already + // loaded. Also called after photo has been loaded in background + id currentPhoto = [self photoAtIndex:index]; + if ([currentPhoto underlyingImage]) { + // photo loaded so load ajacent now + [self loadAdjacentPhotosIfNecessary:currentPhoto]; + } + + // Notify delegate + if (index != _previousPageIndex) { + if ([_delegate respondsToSelector:@selector(photoBrowser:didDisplayPhotoAtIndex:)]) + [_delegate photoBrowser:self didDisplayPhotoAtIndex:index]; + _previousPageIndex = index; + } + + // Update nav + [self updateNavigation]; + +} + +#pragma mark - Frame Calculations + +- (CGRect)frameForPagingScrollView { + CGRect frame = self.view.bounds;// [[UIScreen mainScreen] bounds]; + frame.origin.x -= PADDING; + frame.size.width += (2 * PADDING); + return CGRectIntegral(frame); +} + +- (CGRect)frameForPageAtIndex:(NSUInteger)index { + // We have to use our paging scroll view's bounds, not frame, to calculate the page placement. When the device is in + // landscape orientation, the frame will still be in portrait because the pagingScrollView is the root view controller's + // view, so its frame is in window coordinate space, which is never rotated. Its bounds, however, will be in landscape + // because it has a rotation transform applied. + CGRect bounds = _pagingScrollView.bounds; + CGRect pageFrame = bounds; + pageFrame.size.width -= (2 * PADDING); + pageFrame.origin.x = (bounds.size.width * index) + PADDING; + return CGRectIntegral(pageFrame); +} + +- (CGSize)contentSizeForPagingScrollView { + // We have to use the paging scroll view's bounds to calculate the contentSize, for the same reason outlined above. + CGRect bounds = _pagingScrollView.bounds; + return CGSizeMake(bounds.size.width * [self numberOfPhotos], bounds.size.height); +} + +- (CGPoint)contentOffsetForPageAtIndex:(NSUInteger)index { + CGFloat pageWidth = _pagingScrollView.bounds.size.width; + CGFloat newOffset = index * pageWidth; + return CGPointMake(newOffset, 0); +} + +- (CGRect)frameForToolbarAtOrientation:(UIInterfaceOrientation)orientation { + CGFloat height = 44; + if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone && + UIInterfaceOrientationIsLandscape(orientation)) height = 32; + return CGRectIntegral(CGRectMake(0, self.view.bounds.size.height - height, self.view.bounds.size.width, height)); +} + +- (CGRect)frameForCaptionView:(MWCaptionView *)captionView atIndex:(NSUInteger)index { + CGRect pageFrame = [self frameForPageAtIndex:index]; + CGSize captionSize = [captionView sizeThatFits:CGSizeMake(pageFrame.size.width, 0)]; + CGRect captionFrame = CGRectMake(pageFrame.origin.x, + pageFrame.size.height - captionSize.height - (_toolbar.superview?_toolbar.frame.size.height:0), + pageFrame.size.width, + captionSize.height); + return CGRectIntegral(captionFrame); +} + +- (CGRect)frameForSelectedButton:(UIButton *)selectedButton atIndex:(NSUInteger)index { + CGRect pageFrame = [self frameForPageAtIndex:index]; + CGFloat yOffset = 0; + if (![self areControlsHidden]) { + UINavigationBar *navBar = self.navigationController.navigationBar; + yOffset = navBar.frame.origin.y + navBar.frame.size.height; + } + CGFloat statusBarOffset = [[UIApplication sharedApplication] statusBarFrame].size.height; +#if __IPHONE_OS_VERSION_MIN_REQUIRED < __IPHONE_7_0 + if (SYSTEM_VERSION_LESS_THAN(@"7") && !self.wantsFullScreenLayout) statusBarOffset = 0; +#endif + CGRect captionFrame = CGRectMake(pageFrame.origin.x + pageFrame.size.width - 20 - selectedButton.frame.size.width, + statusBarOffset + yOffset, + selectedButton.frame.size.width, + selectedButton.frame.size.height); + return CGRectIntegral(captionFrame); +} + +#pragma mark - UIScrollView Delegate + +- (void)scrollViewDidScroll:(UIScrollView *)scrollView { + + // Checks + if (!_viewIsActive || _performingLayout || _rotating) return; + + // Tile pages + [self tilePages]; + + // Calculate current page + CGRect visibleBounds = _pagingScrollView.bounds; + NSInteger index = (NSInteger)(floorf(CGRectGetMidX(visibleBounds) / CGRectGetWidth(visibleBounds))); + if (index < 0) index = 0; + if (index > [self numberOfPhotos] - 1) index = [self numberOfPhotos] - 1; + NSUInteger previousCurrentPage = _currentPageIndex; + _currentPageIndex = index; + if (_currentPageIndex != previousCurrentPage) { + [self didStartViewingPageAtIndex:index]; + } + +} + +- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView { + // Hide controls when dragging begins + [self setControlsHidden:YES animated:YES permanent:NO]; +} + +- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView { + // Update nav when page changes + [self updateNavigation]; +} + +#pragma mark - Navigation + +- (void)updateNavigation { + + // Title + NSUInteger numberOfPhotos = [self numberOfPhotos]; + if (_gridController) { + if (_gridController.selectionMode) { + self.title = NSLocalizedString(@"Select Photos", nil); + } else { + NSString *photosText; + if (numberOfPhotos == 1) { + photosText = NSLocalizedString(@"photo", @"Used in the context: '1 photo'"); + } else { + photosText = NSLocalizedString(@"photos", @"Used in the context: '3 photos'"); + } + self.title = [NSString stringWithFormat:@"%lu %@", (unsigned long)numberOfPhotos, photosText]; + } + } else if (numberOfPhotos > 1) { + if ([_delegate respondsToSelector:@selector(photoBrowser:titleForPhotoAtIndex:)]) { + self.title = [_delegate photoBrowser:self titleForPhotoAtIndex:_currentPageIndex]; + } else { + self.title = [NSString stringWithFormat:@"%lu %@ %lu", (unsigned long)(_currentPageIndex+1), NSLocalizedString(@"of", @"Used in the context: 'Showing 1 of 3 items'"), (unsigned long)numberOfPhotos]; + } + } else { + self.title = nil; + } + + // Buttons + _previousButton.enabled = (_currentPageIndex > 0); + _nextButton.enabled = (_currentPageIndex < numberOfPhotos - 1); + _actionButton.enabled = [[self photoAtIndex:_currentPageIndex] underlyingImage] != nil; + +} + +- (void)jumpToPageAtIndex:(NSUInteger)index animated:(BOOL)animated { + + // Change page + if (index < [self numberOfPhotos]) { + CGRect pageFrame = [self frameForPageAtIndex:index]; + [_pagingScrollView setContentOffset:CGPointMake(pageFrame.origin.x - PADDING, 0) animated:animated]; + [self updateNavigation]; + } + + // Update timer to give more time + [self hideControlsAfterDelay]; + +} + +- (void)gotoPreviousPage { + [self showPreviousPhotoAnimated:NO]; +} +- (void)gotoNextPage { + [self showNextPhotoAnimated:NO]; +} + +- (void)showPreviousPhotoAnimated:(BOOL)animated { + [self jumpToPageAtIndex:_currentPageIndex-1 animated:animated]; +} + +- (void)showNextPhotoAnimated:(BOOL)animated { + [self jumpToPageAtIndex:_currentPageIndex+1 animated:animated]; +} + +#pragma mark - Interactions + +- (void)selectedButtonTapped:(id)sender { + UIButton *selectedButton = (UIButton *)sender; + selectedButton.selected = !selectedButton.selected; + NSUInteger index = NSUIntegerMax; + for (MWZoomingScrollView *page in _visiblePages) { + if (page.selectedButton == selectedButton) { + index = page.index; + break; + } + } + if (index != NSUIntegerMax) { + [self setPhotoSelected:selectedButton.selected atIndex:index]; + } +} + +#pragma mark - Grid + +- (void)showGridAnimated { + [self showGrid:YES]; +} + +- (void)showGrid:(BOOL)animated { + + if (_gridController) return; + + // Init grid controller + _gridController = [[MWGridViewController alloc] init]; + _gridController.initialContentOffset = _currentGridContentOffset; + _gridController.browser = self; + _gridController.selectionMode = _displaySelectionButtons; + _gridController.view.frame = self.view.bounds; + _gridController.view.frame = CGRectOffset(_gridController.view.frame, 0, (self.startOnGrid ? -1 : 1) * self.view.bounds.size.height); + + // Stop specific layout being triggered + _skipNextPagingScrollViewPositioning = YES; + + // Add as a child view controller + [self addChildViewController:_gridController]; + [self.view addSubview:_gridController.view]; + + // Hide action button on nav bar if it exists + if (self.navigationItem.rightBarButtonItem == _actionButton) { + _gridPreviousRightNavItem = _actionButton; + [self.navigationItem setRightBarButtonItem:nil animated:YES]; + } else { + _gridPreviousRightNavItem = nil; + } + + // Update + [self updateNavigation]; + [self setControlsHidden:NO animated:YES permanent:YES]; + + // Animate grid in and photo scroller out + [UIView animateWithDuration:animated ? 0.3 : 0 animations:^(void) { + _gridController.view.frame = self.view.bounds; + CGRect newPagingFrame = [self frameForPagingScrollView]; + newPagingFrame = CGRectOffset(newPagingFrame, 0, (self.startOnGrid ? 1 : -1) * newPagingFrame.size.height); + _pagingScrollView.frame = newPagingFrame; + } completion:^(BOOL finished) { + [_gridController didMoveToParentViewController:self]; + }]; + +} + +- (void)hideGrid { + + if (!_gridController) return; + + // Remember previous content offset + _currentGridContentOffset = _gridController.collectionView.contentOffset; + + // Restore action button if it was removed + if (_gridPreviousRightNavItem == _actionButton && _actionButton) { + [self.navigationItem setRightBarButtonItem:_gridPreviousRightNavItem animated:YES]; + } + + // Position prior to hide animation + CGRect newPagingFrame = [self frameForPagingScrollView]; + newPagingFrame = CGRectOffset(newPagingFrame, 0, (self.startOnGrid ? 1 : -1) * newPagingFrame.size.height); + _pagingScrollView.frame = newPagingFrame; + + // Remember and remove controller now so things can detect a nil grid controller + MWGridViewController *tmpGridController = _gridController; + _gridController = nil; + + // Update + [self updateNavigation]; + [self updateVisiblePageStates]; + + // Animate, hide grid and show paging scroll view + [UIView animateWithDuration:0.3 animations:^{ + tmpGridController.view.frame = CGRectOffset(self.view.bounds, 0, (self.startOnGrid ? -1 : 1) * self.view.bounds.size.height); + _pagingScrollView.frame = [self frameForPagingScrollView]; + } completion:^(BOOL finished) { + [tmpGridController willMoveToParentViewController:nil]; + [tmpGridController.view removeFromSuperview]; + [tmpGridController removeFromParentViewController]; + [self setControlsHidden:NO animated:YES permanent:NO]; // retrigger timer + }]; + +} + +#pragma mark - Control Hiding / Showing + +// If permanent then we don't set timers to hide again +// Fades all controls on iOS 5 & 6, and iOS 7 controls slide and fade +- (void)setControlsHidden:(BOOL)hidden animated:(BOOL)animated permanent:(BOOL)permanent { + + // Force visible + if (![self numberOfPhotos] || _gridController || _alwaysShowControls) + hidden = NO; + + // Cancel any timers + [self cancelControlHiding]; + + // Animations & positions + BOOL slideAndFade = SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(@"7"); + CGFloat animatonOffset = 20; + CGFloat animationDuration = (animated ? 0.35 : 0); + + // Status bar + if (!_leaveStatusBarAlone) { + if ([self respondsToSelector:@selector(setNeedsStatusBarAppearanceUpdate)]) { + + // iOS 7 + // Hide status bar + if (!_isVCBasedStatusBarAppearance) { + + // Non-view controller based + [[UIApplication sharedApplication] setStatusBarHidden:hidden withAnimation:animated ? UIStatusBarAnimationSlide : UIStatusBarAnimationNone]; + + } else { + + // View controller based so animate away + _statusBarShouldBeHidden = hidden; + [UIView animateWithDuration:animationDuration animations:^(void) { + [self setNeedsStatusBarAppearanceUpdate]; + } completion:^(BOOL finished) {}]; + + } + + } else { + + // iOS < 7 + // Status bar and nav bar positioning + BOOL fullScreen = YES; +#if __IPHONE_OS_VERSION_MIN_REQUIRED < __IPHONE_7_0 + if (SYSTEM_VERSION_LESS_THAN(@"7")) fullScreen = self.wantsFullScreenLayout; +#endif + if (fullScreen) { + + // Need to get heights and set nav bar position to overcome display issues + + // Get status bar height if visible + CGFloat statusBarHeight = 0; + if (![UIApplication sharedApplication].statusBarHidden) { + CGRect statusBarFrame = [[UIApplication sharedApplication] statusBarFrame]; + statusBarHeight = MIN(statusBarFrame.size.height, statusBarFrame.size.width); + } + + // Status Bar + [[UIApplication sharedApplication] setStatusBarHidden:hidden withAnimation:animated?UIStatusBarAnimationFade:UIStatusBarAnimationNone]; + + // Get status bar height if visible + if (![UIApplication sharedApplication].statusBarHidden) { + CGRect statusBarFrame = [[UIApplication sharedApplication] statusBarFrame]; + statusBarHeight = MIN(statusBarFrame.size.height, statusBarFrame.size.width); + } + + // Set navigation bar frame + CGRect navBarFrame = self.navigationController.navigationBar.frame; + navBarFrame.origin.y = statusBarHeight; + self.navigationController.navigationBar.frame = navBarFrame; + + } + + } + } + + // Toolbar, nav bar and captions + // Pre-appear animation positions for iOS 7 sliding + if (slideAndFade && [self areControlsHidden] && !hidden && animated) { + + // Toolbar + _toolbar.frame = CGRectOffset([self frameForToolbarAtOrientation:self.interfaceOrientation], 0, animatonOffset); + + // Captions + for (MWZoomingScrollView *page in _visiblePages) { + if (page.captionView) { + MWCaptionView *v = page.captionView; + // Pass any index, all we're interested in is the Y + CGRect captionFrame = [self frameForCaptionView:v atIndex:0]; + captionFrame.origin.x = v.frame.origin.x; // Reset X + v.frame = CGRectOffset(captionFrame, 0, animatonOffset); + } + } + + } + [UIView animateWithDuration:animationDuration animations:^(void) { + + CGFloat alpha = hidden ? 0 : 1; + + // Nav bar slides up on it's own on iOS 7 + [self.navigationController.navigationBar setAlpha:alpha]; + + // Toolbar + if (slideAndFade) { + _toolbar.frame = [self frameForToolbarAtOrientation:self.interfaceOrientation]; + if (hidden) _toolbar.frame = CGRectOffset(_toolbar.frame, 0, animatonOffset); + } + _toolbar.alpha = alpha; + + // Captions + for (MWZoomingScrollView *page in _visiblePages) { + if (page.captionView) { + MWCaptionView *v = page.captionView; + if (slideAndFade) { + // Pass any index, all we're interested in is the Y + CGRect captionFrame = [self frameForCaptionView:v atIndex:0]; + captionFrame.origin.x = v.frame.origin.x; // Reset X + if (hidden) captionFrame = CGRectOffset(captionFrame, 0, animatonOffset); + v.frame = captionFrame; + } + v.alpha = alpha; + } + } + + // Selected buttons + for (MWZoomingScrollView *page in _visiblePages) { + if (page.selectedButton) { + UIButton *v = page.selectedButton; + CGRect newFrame = [self frameForSelectedButton:v atIndex:0]; + newFrame.origin.x = v.frame.origin.x; + v.frame = newFrame; + } + } + + } completion:^(BOOL finished) {}]; + + // Control hiding timer + // Will cancel existing timer but only begin hiding if + // they are visible + if (!permanent) [self hideControlsAfterDelay]; + +} + +- (BOOL)prefersStatusBarHidden { + if (!_leaveStatusBarAlone) { + return _statusBarShouldBeHidden; + } else { + return [self presentingViewControllerPrefersStatusBarHidden]; + } +} + +- (UIStatusBarAnimation)preferredStatusBarUpdateAnimation { + return UIStatusBarAnimationSlide; +} + +- (void)cancelControlHiding { + // If a timer exists then cancel and release + if (_controlVisibilityTimer) { + [_controlVisibilityTimer invalidate]; + _controlVisibilityTimer = nil; + } +} + +// Enable/disable control visiblity timer +- (void)hideControlsAfterDelay { + if (![self areControlsHidden]) { + [self cancelControlHiding]; + _controlVisibilityTimer = [NSTimer scheduledTimerWithTimeInterval:self.delayToHideElements target:self selector:@selector(hideControls) userInfo:nil repeats:NO]; + } +} + +- (BOOL)areControlsHidden { return (_toolbar.alpha == 0); } +- (void)hideControls { [self setControlsHidden:YES animated:YES permanent:NO]; } +- (void)toggleControls { [self setControlsHidden:![self areControlsHidden] animated:YES permanent:NO]; } + +#pragma mark - Properties + +// Handle depreciated method +- (void)setInitialPageIndex:(NSUInteger)index { + [self setCurrentPhotoIndex:index]; +} + +- (void)setCurrentPhotoIndex:(NSUInteger)index { + // Validate + NSUInteger photoCount = [self numberOfPhotos]; + if (photoCount == 0) { + index = 0; + } else { + if (index >= photoCount) + index = [self numberOfPhotos]-1; + } + _currentPageIndex = index; + if ([self isViewLoaded]) { + [self jumpToPageAtIndex:index animated:NO]; + if (!_viewIsActive) + [self tilePages]; // Force tiling if view is not visible + } +} + +#pragma mark - Misc + +- (void)doneButtonPressed:(id)sender { + // Only if we're modal and there's a done button + if (_doneButton) { + // See if we actually just want to show/hide grid + if (self.enableGrid) { + if (self.startOnGrid && !_gridController) { + [self showGrid:YES]; + return; + } else if (!self.startOnGrid && _gridController) { + [self hideGrid]; + return; + } + } + // Dismiss view controller + if ([_delegate respondsToSelector:@selector(photoBrowserDidFinishModalPresentation:)]) { + // Call delegate method and let them dismiss us + [_delegate photoBrowserDidFinishModalPresentation:self]; + } else { + [self dismissViewControllerAnimated:YES completion:nil]; + } + } +} + +#pragma mark - Actions + +- (void)actionButtonPressed:(id)sender { + if (_actionsSheet) { + + // Dismiss + [_actionsSheet dismissWithClickedButtonIndex:_actionsSheet.cancelButtonIndex animated:YES]; + + } else { + + // Only react when image has loaded + id photo = [self photoAtIndex:_currentPageIndex]; + if ([self numberOfPhotos] > 0 && [photo underlyingImage]) { + + // If they have defined a delegate method then just message them + if ([self.delegate respondsToSelector:@selector(photoBrowser:actionButtonPressedForPhotoAtIndex:)]) { + + // Let delegate handle things + [self.delegate photoBrowser:self actionButtonPressedForPhotoAtIndex:_currentPageIndex]; + + } else { + + // Handle default actions + if (SYSTEM_VERSION_LESS_THAN(@"6")) { + + // Old handling of activities with action sheet + if ([MFMailComposeViewController canSendMail]) { + _actionsSheet = [[UIActionSheet alloc] initWithTitle:nil delegate:self + cancelButtonTitle:NSLocalizedString(@"Cancel", nil) destructiveButtonTitle:nil + otherButtonTitles:NSLocalizedString(@"Save", nil), NSLocalizedString(@"Copy", nil), NSLocalizedString(@"Email", nil), nil]; + } else { + _actionsSheet = [[UIActionSheet alloc] initWithTitle:nil delegate:self + cancelButtonTitle:NSLocalizedString(@"Cancel", nil) destructiveButtonTitle:nil + otherButtonTitles:NSLocalizedString(@"Save", nil), NSLocalizedString(@"Copy", nil), nil]; + } + _actionsSheet.tag = ACTION_SHEET_OLD_ACTIONS; + _actionsSheet.actionSheetStyle = UIActionSheetStyleBlackTranslucent; + if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) { + [_actionsSheet showFromBarButtonItem:sender animated:YES]; + } else { + [_actionsSheet showInView:self.view]; + } + + } else { + + // Show activity view controller + NSMutableArray *items = [NSMutableArray arrayWithObject:[photo underlyingImage]]; + if (photo.caption) { + [items addObject:photo.caption]; + } + self.activityViewController = [[UIActivityViewController alloc] initWithActivityItems:items applicationActivities:nil]; + + // Show loading spinner after a couple of seconds + double delayInSeconds = 2.0; + dispatch_time_t popTime = dispatch_time(DISPATCH_TIME_NOW, (int64_t)(delayInSeconds * NSEC_PER_SEC)); + dispatch_after(popTime, dispatch_get_main_queue(), ^(void){ + if (self.activityViewController) { + [self showProgressHUDWithMessage:nil]; + } + }); + + // Show + typeof(self) __weak weakSelf = self; + [self.activityViewController setCompletionHandler:^(NSString *activityType, BOOL completed) { + weakSelf.activityViewController = nil; + [weakSelf hideControlsAfterDelay]; + [weakSelf hideProgressHUD:YES]; + }]; + // iOS 8 - Set the Anchor Point for the popover + if (SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(@"8")) { + self.activityViewController.popoverPresentationController.barButtonItem = _actionButton; + } + [self presentViewController:self.activityViewController animated:YES completion:nil]; + + } + + } + + // Keep controls hidden + [self setControlsHidden:NO animated:YES permanent:YES]; + + } + } +} + +#pragma mark - Action Sheet Delegate + +- (void)actionSheet:(UIActionSheet *)actionSheet didDismissWithButtonIndex:(NSInteger)buttonIndex { + if (actionSheet.tag == ACTION_SHEET_OLD_ACTIONS) { + // Old Actions + _actionsSheet = nil; + if (buttonIndex != actionSheet.cancelButtonIndex) { + if (buttonIndex == actionSheet.firstOtherButtonIndex) { + [self savePhoto]; return; + } else if (buttonIndex == actionSheet.firstOtherButtonIndex + 1) { + [self copyPhoto]; return; + } else if (buttonIndex == actionSheet.firstOtherButtonIndex + 2) { + [self emailPhoto]; return; + } + } + } + [self hideControlsAfterDelay]; // Continue as normal... +} + +#pragma mark - Action Progress + +- (MBProgressHUD *)progressHUD { + if (!_progressHUD) { + _progressHUD = [[MBProgressHUD alloc] initWithView:self.view]; + _progressHUD.minSize = CGSizeMake(120, 120); + _progressHUD.minShowTime = 1; + // The sample image is based on the + // work by: http://www.pixelpressicons.com + // licence: http://creativecommons.org/licenses/by/2.5/ca/ + self.progressHUD.customView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"MWPhotoBrowser.bundle/images/Checkmark.png"]]; + [self.view addSubview:_progressHUD]; + } + return _progressHUD; +} + +- (void)showProgressHUDWithMessage:(NSString *)message { + self.progressHUD.labelText = message; + self.progressHUD.mode = MBProgressHUDModeIndeterminate; + [self.progressHUD show:YES]; + self.navigationController.navigationBar.userInteractionEnabled = NO; +} + +- (void)hideProgressHUD:(BOOL)animated { + [self.progressHUD hide:animated]; + self.navigationController.navigationBar.userInteractionEnabled = YES; +} + +- (void)showProgressHUDCompleteMessage:(NSString *)message { + if (message) { + if (self.progressHUD.isHidden) [self.progressHUD show:YES]; + self.progressHUD.labelText = message; + self.progressHUD.mode = MBProgressHUDModeCustomView; + [self.progressHUD hide:YES afterDelay:1.5]; + } else { + [self.progressHUD hide:YES]; + } + self.navigationController.navigationBar.userInteractionEnabled = YES; +} + +#pragma mark - Actions + +- (void)savePhoto { + id photo = [self photoAtIndex:_currentPageIndex]; + if ([photo underlyingImage]) { + [self showProgressHUDWithMessage:[NSString stringWithFormat:@"%@\u2026" , NSLocalizedString(@"Saving", @"Displayed with ellipsis as 'Saving...' when an item is in the process of being saved")]]; + [self performSelector:@selector(actuallySavePhoto:) withObject:photo afterDelay:0]; + } +} + +- (void)actuallySavePhoto:(id)photo { + if ([photo underlyingImage]) { + UIImageWriteToSavedPhotosAlbum([photo underlyingImage], self, + @selector(image:didFinishSavingWithError:contextInfo:), nil); + } +} + +- (void)image:(UIImage *)image didFinishSavingWithError:(NSError *)error contextInfo:(void *)contextInfo { + [self showProgressHUDCompleteMessage: error ? NSLocalizedString(@"Failed", @"Informing the user a process has failed") : NSLocalizedString(@"Saved", @"Informing the user an item has been saved")]; + [self hideControlsAfterDelay]; // Continue as normal... +} + +- (void)copyPhoto { + id photo = [self photoAtIndex:_currentPageIndex]; + if ([photo underlyingImage]) { + [self showProgressHUDWithMessage:[NSString stringWithFormat:@"%@\u2026" , NSLocalizedString(@"Copying", @"Displayed with ellipsis as 'Copying...' when an item is in the process of being copied")]]; + [self performSelector:@selector(actuallyCopyPhoto:) withObject:photo afterDelay:0]; + } +} + +- (void)actuallyCopyPhoto:(id)photo { + if ([photo underlyingImage]) { + [[UIPasteboard generalPasteboard] setData:UIImagePNGRepresentation([photo underlyingImage]) + forPasteboardType:@"public.png"]; + [self showProgressHUDCompleteMessage:NSLocalizedString(@"Copied", @"Informing the user an item has finished copying")]; + [self hideControlsAfterDelay]; // Continue as normal... + } +} + +- (void)emailPhoto { + id photo = [self photoAtIndex:_currentPageIndex]; + if ([photo underlyingImage]) { + [self showProgressHUDWithMessage:[NSString stringWithFormat:@"%@\u2026" , NSLocalizedString(@"Preparing", @"Displayed with ellipsis as 'Preparing...' when an item is in the process of being prepared")]]; + [self performSelector:@selector(actuallyEmailPhoto:) withObject:photo afterDelay:0]; + } +} + +- (void)actuallyEmailPhoto:(id)photo { + if ([photo underlyingImage]) { + MFMailComposeViewController *emailer = [[MFMailComposeViewController alloc] init]; + emailer.mailComposeDelegate = self; + [emailer setSubject:NSLocalizedString(@"Photo", nil)]; + [emailer addAttachmentData:UIImagePNGRepresentation([photo underlyingImage]) mimeType:@"png" fileName:@"Photo.png"]; + if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) { + emailer.modalPresentationStyle = UIModalPresentationPageSheet; + } + [self presentViewController:emailer animated:YES completion:nil]; + [self hideProgressHUD:NO]; + } +} + +- (void)mailComposeController:(MFMailComposeViewController*)controller didFinishWithResult:(MFMailComposeResult)result error:(NSError*)error { + if (result == MFMailComposeResultFailed) { + UIAlertView *alert = [[UIAlertView alloc] initWithTitle:NSLocalizedString(@"Email", nil) + message:NSLocalizedString(@"Email failed to send. Please try again.", nil) + delegate:nil cancelButtonTitle:NSLocalizedString(@"Dismiss", nil) otherButtonTitles:nil]; + [alert show]; + } + [self dismissViewControllerAnimated:YES completion:nil]; +} + +@end diff --git a/Pods/MWPhotoBrowser/MWPhotoBrowser/Classes/MWPhotoBrowserPrivate.h b/Pods/MWPhotoBrowser/MWPhotoBrowser/Classes/MWPhotoBrowserPrivate.h new file mode 100644 index 0000000..b243f41 --- /dev/null +++ b/Pods/MWPhotoBrowser/MWPhotoBrowser/Classes/MWPhotoBrowserPrivate.h @@ -0,0 +1,136 @@ +// +// MWPhotoBrowser_Private.h +// MWPhotoBrowser +// +// Created by Michael Waterfall on 08/10/2013. +// +// + +#import +#import "MBProgressHUD.h" +#import "MWGridViewController.h" +#import "MWZoomingScrollView.h" + +// Declare private methods of browser +@interface MWPhotoBrowser () { + + // Data + NSUInteger _photoCount; + NSMutableArray *_photos; + NSMutableArray *_thumbPhotos; + NSArray *_depreciatedPhotoData; // Depreciated + + // Views + UIScrollView *_pagingScrollView; + + // Paging & layout + NSMutableSet *_visiblePages, *_recycledPages; + NSUInteger _currentPageIndex; + NSUInteger _previousPageIndex; + CGRect _previousLayoutBounds; + NSUInteger _pageIndexBeforeRotation; + + // Navigation & controls + UIToolbar *_toolbar; + NSTimer *_controlVisibilityTimer; + UIBarButtonItem *_previousButton, *_nextButton, *_actionButton, *_doneButton; + MBProgressHUD *_progressHUD; + UIActionSheet *_actionsSheet; + + // Grid + MWGridViewController *_gridController; + UIBarButtonItem *_gridPreviousLeftNavItem; + UIBarButtonItem *_gridPreviousRightNavItem; + + // Appearance + BOOL _previousNavBarHidden; + BOOL _previousNavBarTranslucent; + UIBarStyle _previousNavBarStyle; + UIStatusBarStyle _previousStatusBarStyle; + UIColor *_previousNavBarTintColor; + UIColor *_previousNavBarBarTintColor; + UIBarButtonItem *_previousViewControllerBackButton; + UIImage *_previousNavigationBarBackgroundImageDefault; + UIImage *_previousNavigationBarBackgroundImageLandscapePhone; + + // Misc + BOOL _hasBelongedToViewController; + BOOL _isVCBasedStatusBarAppearance; + BOOL _statusBarShouldBeHidden; + BOOL _displayActionButton; + BOOL _leaveStatusBarAlone; + BOOL _performingLayout; + BOOL _rotating; + BOOL _viewIsActive; // active as in it's in the view heirarchy + BOOL _didSavePreviousStateOfNavBar; + BOOL _skipNextPagingScrollViewPositioning; + BOOL _viewHasAppearedInitially; + CGPoint _currentGridContentOffset; + +} + +// Properties +@property (nonatomic) UIActivityViewController *activityViewController; + +// Layout +- (void)layoutVisiblePages; +- (void)performLayout; +- (BOOL)presentingViewControllerPrefersStatusBarHidden; + +// Nav Bar Appearance +- (void)setNavBarAppearance:(BOOL)animated; +- (void)storePreviousNavBarAppearance; +- (void)restorePreviousNavBarAppearance:(BOOL)animated; + +// Paging +- (void)tilePages; +- (BOOL)isDisplayingPageForIndex:(NSUInteger)index; +- (MWZoomingScrollView *)pageDisplayedAtIndex:(NSUInteger)index; +- (MWZoomingScrollView *)pageDisplayingPhoto:(id)photo; +- (MWZoomingScrollView *)dequeueRecycledPage; +- (void)configurePage:(MWZoomingScrollView *)page forIndex:(NSUInteger)index; +- (void)didStartViewingPageAtIndex:(NSUInteger)index; + +// Frames +- (CGRect)frameForPagingScrollView; +- (CGRect)frameForPageAtIndex:(NSUInteger)index; +- (CGSize)contentSizeForPagingScrollView; +- (CGPoint)contentOffsetForPageAtIndex:(NSUInteger)index; +- (CGRect)frameForToolbarAtOrientation:(UIInterfaceOrientation)orientation; +- (CGRect)frameForCaptionView:(MWCaptionView *)captionView atIndex:(NSUInteger)index; +- (CGRect)frameForSelectedButton:(UIButton *)selectedButton atIndex:(NSUInteger)index; + +// Navigation +- (void)updateNavigation; +- (void)jumpToPageAtIndex:(NSUInteger)index animated:(BOOL)animated; +- (void)gotoPreviousPage; +- (void)gotoNextPage; + +// Grid +- (void)showGrid:(BOOL)animated; +- (void)hideGrid; + +// Controls +- (void)cancelControlHiding; +- (void)hideControlsAfterDelay; +- (void)setControlsHidden:(BOOL)hidden animated:(BOOL)animated permanent:(BOOL)permanent; +- (void)toggleControls; +- (BOOL)areControlsHidden; + +// Data +- (NSUInteger)numberOfPhotos; +- (id)photoAtIndex:(NSUInteger)index; +- (id)thumbPhotoAtIndex:(NSUInteger)index; +- (UIImage *)imageForPhoto:(id)photo; +- (BOOL)photoIsSelectedAtIndex:(NSUInteger)index; +- (void)setPhotoSelected:(BOOL)selected atIndex:(NSUInteger)index; +- (void)loadAdjacentPhotosIfNecessary:(id)photo; +- (void)releaseAllUnderlyingPhotos:(BOOL)preserveCurrent; + +// Actions +- (void)savePhoto; +- (void)copyPhoto; +- (void)emailPhoto; + +@end + diff --git a/Pods/MWPhotoBrowser/MWPhotoBrowser/Classes/MWPhotoProtocol.h b/Pods/MWPhotoBrowser/MWPhotoBrowser/Classes/MWPhotoProtocol.h new file mode 100644 index 0000000..4a9bccf --- /dev/null +++ b/Pods/MWPhotoBrowser/MWPhotoBrowser/Classes/MWPhotoProtocol.h @@ -0,0 +1,64 @@ +// +// MWPhotoProtocol.h +// MWPhotoBrowser +// +// Created by Michael Waterfall on 02/01/2012. +// Copyright (c) 2012 __MyCompanyName__. All rights reserved. +// + +#import + +// Notifications +#define MWPHOTO_LOADING_DID_END_NOTIFICATION @"MWPHOTO_LOADING_DID_END_NOTIFICATION" +#define MWPHOTO_PROGRESS_NOTIFICATION @"MWPHOTO_PROGRESS_NOTIFICATION" + +// If you wish to use your own data models for photo then they must conform +// to this protocol. See instructions for details on each method. +// Otherwise you can use the MWPhoto object or subclass it yourself to +// store more information per photo. +// +// You can see the MWPhoto class for an example implementation of this protocol +// +@protocol MWPhoto + +@required + +// Return underlying UIImage to be displayed +// Return nil if the image is not immediately available (loaded into memory, preferably +// already decompressed) and needs to be loaded from a source (cache, file, web, etc) +// IMPORTANT: You should *NOT* use this method to initiate +// fetching of images from any external of source. That should be handled +// in -loadUnderlyingImageAndNotify: which may be called by the photo browser if this +// methods returns nil. +@property (nonatomic, strong) UIImage *underlyingImage; + +// Called when the browser has determined the underlying images is not +// already loaded into memory but needs it. +- (void)loadUnderlyingImageAndNotify; + +// Fetch the image data from a source and notify when complete. +// You must load the image asyncronously (and decompress it for better performance). +// It is recommended that you use SDWebImageDecoder to perform the decompression. +// See MWPhoto object for an example implementation. +// When the underlying UIImage is loaded (or failed to load) you should post the following +// notification: +// [[NSNotificationCenter defaultCenter] postNotificationName:MWPHOTO_LOADING_DID_END_NOTIFICATION +// object:self]; +- (void)performLoadUnderlyingImageAndNotify; + +// This is called when the photo browser has determined the photo data +// is no longer needed or there are low memory conditions +// You should release any underlying (possibly large and decompressed) image data +// as long as the image can be re-loaded (from cache, file, or URL) +- (void)unloadUnderlyingImage; + +@optional + +// Return a caption string to be displayed over the image +// Return nil to display no caption +- (NSString *)caption; + +// Cancel any background loading of image data +- (void)cancelAnyLoading; + +@end \ No newline at end of file diff --git a/Pods/MWPhotoBrowser/MWPhotoBrowser/Classes/MWTapDetectingImageView.h b/Pods/MWPhotoBrowser/MWPhotoBrowser/Classes/MWTapDetectingImageView.h new file mode 100644 index 0000000..8445b62 --- /dev/null +++ b/Pods/MWPhotoBrowser/MWPhotoBrowser/Classes/MWTapDetectingImageView.h @@ -0,0 +1,27 @@ +// +// UIImageViewTap.h +// Momento +// +// Created by Michael Waterfall on 04/11/2009. +// Copyright 2009 d3i. All rights reserved. +// + +#import + +@protocol MWTapDetectingImageViewDelegate; + +@interface MWTapDetectingImageView : UIImageView {} + +@property (nonatomic, weak) id tapDelegate; + +@end + +@protocol MWTapDetectingImageViewDelegate + +@optional + +- (void)imageView:(UIImageView *)imageView singleTapDetected:(UITouch *)touch; +- (void)imageView:(UIImageView *)imageView doubleTapDetected:(UITouch *)touch; +- (void)imageView:(UIImageView *)imageView tripleTapDetected:(UITouch *)touch; + +@end \ No newline at end of file diff --git a/Pods/MWPhotoBrowser/MWPhotoBrowser/Classes/MWTapDetectingImageView.m b/Pods/MWPhotoBrowser/MWPhotoBrowser/Classes/MWTapDetectingImageView.m new file mode 100644 index 0000000..b0666ba --- /dev/null +++ b/Pods/MWPhotoBrowser/MWPhotoBrowser/Classes/MWTapDetectingImageView.m @@ -0,0 +1,68 @@ +// +// UIImageViewTap.m +// Momento +// +// Created by Michael Waterfall on 04/11/2009. +// Copyright 2009 d3i. All rights reserved. +// + +#import "MWTapDetectingImageView.h" + +@implementation MWTapDetectingImageView + +- (id)initWithFrame:(CGRect)frame { + if ((self = [super initWithFrame:frame])) { + self.userInteractionEnabled = YES; + } + return self; +} + +- (id)initWithImage:(UIImage *)image { + if ((self = [super initWithImage:image])) { + self.userInteractionEnabled = YES; + } + return self; +} + +- (id)initWithImage:(UIImage *)image highlightedImage:(UIImage *)highlightedImage { + if ((self = [super initWithImage:image highlightedImage:highlightedImage])) { + self.userInteractionEnabled = YES; + } + return self; +} + +- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event { + UITouch *touch = [touches anyObject]; + NSUInteger tapCount = touch.tapCount; + switch (tapCount) { + case 1: + [self handleSingleTap:touch]; + break; + case 2: + [self handleDoubleTap:touch]; + break; + case 3: + [self handleTripleTap:touch]; + break; + default: + break; + } + [[self nextResponder] touchesEnded:touches withEvent:event]; +} + +- (void)handleSingleTap:(UITouch *)touch { + if ([_tapDelegate respondsToSelector:@selector(imageView:singleTapDetected:)]) + [_tapDelegate imageView:self singleTapDetected:touch]; +} + +- (void)handleDoubleTap:(UITouch *)touch { + if ([_tapDelegate respondsToSelector:@selector(imageView:doubleTapDetected:)]) + [_tapDelegate imageView:self doubleTapDetected:touch]; +} + +- (void)handleTripleTap:(UITouch *)touch { + if ([_tapDelegate respondsToSelector:@selector(imageView:tripleTapDetected:)]) + [_tapDelegate imageView:self tripleTapDetected:touch]; +} + +@end diff --git a/Pods/MWPhotoBrowser/MWPhotoBrowser/Classes/MWTapDetectingView.h b/Pods/MWPhotoBrowser/MWPhotoBrowser/Classes/MWTapDetectingView.h new file mode 100644 index 0000000..d5309e9 --- /dev/null +++ b/Pods/MWPhotoBrowser/MWPhotoBrowser/Classes/MWTapDetectingView.h @@ -0,0 +1,27 @@ +// +// UIViewTap.h +// Momento +// +// Created by Michael Waterfall on 04/11/2009. +// Copyright 2009 d3i. All rights reserved. +// + +#import + +@protocol MWTapDetectingViewDelegate; + +@interface MWTapDetectingView : UIView {} + +@property (nonatomic, weak) id tapDelegate; + +@end + +@protocol MWTapDetectingViewDelegate + +@optional + +- (void)view:(UIView *)view singleTapDetected:(UITouch *)touch; +- (void)view:(UIView *)view doubleTapDetected:(UITouch *)touch; +- (void)view:(UIView *)view tripleTapDetected:(UITouch *)touch; + +@end \ No newline at end of file diff --git a/Pods/MWPhotoBrowser/MWPhotoBrowser/Classes/MWTapDetectingView.m b/Pods/MWPhotoBrowser/MWPhotoBrowser/Classes/MWTapDetectingView.m new file mode 100644 index 0000000..e1796bc --- /dev/null +++ b/Pods/MWPhotoBrowser/MWPhotoBrowser/Classes/MWTapDetectingView.m @@ -0,0 +1,61 @@ +// +// UIViewTap.m +// Momento +// +// Created by Michael Waterfall on 04/11/2009. +// Copyright 2009 d3i. All rights reserved. +// + +#import "MWTapDetectingView.h" + +@implementation MWTapDetectingView + +- (id)init { + if ((self = [super init])) { + self.userInteractionEnabled = YES; + } + return self; +} + +- (id)initWithFrame:(CGRect)frame { + if ((self = [super initWithFrame:frame])) { + self.userInteractionEnabled = YES; + } + return self; +} + +- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event { + UITouch *touch = [touches anyObject]; + NSUInteger tapCount = touch.tapCount; + switch (tapCount) { + case 1: + [self handleSingleTap:touch]; + break; + case 2: + [self handleDoubleTap:touch]; + break; + case 3: + [self handleTripleTap:touch]; + break; + default: + break; + } + [[self nextResponder] touchesEnded:touches withEvent:event]; +} + +- (void)handleSingleTap:(UITouch *)touch { + if ([_tapDelegate respondsToSelector:@selector(view:singleTapDetected:)]) + [_tapDelegate view:self singleTapDetected:touch]; +} + +- (void)handleDoubleTap:(UITouch *)touch { + if ([_tapDelegate respondsToSelector:@selector(view:doubleTapDetected:)]) + [_tapDelegate view:self doubleTapDetected:touch]; +} + +- (void)handleTripleTap:(UITouch *)touch { + if ([_tapDelegate respondsToSelector:@selector(view:tripleTapDetected:)]) + [_tapDelegate view:self tripleTapDetected:touch]; +} + +@end diff --git a/Pods/MWPhotoBrowser/MWPhotoBrowser/Classes/MWZoomingScrollView.h b/Pods/MWPhotoBrowser/MWPhotoBrowser/Classes/MWZoomingScrollView.h new file mode 100644 index 0000000..c3d8a95 --- /dev/null +++ b/Pods/MWPhotoBrowser/MWPhotoBrowser/Classes/MWZoomingScrollView.h @@ -0,0 +1,31 @@ +// +// ZoomingScrollView.h +// MWPhotoBrowser +// +// Created by Michael Waterfall on 14/10/2010. +// Copyright 2010 d3i. All rights reserved. +// + +#import +#import "MWPhotoProtocol.h" +#import "MWTapDetectingImageView.h" +#import "MWTapDetectingView.h" + +@class MWPhotoBrowser, MWPhoto, MWCaptionView; + +@interface MWZoomingScrollView : UIScrollView { + +} + +@property () NSUInteger index; +@property (nonatomic) id photo; +@property (nonatomic, weak) MWCaptionView *captionView; +@property (nonatomic, weak) UIButton *selectedButton; + +- (id)initWithPhotoBrowser:(MWPhotoBrowser *)browser; +- (void)displayImage; +- (void)displayImageFailure; +- (void)setMaxMinZoomScalesForCurrentBounds; +- (void)prepareForReuse; + +@end diff --git a/Pods/MWPhotoBrowser/MWPhotoBrowser/Classes/MWZoomingScrollView.m b/Pods/MWPhotoBrowser/MWPhotoBrowser/Classes/MWZoomingScrollView.m new file mode 100644 index 0000000..6a03a44 --- /dev/null +++ b/Pods/MWPhotoBrowser/MWPhotoBrowser/Classes/MWZoomingScrollView.m @@ -0,0 +1,411 @@ +// +// ZoomingScrollView.m +// MWPhotoBrowser +// +// Created by Michael Waterfall on 14/10/2010. +// Copyright 2010 d3i. All rights reserved. +// + +#import "MWCommon.h" +#import "MWZoomingScrollView.h" +#import "MWPhotoBrowser.h" +#import "MWPhoto.h" +#import "DACircularProgressView.h" +#import "MWPhotoBrowserPrivate.h" + +// Private methods and properties +@interface MWZoomingScrollView () { + + MWPhotoBrowser __weak *_photoBrowser; + MWTapDetectingView *_tapView; // for background taps + MWTapDetectingImageView *_photoImageView; + DACircularProgressView *_loadingIndicator; + UIImageView *_loadingError; + +} + +@end + +@implementation MWZoomingScrollView + +- (id)initWithPhotoBrowser:(MWPhotoBrowser *)browser { + if ((self = [super init])) { + + // Setup + _index = NSUIntegerMax; + _photoBrowser = browser; + + // Tap view for background + _tapView = [[MWTapDetectingView alloc] initWithFrame:self.bounds]; + _tapView.tapDelegate = self; + _tapView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight; + _tapView.backgroundColor = [UIColor blackColor]; + [self addSubview:_tapView]; + + // Image view + _photoImageView = [[MWTapDetectingImageView alloc] initWithFrame:CGRectZero]; + _photoImageView.tapDelegate = self; + _photoImageView.contentMode = UIViewContentModeCenter; + _photoImageView.backgroundColor = [UIColor blackColor]; + [self addSubview:_photoImageView]; + + // Loading indicator + _loadingIndicator = [[DACircularProgressView alloc] initWithFrame:CGRectMake(140.0f, 30.0f, 40.0f, 40.0f)]; + _loadingIndicator.userInteractionEnabled = NO; + if (SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(@"7")) { + _loadingIndicator.thicknessRatio = 0.1; + _loadingIndicator.roundedCorners = NO; + } else { + _loadingIndicator.thicknessRatio = 0.2; + _loadingIndicator.roundedCorners = YES; + } + _loadingIndicator.autoresizingMask = UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleTopMargin | + UIViewAutoresizingFlexibleBottomMargin | UIViewAutoresizingFlexibleRightMargin; + [self addSubview:_loadingIndicator]; + + // Listen progress notifications + [[NSNotificationCenter defaultCenter] addObserver:self + selector:@selector(setProgressFromNotification:) + name:MWPHOTO_PROGRESS_NOTIFICATION + object:nil]; + + // Setup + self.backgroundColor = [UIColor blackColor]; + self.delegate = self; + self.showsHorizontalScrollIndicator = NO; + self.showsVerticalScrollIndicator = NO; + self.decelerationRate = UIScrollViewDecelerationRateFast; + self.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight; + + } + return self; +} + +- (void)dealloc { + [[NSNotificationCenter defaultCenter] removeObserver:self]; +} + +- (void)prepareForReuse { + [self hideImageFailure]; + self.photo = nil; + self.captionView = nil; + self.selectedButton = nil; + _photoImageView.image = nil; + _index = NSUIntegerMax; +} + +#pragma mark - Image + +- (void)setPhoto:(id)photo { + // Cancel any loading on old photo + if (_photo && photo == nil) { + if ([_photo respondsToSelector:@selector(cancelAnyLoading)]) { + [_photo cancelAnyLoading]; + } + } + _photo = photo; + UIImage *img = [_photoBrowser imageForPhoto:_photo]; + if (img) { + [self displayImage]; + } else { + // Will be loading so show loading + [self showLoadingIndicator]; + } +} + +// Get and display image +- (void)displayImage { + if (_photo && _photoImageView.image == nil) { + + // Reset + self.maximumZoomScale = 1; + self.minimumZoomScale = 1; + self.zoomScale = 1; + self.contentSize = CGSizeMake(0, 0); + + // Get image from browser as it handles ordering of fetching + UIImage *img = [_photoBrowser imageForPhoto:_photo]; + if (img) { + + // Hide indicator + [self hideLoadingIndicator]; + + // Set image + _photoImageView.image = img; + _photoImageView.hidden = NO; + + // Setup photo frame + CGRect photoImageViewFrame; + photoImageViewFrame.origin = CGPointZero; + photoImageViewFrame.size = img.size; + _photoImageView.frame = photoImageViewFrame; + self.contentSize = photoImageViewFrame.size; + + // Set zoom to minimum zoom + [self setMaxMinZoomScalesForCurrentBounds]; + + } else { + + // Failed no image + [self displayImageFailure]; + + } + [self setNeedsLayout]; + } +} + +// Image failed so just show black! +- (void)displayImageFailure { + [self hideLoadingIndicator]; + _photoImageView.image = nil; + if (!_loadingError) { + _loadingError = [UIImageView new]; + _loadingError.image = [UIImage imageNamed:@"MWPhotoBrowser.bundle/images/ImageError.png"]; + _loadingError.userInteractionEnabled = NO; + _loadingError.autoresizingMask = UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleTopMargin | + UIViewAutoresizingFlexibleBottomMargin | UIViewAutoresizingFlexibleRightMargin; + [_loadingError sizeToFit]; + [self addSubview:_loadingError]; + } + _loadingError.frame = CGRectMake(floorf((self.bounds.size.width - _loadingError.frame.size.width) / 2.), + floorf((self.bounds.size.height - _loadingError.frame.size.height) / 2), + _loadingError.frame.size.width, + _loadingError.frame.size.height); +} + +- (void)hideImageFailure { + if (_loadingError) { + [_loadingError removeFromSuperview]; + _loadingError = nil; + } +} + +#pragma mark - Loading Progress + +- (void)setProgressFromNotification:(NSNotification *)notification { + NSDictionary *dict = [notification object]; + id photoWithProgress = [dict objectForKey:@"photo"]; + if (photoWithProgress == self.photo) { + float progress = [[dict valueForKey:@"progress"] floatValue]; + _loadingIndicator.progress = MAX(MIN(1, progress), 0); + } +} + +- (void)hideLoadingIndicator { + _loadingIndicator.hidden = YES; +} + +- (void)showLoadingIndicator { + self.zoomScale = 0; + self.minimumZoomScale = 0; + self.maximumZoomScale = 0; + _loadingIndicator.progress = 0; + _loadingIndicator.hidden = NO; + [self hideImageFailure]; +} + +#pragma mark - Setup + +- (CGFloat)initialZoomScaleWithMinScale { + CGFloat zoomScale = self.minimumZoomScale; + if (_photoImageView && _photoBrowser.zoomPhotosToFill) { + // Zoom image to fill if the aspect ratios are fairly similar + CGSize boundsSize = self.bounds.size; + CGSize imageSize = _photoImageView.image.size; + CGFloat boundsAR = boundsSize.width / boundsSize.height; + CGFloat imageAR = imageSize.width / imageSize.height; + CGFloat xScale = boundsSize.width / imageSize.width; // the scale needed to perfectly fit the image width-wise + CGFloat yScale = boundsSize.height / imageSize.height; // the scale needed to perfectly fit the image height-wise + // Zooms standard portrait images on a 3.5in screen but not on a 4in screen. + if (ABS(boundsAR - imageAR) < 0.17) { + zoomScale = MAX(xScale, yScale); + // Ensure we don't zoom in or out too far, just in case + zoomScale = MIN(MAX(self.minimumZoomScale, zoomScale), self.maximumZoomScale); + } + } + return zoomScale; +} + +- (void)setMaxMinZoomScalesForCurrentBounds { + + // Reset + self.maximumZoomScale = 1; + self.minimumZoomScale = 1; + self.zoomScale = 1; + + // Bail if no image + if (_photoImageView.image == nil) return; + + // Reset position + _photoImageView.frame = CGRectMake(0, 0, _photoImageView.frame.size.width, _photoImageView.frame.size.height); + + // Sizes + CGSize boundsSize = self.bounds.size; + CGSize imageSize = _photoImageView.image.size; + + // Calculate Min + CGFloat xScale = boundsSize.width / imageSize.width; // the scale needed to perfectly fit the image width-wise + CGFloat yScale = boundsSize.height / imageSize.height; // the scale needed to perfectly fit the image height-wise + CGFloat minScale = MIN(xScale, yScale); // use minimum of these to allow the image to become fully visible + + // Calculate Max + CGFloat maxScale = 3; + if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) { + // Let them go a bit bigger on a bigger screen! + maxScale = 4; + } + + // Image is smaller than screen so no zooming! + if (xScale >= 1 && yScale >= 1) { + minScale = 1.0; + } + + // Set min/max zoom + self.maximumZoomScale = maxScale; + self.minimumZoomScale = minScale; + + // Initial zoom + self.zoomScale = [self initialZoomScaleWithMinScale]; + + // If we're zooming to fill then centralise + if (self.zoomScale != minScale) { + // Centralise + self.contentOffset = CGPointMake((imageSize.width * self.zoomScale - boundsSize.width) / 2.0, + (imageSize.height * self.zoomScale - boundsSize.height) / 2.0); + // Disable scrolling initially until the first pinch to fix issues with swiping on an initally zoomed in photo + self.scrollEnabled = NO; + } + + // Layout + [self setNeedsLayout]; + +} + +#pragma mark - Layout + +- (void)layoutSubviews { + + // Update tap view frame + _tapView.frame = self.bounds; + + // Position indicators (centre does not seem to work!) + if (!_loadingIndicator.hidden) + _loadingIndicator.frame = CGRectMake(floorf((self.bounds.size.width - _loadingIndicator.frame.size.width) / 2.), + floorf((self.bounds.size.height - _loadingIndicator.frame.size.height) / 2), + _loadingIndicator.frame.size.width, + _loadingIndicator.frame.size.height); + if (_loadingError) + _loadingError.frame = CGRectMake(floorf((self.bounds.size.width - _loadingError.frame.size.width) / 2.), + floorf((self.bounds.size.height - _loadingError.frame.size.height) / 2), + _loadingError.frame.size.width, + _loadingError.frame.size.height); + + // Super + [super layoutSubviews]; + + // Center the image as it becomes smaller than the size of the screen + CGSize boundsSize = self.bounds.size; + CGRect frameToCenter = _photoImageView.frame; + + // Horizontally + if (frameToCenter.size.width < boundsSize.width) { + frameToCenter.origin.x = floorf((boundsSize.width - frameToCenter.size.width) / 2.0); + } else { + frameToCenter.origin.x = 0; + } + + // Vertically + if (frameToCenter.size.height < boundsSize.height) { + frameToCenter.origin.y = floorf((boundsSize.height - frameToCenter.size.height) / 2.0); + } else { + frameToCenter.origin.y = 0; + } + + // Center + if (!CGRectEqualToRect(_photoImageView.frame, frameToCenter)) + _photoImageView.frame = frameToCenter; + +} + +#pragma mark - UIScrollViewDelegate + +- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView { + return _photoImageView; +} + +- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView { + [_photoBrowser cancelControlHiding]; +} + +- (void)scrollViewWillBeginZooming:(UIScrollView *)scrollView withView:(UIView *)view { + self.scrollEnabled = YES; // reset + [_photoBrowser cancelControlHiding]; +} + +- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate { + [_photoBrowser hideControlsAfterDelay]; +} + +#pragma mark - Tap Detection + +- (void)handleSingleTap:(CGPoint)touchPoint { + [_photoBrowser performSelector:@selector(toggleControls) withObject:nil afterDelay:0.2]; +} + +- (void)handleDoubleTap:(CGPoint)touchPoint { + + // Cancel any single tap handling + [NSObject cancelPreviousPerformRequestsWithTarget:_photoBrowser]; + + // Zoom + if (self.zoomScale != self.minimumZoomScale && self.zoomScale != [self initialZoomScaleWithMinScale]) { + + // Zoom out + [self setZoomScale:self.minimumZoomScale animated:YES]; + + } else { + + // Zoom in to twice the size + CGFloat newZoomScale = ((self.maximumZoomScale + self.minimumZoomScale) / 2); + CGFloat xsize = self.bounds.size.width / newZoomScale; + CGFloat ysize = self.bounds.size.height / newZoomScale; + [self zoomToRect:CGRectMake(touchPoint.x - xsize/2, touchPoint.y - ysize/2, xsize, ysize) animated:YES]; + + } + + // Delay controls + [_photoBrowser hideControlsAfterDelay]; + +} + +// Image View +- (void)imageView:(UIImageView *)imageView singleTapDetected:(UITouch *)touch { + [self handleSingleTap:[touch locationInView:imageView]]; +} +- (void)imageView:(UIImageView *)imageView doubleTapDetected:(UITouch *)touch { + [self handleDoubleTap:[touch locationInView:imageView]]; +} + +// Background View +- (void)view:(UIView *)view singleTapDetected:(UITouch *)touch { + // Translate touch location to image view location + CGFloat touchX = [touch locationInView:view].x; + CGFloat touchY = [touch locationInView:view].y; + touchX *= 1/self.zoomScale; + touchY *= 1/self.zoomScale; + touchX += self.contentOffset.x; + touchY += self.contentOffset.y; + [self handleSingleTap:CGPointMake(touchX, touchY)]; +} +- (void)view:(UIView *)view doubleTapDetected:(UITouch *)touch { + // Translate touch location to image view location + CGFloat touchX = [touch locationInView:view].x; + CGFloat touchY = [touch locationInView:view].y; + touchX *= 1/self.zoomScale; + touchY *= 1/self.zoomScale; + touchX += self.contentOffset.x; + touchY += self.contentOffset.y; + [self handleDoubleTap:CGPointMake(touchX, touchY)]; +} + +@end diff --git a/Pods/MWPhotoBrowser/MWPhotoBrowser/MWPhotoBrowser.bundle/images/Checkmark.png b/Pods/MWPhotoBrowser/MWPhotoBrowser/MWPhotoBrowser.bundle/images/Checkmark.png new file mode 100755 index 0000000000000000000000000000000000000000..89c31d3c21f78c201dc59f31e9d52946a3c3bd9b GIT binary patch literal 1609 zcmeAS@N?(olHy`uVBq!ia0vp^svyk41|*NpQ(y*Ck|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*9U+m{l@EB1$5BeXNr6bM+EIYV;~{3xK*A7;Nk-3KEmEQ%e+* zQqwc@Y?a>c-mj#PnPRIHZt82`Ti~3Uk?B!Ylp0*+7m{3+ootz+WN)WnQ(*-(AUCxn zQK2F?C$HG5!d3}vt`(3C64qBz04piUwpD^SD#ABF!8yMuRl!uxKsVXI%uvD1M9IxIyg#@@$ndN=gc>^!3Zj z%k|2Q_413-^$jg8E%gnI^o@*kfhu&1EAvVcD|GXUm0>2hq!uR^WfqiV=I1GZOiWD5 zFD$Tv3bSNU;+l1ennz|zM-B0$V)JVzP|XC=H|jx7ncO3BHWAB;NpiyW)Z+ZoqGVvir744~DzI`cN=+=uFAB-e&w+(vKt_H^esM;Afr4|esh**NZ(?$0 z9!LbN!`Ii!Gq1QLF)umQ)5TT^Xog;9W{Q=op^KBLo3ojjp{c2%p(`+;%p9GZ4BcFT zd1yI^Xl7`P!z~cKDOlVB)oX-PuRhQ*`k<&qifWh;F#Uj-@PrHGz>|Jz9x%NZ0TcGo z7c)0AFfi@*ba4!+xby;bH97m$;pFsP;yb$h#W|jSY_!?W?Qm%ym&oT+k=*@)P8_NMa^f7@Y?#^B zC-Q`Zu08mUc`a9|bQN!H^E{`^rx&Dco;hF9VTZ$+009mIyMP^Y3K!-b{3*PJ{cd}i z!f68@!P4fFDTijiXMUv2@VRA5YVq`PEz^b?g*a}re?b~P3P-pt-m}hI_KtP?rkiUz z8g8+BFyET%xBQ(9n_HU58XfTtTalRB#%1w*texD;xUryT@$1Cy!mUD zZQ2S$x&HE(+Qu&NvDe#mBy-Lxv^@T>dy$US$GC<=lkJZ4u2Vjs9NFfuz-nI9%d*{J z3j+k+mfb!p(70s%b$c!^+auql-kh}%c(|}_?(e_*`WV(TR2(VtFj#Ld@kOHe9>X8z zb@!*(?cq0fI((tMZDQIX z%`NyprB`3ND%QcCXLVdME=xf{t1dzm>Bf0U_TP}Hlxc}t#;VK(C%&W1kU&$q(gxUz4kjXQqP-S^-0 l2@a|OoFPnGfBjHBz_8(-my3`7+a;jF-P6_2Wt~$(699{HTBiU2 literal 0 HcmV?d00001 diff --git a/Pods/MWPhotoBrowser/MWPhotoBrowser/MWPhotoBrowser.bundle/images/Checkmark@2x.png b/Pods/MWPhotoBrowser/MWPhotoBrowser/MWPhotoBrowser.bundle/images/Checkmark@2x.png new file mode 100755 index 0000000000000000000000000000000000000000..5ac8c212d87dd78dcdd0bbca602af4793cc9ae20 GIT binary patch literal 2156 zcmaJ?c~n#B6%P_X!=@At6-A!`EFfe75=bCGLcjzKgn$?*GKAy-0h1S!2P9}Ki{OEg zX@rO<<4ouT0gHg5&LWgu7A-0VM-fGdrHX4u7B?LGg2MEV(s#~#-*@l1zu#TYeI?w8 z?Uon^3<`y^WV4t&&R6LPFq2LK#crPzc#KKddlEMO|r&Qsz z#J~g2 zTPt85_*=aHlUNa>l7V<0sDQHMLZopiP6k&pYKR;Zz>qu!g7z*|k(&m=kRlC|0U^;O z91-9Mgkq^dvxwkusBEbM7D$C4n@PhW95}I9MD_6|Q$l?hVPv8=iAW4Z3Pq+f7{stp zB8lYZ<40P;G9h7>1eC%{SkW>z1nJibSi>+#WQb=bC>LjgqA)om0Tz>{idT+>xgy_Z ztZ2np7@;d-@klUuLu>!5)k`X5ehk;;!9|4S(Fdi-yvvcnw(EJAjzXa)*i3qi^3Jnr z|BM*AZU5^%wL3j^Yur}l`#9W16IV;W^SC|6XLVjn5=@!3SggL|TDloX%5V=oAAY1; zZM(&}{Blun;?s`_j}op858v&7(LOoxj3TRQZ*6@&yfA-YIDp(R|NcX1eA`Xi`~n^q z6Ha$?HK{$NwbdA;(`nfu^tWfM4p@COzF*Y*7e(t65{;JD71XtvKL<@lPTHTYKcEiu z1CG%0JILwPX{=v6OWB=@V( ztc|4D+5Nq9vF(W+^EHo(M1{mBM>rQBT&ee$lB;jUM{RMox3$-$Ul__lPg^bcm9fIj zFooto&9gh{zqqm5tboaP1M5nsOhD`2Vpyf3p!@4QT-^`;b1-hoXbR#_*&<@>G0sDmR5!*k1bApA7(VF zZzE^bl&?N)Ik?HE>qvOPA$5YbDIrQ&-#0d)tk*fK(ON!hw@q%!WtHhis{@1MdFw{? zC(ro(p*CNHGTD*$gX{`zRyIR=^OI_TrjckImH68DwkH*891iCm$o*=6OvBCelB1dp zu5dgVoRErufW3#wr@$~L%r-*DE*(R`}E{~trnzIYqP z-nBvJQEXRJSwHNp+m0SEVPCX&$Mje}|7yhD&zoCUSC{d)Gj~+8v*r4V{P@k5R8qu5N?&_8#Vx|Ka4z9k`(G0ur0j4#rcW9~ZxalD?LxiP zP2@bTRaaFr!`Z|<(wk7txH;Zck zGc$>ozI*WD!v{BuWK<;-d+uklaSMz6Cc)YH*42L%XpY8vnS@^a{`>7icREqy+4?LO z<+cQJ)SNnn`(s4;YuTCePv;zrY}D>%4~w}kv;*1M*{nF@7JYZvZRm~9BWkRuBl26v ziPm)hkJmb;lMK2~PzN6BoZRYT_O%~BetcqnKD)oMcYI@R)TGni_)R~ZE&buV!iM7J z7ReHO%voz&TU#|%{qm3rz`*TkH^)fmQF?7^$vKuq%ueSAY=+uHWC^ z5}^LGog?pO?JEB7XZKkAT6eH-8~n|$Cb~VN_i$8QKrpcpJUD6nuEN1|>kgyo*!94a zNokMFgs_Tlarg`4Ky5Te#r5hdcutcaEF+;(QNJ7f)$o!vNXc1<@6u5V6ePIiW5F3y~| zlhD#)U$iQODEeXq5otw{ig{>Lygeu?ink{f^}#|h1TVoCY0;iZvZ)V2p~K9abN>0i z@4wIP&O-a5`c?G=K`c@?DMh@lkDi6|@q6#v-)y|BMAP)LtM&*2mq`NkyMLJYydl*d+Ev=!a>AetvZdkFLH2LC>3nZ|NG`U5{ zGkGrqO>5Jj54#2nC4I10PZ?zEM$i&Un81ce1EJmL1X7qLr+6j2kHj=FmsXEns4+-MI|?53!l=Y ziI6AJbhTQgstL;VD>R!*r6LZFi(`#=FyJ69j5|TB#-PAJ_bm@ut^*=Qt=sKKX%c%n z9fIxU^RvWGFq0^pGCI^enxz=pwxhVFv;$Ox|G6=zc2FAdAYFuk+wbeR9zC%d80YT8 zh9X7mjkMXfa8a~A#nt<5=pa=|llTi|Scb$WL^+q`ls1NA#3aimIZl=pUXhbZP7#$< zjbkn>!wWfHN%35YX=d4MLgo_5jF1x*P8MXLO{ig2CqSB`!9;J&@@V!TP+WTTUeSA}Y{yybAQK9ni@6t_`L#ELn4Sz&C#^@@cH` zf3iknXXvOs-fNed2=`#Loo#-6m>nPJ;F|TwBc!Wha-eYy5Oywl1gLUOoEY{Pz0% z&$rIE-`w)!!2PC6m%m!^>($Diy!qTH%`>|z2Po5Ol=|QNO&?tR*)u*i^2_nBN6=aD z$Wfb5-Hl&(eS2+s$Mq%8CpWLr*=@rQhY$aB>(SV`C9C9E*tCbJBhGwt1D#2|Y>0jv MYPO)9Zrir=UnAm*_y7O^ literal 0 HcmV?d00001 diff --git a/Pods/MWPhotoBrowser/MWPhotoBrowser/MWPhotoBrowser.bundle/images/ImageError@2x.png b/Pods/MWPhotoBrowser/MWPhotoBrowser/MWPhotoBrowser.bundle/images/ImageError@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..bc7ea2546750da033c5635d07d7b707a677be190 GIT binary patch literal 1533 zcmeAS@N?(olHy`uVBq!ia0vp^0U*r51|<6gKdl8)k|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*9U+m@_g%B1$5BeXNr6bM+EIYV;~{3xK*A7;Nk-3KEmEQ%e+* zQqwc@Y?a>c-mj#PnPRIHZt82`Ti~3Uk?B!Ylp0*+7m{3+ootz+WN)WnQ(*-(AUCxn zQK2F?C$HG5!d3}vt`(3C64qBz04piUwpD^SD#ABF!8yMuRl!uxSU1_g&``n5OwZ87 z)XdCKN5ROz&`93^h|F{iO{`4Ktc=VRpg;*|TTx1yRgjAt)Gi>;Rw<*Tq`*pFzr4I$ zuiRKKzbIYb(9+TpWQLKEE>MMTab;dfVufyAu`kBtHuNWFoz#!AFNG#Ad)HBe}%?0@jth%@)C>7xhtg4GcDhpEegHnt0 zON)|$@sXws(+mtd{1$-}0$pR}Uz7=ql*AmD{N&Qy)VvZ;7h5Huj9yA+ij|46nWLMl zk&Baok%5_op`nG5k)xxFiHoC!i<^s?izUnqY zg6JLfn5d{Jn(L$-@jAZD*f@PtdV*fawYfiiTs%+gdH-87xkAUo z!GTF=LIV$oU`aW_Y^G@MyltxGmX+((exLdg{_a?gQ{DId8+mW0#dOcfeYM>Guc_tr z=XWyh{_m9%;Q#n-h{ z^S(@ean@E@?65S~3(1Wd_aq$pJC1%l##H4ba!{M`1!Ex3dJzSqMH+FQ4lXW*doDG2 zbZAuwHE?ufRRlFm>sVDWsX?scRmG)-SsiK>QVmiaX%$folRB1F%xVzocvf+%K~+%k zgARkY!l4I|jD3zRhc>gwG;y@2^Ui4I=xk@G;8xO+<9eWaBt2!%jN%2p&z4`y>{niQ z+pgu$qi2i$3kJ$Lm&JV$C{K5tv)y?8-bD|OI?OtBeOcjjHx2g(2i`lJ*lWR^u*c$2 zT;D$7j{=U@bJzdnyYs0$L5@#n5xY%>i+;t1j(Hyx1ou8Xs91HR+38Ccd-DrPex{4o z^DL8iE0%R^o;7RZj(pz=weRbB{rC1seGGZMQq+I#x>+AXUagk(-*Zm$LFYAVQJams zmba(}{lD^|>${=ro<)D3tl_>tKVp09ZB2tB{c}cNHOunOENhxro~e@e>kP1%`F`xk zkxzrS;?WA_Aq#qIOV#Xo*9WHRFL0L82$IC^_le^fre5R@jM82Z)gAgDn0 MboFyt=akR{03$Fp6aWAK literal 0 HcmV?d00001 diff --git a/Pods/MWPhotoBrowser/MWPhotoBrowser/MWPhotoBrowser.bundle/images/ImageSelectedOff.png b/Pods/MWPhotoBrowser/MWPhotoBrowser/MWPhotoBrowser.bundle/images/ImageSelectedOff.png new file mode 100644 index 0000000000000000000000000000000000000000..9cc030bef46eae4c863cb553428467ec8bb8cdfa GIT binary patch literal 2641 zcmbVOdpJ~k7j}tsK`zyhG7U$OxiXU(4Q6IHOvfNI2_?qNo-r{OGg~foy6O0i=;BgT zRN_#Q%Q&d0luAh=6}fdPQlum)Nu52FzVDBo^T)TJz4!07*1Ohv*IN78i9TNL`ZLXE zYG`QavpfJ_c(hkPdb;p?(XK#Ecrb%j`a>L<5Q^q0KnLdZ~1B$iT9ud6SikYWK9wU)@n zvE>XfOzaV-06B49Tz*_QpDaMRx*%7?P+$NF2=S0Hk_f4i5<^9O#ihV=^)?oT{3-&4 zQ&HcX@@M-X88QWkBw`%Ud>kH+B#|(9M2u}q3oBl1FJQ4kdcd-^Q|iJZ;;0W4L1Ckmzv8^e=h@faLdB2mZnRay!8g8y~n zr_xGptQ^Gpf=XGGf)D3IXf>q_bNBCt)Pk@#6mNwXP6{sqkny7=pcG;OR1|!I5r_p8 z9Nr0Lak(RIIRQsk2PT6C5b*$RIgR8rh4C}pl{iNx0mr}*$T&J4ztVw5aByM} znIwQfBhrX;;*>5+s)Tq_J~(Ap4BP#tOK1M8E`^~0d5}!OmB}KeD!?a92Fa9RGC7jL zAt9Htd3>={ycjn@x(YR$4XKBU?0gAj&0+Iu8lMX;0c z#mT?=kZ3}Fw^YZjWbar(3mIPG` z7g$(qiO<)(*OI5Don8`GUn%KaFKWt)-8TBXCAKdxI5>EfNL27=RaM)^f&0r^dwcV2 z5wjaMmOqSGUC=sSR$4lo+c{)#AS1(l#UgLuMQ2M3Pa+nxwvCVUAwRp!&o3v0)Q;SL z9WIp`WKp8*!YTrDW9}#1%D{GZbaqM@42EVGDd8hi?-Md&t#M_ISNkRd$-?0m^?Mf{ zagH4k%*i*=|DB%jw*O8iX8qay2Ami9r><%rbiKG{^(I+Q&AFWF>gt(amObn5H>A}O z&CJX$Jq@(oD6IMX2;q?S8(FvhNv6dS!qOyyi54@GZyZ~H{kk0)X>*(R*?nRIcS1qq zC(HW%Ez3@a=X4a3Ltc7A>>dP6*o8&U8savl?Xe4UHcMZ#s%FT(A|Yvkx%u-otgg$S zwti8r&uZbEX{S}?<>!A^3_d_Vx|TG5a=S~>-O<^Iqe17P#Ogfjc9-ynR|~QZA5J}{ zyKad@7~gYPC*oHc zgtD%)k53mD8?<1_F~cD?T|N}ofvN$kTTkovac(e~D&rWF$$*}g`}e_lUSow~C3jttH19B^zjoaK0f{8)ywD+D3w}G^Bas zSUd6Ywc_@wzLPtes)j}U8E7{)%f|lMs@KNdu6i~sT)t8J6S@{#0}GOubrfwJY85gFfrY5Q4Pc6sdnw1z~gBe3(Ds>t)NmR+)&(_KZ?^I zrlc5gkaKWcKfi>(+?E(Uu+Ox1wS)3<&DwR+tPzvbjtWy522Z+PmEP#}2s~a^aZ&qk z?_CdW3bQwly-b;}d3kB)H75r`grLVQFWVa3Ja_I~o=)Jt83`i`GwCoz_4-%FPgz=8 z9{c-f5SROxQPR6(Z$8ZkYb_6NE4EzZvgHE?&PLqp9_p+t2?JFc>AMEnYG7z+=pA{b z@7XhoRf@-Hqxh{?_g${6taR*Ivu>U9f3R)FW|<|9*@D}uv(u99b#xqF#Z(pF*x{a& zKPVK549hIXCMaIN&rR_7)p@uPg|a_%cJuq<121w-mUz{OFl>gx>%r&_?dgQo3t4yV zZ|#LsJ^cpVMwK%()IWz6S!kk9U)j@m%6-l%8`W=fcRjhISN?}*&RA^8 zhU{jkSUk=yYCQ_v)qGiZ(ITFI%A_N`f=hRPY^7~OhQC*>h}}sZ>jqOU$Gr++v)Pu$ zWP<-#PUFLJkv5S?T-;~=R`>nuM{Uqjj-TH=3>qEO{LV)hiL~2$LGfU;tnJHKNF>^# c`}49|4J)ts0Ec6xMe3hC)=Dp+m>#n8A2HBb8UO$Q literal 0 HcmV?d00001 diff --git a/Pods/MWPhotoBrowser/MWPhotoBrowser/MWPhotoBrowser.bundle/images/ImageSelectedOff@2x.png b/Pods/MWPhotoBrowser/MWPhotoBrowser/MWPhotoBrowser.bundle/images/ImageSelectedOff@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..f989f6b19517b658c797968ba8e35b8daf000dc9 GIT binary patch literal 4839 zcmbU_c|4Tc-(%ks*@kFP5t$h?W-t-M*!QK7u?#b1FpHVNMC3-cvX!l}BqiA?J2kkJ zH7QCIQa(&vTL-?JdNF<%IzNfS8pf#+lQ* z@7{v^oM%WDREN_68D{Pb7s_cyIF3dDpz#zx0?3MlJ40|L;P7WddI<&q08aqX)t%vP zXN&TukifWI959na?CwP6q_=R#^}>!1)w6igTNPgCJYqv21Z zoH6GA$l}ZlRRS0cDhdJ#4-W^2!@(5V8Hl#NzWy!`7)*UKDPB6$~ZWH&&6+lwL4h+zc0IgLUB{pDd4@jqyQG&e=+XzL?P zep?QMq0tx}3|bFkjzMDdRsNyH|9`v&;V1*yO^^SRF26yX9NZoLoBW)~zvV+9b83dh zDGnp!E*tIY;Z72UN6&nQ;RbSC=T`DT7*?aT63``01EkKm8z zvYm>}5s!O%8ZZ_XjdAhu4SRsF+x4}zPHrbo%!V(FX+4^s4{RR~9`k8o^coo%O+j>Z zUozR9eEvit(J;DNsyPlws#wsC;mR7xO*BAhXav5R>AkA3(z^1nWME*x+_*mCoqP=G zReNMOi`|vL<4|A#bocg--q$UgA@c04c_FW8P1oubek=%p* zR0o6C9z}1p_}JN{aJ9HS{gGnsA7p81xo{I5dn(;CK}=yxQdah*Xgf*KD7uYrzUN(^ z*kl9AbGjvT!KCPZweYZR8#k0y*SJ&OiKc;m(ZG5CrPGQ`9@|b>l7pqCTnqE_yUjC&Q4McB)cVx?zt4{r6`tQdn>ZS1cmXvN zv={wt(#WpiD8!vrXeI0OAp8DegpUC!u(1o$U*JY`!hik8ciY(HU z?j(hY>Q~q2ESbJ=Ny~AaAp(KGl$Exx_LZu`HMQRz3_fGl(~P#6z@6>tR_fF^s21SxekjJy{fEoiL?;Wc|&PM%GS@7M?MNb;P|cW z0Z&RhLeRleZoXaMJ9s&iRXP*EP=^=UloxQag8%!^!l*TmVa@6`$vvt&2HRVetu6He zpr5ty`1|nXH{ny2VPpJr%gS?1@uF?nNHORkfZ{9HT-51O{)-PQ%gf)Z%B&6QPEAUE zaHzHKN^(#h>`gcj&6IP+irE=&M3p83EF*YPonXU1$UG%?08PNiAIpgHP`OH;Tys;L zr}N{2Z)Hx9_Gnn}nrrUmtiYhys3()nbfJyXR+)Iu7^fsAEC1_KMN^#}sQ^g=I#jeTk3oqTu z*vpg6@V()Bl2iw#Cid`{B1x~{+BIM=vUjC+PyrcS${VZSNuzC8c=cJjOr85WcxOHG zkGw}a+dsR}X!O(REvKsO>@oO6C$g3_zjlSoqiNF)OCZ;YC9H%xzW{e!L;yhOJ!_GQRe#k`jPSR@!7hC$j|T0y5fZP z-6|_DPm36-e<3%6pPRY-{H{Yznv&sbjn*;$$Ehh79$REFi~3QyZ^a+WOc%TLQuWJ? zgSe>Yzn*9^iTZH=d4bXSZAX*(tgC$2(o!D)t%9xT_XW;`Zt3P9;;Bm)nPR?AnHajgE-pDRK6U%{?F~*7{*-?_DuQ>C{rnV= z_N@lLr^lvUGcb+Ei&Hn}kI`llJ-`n3_Nf}`>aQvbD#H$T5O`1IXt#kuw<<@{Qy-fw7b0 zzV=F-Xe^$iqEo7(Mz6TAigO@7RdVA#kD{Y$IBU$rylFplluDY7`!!!)J;uO?2_c>d zA3k$@bFO%Ab6$DYlVO}%!lgaQsj1!(`>eK&gM$}qMn*=e>mT^ls!hW}Y>&a=S9unW zp>8bBSP$ps=33ZTTT8XEhIs|>t)z~kqaB~~NGDRV`2b`yqu9vFtZR6fvI5N6!}A3| zb^pD@^=A4<4ZtPz$Dl3Is$)@ui0`a6U%3^*8sb=mM>0C!G-1!@els3weu+xQlLB7T ztK3kHy)v@0vU;=`%kEsYNuw%wxm?VG&WZF4gG{STvAd}vh~dD>}Q)S z9_lf>6DC>P%a!%_T}u-k$$CzVw3k)SZ0;$>Oc2YO&u!HC9fO`H&C4Lvi0TEbud;<%lNxt|d_3M}#mjFBVN3Ws`U-gaLBJYx``n;k z?P~jnDjiqRtvf$>nrsIzWEl!&^8;&~+Nsye4~8xsJMxA&H^nCJ=vtc@!P!cqy zF>9^y@ij2B^|-rC$+ToaWyO8p_j`xNDz3@AO1I zcERxiWwHs^$O?{8@a;cht9iBe&pvTl7v$+D;uHC}iNlwioSc$dGBY#NgW5&c*RnL- zq+%>C%i-$Js-B9eaB3oTi3$k`3DdLL(!t&}VpKaEu85l&7^so;Z5VtRdUk(ZJiEbz zFsY`+i5ddtOAiZcFqta3dw0SjZd0O5<=)Kor?fS8D8fi@Q@xZ(otPNt|(4*=%+eO zy|{e&a^$F|;GgEXLydb^c~&u1rm_OPvkPODTni<3*#43k1~bsx+uKZlU0bx-&q>*CS)Zd8?c(~symcE!$X`BO{KE?{ z`RwHDH$x`y&Cr_){j1$ORo?BVYK5-LG8bzfzlyb=x1g$N2V6nHq{q{pEJ7g1F3T!s zZo&oj>{rhTpQIfi{f%W9YfLO;I z9vW5TIp+&H>NrTi_DMs`e%e8eG`^X=W$(D7)dd34MH+M6H+2!kAI~@@I~^CyQ6`k! zPnn1M;L(Sx+)?1clTf4>c1}}NS3L)wEf)KnkB@Kg%b_R1A`^c$+djOojZy!0(fKyN?qtEaH`QKZ z^7FMU#w4Tx-+M**;ojWk^6H11ripK>_)8Q7E7h<0)yVWPQ4elSz7xmUK<@g+D3= z3^ESAtnk@K@5|5v!w+n**H3M6iAyqCW#_jyK6-H=rD~6F{rq)P z^7Yf!uq9!G=wD4vp^ie~*J$A3tXOL~qXg5^wOH#C`}{yQm+Mf$Vb3pRvDU6PCsJRd zty%t`)|`%UPA|3(9XiDCmijs=C8hoyYH)dfeHXEyaVk0zTJ_$`Vo4A1Cd}Q{*?Gi^ zX}j`m7Uz_g`noB^A9@=Z_cawoIexT{YtCqYIFjkS}gTsOF4}b?-tcL*yuiF~9 zk=GW-?P$j7%Ll>AhSX_e*7nv#InlkMsqW#M#Pakx_WdGN&3{{F8C_OlsR<1F*71&R_EmNzR>WfVG$FOki?LMWF$bafG92$EFeck zE7%rLR0xa3pezB)B8Z5UC2A3{EDBXDpt#g;u+s1Q(bFH_oSC`zzVkfKyWIDlGe?60 zwj1eN=|dn8BVQj%FgU`OA6*^rZF4YE0~{;?Dh&t`#Q`#ggbg9HM6qnBuYkc}2eTQh zf4i5W~j8-T{LIXoc=_WXJ?49a7X zVBvUwl)u=E&E@%|NZ27M0inzkKGTf_+qwnnkwgRq1Z;o-O%lWlrNkr>?4vFboG+V^ zFz81Jz$d}}3X0|*1oaY0*igJP7QsZJ(NF@x8I8je2xvGIgF<7FDDWmA&^RKVK*YE} zKV2};n}iid45oO0@&&F)FfIUyiAbbOCUcfyokbE367A;Zwyc4{AV35{nk)nuNeH3T zeno-8mNF$gF~AcEq05SlSkXR!1Op@eD+Phr-~Vr6q4ZOsz>*=87-A&a8HE%Gmh<|E zmIA@-|Az68XlZD&n2ii(OGW!6OmIKq>{rNO?f%`-G7yZ07%1U^o5F~vh?x5XY$4!F zA;G{e&MY2_h(f!9Rdm6jTrentD;iw6V!ge{6g--Oav>93S2X^KOGV+lF(@w_#tr3( zMpLn54A#{P?@gd!$apf|6Tias6-ohykjY;0%LDy>;$r`mOZ1Yk8GuLF6;lP8WIc!x!fNA(=IC}um_i?e>Xq4`1|;SJh8fRHxC!~ReW)gbiGoTb<&(ckpT9abljy#*7nbMKlU63p9w+2PIn?V4*NmED>otTrLefLE z@)4t$uxG!{TiuGsTf6e|^1j%6m6+0&Wps3IZcfj{#6(Y}QtfDRG!^0_;pUH8TGD^I za>ZZ%W}bJuY5&`lrKM-7R|-|v8xwPNy}lTtudmeM5vQoYZ z;2k+K_Wc1~Zm=is==l>%fW^i;x=PzG3%cerca*-VsHk{~No($fXX!;aYQ_z*4tZAJ zP%7Q*?d%u^{hhe@AI4AS052=@BHg`jyrF8mQ^#8VR@Uufb$97y8Yab@4Hu3f4HmoCvM#44MSxm!{{|n zE;L=cmV{gn+kbyNLNgEHQ8RZm080~(Ka4t$9HUKRkD_A@X>yt%Gt`nSFgIOZc0sq1*gz`49fq02Ay$=Id$_}a|OjKh4)4fH&XUiHvwM3mX$fNIxBvO+eQ z-d!q)dwul4A-sW~<~R&5i+PcNg zBcx2kGNjhjl%s2@9y37@iB$4zT%4c2zds9xPNyRfkE zp~SR7MVT=CZgdsNQt???@~cxNRvBwYRb!mPF;yekN8M^?_8cEDotCyz?*I53dI?(y#CAnN~d^CAJV#$lo;Y=oXm@ST(9gj&|n)p1Ebfm7C!HCi} zk8@w`t;p?VB1%h3!(T9>8oqhb53M@?-pJs*He69tgW;MXjAx6K`IoU)In>~bz_2Q7 zi_^t>@^>$Pu5IgV{bH_mAT7I`G%UHbXG@`ExPUPTXX~^{O zX*-){>s+g3a-)zw;o^Y}r^DZ%LdTiQsTBXu-tZz6NRAof`?sv^l zN+*?ees;ua{M$Uo2amNrLPkHQMdO*(>#0p^^En9#32vP3mM`z@oaV;#Tr;pwvjAdW zrz2k<6p<4J3qFkp_jWFQ!?%42gx5K3^!#(f`V?>DV`WNir_9k%Dp zcS2yR0WA?*<3v=bLQs&vdJJ#N7jF*PwX6DEcK5Bj{5~V7v8(MZi^H?6W(%EOmS%^Z zH#oobz4I=kxyT=W|{s!PeSbkWZ2i000PDoWR+! zN9X;Ehnsyrp9a%n4-yPhXNEoPEF**%Kn7q*G*2?vf(2`ADIF6BzyZ(F_3SyuOVPx5(eU=jfdgsCS)Jq z6X5}5`*3RquW&yvT@u950IVO1W&=>j3?ev`;!h1khhiXq;iB2|{cQ~h_%9NM9|rQb zQqFi=un8@I4AzEfs(ZoUa4-@Hg==Xek#IFI0tQEDz}P2J9j=AeMxqfq;C~JXTUr3= zEZPod_Kz&~3Ip+BFz9FvjgXKKXox117T~P`*VWbC$3P&|*%a!5VN?b&RGk_q_X`0> z4)hA}r89hKRPa6`(UTU$z(ClV{%rzrECObz_UQEZoKgc9i*a41ZJLfNa_q4qlQKU(9UZ{dYn8gluilHUYlupb-6WG_N2EnaZ%h zVIb@$P?9eR4TGcDUewWo=^$W86r8<6X_}c}aoTVkOb3fZ{lfT9yv8U~xUrduCPEj6 zg~LrXu?S6+iMAOMhrnuMwT-oZ@mf#=8APfV`IlT@w%mVs5&xAJZ4y8xGH3w~G@Adf z46yZ~F=&B4G&$6TN(?`y0yp0s7ls967)@m`pMYpi#hoc^K{cA2dLknIN^` zy4uFSEJq-)SezCPi^7@VkT_k)KfI*>kJmKV%4qDT$Nx!}Ut8=P+@JoN{OrZQV!)UJD%7A#`LRi{CcYNsLK5ehDB8!Jgs!aN3sNM^q)ImnFA;>X3+E z|7n>IUt-bZ5VF&veXx{!0ab6H^uzGtNa<3^GjyV(N+PAa|5V5!8QbCp2SPzynf!3kQvP2}}JliH8z}e%Dxi6!%`xl;h!%L@6|WlV@_s&CLzW&(Ci(UKVbj z8WF0>muRD?0o*=5Lx#JU8qJjJC>SMlcXULOX5L=wk&uu`eS2M6PkKBlu!&}rDXE7> zmpV8&M85WFzJ7c4Q}-TEzo6~>)XOtBkRXnT2TYt%Mp}BhGks~SI_uoCt;2mst(L^) zcExrTc9G*;<4MgUiyUP`s@YxL-5wL;%-U~C+7mFx9z}i?Ic*QZeQ2kw7N=nLW zwbQITf!!#s?_=wd1g4$=7)+RY?D`xrGd=Bie&X8zs8z3EDFySXHetL)cBs*%mK!ne(vlj z20o7USoBq#*vVUOZ5h0^3}Jn1x?(U8Z(UH!k!)D<_%UX&ByLKCz&x6noSYoEI@fup z&hEs+iQ0iYc~wKI+@ih{?+z~-nmuQp>|4&^#-FRAtNTM{eSN(!^{BfL=rIuV&XH;0 z!gpraZR_P;pI^)TjnM?wAnLehRSNSY$~1-HJ-rAlAf zS)Y8mva*t(<#y|Fb8Wn!n~0X4j`UYjzw8l0ECxj}QsG3?X4%=@i_p~c$oXn>@$yEG zE>MEHVqvPI`$Ib7obZtTjjPH1M&b0sN`X&7#_FQ(DssbgXY2T{R(r*hTXI~#8%vm3 zSaZB>Z4UZ6fPtpAiuJ5tP+NqA)CiKQ_$s9(-o;$y~Nm6wM`bFSA5=DB!^taxQURM zYAB%=HB$V7)X75@u9f~_DYmOVAXqcuhi%#rjF_!-7lRdRxwLdgpyGHfvu6QsWo5;A zAyafBYH#hOtX|npWQn2fX%OBZ4Bl{a*rx)_Pcr65m;`q;NM>SC#LcA-%d@-TunMi9 zd5bU4F(zWvR@#FTYd(f4>pnTU4quc=q!@oC-UGo^p33#dCci&@`qZk%bIY0j+M6e?``pKT!8}adZ7a)r_XzqhoX0sCi}MN%%lKm{Yq&Mv_W&& z>^Wh}Ac&qDty%5dLT{|sMC58GDx6+So&RXSZ6dk!{`Io}Y2Mlx|KvlMtD>T!O)1;$ zO4OYK*PAU{ERo`VV*7(}<|<#F3?AisfKC2??P$#%B4r}kj^ z1yCNFJ*}2D_0J+NC*GwS#S2&}e~4|&L0sJh$IGpo)J4)2*$!S)S7fx833zc>=BPZd6PD#uT8lq_lJ=XJqjy9nL{)b<=6twlY%DmERI@4V*u7g)_bHT}oPs zb?X+~1-JhuNzbuW5-8AUNc+e}NF9jqcVxf&#tu`<0Ae$a%3F}I8^i;pu?=LP*a4PE zFLS5rB)AhifJPnJS`DfiaE3>0{q(8Z70V*tyjU8No-KugQY6ifU0ab6qf^RKU{*4K zx2n#S@vm)R;Hn4@kfo<_+$>0I=t%NQ!RLmKVs$R5t#9};r#MmG2TY=PoMuDznj7S! zsh2wrRw>m#FepiWc%8fCEB{dSv8zd%k|V<#IeN0Iz*2Uz>*RBueuU-XFYECkaR>#o z4z{Opvu2-A@@~&?)NmoPCtV^&IAC3iem-@QS=P;WNr}^A`X1m_K`7tSYL01f|1|Z2 zwxIKHZ*Q-e$J&XZI)rr95roXt-P5f@CAWT;XD#G&sJghgI5QQ6I4|jeS4B%RP93ks z2v`CIt12EnN(7>mU9?c&-o_>W5D=Hwjqgk(4!3f;+1WL?WG7@6p0Bv~Ty|9&in#lB znBG+u$pbRO03AF_GY`H5i65P*%*SqjiDh<#R4KJ6U2#djCLnQJP4wdXd|RbQUxW?Q zK%egtS^(f}PB*`+pm>U#jnKm)7Hb6^wLF$*bmzkr&EzN`wCx26DHl&nJykdQoYpKD zENpC2l;i5zc zVIPN&b;vdtz-kn5Vo1VE4aev|RzC7Gn(k)El5Qn6)^32e`P@h>bgbx57G!YXu zeAD^4aLR`o(Tx7JAKhgYymQ*&+1$wRu85`419FYnrNNtXKYdhp$KSeE6-L<5t`K#J z)|8m?wP}1NGOgz&=rvu`yr{NDQR91{YQ|nPKW*wkiIwnFcvb#`2M_EA!k=^=>sXss zd#4(Q$nY? z9z1CIYB_1b6&l#i{KU`V8nJFPMb>>*b$vMqB?!2%KiAy28-HXoc4CyVvk$Gll*K0P z)-^N_abZ|kvyGKALa3~I<9Bx^kb*a)Hwy!8YUHvwqJMiexo}t8Z=*h2cq3q{@8|fZ z=DX&*_n|{(W8z|)~b8yV);92j0;GIhvyj>+; zN2`5bB?A#yvs z%8G=7Z|+3nPtWX&;$pJvQCU|hb(QqMd}8MPMRR7ovNwWNqyKC=Fk&PsI3#7zUezvn zQQ=_JPT?Ps;XThQCp`n+8LFqP4+|_U&*q4bYQIq67vFs~kCc14sMp=Lg*v2k#*$`< zMJoD~78h>=2Wwyx;MANjjT=X_UcUn0I`JbtCnLt+8h*Vi$lW}7w4WyZ*)XtqYE!_ zjYRf!ZLNQ`f9^lbVs_P^wNx`-9D9=+>=Kk$)Lxz&?0MhYI&nqkNdV)|Lg`hl?zzs) z_TZ(l1nbn%>m$oU#FIcE@aV|ssNw1g@#MT-$dXiJgzPc2TH8!>mb{{3Z*!IeCTvV% z7rFfBdG9lrGT~Gh@m|i_+FI*mN#01i=lraFf~sk;imEDYGF;E?u-OX+A-gW~a=vH2 zYJlPE&QPV3)z#I+_S@>I>>5%(Y|jZZw{A<9Q|#$yRk;?Pb>NP@Z~0^}B*uW^OQBGT zOG~M$Q0VPDw{K5Rd-oN625U{#=skIM)284(;&T49b0!fdp_ttP2Wl zal;BNOGSzv!3Nt3Qbjq4RF2>R0^(7`QnW~fs35p>qGJ2Q_DAQ;%(u+D_ucot_s*n; zh6Fk}x;Qcz3@51s38Tl4ERVx`mUpQ$pB|=DVg)59)>3+u#26wKu?7RA8Z;UU!%$UH zd_A_1!LW%@hbt(BELflwkX7-n)jc`(eG4?t`V#A4Go?7{IA@L&Pt1-!XH+8e1_ zD+ogZ-uR+dLNJD+v;r1Ouh%p6TqZ$Avp9S{-@*Yw9<+srE(xblg9omgIm&=wIwh&r zQfdMRER5(HB7qWuw9?lhXtXlfTVh=ICQ)?CSO!$f;xO4Pjm8q!D{CDUhW#z$oz}YW zBrV1Y!*oOfsieh{ziWKwyMF%JD8N2ln$9@n9~*=fWJ0m@9&~-u}D*7=c7Q z5zmh|ik0Fz3dNP!s9!bh_YD^MPprV7#88SL!wDj8v;sn72#V0f5L&=r4g+&#s8Wqv zHa@W&(Cc^+j8rFLssNJE0IxDEP`^Wg7vk;j$>#FJ+<%MwHCFY1vc{stuq@^Ak8&B^ zqHEAHeOvtW;%)n2INdWO-5mEa@;;?|u2PDK!VT>WOIJyj$4?#{{@kg>eu^xo=t0ti zxL-Xbv%sAd`OT{{wz94yw=W6ZOPoz(Km1Y5xlj+T>75a|v+!I?Q=#np?A9Q8{b_)! zxLVbh8(-G({BwEu&oO+U^E?M_0 z=ZbR=d|5CiGOf~Tn#eZ8v0nhgvm@s1moLHnO2wSV@Z-cX*3$$TJpZ0w=d|%`MSF8m&f&Py6w}^ID|&t zJ}(d4d=uCEZcB)d?_WhLxT?rMROr@Tb2|2`I<7;kICpCPoees;18iEEeetoi>xoMZ z4F~M)?cF-H-uFziCpi32P*5=9=H}+{_0&8S)V4zL!p`MRHzSYna*qPeky&+a;4WAY z+h;QUQf!@(_C)Y4{^8*Fd6}6`ALktJu#wvyci3H|MbS?4#2rCJP_bihKopLLG&8QW zwhlSWJJ*=&eiZQgK)V0^wj*}cE$!{gYx?`+cVr*_Y}}5P>(?V4xB8W@WJcF~RU|Rj zA9UVT>r&oUwRcR^)8n%CVtklPe?lsm?U%?@>XdKY^Z zD19$43cT)<*VuaP+BJr3#+*sjJ;fCj6`c@?0`Ys;a6QR8YxruVR~w zk<5TD(X0zF9_mYou{{XWj zLZR^ak7Z@16-UhLRjNbFk1hFSyI;Zh{_Z4jw)~4=+v)Z9@83@uO4QV|r=PG%nOUQv z(hme1U2#)SPfYZ>bwT5?q4~~pOS^O@{8NAl9wp?-lf6^A*RzarhpxqEZkenLhaTU) zUA^s#{%6lR(*GQr@<6u#*TXe8eh)q6H)2L}d>Qw*oF>w69vMmCMq4K%)NHV$VG cuSm6Gw6;zE^IlDa+46ssibIf6zo@jo0Br>ng8%>k literal 0 HcmV?d00001 diff --git a/Pods/MWPhotoBrowser/MWPhotoBrowser/MWPhotoBrowser.bundle/images/ImageSelectedSmallOff@2x.png b/Pods/MWPhotoBrowser/MWPhotoBrowser/MWPhotoBrowser.bundle/images/ImageSelectedSmallOff@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..6b28c52a9626c5bfe99a2139d60a8a73033812d4 GIT binary patch literal 3296 zcmbVPc{o&iAD>3Z7KKP%rco%%Y-X6bW~N!J8Ou-x6=MwMWtL{9W zQi!Ou3~mx3vZll(X_2Mg(Q@DSkNe&~-t(Mue#`lOKHvTKJm;8;ldX!Pjv@d6P_efo zQ>7zr`B^0=eG3}%$bcF>6357fi1R@fN%tQz?EiOR^0aMMnSP_&cmM)Z7LRC0WAJP$CRwjUd1g zmL#MNiVPaC!Py@k|Lb_kIwte_;ylU^|uh1mw^@5$sxWe|eTUESRjw(qGI}&B1)BGF@ zL4J0QYA09QU`s;DedV$n!^9I!Cr{D=hT<`` zLBC7)jg5OmfA%8%UOhe|SXx}XT3cIt^kz*>vPXgYR})F-2$y2e!N_gze%ju?uln}w z+w+Zw6!s7y;dlK_3acxD#Hejq^pYq2*a@_T1~@p-4PPai1F&!5Yysp$n6w^FjKdV+haShzK7*5o!d zH35l4qCt`#K4RDN_xt)fy1Kf!ii(OAr&3ct@+1#MslMi}8os4blISTp?RXJhFxG;( z?zL1e%OjEQmcDMwtSzJ8JtFxd3tPEkv9GT$Lq>jeOF~l89yK*JXh##^_TF#fm#h={ z*S-Ek-0a-i2sqz}KqcJNuDVjY5f@IY4C$$W(5LHT@izspojfBVB3NEt=SuLOXbuhz zZ{|Nv_*}HyH@tCigRrsn>C>nCjdxwkUlXMT-~M>9NA`kTZ(S*;@8*n`SS&_ed#|Lb zhpUra`J0Su!|*CC1Ozhu>dKDv=IB$(ah;L7ckaB-eEY0m;JvRjr;1tSgnOP_pHy=P zBEp(t6~@JTyuB9~j*cx_*~c*(*VB$~MDy)DJ$rT~*&tL2F;jLcbXGr(vS=qufr*u1 z_7rfqPEJEDCSaSfaU`HEP}Sdm|Lj<6D~MG(jHIP#WN*1B|8gtPY~n*1D&A6mH#?zp zt$P|Dvtdr__dCyQ2p7uKTXrYkD->--cbyvf;`uTZ}{U2AIYlj$1}mlCPc23+ha_GSn8noL+r&}E}&HvbM9SNUb7?J9e0 zrmR|Qe#UD$eSA1Uc*1s*} zkdERW%#LSgXWx=uh%<5+V`JmB1eqkZwY7E6<-jlTog`AvPA-QN;ZeLRFXmX0g0iwB zN?X}rOO%|wd*i>R?~gE~#}_QQo;4z$&2BV+?cplK?lCo)x%la2;*TIo6ol+bEZ0K6q=roSUK31zL*v+R#19IcE_t z8579c-4*_iF7Dj9Q;cKYn`LFpWi|r$&}fzy@%k1(%K4GuVPTy(aR>2o*~c2FZ}H&q z#Yi`8P*K0>W8m&?Ae24rxl8x-jF@gM9Pwr2d2-gE0Wa_opIXDO$vpg z#~G+U^dv!iWmndTmuJ{V-!os-gVtm%Ciua)#*_V_J9JI0GKXmkivWuhBWia^{eR}S$^d1{A wI{wB&{ne_$u9w9b&L;Bu9wqT9|N5rx3%FvT7lF{~`u@{lZ|y`bA^OJr8wT~B$p8QV literal 0 HcmV?d00001 diff --git a/Pods/MWPhotoBrowser/MWPhotoBrowser/MWPhotoBrowser.bundle/images/ImageSelectedSmallOn.png b/Pods/MWPhotoBrowser/MWPhotoBrowser/MWPhotoBrowser.bundle/images/ImageSelectedSmallOn.png new file mode 100644 index 0000000000000000000000000000000000000000..b251b6cd3d7866b3f60ffbb9c0581eb47c9f74a2 GIT binary patch literal 2141 zcmbVNX;f2Z8ct;?2GJ>?2r`gHkVQf^5|TiGkgx;^(1Zf6&2}Lf$U<@@0TC>MvRG-w z0#&GJRjMG1g9{P}ivo%)l?o^oup*Q>fEEoPo+ERk;>-`HKjxl$@ArN0ectEY&&`Pl z3o?V-z+o_$88eu{hE{w1V`8j-S8X6ei!~S!19D`spo*seU^JnO4Mh%ap&nV?rMn~(uTpjebsWFARYh_d>~FNr6Qj-Xpso9kcx~Z zurMq+9T16wQxpIvB`i{q5-%VNk-k0%Z#4xXkN_YLp_U{_l@v7<`IeUg?e$_b67d!S z##52+oQh#ZAm}m$fFQWzQ34DWiy#u+u^t2>5$lG)VX!zf2D*tTtOtcaq~JUe?=K`| zO(Be>uo;2xZ9yk0QUro>3L33asoYg~cbOs%jU|)GdJY^81tCz%WGTo~qom5sD+~-k zDNu;zpjakF=oxu@*n&OdvVs4& z@lmugGFc9w*?>~ES0RAv5xaRs8Oq&X8`1+IZz$mkF;o;@0z)R)D*>b+lR-s7U)+Ua zA%*4<5a3BBlrR4;JR7wBEQ3_u}H0)&AInFR4R!xZsHJn&?Y=pGn6AprlsB7dhV z{C~2BhMYm`+vC65Wkm$_pnm(I`Juyy@d2dJ%qXDYuq%fz!eEAZOa?7d{qSz|SD`xr zOW%cgdyl$}(QpS8>e$9_=-l{0;r6XR;G15JA6(8T-HF=xsASub#P(@gLE}cNqHMF_ zHAA(IC&a0JZakODM|GH=LoI(Rk#Ih<%`$?YLp3)3SUpcH8fHrm2WrR1C(=f#ld3oS zCrh@`Ugfzaw!h(IWR9-R8IDVC_J3$j`jlbyc?dW0yvg^G84nGM4+JY59D8SHrMvg- zYhYfA+T@&jtk$jJYF(YBovp2AuOkGYJ4!rJm=;j zzl7J(x_bWPrmfS_Uq78L&=lB4dR{f`QR$aU4twUpxJ-4=x1v}ik z&_6Ze^+uObHyN^qJ=NXlRKy;uxiGfKS-|)A_di1}cU&*M>(cz3?zcYC^OLB|w#PlE z3O$^{HvhaZ;93LhLc$$qq!(e6f`6#bQkDu^xQm(PemTW`4;l+W0fr5^vUElsK@7iUPae)yin} z(!JCCh)M?XyBB|o((K!}e8;{swW{4zn*qj8-#;>Rn82 zs*Sa*JYKCzgzul2F6|=bj~MLuBfWmZ+ES}^yK?4E{KDB&y+F}w6wbTw7j9l9jmy!* z^w$DS4L8_X-WX#r*_7YX-1~dQXu>H(DE^9mAlT?1mtu?*xqA{{}3cQgu zcAT4yc(A3zy>3v5+nw63D<7X5Z}cqcNW6Z1tP%(e3OW^-Y*62l!6^fM*EwEs3Nv$S z?dzU(~d}crxqspI~@o%uac-{a2 literal 0 HcmV?d00001 diff --git a/Pods/MWPhotoBrowser/MWPhotoBrowser/MWPhotoBrowser.bundle/images/ImageSelectedSmallOn@2x.png b/Pods/MWPhotoBrowser/MWPhotoBrowser/MWPhotoBrowser.bundle/images/ImageSelectedSmallOn@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..5a8f6f8cc5eed008a21ec03dcfa710bdc05ef579 GIT binary patch literal 3543 zcmbVPXIN8Nw+_84NJrEV1`#PC0Rn^?2u%qBA|Pirg#2^Z$GPIr*s!1hoGAdn zhbOpsGCWa^a14c{gWlKCVUnm^Gyq^~!K9)wL>vQn3Fl8Bn}OJE?I0ilYXw#8kUf$$6l6%Gc6hKA~d>giBu{$Pl)vGG0!6spbD(58ox8EB?9nXdYS z0g0nyXap*QKp_M78PS(0!3;AH*VDg3AW>1Me~8KSzZ1nx8JLNtf+0G(U=nFRu0OTu z3|HL$xbd&rbhj`n4(y7fQ-Wz2?tb{G{s41x_n!^zD{{SopP>=Bn}QBRQZT_J9GT&O zGy`$J=wJz0I6~jX#?aUpYGnY`g&9F0Mo=gMfz(GLjF7fS7}EF$$G>4AFe__>fq^a5 zSPuq)*ytgkdPdd;wlE|VVSq5OGWdaYAk!IWG6wg-IK#KNsS+50D!1~ z0}|oJoLcb~b9Nh7+-1+;LeI-dhQ$5Xp*rCJO-YByZ1}tMf@}KO`We!ZKv}*{d!hk8 zpwb=QIKl|b)fLIM*AxhfS4e>KINa>H(o@$v9{#k8kX2kmTVR5z1X^UgjMYn(7H+uk$*a$NTX) zn#`DhV>Pds#4{e;GLq}i&v0gzj5tn)NI*+L$F*pi1}^%Pl};vjZh z0+Dc44sk1Tw9qV#GTr=9jCUb*G7xstOkH}badBxlFL6SCgRp8c1kZU6Z~Ox;&y(i1 zH5616+qe|e!P^mnb;S1b)fn`y=RYLUvyN@*w*x@);X7L6WzekZXc=1Ah8**C>W%-~V! z?h$rECtX912h>_LzcN|(3Pzgx3>M;C5$m|KY05hybZgRMb#;|^{o1utBEML_+AaCn z&_X$pew(;+X)l@`q#;w9*bQw^Xt4-cooXl;7#LWtx>z9Jp~ieHAyqzU$^B>g_xJY7 zzKPn&7CG^oqTr0#-Zw>%ihx?4EN2dywB7gm_3J3?fox?KDiU<2<=0+%|F>N+dLK&bP`g8pV8h|H22ffm+xt!%aN9ECv)2 zzCEClE5-;+etxeZ z5&5!G2-;M7=gysDCicITjOxy~vy30D_<(hEuBi155I0>v3Y8SK`xokUl&AaoIoY2o zyI)jVy5J%w{c_S8ySS-euBxtH4$y|yckNEsB(~V%)gFyQd5rq2s;Z7?jU4Lj4|30l z=CBYpOy;Iv(yL=vx_rt?j?Lg|q@<+0lkF51`NMCmThSAeS6J)o>xNm`H}s{QLO-L1 zMNgb-1}KGUs6gC%whp{Mdc!uKNG7kPnIa@pGv`AfDXFPlPOO>1`8wY4=+dlMcSOJg z{^%Vmes&uk0qX7Psq&W!eoR^n+2p)A@q8hjxE03w3TwT~-a!udxX{~u24WKC%-P#d zW0lOy9z2MAWcWDa&9}ac!|jP*QT+899jTEnj*{Jkh0QWBBkSV^Al>PfPjqO-;GAsD z`MM>IM=bu~<(R?6PqL2wSeE6}L)po1^w(C~eaAbK?(-;&=S_c;Q|rFFP{>MK7ulMd zy;N(&LunOc3y6Q7&rB^^vx7(~f?_k_>S$tbk==#a_G-Gsfdfvg6v4biS%s(k{P$!&RA#;*ml4~@@-V2eBzEG|rwrZlT zTAI_Ml+h>k=!B-kv$OX?el9Tj>dOj7*N;^ro^*J|1Oj#uBT;!3ExK_0RK$mz#Ey@@ z2;+GK)M6A9FZ;8Hgz=?DiMW~sf>~g0;3&R)k0B#bci|qpD~~^Cfc`|mB>_(@dJ`uo zOxq9&tL95D0ujf7Ep19;3=qPu; zre+QEpnu0cBG=iLNIbm-#3cWLlWV$j0_-sxTaG=CksqO*f z^k_-b^|Qvp%TuOb$Ee4C!D+I#HB^SoZPk*LrjLF8F0I0`D>g|c2dFNE+%lLRQeu|2 zG?R$d*4AGfl_L^|KIBd`-c>oSoZg?^ZmEjXYMRjELJ}#7iRZG7gMyE=DL)Y`(0_Ip}4sCKyzKWAB*aozm7#9U1Wyy48i4bM&H05 z!x_w0y(6Pn;^qHpn4&It6tlCl)1H!% zp&imo@@Q21z8}B7tm|3f*S|09FQsqRn z$mdCSd$5`c^4BebwK$bqjC=>PuyZWCp;1&NmNT=kEfC#AnbqmTytw;t$BWf36g|Z& zBP&}$qtSjZrHgqu_<#MK$F~0XT%ETTup&80SVKZgCg<9SY|y3SS~v^u6z&-U?qyxo z-y|w3`t4%UDfo<9W*V~=ATJj5P|9t7qKacTl1Y8wJg;_VZj zKX%a;6dZWH+K^2eA0LmQu{z=q9L(g#p4gWtz(J1e79pukjN`nk@N;G6y`j;2rsw%X v`?haycNVloS=3w9e#Q;Ox=()hh~)w3Kk(Of;*F8pKWaJHI3a7SF2?^iGr%Ar literal 0 HcmV?d00001 diff --git a/Pods/MWPhotoBrowser/MWPhotoBrowser/MWPhotoBrowser.bundle/images/UIBarButtonItemArrowLeft.png b/Pods/MWPhotoBrowser/MWPhotoBrowser/MWPhotoBrowser.bundle/images/UIBarButtonItemArrowLeft.png new file mode 100644 index 0000000000000000000000000000000000000000..4075997d941be443fbf5d1058971bc6c763b2033 GIT binary patch literal 1169 zcmbVMTWr%-7OM_(yo>b@+ zr^3q zUT-J_5^v=Fo<%N2udB$IvY~_XszQ?!#mz=#mzfD)*S=3?OMcciz~jCD`!2ZW8{?( zs<$g(tcEc1YsdxJ@dPO7hUJ9o@OoCFRiS4chi1-0HdxNDY^`CR1pA-3Q(`6|WfPJl z#DrKfIYhU(=KskVOPpcD;`mpww6{nFhSSy3CyUkQfez^ykF>`4tqu1`TP@_(OeuI$ zdERUeM1G;(iF7aA<8GfdA7^?-sB0Zd7n_^z40iQjp6#4#ycnjg^f4WaJDZo*oq4;u z&~y0o;Oz}_2Y1bn)la=2S?UGf-|5x9yWG1I?47-P^z@m^=1r)xvi-^jxc2uy%^y2v ze?5P$|C7zTpDwOj+JEfkHpQNyma5149?t!c7QgJ*4vb{K?iq$157H-2mNy$k7jAT2ja=V#&)cqH)MZkopEK&WC$|igto-G3LbXe|i~1 zMZt-^X!R5RI13_TbH5DQ`&)zI{+_Tyz#8_T^%?^OqCn+QE!rDX7|n^T=rVAg-^MX? z1)}yiu~nx+{x+1AWPn;tgfUFm2-HTJNVCOmx7VT+K@vDY;Ur}w?TndX2m)PuFlbE{ zx|jgxU9$yOPAsCTaR$dzsgx;YHc4_fPC6Wpyaq)XA;PHi#Z+E1#+01}1r8`-S&XZq z6hrfhe5aIDof!0VHH2u~?_U>=DQk&>DZ@2Bj*}(=k4E!xt)LY(03N!rAzBIc#Q`1w zijrV4tA>8@I#mw$iMXrYSRJw%Ho7HLmb~a)v`^@O*Rpt62(Lumkhc_11@r^~(cd z@W#mSYTVm#cLqU<27H`5sD0b{V0pPA+g7}HD_i*nbL7^-yX8BQzt6@s{DbP5=Ec(C zvf;Z(qV`(v0p{G$NLLQYG3ep)55jN^o3c=4fB~Vasl+^V&k8>t*1sE&mf7vJ0=__lJs`VnXHfaYuQzI zu4HsZXzTz#^*u?y=nKnQyLN zMy6hH9qFzq-#4E={$MWiV_X-J6Ud!c*&7S!ubYRRgW6&T{`|!4(;bF;`X=3G*Fjq) zYxvl2PP={^NDz#n_|l+e9n;N?C+RJr#-9C|$+6FGP9`Gzmm|cJ>DR7UCw{;ytZB20 zH3Xllt~yj+GMIAxteblK_-NMseVx9fD0lEcodLaqxN+~XKkl5g=l^j&Pb+u6vE%4J D=mXRJ literal 0 HcmV?d00001 diff --git a/Pods/MWPhotoBrowser/MWPhotoBrowser/MWPhotoBrowser.bundle/images/UIBarButtonItemArrowOutlineLeft.png b/Pods/MWPhotoBrowser/MWPhotoBrowser/MWPhotoBrowser.bundle/images/UIBarButtonItemArrowOutlineLeft.png new file mode 100644 index 0000000000000000000000000000000000000000..412d996c9bdbc4851b8a393b6b8e84bb8a34c222 GIT binary patch literal 1135 zcmbVMPiWIn7>~|P9XjPgTsCxSN-FA55J=s_=@JWRdFwu=Xq9Rx+OzI5&MFgzHNyg&JVzwh^b@B1>- z*L!Sx>%LZoVYa7xlq?`Yl!N-GdUM*;h$iW5*HO?}mMMXWhziQ)sO8G#C|l!|>D=4qSWq(|BT;r$R6f%O z64*f?!Z_x*Xa!8bgFsNTF_2%e9a#l&zebH5vEfQkO z99Jrp{H1^&JHs55B+26t1Ru5Vxsw)A%Rb9(Z!jpx)f~en2DX65s21=ziLzAbY6zyC z$*d7uZaq;nWn5XcIq2s()AZu1S-T{Q{>WI@+RaVch|3}uk2@MYkD>MknC9-^jyyxE zMn2&f^ib4M1#9CbvPfEqvh<5zH*}c~L}(VnK|U<-Vg$kn9|=U_VHoE_3QPp}2FJSC zNIVn}QZX12;t(c1oG2+!QDUJO9pepb+H#3%X{h1X@cgb~rGH}Ogo9LqogBuajSA>1 zVuIZwwn3s_1RWVwGc0f8uy;VK@hZqMCXk+TunB4zmW_24Bw{I%%9iSp3qnkagu=m8 zQsm=&n5|>=|H&Fh#c*DE{8cWEEn0)#bglU5Vy%6UMSI4f&GGiughCr@Hm$^R<#&aj z)oNFhbbe-A^i=n=*$sO8_57ww_cyL!@ax2tt4F$TH&-5C_~zT`PA9i6EN-X_%!?nv z%+i}X&6W4_3p*}%4xU^70QY=8cC*U@-?i4kxuuoOO;EhicIVJTW^DJ)=Piq3$6Uw$ zDzg#19KW=6XuC17vsfqF!xh^AGL?|f?bkKL_}ph zhd@%5#!&`I^7LERQ6E9H7M1L%J(@bg=XKR1IXa%QYG5=$^hL^sl%GI0$f0pX3zPT1 z{+0xa941HnDJEsaP*EAEm}s~%n9Wxv@*$aw90Gl19uug@mOxpZ)GWRnCO3F_Ja@Kf z5^Sj06Jc`GsnJv##B>t@zsF1E83+N#d7#hFanKD|2C_7RUyg!4-p}!D05l#FTQlVX zpAi!cTX+>Fi?(g>G+io{JSDG3H^*rh3WXdFmZh);Wld|gRHihmr^z59D{m@>t>_wX z7^R#(Wrs=Z>1GJ3kxFe5YgQvsIAwHMGHB>wXjOIM+R(P_4EooNZMCiJw1Mahvh*o4 zkLywBX@YU?9&gA|#NO~jrhDf%QQK*!$KAciCEkZgRB5y+`(}n5sG5eAH`B=Vw0L>OIjW^?JC%A1M7P% zmXDc8vUM}7>yyn6NEdZmw~D#}V#6Fbn3D2}=4|vj1=@^PM5gjKk`tz`f{hIG%61-b zi6Fy@g4frGoMoe-pg-VC#5qP_0%QX#|DUYU*csYskN>nwa|`#NGu>)_yx6)vNW*u= z#Fyiid&dU^;o6%NquKILxwZB6NNd>D**fbAQ!6d?KX=Z7i?GX8U+7=^J93uFx#|Kq zxxW9Y+c((V;F~k@t;*P|Up!I!dB)8XwP-qYX{`FpP`|OedijTy^pcS7`|bSFT{rms z`}t3E9g9mJ@7woKK3=6h6RNilUp-Z;bslxMEe(5S9*B#lE-ZKc*p>V6bEdts`&dWs z*#q+wKI5LPpFY^J&^^>f)sF4IO27j*-;7@XH(Tnf1BYf~mqC2FrT>@KT11&GR zT)X!4$nw3NwSqHQyYpo+cJAJ5l|8?%oO%7y$aiy({PP#FCHm;zSLPng4xCHu>3#6> z>id5c#*SBCI=O!Lytn7w6ARuui?Q}Ut~_jMdycqq;>C|vKOycrKcHlMP`o0%@!mgN Cl%|pZ literal 0 HcmV?d00001 diff --git a/Pods/MWPhotoBrowser/MWPhotoBrowser/MWPhotoBrowser.bundle/images/UIBarButtonItemArrowOutlineRight.png b/Pods/MWPhotoBrowser/MWPhotoBrowser/MWPhotoBrowser.bundle/images/UIBarButtonItemArrowOutlineRight.png new file mode 100644 index 0000000000000000000000000000000000000000..4f9fe7766ec523d9c43d4a72ea01ca6de0ae400a GIT binary patch literal 1115 zcmbVLO-$2Z7%qZJ2oQ`hL8I|YIiS(?Z)?|8=GfLvMi`K>#2GJ?_G4>Ce`r74AjXJr z5FyS4xAFiFCs87YMyzpEQXEJ`HERrll%eEd1}fV0oEX*o%N;SdM1!EBM%e#0wG^1ht36-W+XQ%E-x@FT4tq1%zygrc0#~ zRq|7olc(8GDCBW)oDW<0+-VajWuNJG)fr^ys*Y|W-7%ILCU(=5f%hT+AvYwe;8{3~N$Yd1S>LplRpYsyjaeT;Y2!8msZJMs*%8fnPU z@uesevZYQL&_pRYOyUzt(>00li#UtH02AaGL1bBx5&dE;$i^66X5)UQ&ap36jPZUh znP5dO#;~^$Hj+Sjch< zmJQ+~0yvjeRNeG8&U+VBjaP<_egkSr$1=cfh9!Mp1@UN7z_LTN$T=<=68T^tnGl#5 z6C`U`?SHaHV==T>9{-d}eGAv1H{C0Kyx40WXyTr6aC4k}`819jYat~^v*pdPok}Ir zc#U{Gd8wl~+X@cPHFx}MTOXOt&1V-c_I_?!-<}nZzVGhu8X&f|HhOQKxEt>K*!Z&DI~0zTK!Uc09fgYuKu=$$_pe`4DJ literal 0 HcmV?d00001 diff --git a/Pods/MWPhotoBrowser/MWPhotoBrowser/MWPhotoBrowser.bundle/images/UIBarButtonItemArrowOutlineRight@2x.png b/Pods/MWPhotoBrowser/MWPhotoBrowser/MWPhotoBrowser.bundle/images/UIBarButtonItemArrowOutlineRight@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..d45324b10b658417a542e34373fb50f6f7751942 GIT binary patch literal 1253 zcmeAS@N?(olHy`uVBq!ia0vp^GC-`v!3HFKYIk}9DajJoh?3y^w370~qErUQl>DSr z1<%~X^wgl##FWaylc_cg49ppsArU1JzCKpT`MG+DAT@dwxdlMo3=B5*6$OdO*{LN8 zNvY|XdA3ULckfqH$V{%1*XSQL?vFu&J;D8jzb> zlBiITo0C^;Rbi_HHrEQs1_|pcDS(xfWZNo192Makpx~Tel&WB=XRMoSU}&gdW~OIo zVrph)sH0$HU}&Uo07PcGh9*{~W>!Y#3Q(W~w5=#5%__*n4QdyVXRDM^Qc_^0uU}qX zu2*iXmtT~wZ)j<02{OaTNEfI=x41H|B(Xv_uUHvof=g;~a#3bMNoIbY0?5R~r2Ntn zTP2`NAzsKW@b!fooL3ADC}5E3S0onb8|oS8=jMX^1y)^L5|oN?23FO@A(aKG`a!A1 z`K3k4!1zd0hG_4vsO)9&zsf(x#Dnw{I%?QK~t zE>I%Y{)3(K$gOKjYTvWkX~_O^+_%KjTT|4duS~&aivjDz8G*IOxMdvT{SDRKGLA8? zanw+>i9RoG@KEg4bIlWL$~8MITHAPc6n)VZ&f4{0#_Qc#x3+s_NCbT=6_iR7sjY2M zseR3H`j=kpuWO>$-rWw#n6dlYQX#AFOU1;#?rm;;d0KJJo70sHLazXwtPyTw> zTkQ4L^)pNKg~t&lg$K7u6y$UpdZ?Jy)xE4Qee|#Lf5{@DV?oC+pV%&ZRrK&q;iIZq z&o7^Jm++1g7Jk`n5UDP{@ZFZ>ufF(u+*{eToq?I5;%ixQjhp6OP{HHr>gTe~DWM4f D_f@IC literal 0 HcmV?d00001 diff --git a/Pods/MWPhotoBrowser/MWPhotoBrowser/MWPhotoBrowser.bundle/images/UIBarButtonItemArrowRight.png b/Pods/MWPhotoBrowser/MWPhotoBrowser/MWPhotoBrowser.bundle/images/UIBarButtonItemArrowRight.png new file mode 100644 index 0000000000000000000000000000000000000000..19109d33abdae98e6c4d59257a345a97918d6f60 GIT binary patch literal 1158 zcmbVMTWHfz7>?HI92;&^HWVKY86u+1t(T->b+%2a1v^JqbPpnC$>|!lTujbvw+B%N zqA2*_4G~d6#S300>WhlEK2-6B3W|cDh%X8%z6$eXYp25S!9a3u-}n8O^Z(h^)w!~v zZb2PE5DlqSQU;H$_-(13iN8xX&#J-0d?fdvZYzfhiUWz5X7xglGL$};fr>V?=>cpf z2wzUm_Mo2hYEiWeO7SpM(XcU_Alf^Mwxae!1bShgZbr$kH*S+a*P`UQP?|~G37FSc z4Lh)VxHGE`_p1?&>{t%kiy{^P=A!1aH=QW1rnA6 zL5O1fDidZvn5Ec2kmvbjfMZyOW;mMV{46g9IFVsM(N6U#BDOs_FS5Y#LkS)@5 zp-`X-0m^dvXf_gwcp4n%#|XbWWFn>LH{G_Xf&^XF(QTw#Ch!!MUTY9VN$lxF2!@?b zPYRoEB~dtKbWyQsmSSkb@ZuUryC?&HyD=r&%?{a+&Op~1bX0sFxwa}9=kDKzJRtT) zT;u5YQj`J7QU?uaqLdUR@d>5rn#cqNhGqF6!*fhnU|As+mZTsXWRpoDoZy72##G!; z5Cda!LJIL%LrTUtPLN|fE63%aAphp3OcyDp3afT?Y`4OV|C1{w9H=16$y(MxwF0{G z7P8#DWrIX_2&5HNH@&rYJrmJN(9t(TE$LVW7|*Y$PhlSi`&Zl%J{A%ZAwl2*Tp%2d zlNGM^KRKhZGqhJ6e-uk~3s;~woh*I4m~0+s;*N1}Yy8~NG7Y!Y^^_FL7T@\@KK zT_EQA8t#_4n}_lTj@K?~8o5J)T-(Wm>+i=lwl@BF_Rww=W|x|;atmjezELuKZO_=* zeY-ahqjMUMosu*Ai4VRNU!?QsiLdl_n@|^7@_hQok@%6dk^P5TsIl3l(aSII#pPF9 zW_J*NyV6`qHP@^`~Ec8(A?>^Z01i m@2q=qu6(q<^r&>Erj{W-FCHuxnwk%Le}{3jAFJg2T)jk)8oi3#0-$aN1{?c|g2d$P)DnfH z)bz|eTc!8A_bVx6rr0WloBA5~7C5J7WO`H;r3P2|g(O#HCtIc{+1n}DR9FEG$W1Lt zRH(?!$t$+1uvG$^YXxM3g!Ppaz)DK8ZIvL7itr6kaLzAERWQ{v&`mZlGf*%y)H5_T zF*i5YQ7|$vG|)FN(l<2HH8i&}HnK7>P=Ep@plwAdX;wilZcw{`JX@uVl9B=|ef{$C za=mh6z5JqdeM3u2OOP2xM!G;1y2X`wC5aWfdBw^w6I@b@lZ!G7N;32F6hI~>Cgqow z*eU^C3h_d2fv+#z;JjjJKmmhHzap_f-%!s$KQ|ZTFR<$3lAu(CGq9>I4yi0i)elN7 z&Mz%W2F6F4GE6ft?C@IzQV4X7m48ttFj5k8T=J7kb5rw5JY8&+fHHb1nJHEVCKd*U zhUO*)=0*l)7KVlvj%F?{CWa=4Zf+K4&PEn6GqCA3HFUBxGdFZ|F*P?bG<0!uG%~Vq zbu>40b#gVaa7F0#%quQQ%u7y%*_#Qp7pm74uU;$XqSVBa{GyQj{2W*c2*}7U$uG{x zFHmp}HdXLVOwP;$@j=l8@vTd0QD#|cid#{Bt^zoGtunFLZ(xDyZ%cDWQwwKP3kxG- zBV#i&Cnc!f6mr5$ALtl;P~t#JEHEKp3Is9XNgv38XP(qNV2&vQW{u)&5px(A7^^*9 z978H@y_sR?eKC+|P#E3l;Lg-S_?OpI*lNAr?mQP<@?U4DxqM2D7wt{JOe3?WR1r7xPEO)8^Q$Padm9^pARf44UJ= z=cl}HEjy!%eF0yY<9y$kS8O>=Gk_FpP6OZU9U;@xtV>Z^L9;9%MJa*r_&#`Vr?gTm0y2Ni{kSg=XZES{5;OT z$s>A(*8F=9F5bz!#@sFPzL9N*-17&Ej_jV*=Kt7C!^!5-NkP9$N4_4F%-Ya0*{n$O z--=6ta%W>Y<6qUfo3C%vJJP@RAoJh2dA|EuBpB9&CEaoGI9v}Z-aK9XT-G@yGywoq CV%jbM literal 0 HcmV?d00001 diff --git a/Pods/MWPhotoBrowser/MWPhotoBrowser/MWPhotoBrowser.bundle/images/UIBarButtonItemGrid.png b/Pods/MWPhotoBrowser/MWPhotoBrowser/MWPhotoBrowser.bundle/images/UIBarButtonItemGrid.png new file mode 100644 index 0000000000000000000000000000000000000000..f3288035ac5a598a06bf244e217322fc23dd7ef0 GIT binary patch literal 1044 zcmbVL&ui0A9M71JF)X`y*aqq|15sG>d}*8NVN5V2dGCGS_w)JwK5VStD$Fd*Fbq?u zuUSpHp3lDNDf&M;yilOaJgK(H2Hqk)Cq|6n;SK`zz}ZGk$s0xxORwV;UWmB#x z7Bpl-uE;sI9wx*IU6kAPsofD)Jr%2&F>(lwTNv-=9nk1vf|D+efVrW7tG46%VJ5hi z6=)c*g<}6c@@g>-z#zk#e}V_H`LD=_Snq$b##3kbtUdl}ms~`9Fx!rspB~2JgF-qp zF&&Pj>+m%ltV-Q7TIuJ`uh}!_9!)GhyYk}sS$k6XdFk5LZ7!I~bTWJLke$>m5dT7DTXOrCxjcvNK+b)=O*{--yl%~n-ZfKK<$+VkR z4@FOc{)*~J@!&}i@!&~%Q$+OS52$!7Uew9%rg|t99Fok;oA-I%?+4Y&!sy8O2*WU= zr)u@Q!s-9YP*ZuAzIq5)a~sx zJMXZwSHMiHQ34MU3&h^KA8E19c6l{=PQ*M5x+-K%XM0XH%ql405CMggGqxa#Kvg+$ zT2WQ;GLQsO;syGs8F5-uR87i){$i=M&}nKlSnAuNH=S)05@2$b`%;B)bi}`#$ z;gF;Z)yPC!KC$AAA5EkT5Jh(A2E@faNEoeEyg_u9dfE%Y3rzEn*pK>&qABBJE8s;= z;5{#itE(N68v5hLk=jvxD?oe=MR+5$X+4?~DVXN&cteRI^+vlEy0j?PI>h#dhkR0o zI!pg>j_YWOAr*>hRubkVLCuL`PLd1*PD3LHOHhURl;bF@P*P+$pDjvxK^DcLY)Eph zpp;Z78H%CID=D_@N5t}Nl-hNv-98o`i`5DtvIq|A7_X-tP;Fy^qc#peVMzs(re(W+ zBA7}F)QcCQ(A`8%Da0P=W>|BN@ZjH(_pr|YWR0iJ@JW08)h?-s_F!^6Y<_w<93SM< znF;A|3@<>D4%YQDH0tq}{ZHZ;1BM2LAHQ}#elFf08^3dL@5!lQ_-(3n=I!0b*;^+{ zFLo7c21j{K~!G D#Jx%a literal 0 HcmV?d00001 diff --git a/Pods/MWPhotoBrowser/MWPhotoBrowser/MWPhotoBrowser.bundle/images/UIBarButtonItemGridiOS6.png b/Pods/MWPhotoBrowser/MWPhotoBrowser/MWPhotoBrowser.bundle/images/UIBarButtonItemGridiOS6.png new file mode 100644 index 0000000000000000000000000000000000000000..ac819d30eb2a386cccd1dba51f34b4273f3752d1 GIT binary patch literal 1028 zcmbVLJ#W)M7!dCI%+{03&|@3C>Ae7)l2$+jsZg`#kUWaJ_kVe(w65APDn~ zHQeIsmF&AX%m2@ZH|F_rjnz7AllIuaiHTr&v`auEaJET{INtu_6S5)*(|y0)VIBLP z;nF~IG94)mB90b>mDMzI+#SL|mu&l?DgJo>Q3SqciVsvZ1IyR_8E%|Ssn}q(x52Ocw2_Lu4fzw z6}Uzr*$sZ5j&T$sDR4c({T+xxP6d|k?EmSO5)w+g} zrCMr5&9RLzVNU3h+^)~+j0Fc6D(#0 z8pn%C>^~u1J*EK|W!Uh~@&Ia9y@qf_`B&s)toJ`zlesf;)*gSgOD^I)m~Bs+pC3-g zhlG4)Vm=%%AKre$2MaZ@)lR>4e_o!sbTqZ_>gLM`_59+~#deVb}2Pd9H1oscRD}6N0!sO`U({p=3vKdwn)po zpxW5utVD;4y?~+_rnnFXmc5DySVnEv*VrFVpRvGoH1@J=3T9A79d~gfM2(H5roFLh z7aVrsEGWh*CGZfjKlM9j0GuR>NecHmUYtbsBP5s$&Wc)xm7y(q)7TCnfy(pUZkOw3IUKfmu}~-^ z9Fmlw8kwl)6D!X6(M-w!QDld1KwRvDgwa~Y>qKLzr-Kl@z%+M>{b-mdnle7N0$$_< z-t&^U`q~kxqd#u!sU0#;JEf@$vdHB1*QCYU?Zqn94lw_YSuTQ!#8X6ed} E-_M^% 1.7.5) - DTFoundation/DTAnimatedGIF (~> 1.7.5) @@ -37,7 +38,13 @@ PODS: - Mantle/extobjc (= 1.5.4) - Mantle/extobjc (1.5.4) - MBProgressHUD (0.9.1) - - MJRefresh (1.4.1) + - MJRefresh (1.4.3) + - MWPhotoBrowser (1.4.1): + - DACircularProgress + - MBProgressHUD (~> 0.8) + - PSTCollectionView (~> 1.2) + - SDWebImage (~> 3.7) + - PSTCollectionView (1.2.3) - Reachability (3.2) - SBJson (4.0.1) - SDWebImage (3.7.2): @@ -54,6 +61,7 @@ DEPENDENCIES: - Mantle - MBProgressHUD - MJRefresh + - MWPhotoBrowser - Reachability - SBJson - SDWebImage @@ -62,13 +70,16 @@ DEPENDENCIES: SPEC CHECKSUMS: AFNetworking: fefbce9660acb17f48ae0011292d4da0f457bf36 + DACircularProgress: 0f92b77239d5f3c612fc66185e2998391ac8e054 DTCoreText: 13ce06e63204a3b47c9db974e3d9be982bb0b1ed DTFoundation: 1d28080c20c3da041706545363f8238ab53a6204 EGOCache: e7bdb2bf15a2ad23bf6c67c664c9fc3694652482 Godzippa: 21621e8ddc2f1521db473a72b48148c3f0e79d76 Mantle: 60acd0cd363e27d945bda0a6b8e90577112d28f3 MBProgressHUD: c47f2c166c126cf2ce36498d80f33e754d4e93ad - MJRefresh: 6a0fd4c81a957803bd99bbbf55a956d1d6f41263 + MJRefresh: 6eb09aefa9622f0908fdf42d63c2070478c04c42 + MWPhotoBrowser: 2531e682860d62b8a7ba8659de02eb9040e431e5 + PSTCollectionView: 6749df92885353521f55279a7ce2b293762e2be4 Reachability: 33e18b67625424e47b6cde6d202dce689ad7af96 SBJson: 68f16f446bd6047dc3dd1ec4919a468c2cd7fedd SDWebImage: 71b7cdc1d1721d6a82ed62889030225f2c249e29 diff --git a/Pods/PSTCollectionView/PSTCollectionView/NSIndexPath+PSTCollectionViewAdditions.h b/Pods/PSTCollectionView/PSTCollectionView/NSIndexPath+PSTCollectionViewAdditions.h new file mode 100644 index 0000000..1fe930d --- /dev/null +++ b/Pods/PSTCollectionView/PSTCollectionView/NSIndexPath+PSTCollectionViewAdditions.h @@ -0,0 +1,20 @@ +// +// NSIndexPath+PSTCollectionViewAdditions.h +// PSTCollectionView +// +// Copyright (c) 2013 Peter Steinberger. All rights reserved. +// + +#import + +#if __IPHONE_OS_VERSION_MIN_REQUIRED < 60000 + +@interface NSIndexPath (PSTCollectionViewAdditions) + ++ (NSIndexPath *)indexPathForItem:(NSInteger)item inSection:(NSInteger)section; + +- (NSInteger)item; + +@end + +#endif diff --git a/Pods/PSTCollectionView/PSTCollectionView/NSIndexPath+PSTCollectionViewAdditions.m b/Pods/PSTCollectionView/PSTCollectionView/NSIndexPath+PSTCollectionViewAdditions.m new file mode 100644 index 0000000..92b9f39 --- /dev/null +++ b/Pods/PSTCollectionView/PSTCollectionView/NSIndexPath+PSTCollectionViewAdditions.m @@ -0,0 +1,25 @@ +// +// NSIndexPath+PSTCollectionViewAdditions.m +// PSTCollectionView +// +// Copyright (c) 2013 Peter Steinberger. All rights reserved. +// + +#import "NSIndexPath+PSTCollectionViewAdditions.h" + +#if __IPHONE_OS_VERSION_MIN_REQUIRED < 60000 + +@implementation NSIndexPath (PSTCollectionViewAdditions) + +// Simple NSIndexPath addition to allow using "item" instead of "row". ++ (NSIndexPath *)indexPathForItem:(NSInteger)item inSection:(NSInteger)section { + return [NSIndexPath indexPathForRow:item inSection:section]; +} + +- (NSInteger)item { + return self.row; +} + +@end + +#endif diff --git a/Pods/PSTCollectionView/PSTCollectionView/PSTCollectionView.h b/Pods/PSTCollectionView/PSTCollectionView/PSTCollectionView.h new file mode 100644 index 0000000..8dd1216 --- /dev/null +++ b/Pods/PSTCollectionView/PSTCollectionView/PSTCollectionView.h @@ -0,0 +1,136 @@ +// +// PSTCollectionView.h +// PSPDFKit +// +// Copyright (c) 2012-2013 Peter Steinberger. All rights reserved. +// + +#import "PSTCollectionViewLayout.h" +#import "PSTCollectionViewFlowLayout.h" +#import "PSTCollectionViewCell.h" +#import "PSTCollectionViewController.h" +#import "PSTCollectionViewUpdateItem.h" + +@class PSTCollectionViewController; + +typedef NS_OPTIONS(NSUInteger, PSTCollectionViewScrollPosition) { + PSTCollectionViewScrollPositionNone = 0, + + // The vertical positions are mutually exclusive to each other, but are bitwise or-able with the horizontal scroll positions. + // Combining positions from the same grouping (horizontal or vertical) will result in an NSInvalidArgumentException. + PSTCollectionViewScrollPositionTop = 1 << 0, + PSTCollectionViewScrollPositionCenteredVertically = 1 << 1, + PSTCollectionViewScrollPositionBottom = 1 << 2, + + // Likewise, the horizontal positions are mutually exclusive to each other. + PSTCollectionViewScrollPositionLeft = 1 << 3, + PSTCollectionViewScrollPositionCenteredHorizontally = 1 << 4, + PSTCollectionViewScrollPositionRight = 1 << 5 +}; + +typedef NS_ENUM(NSUInteger, PSTCollectionElementCategory) { + PSTCollectionElementCategoryCell, + PSTCollectionElementCategorySupplementaryView, + PSTCollectionElementCategoryDecorationView +}; + +// Define the `PSTCollectionViewDisableForwardToUICollectionViewSentinel` to disable the automatic forwarding to UICollectionView on iOS 6+. (Copy below line into your AppDelegate.m) +//@interface PSTCollectionViewDisableForwardToUICollectionViewSentinel : NSObject @end @implementation PSTCollectionViewDisableForwardToUICollectionViewSentinel @end + +// API-compatible replacement for UICollectionView. +// Works on iOS 4.3 upwards (including iOS 6). +@interface PSTCollectionView : UIScrollView + +- (id)initWithFrame:(CGRect)frame collectionViewLayout:(PSTCollectionViewLayout *)layout; // the designated initializer + +@property (nonatomic, strong) PSTCollectionViewLayout *collectionViewLayout; +@property (nonatomic, assign) IBOutlet id delegate; +@property (nonatomic, assign) IBOutlet id dataSource; +@property (nonatomic, strong) UIView *backgroundView; // will be automatically resized to track the size of the collection view and placed behind all cells and supplementary views. + +// For each reuse identifier that the collection view will use, register either a class or a nib from which to instantiate a cell. +// If a nib is registered, it must contain exactly 1 top level object which is a PSTCollectionViewCell. +// If a class is registered, it will be instantiated via alloc/initWithFrame: +- (void)registerClass:(Class)cellClass forCellWithReuseIdentifier:(NSString *)identifier; + +- (void)registerClass:(Class)viewClass forSupplementaryViewOfKind:(NSString *)elementKind withReuseIdentifier:(NSString *)identifier; + +- (void)registerNib:(UINib *)nib forCellWithReuseIdentifier:(NSString *)identifier; + +// TODO: implement! +- (void)registerNib:(UINib *)nib forSupplementaryViewOfKind:(NSString *)kind withReuseIdentifier:(NSString *)identifier; + +- (id)dequeueReusableCellWithReuseIdentifier:(NSString *)identifier forIndexPath:(NSIndexPath *)indexPath; + +- (id)dequeueReusableSupplementaryViewOfKind:(NSString *)elementKind withReuseIdentifier:(NSString *)identifier forIndexPath:(NSIndexPath *)indexPath; + +// These properties control whether items can be selected, and if so, whether multiple items can be simultaneously selected. +@property (nonatomic) BOOL allowsSelection; // default is YES +@property (nonatomic) BOOL allowsMultipleSelection; // default is NO + +- (NSArray *)indexPathsForSelectedItems; // returns nil or an array of selected index paths +- (void)selectItemAtIndexPath:(NSIndexPath *)indexPath animated:(BOOL)animated scrollPosition:(PSTCollectionViewScrollPosition)scrollPosition; + +- (void)deselectItemAtIndexPath:(NSIndexPath *)indexPath animated:(BOOL)animated; + +- (void)reloadData; // discard the dataSource and delegate data and requery as necessary + +- (void)setCollectionViewLayout:(PSTCollectionViewLayout *)layout animated:(BOOL)animated; // transition from one layout to another + +// Information about the current state of the collection view. + +- (NSInteger)numberOfSections; + +- (NSInteger)numberOfItemsInSection:(NSInteger)section; + +- (PSTCollectionViewLayoutAttributes *)layoutAttributesForItemAtIndexPath:(NSIndexPath *)indexPath; + +- (PSTCollectionViewLayoutAttributes *)layoutAttributesForSupplementaryElementOfKind:(NSString *)kind atIndexPath:(NSIndexPath *)indexPath; + +- (NSIndexPath *)indexPathForItemAtPoint:(CGPoint)point; + +- (NSIndexPath *)indexPathForCell:(PSTCollectionViewCell *)cell; + +- (PSTCollectionViewCell *)cellForItemAtIndexPath:(NSIndexPath *)indexPath; + +- (NSArray *)visibleCells; + +- (NSArray *)indexPathsForVisibleItems; + +// Interacting with the collection view. + +- (void)scrollToItemAtIndexPath:(NSIndexPath *)indexPath atScrollPosition:(PSTCollectionViewScrollPosition)scrollPosition animated:(BOOL)animated; + +// These methods allow dynamic modification of the current set of items in the collection view +- (void)insertSections:(NSIndexSet *)sections; +- (void)deleteSections:(NSIndexSet *)sections; +- (void)reloadSections:(NSIndexSet *)sections; +- (void)moveSection:(NSInteger)section toSection:(NSInteger)newSection; +- (void)insertItemsAtIndexPaths:(NSArray *)indexPaths; +- (void)deleteItemsAtIndexPaths:(NSArray *)indexPaths; +- (void)reloadItemsAtIndexPaths:(NSArray *)indexPaths; +- (void)moveItemAtIndexPath:(NSIndexPath *)indexPath toIndexPath:(NSIndexPath *)newIndexPath; +- (void)performBatchUpdates:(void (^)(void))updates completion:(void (^)(BOOL finished))completion; // allows multiple insert/delete/reload/move calls to be animated simultaneously. Nestable. + +@end + +// To dynamically switch between PSTCollectionView and UICollectionView, use the PSUICollectionView* classes. +#define PSUICollectionView PSUICollectionView_ +#define PSUICollectionViewCell PSUICollectionViewCell_ +#define PSUICollectionReusableView PSUICollectionReusableView_ +#define PSUICollectionViewDelegate PSTCollectionViewDelegate +#define PSUICollectionViewDataSource PSTCollectionViewDataSource +#define PSUICollectionViewLayout PSUICollectionViewLayout_ +#define PSUICollectionViewFlowLayout PSUICollectionViewFlowLayout_ +#define PSUICollectionViewDelegateFlowLayout PSTCollectionViewDelegateFlowLayout +#define PSUICollectionViewLayoutAttributes PSUICollectionViewLayoutAttributes_ +#define PSUICollectionViewController PSUICollectionViewController_ + +@interface PSUICollectionView_ : PSTCollectionView @end +@interface PSUICollectionViewCell_ : PSTCollectionViewCell @end +@interface PSUICollectionReusableView_ : PSTCollectionReusableView @end +@interface PSUICollectionViewLayout_ : PSTCollectionViewLayout @end +@interface PSUICollectionViewFlowLayout_ : PSTCollectionViewFlowLayout @end +@protocol PSUICollectionViewDelegateFlowLayout_ @end +@interface PSUICollectionViewLayoutAttributes_ : PSTCollectionViewLayoutAttributes @end +@interface PSUICollectionViewController_ : PSTCollectionViewController @end diff --git a/Pods/PSTCollectionView/PSTCollectionView/PSTCollectionView.m b/Pods/PSTCollectionView/PSTCollectionView/PSTCollectionView.m new file mode 100644 index 0000000..bac662f --- /dev/null +++ b/Pods/PSTCollectionView/PSTCollectionView/PSTCollectionView.m @@ -0,0 +1,2311 @@ +// +// PSTCollectionView.m +// PSPDFKit +// +// Copyright (c) 2012-2013 Peter Steinberger. All rights reserved. +// + +#import "PSTCollectionView.h" +#import "PSTCollectionViewData.h" +#import "PSTCollectionViewLayout+Internals.h" +#import "PSTCollectionViewItemKey.h" + +#import +#if TARGET_IPHONE_SIMULATOR +#import +#endif +#import + +@interface PSTCollectionViewLayout (Internal) +@property (nonatomic, unsafe_unretained) PSTCollectionView *collectionView; +@end + +@interface PSTCollectionViewData (Internal) +- (void)prepareToLoadData; +@end + +@interface PSTCollectionViewCell (Internal) +- (void)performSelectionSegue; +@end + +@interface PSTCollectionViewUpdateItem () +- (NSIndexPath *)indexPath; + +- (BOOL)isSectionOperation; +@end + +@interface PSTCollectionViewLayoutAttributes () { + char junk[128]; +} +@property (nonatomic, copy) NSString *elementKind; +@end + +CGFloat PSTSimulatorAnimationDragCoefficient(void); + +@class PSTCollectionViewExt; + +@interface PSTCollectionView () { + // ivar layout needs to EQUAL to UICollectionView. + PSTCollectionViewLayout *_layout; + __unsafe_unretained id _dataSource; + UIView *_backgroundView; + NSMutableSet *_indexPathsForSelectedItems; + NSMutableDictionary *_cellReuseQueues; + NSMutableDictionary *_supplementaryViewReuseQueues; + NSMutableDictionary *_decorationViewReuseQueues; + NSMutableSet *_indexPathsForHighlightedItems; + int _reloadingSuspendedCount; + PSTCollectionReusableView *_firstResponderView; + UIView *_newContentView; + int _firstResponderViewType; + NSString *_firstResponderViewKind; + NSIndexPath *_firstResponderIndexPath; + NSMutableDictionary *_allVisibleViewsDict; + NSIndexPath *_pendingSelectionIndexPath; + NSMutableSet *_pendingDeselectionIndexPaths; + PSTCollectionViewData *_collectionViewData; + id _update; + CGRect _visibleBoundRects; + CGRect _preRotationBounds; + CGPoint _rotationBoundsOffset; + int _rotationAnimationCount; + int _updateCount; + NSMutableArray *_insertItems; + NSMutableArray *_deleteItems; + NSMutableArray *_reloadItems; + NSMutableArray *_moveItems; + NSArray *_originalInsertItems; + NSArray *_originalDeleteItems; + UITouch *_currentTouch; + + void (^_updateCompletionHandler)(BOOL finished); + + NSMutableDictionary *_cellClassDict; + NSMutableDictionary *_cellNibDict; + NSMutableDictionary *_supplementaryViewClassDict; + NSMutableDictionary *_supplementaryViewNibDict; + NSMutableDictionary *_cellNibExternalObjectsTables; + NSMutableDictionary *_supplementaryViewNibExternalObjectsTables; + struct { + unsigned int delegateShouldHighlightItemAtIndexPath : 1; + unsigned int delegateDidHighlightItemAtIndexPath : 1; + unsigned int delegateDidUnhighlightItemAtIndexPath : 1; + unsigned int delegateShouldSelectItemAtIndexPath : 1; + unsigned int delegateShouldDeselectItemAtIndexPath : 1; + unsigned int delegateDidSelectItemAtIndexPath : 1; + unsigned int delegateDidDeselectItemAtIndexPath : 1; + unsigned int delegateSupportsMenus : 1; + unsigned int delegateDidEndDisplayingCell : 1; + unsigned int delegateDidEndDisplayingSupplementaryView : 1; + unsigned int dataSourceNumberOfSections : 1; + unsigned int dataSourceViewForSupplementaryElement : 1; + unsigned int reloadSkippedDuringSuspension : 1; + unsigned int scheduledUpdateVisibleCells : 1; + unsigned int scheduledUpdateVisibleCellLayoutAttributes : 1; + unsigned int allowsSelection : 1; + unsigned int allowsMultipleSelection : 1; + unsigned int updating : 1; + unsigned int fadeCellsForBoundsChange : 1; + unsigned int updatingLayout : 1; + unsigned int needsReload : 1; + unsigned int reloading : 1; + unsigned int skipLayoutDuringSnapshotting : 1; + unsigned int layoutInvalidatedSinceLastCellUpdate : 1; + unsigned int doneFirstLayout : 1; + }_collectionViewFlags; + CGPoint _lastLayoutOffset; + char filler[232]; // [HACK] Our class needs to be larger than Apple's class for the superclass change to work. +} +@property (nonatomic, strong) PSTCollectionViewData *collectionViewData; +@property (nonatomic, strong, readonly) PSTCollectionViewExt *extVars; +@property (nonatomic, readonly) id currentUpdate; +@property (nonatomic, readonly) NSDictionary *visibleViewsDict; +@property (nonatomic, assign) CGRect visibleBoundRects; +@end + +// Used by PSTCollectionView for external variables. +// (We need to keep the total class size equal to the UICollectionView variant) +@interface PSTCollectionViewExt : NSObject +@property (nonatomic, unsafe_unretained) id collectionViewDelegate; +@property (nonatomic, strong) PSTCollectionViewLayout *nibLayout; +@property (nonatomic, strong) NSDictionary *nibCellsExternalObjects; +@property (nonatomic, strong) NSDictionary *supplementaryViewsExternalObjects; +@property (nonatomic, strong) NSIndexPath *touchingIndexPath; +@property (nonatomic, strong) NSIndexPath *currentIndexPath; +@end + +@implementation PSTCollectionViewExt +@end + +const char kPSTColletionViewExt; + +@implementation PSTCollectionView + +@synthesize collectionViewLayout = _layout; +@synthesize currentUpdate = _update; +@synthesize visibleViewsDict = _allVisibleViewsDict; + +/////////////////////////////////////////////////////////////////////////////////////////// +#pragma mark - NSObject + +static void PSTCollectionViewCommonSetup(PSTCollectionView *_self) { + _self.allowsSelection = YES; + _self->_indexPathsForSelectedItems = [NSMutableSet new]; + _self->_indexPathsForHighlightedItems = [NSMutableSet new]; + _self->_cellReuseQueues = [NSMutableDictionary new]; + _self->_supplementaryViewReuseQueues = [NSMutableDictionary new]; + _self->_decorationViewReuseQueues = [NSMutableDictionary new]; + _self->_allVisibleViewsDict = [NSMutableDictionary new]; + _self->_cellClassDict = [NSMutableDictionary new]; + _self->_cellNibDict = [NSMutableDictionary new]; + _self->_supplementaryViewClassDict = [NSMutableDictionary new]; + _self->_supplementaryViewNibDict = [NSMutableDictionary new]; + + // add class that saves additional ivars + objc_setAssociatedObject(_self, &kPSTColletionViewExt, [PSTCollectionViewExt new], OBJC_ASSOCIATION_RETAIN_NONATOMIC); +} + +- (id)initWithFrame:(CGRect)frame { + return [self initWithFrame:frame collectionViewLayout:nil]; +} + +- (id)initWithFrame:(CGRect)frame collectionViewLayout:(PSTCollectionViewLayout *)layout { + if ((self = [super initWithFrame:frame])) { + // Set self as the UIScrollView's delegate + [super setDelegate:self]; + + PSTCollectionViewCommonSetup(self); + self.collectionViewLayout = layout; + _collectionViewData = [[PSTCollectionViewData alloc] initWithCollectionView:self layout:layout]; + } + return self; +} + +- (id)initWithCoder:(NSCoder *)inCoder { + if ((self = [super initWithCoder:inCoder])) { + // Set self as the UIScrollView's delegate + [super setDelegate:self]; + + PSTCollectionViewCommonSetup(self); + + self.extVars.nibLayout = [inCoder decodeObjectForKey:@"UICollectionLayout"]; + + NSDictionary *cellExternalObjects = [inCoder decodeObjectForKey:@"UICollectionViewCellPrototypeNibExternalObjects"]; + NSDictionary *cellNibs = [inCoder decodeObjectForKey:@"UICollectionViewCellNibDict"]; + + for (NSString *identifier in cellNibs.allKeys) { + _cellNibDict[identifier] = cellNibs[identifier]; + } + + self.extVars.nibCellsExternalObjects = cellExternalObjects; + + NSDictionary *supplementaryViewExternalObjects = [inCoder decodeObjectForKey:@"UICollectionViewSupplementaryViewPrototypeNibExternalObjects"]; + NSDictionary *supplementaryViewNibs = [inCoder decodeObjectForKey:@"UICollectionViewSupplementaryViewNibDict"]; + + for (NSString *identifier in supplementaryViewNibs.allKeys) { + _supplementaryViewNibDict[identifier] = supplementaryViewNibs[identifier]; + } + + self.extVars.supplementaryViewsExternalObjects = supplementaryViewExternalObjects; + } + return self; +} + +- (void)awakeFromNib { + [super awakeFromNib]; + + PSTCollectionViewLayout *nibLayout = self.extVars.nibLayout; + if (nibLayout) { + self.collectionViewLayout = nibLayout; + self.extVars.nibLayout = nil; + } +} + +- (NSString *)description { + return [NSString stringWithFormat:@"%@ collection view layout: %@", [super description], self.collectionViewLayout]; +} + +/////////////////////////////////////////////////////////////////////////////////////////// +#pragma mark - UIView + +- (void)layoutSubviews { + [super layoutSubviews]; + + // Adding alpha animation to make the relayouting smooth + if (_collectionViewFlags.fadeCellsForBoundsChange) { + CATransition *transition = [CATransition animation]; + transition.duration = 0.25f * PSTSimulatorAnimationDragCoefficient(); + transition.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut]; + transition.type = kCATransitionFade; + [self.layer addAnimation:transition forKey:@"rotationAnimation"]; + } + + [_collectionViewData validateLayoutInRect:self.bounds]; + + // update cells + if (_collectionViewFlags.fadeCellsForBoundsChange) { + [CATransaction begin]; + [CATransaction setDisableActions:YES]; + } + + if (!_collectionViewFlags.updatingLayout) + [self updateVisibleCellsNow:YES]; + + if (_collectionViewFlags.fadeCellsForBoundsChange) { + [CATransaction commit]; + } + + // do we need to update contentSize? + CGSize contentSize = [_collectionViewData collectionViewContentRect].size; + if (!CGSizeEqualToSize(self.contentSize, contentSize)) { + self.contentSize = contentSize; + + // if contentSize is different, we need to re-evaluate layout, bounds (contentOffset) might changed + [_collectionViewData validateLayoutInRect:self.bounds]; + [self updateVisibleCellsNow:YES]; + } + + if (_backgroundView) { + _backgroundView.frame = (CGRect){.origin=self.contentOffset, .size=self.bounds.size}; + } + + _collectionViewFlags.fadeCellsForBoundsChange = NO; + _collectionViewFlags.doneFirstLayout = YES; +} + +- (void)setFrame:(CGRect)frame { + if (!CGRectEqualToRect(frame, self.frame)) { + CGRect bounds = (CGRect){.origin=self.contentOffset, .size=frame.size}; + BOOL shouldInvalidate = [self.collectionViewLayout shouldInvalidateLayoutForBoundsChange:bounds]; + [super setFrame:frame]; + if (shouldInvalidate) { + [self invalidateLayout]; + _collectionViewFlags.fadeCellsForBoundsChange = YES; + } + } +} + +- (void)setBounds:(CGRect)bounds { + if (!CGRectEqualToRect(bounds, self.bounds)) { + BOOL shouldInvalidate = [self.collectionViewLayout shouldInvalidateLayoutForBoundsChange:bounds]; + [super setBounds:bounds]; + if (shouldInvalidate) { + [self invalidateLayout]; + _collectionViewFlags.fadeCellsForBoundsChange = YES; + } + } +} + +/////////////////////////////////////////////////////////////////////////////////////////// +#pragma mark - UIScrollViewDelegate + +- (void)scrollViewDidScroll:(UIScrollView *)scrollView { + id delegate = self.extVars.collectionViewDelegate; + if ((id)delegate != self && [delegate respondsToSelector:@selector(scrollViewDidScroll:)]) { + [delegate scrollViewDidScroll:scrollView]; + } +} + +- (void)scrollViewDidZoom:(UIScrollView *)scrollView { + id delegate = self.extVars.collectionViewDelegate; + if ((id)delegate != self && [delegate respondsToSelector:@selector(scrollViewDidZoom:)]) { + [delegate scrollViewDidZoom:scrollView]; + } +} + +- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView { + id delegate = self.extVars.collectionViewDelegate; + if ((id)delegate != self && [delegate respondsToSelector:@selector(scrollViewWillBeginDragging:)]) { + [delegate scrollViewWillBeginDragging:scrollView]; + } +} + +- (void)scrollViewWillEndDragging:(UIScrollView *)scrollView withVelocity:(CGPoint)velocity targetContentOffset:(inout CGPoint *)targetContentOffset { + // Let collectionViewLayout decide where to stop. + *targetContentOffset = [[self collectionViewLayout] targetContentOffsetForProposedContentOffset:*targetContentOffset withScrollingVelocity:velocity]; + + id delegate = self.extVars.collectionViewDelegate; + if ((id)delegate != self && [delegate respondsToSelector:@selector(scrollViewWillEndDragging:withVelocity:targetContentOffset:)]) { + //if collectionViewDelegate implements this method, it may modify targetContentOffset as well + [delegate scrollViewWillEndDragging:scrollView withVelocity:velocity targetContentOffset:targetContentOffset]; + } +} + +- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate { + id delegate = self.extVars.collectionViewDelegate; + if ((id)delegate != self && [delegate respondsToSelector:@selector(scrollViewDidEndDragging:willDecelerate:)]) { + [delegate scrollViewDidEndDragging:scrollView willDecelerate:decelerate]; + } + + // if we are in the middle of a cell touch event, perform the "touchEnded" simulation + if (self.extVars.touchingIndexPath) { + [self cellTouchCancelled]; + } +} + +- (void)scrollViewWillBeginDecelerating:(UIScrollView *)scrollView { + id delegate = self.extVars.collectionViewDelegate; + if ((id)delegate != self && [delegate respondsToSelector:@selector(scrollViewWillBeginDecelerating:)]) { + [delegate scrollViewWillBeginDecelerating:scrollView]; + } +} + +- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView { + id delegate = self.extVars.collectionViewDelegate; + if ((id)delegate != self && [delegate respondsToSelector:@selector(scrollViewDidEndDecelerating:)]) { + [delegate scrollViewDidEndDecelerating:scrollView]; + } +} + +- (void)scrollViewDidEndScrollingAnimation:(UIScrollView *)scrollView { + id delegate = self.extVars.collectionViewDelegate; + if ((id)delegate != self && [delegate respondsToSelector:@selector(scrollViewDidEndScrollingAnimation:)]) { + [delegate scrollViewDidEndScrollingAnimation:scrollView]; + } +} + +- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView { + id delegate = self.extVars.collectionViewDelegate; + if ((id)delegate != self && [delegate respondsToSelector:@selector(viewForZoomingInScrollView:)]) { + return [delegate viewForZoomingInScrollView:scrollView]; + } + return nil; +} + +- (void)scrollViewWillBeginZooming:(UIScrollView *)scrollView withView:(UIView *)view { + id delegate = self.extVars.collectionViewDelegate; + if ((id)delegate != self && [delegate respondsToSelector:@selector(scrollViewWillBeginZooming:withView:)]) { + [delegate scrollViewWillBeginZooming:scrollView withView:view]; + } +} + +- (void)scrollViewDidEndZooming:(UIScrollView *)scrollView withView:(UIView *)view atScale:(CGFloat)scale { + id delegate = self.extVars.collectionViewDelegate; + if ((id)delegate != self && [delegate respondsToSelector:@selector(scrollViewDidEndZooming:withView:atScale:)]) { + [delegate scrollViewDidEndZooming:scrollView withView:view atScale:scale]; + } +} + +- (BOOL)scrollViewShouldScrollToTop:(UIScrollView *)scrollView { + id delegate = self.extVars.collectionViewDelegate; + if ((id)delegate != self && [delegate respondsToSelector:@selector(scrollViewShouldScrollToTop:)]) { + return [delegate scrollViewShouldScrollToTop:scrollView]; + } + return YES; +} + +- (void)scrollViewDidScrollToTop:(UIScrollView *)scrollView { + id delegate = self.extVars.collectionViewDelegate; + if ((id)delegate != self && [delegate respondsToSelector:@selector(scrollViewDidScrollToTop:)]) { + [delegate scrollViewDidScrollToTop:scrollView]; + } +} + +/////////////////////////////////////////////////////////////////////////////////////////// +#pragma mark - Public + +- (void)registerClass:(Class)cellClass forCellWithReuseIdentifier:(NSString *)identifier { + NSParameterAssert(cellClass); + NSParameterAssert(identifier); + _cellClassDict[identifier] = cellClass; +} + +- (void)registerClass:(Class)viewClass forSupplementaryViewOfKind:(NSString *)elementKind withReuseIdentifier:(NSString *)identifier { + NSParameterAssert(viewClass); + NSParameterAssert(elementKind); + NSParameterAssert(identifier); + NSString *kindAndIdentifier = [NSString stringWithFormat:@"%@/%@", elementKind, identifier]; + _supplementaryViewClassDict[kindAndIdentifier] = viewClass; +} + +- (void)registerNib:(UINib *)nib forCellWithReuseIdentifier:(NSString *)identifier { + NSArray *topLevelObjects = [nib instantiateWithOwner:nil options:nil]; +#pragma unused(topLevelObjects) + NSAssert(topLevelObjects.count == 1 && [topLevelObjects[0] isKindOfClass:PSTCollectionViewCell.class], @"must contain exactly 1 top level object which is a PSTCollectionViewCell"); + + _cellNibDict[identifier] = nib; +} + +- (void)registerNib:(UINib *)nib forSupplementaryViewOfKind:(NSString *)kind withReuseIdentifier:(NSString *)identifier { + NSArray *topLevelObjects = [nib instantiateWithOwner:nil options:nil]; +#pragma unused(topLevelObjects) + NSAssert(topLevelObjects.count == 1 && [topLevelObjects[0] isKindOfClass:PSTCollectionReusableView.class], @"must contain exactly 1 top level object which is a PSTCollectionReusableView"); + + NSString *kindAndIdentifier = [NSString stringWithFormat:@"%@/%@", kind, identifier]; + _supplementaryViewNibDict[kindAndIdentifier] = nib; +} + +- (id)dequeueReusableCellWithReuseIdentifier:(NSString *)identifier forIndexPath:(NSIndexPath *)indexPath { + // de-queue cell (if available) + NSMutableArray *reusableCells = _cellReuseQueues[identifier]; + PSTCollectionViewCell *cell = [reusableCells lastObject]; + PSTCollectionViewLayoutAttributes *attributes = [self.collectionViewLayout layoutAttributesForItemAtIndexPath:indexPath]; + + if (cell) { + [reusableCells removeObjectAtIndex:reusableCells.count - 1]; + }else { + if (_cellNibDict[identifier]) { + // Cell was registered via registerNib:forCellWithReuseIdentifier: + UINib *cellNib = _cellNibDict[identifier]; + NSDictionary *externalObjects = self.extVars.nibCellsExternalObjects[identifier]; + if (externalObjects) { + cell = [cellNib instantiateWithOwner:self options:@{UINibExternalObjects : externalObjects}][0]; + }else { + cell = [cellNib instantiateWithOwner:self options:nil][0]; + } + }else { + Class cellClass = _cellClassDict[identifier]; + // compatibility layer + Class collectionViewCellClass = NSClassFromString(@"UICollectionViewCell"); + if (collectionViewCellClass && [cellClass isEqual:collectionViewCellClass]) { + cellClass = PSTCollectionViewCell.class; + } + if (cellClass == nil) { + @throw [NSException exceptionWithName:NSInvalidArgumentException reason:[NSString stringWithFormat:@"Class not registered for identifier %@", identifier] userInfo:nil]; + } + if (attributes) { + cell = [[cellClass alloc] initWithFrame:attributes.frame]; + }else { + cell = [cellClass new]; + } + } + cell.collectionView = self; + cell.reuseIdentifier = identifier; + } + + [cell applyLayoutAttributes:attributes]; + + return cell; +} + +- (id)dequeueReusableSupplementaryViewOfKind:(NSString *)elementKind withReuseIdentifier:(NSString *)identifier forIndexPath:(NSIndexPath *)indexPath { + NSString *kindAndIdentifier = [NSString stringWithFormat:@"%@/%@", elementKind, identifier]; + NSMutableArray *reusableViews = _supplementaryViewReuseQueues[kindAndIdentifier]; + PSTCollectionReusableView *view = [reusableViews lastObject]; + if (view) { + [reusableViews removeObjectAtIndex:reusableViews.count - 1]; + }else { + if (_supplementaryViewNibDict[kindAndIdentifier]) { + // supplementary view was registered via registerNib:forCellWithReuseIdentifier: + UINib *supplementaryViewNib = _supplementaryViewNibDict[kindAndIdentifier]; + NSDictionary *externalObjects = self.extVars.supplementaryViewsExternalObjects[kindAndIdentifier]; + if (externalObjects) { + view = [supplementaryViewNib instantiateWithOwner:self options:@{UINibExternalObjects : externalObjects}][0]; + }else { + view = [supplementaryViewNib instantiateWithOwner:self options:nil][0]; + } + }else { + Class viewClass = _supplementaryViewClassDict[kindAndIdentifier]; + Class reusableViewClass = NSClassFromString(@"UICollectionReusableView"); + if (reusableViewClass && [viewClass isEqual:reusableViewClass]) { + viewClass = PSTCollectionReusableView.class; + } + if (viewClass == nil) { + @throw [NSException exceptionWithName:NSInvalidArgumentException reason:[NSString stringWithFormat:@"Class not registered for kind/identifier %@", kindAndIdentifier] userInfo:nil]; + } + if (self.collectionViewLayout) { + PSTCollectionViewLayoutAttributes *attributes = [self.collectionViewLayout layoutAttributesForSupplementaryViewOfKind:elementKind atIndexPath:indexPath]; + if (attributes) { + view = [[viewClass alloc] initWithFrame:attributes.frame]; + } + }else { + view = [viewClass new]; + } + } + view.collectionView = self; + view.reuseIdentifier = identifier; + } + + return view; +} + +- (id)dequeueReusableOrCreateDecorationViewOfKind:(NSString *)elementKind forIndexPath:(NSIndexPath *)indexPath { + NSMutableArray *reusableViews = _decorationViewReuseQueues[elementKind]; + PSTCollectionReusableView *view = [reusableViews lastObject]; + PSTCollectionViewLayout *collectionViewLayout = self.collectionViewLayout; + PSTCollectionViewLayoutAttributes *attributes = [collectionViewLayout layoutAttributesForDecorationViewOfKind:elementKind atIndexPath:indexPath]; + + if (view) { + [reusableViews removeObjectAtIndex:reusableViews.count - 1]; + }else { + NSDictionary *decorationViewNibDict = collectionViewLayout.decorationViewNibDict; + NSDictionary *decorationViewExternalObjects = collectionViewLayout.decorationViewExternalObjectsTables; + if (decorationViewNibDict[elementKind]) { + // supplementary view was registered via registerNib:forCellWithReuseIdentifier: + UINib *supplementaryViewNib = decorationViewNibDict[elementKind]; + NSDictionary *externalObjects = decorationViewExternalObjects[elementKind]; + if (externalObjects) { + view = [supplementaryViewNib instantiateWithOwner:self options:@{UINibExternalObjects : externalObjects}][0]; + }else { + view = [supplementaryViewNib instantiateWithOwner:self options:nil][0]; + } + }else { + NSDictionary *decorationViewClassDict = collectionViewLayout.decorationViewClassDict; + Class viewClass = decorationViewClassDict[elementKind]; + Class reusableViewClass = NSClassFromString(@"UICollectionReusableView"); + if (reusableViewClass && [viewClass isEqual:reusableViewClass]) { + viewClass = PSTCollectionReusableView.class; + } + if (viewClass == nil) { + @throw [NSException exceptionWithName:NSInvalidArgumentException reason:[NSString stringWithFormat:@"Class not registered for identifier %@", elementKind] userInfo:nil]; + } + if (attributes) { + view = [[viewClass alloc] initWithFrame:attributes.frame]; + }else { + view = [viewClass new]; + } + } + view.collectionView = self; + view.reuseIdentifier = elementKind; + } + + [view applyLayoutAttributes:attributes]; + + return view; +} + +- (NSArray *)allCells { + return [[_allVisibleViewsDict allValues] filteredArrayUsingPredicate:[NSPredicate predicateWithBlock:^BOOL(id evaluatedObject, NSDictionary *bindings) { + return [evaluatedObject isKindOfClass:PSTCollectionViewCell.class]; + }]]; +} + +- (NSArray *)visibleCells { + return [[_allVisibleViewsDict allValues] filteredArrayUsingPredicate:[NSPredicate predicateWithBlock:^BOOL(id evaluatedObject, NSDictionary *bindings) { + return [evaluatedObject isKindOfClass:PSTCollectionViewCell.class] && CGRectIntersectsRect(self.bounds, [evaluatedObject frame]); + }]]; +} + +- (void)reloadData { + if (_reloadingSuspendedCount != 0) return; + [self invalidateLayout]; + [_allVisibleViewsDict enumerateKeysAndObjectsUsingBlock:^(id key, id obj, BOOL *stop) { + if ([obj isKindOfClass:UIView.class]) { + [obj removeFromSuperview]; + } + }]; + [_allVisibleViewsDict removeAllObjects]; + + for (NSIndexPath *indexPath in _indexPathsForSelectedItems) { + PSTCollectionViewCell *selectedCell = [self cellForItemAtIndexPath:indexPath]; + selectedCell.selected = NO; + selectedCell.highlighted = NO; + } + [_indexPathsForSelectedItems removeAllObjects]; + [_indexPathsForHighlightedItems removeAllObjects]; + + [self setNeedsLayout]; +} + +/////////////////////////////////////////////////////////////////////////////////////////// +#pragma mark - Query Grid + +- (NSInteger)numberOfSections { + return [_collectionViewData numberOfSections]; +} + +- (NSInteger)numberOfItemsInSection:(NSInteger)section { + return [_collectionViewData numberOfItemsInSection:section]; +} + +- (PSTCollectionViewLayoutAttributes *)layoutAttributesForItemAtIndexPath:(NSIndexPath *)indexPath { + return [[self collectionViewLayout] layoutAttributesForItemAtIndexPath:indexPath]; +} + +- (PSTCollectionViewLayoutAttributes *)layoutAttributesForSupplementaryElementOfKind:(NSString *)kind atIndexPath:(NSIndexPath *)indexPath { + return [[self collectionViewLayout] layoutAttributesForSupplementaryViewOfKind:kind atIndexPath:indexPath]; +} + +- (NSIndexPath *)indexPathForItemAtPoint:(CGPoint)point { + PSTCollectionViewLayoutAttributes *attributes = [[self.collectionViewLayout layoutAttributesForElementsInRect:CGRectMake(point.x, point.y, 1, 1)] lastObject]; + return attributes.indexPath; +} + +- (NSIndexPath *)indexPathForCell:(PSTCollectionViewCell *)cell { + __block NSIndexPath *indexPath = nil; + [_allVisibleViewsDict enumerateKeysAndObjectsWithOptions:kNilOptions usingBlock:^(id key, id obj, BOOL *stop) { + PSTCollectionViewItemKey *itemKey = (PSTCollectionViewItemKey *)key; + if (itemKey.type == PSTCollectionViewItemTypeCell) { + PSTCollectionViewCell *currentCell = (PSTCollectionViewCell *)obj; + if (currentCell == cell) { + indexPath = itemKey.indexPath; + *stop = YES; + } + } + }]; + return indexPath; +} + +- (PSTCollectionViewCell *)cellForItemAtIndexPath:(NSIndexPath *)indexPath { + // NSInteger index = [_collectionViewData globalIndexForItemAtIndexPath:indexPath]; + // TODO Apple uses some kind of globalIndex for this. + __block PSTCollectionViewCell *cell = nil; + [_allVisibleViewsDict enumerateKeysAndObjectsWithOptions:0 usingBlock:^(id key, id obj, BOOL *stop) { + PSTCollectionViewItemKey *itemKey = (PSTCollectionViewItemKey *)key; + if (itemKey.type == PSTCollectionViewItemTypeCell) { + if ([itemKey.indexPath isEqual:indexPath]) { + cell = obj; + *stop = YES; + } + } + }]; + return cell; +} + +- (NSArray *)indexPathsForVisibleItems { + NSArray *visibleCells = self.visibleCells; + NSMutableArray *indexPaths = [NSMutableArray arrayWithCapacity:visibleCells.count]; + + [visibleCells enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) { + PSTCollectionViewCell *cell = (PSTCollectionViewCell *)obj; + [indexPaths addObject:cell.layoutAttributes.indexPath]; + }]; + + return indexPaths; +} + +// returns nil or an array of selected index paths +- (NSArray *)indexPathsForSelectedItems { + return [_indexPathsForSelectedItems allObjects]; +} + +// Interacting with the collection view. +- (void)scrollToItemAtIndexPath:(NSIndexPath *)indexPath atScrollPosition:(PSTCollectionViewScrollPosition)scrollPosition animated:(BOOL)animated { + // Ensure grid is laid out; else we can't scroll. + [self layoutSubviews]; + + PSTCollectionViewLayoutAttributes *layoutAttributes = [self.collectionViewLayout layoutAttributesForItemAtIndexPath:indexPath]; + if (layoutAttributes) { + CGRect targetRect = [self makeRect:layoutAttributes.frame toScrollPosition:scrollPosition]; + [self scrollRectToVisible:targetRect animated:animated]; + } +} + +- (CGRect)makeRect:(CGRect)targetRect toScrollPosition:(PSTCollectionViewScrollPosition)scrollPosition { + // split parameters + NSUInteger verticalPosition = scrollPosition&0x07; // 0000 0111 + NSUInteger horizontalPosition = scrollPosition&0x38; // 0011 1000 + + if (verticalPosition != PSTCollectionViewScrollPositionNone + && verticalPosition != PSTCollectionViewScrollPositionTop + && verticalPosition != PSTCollectionViewScrollPositionCenteredVertically + && verticalPosition != PSTCollectionViewScrollPositionBottom) { + @throw [NSException exceptionWithName:NSInvalidArgumentException reason:@"PSTCollectionViewScrollPosition: attempt to use a scroll position with multiple vertical positioning styles" userInfo:nil]; + } + + if (horizontalPosition != PSTCollectionViewScrollPositionNone + && horizontalPosition != PSTCollectionViewScrollPositionLeft + && horizontalPosition != PSTCollectionViewScrollPositionCenteredHorizontally + && horizontalPosition != PSTCollectionViewScrollPositionRight) { + @throw [NSException exceptionWithName:NSInvalidArgumentException reason:@"PSTCollectionViewScrollPosition: attempt to use a scroll position with multiple horizontal positioning styles" userInfo:nil]; + } + + CGRect frame = self.layer.bounds; + CGFloat calculateX; + CGFloat calculateY; + + switch (verticalPosition) { + case PSTCollectionViewScrollPositionCenteredVertically: + calculateY = fmax(targetRect.origin.y - ((frame.size.height / 2) - (targetRect.size.height / 2)), -self.contentInset.top); + targetRect = CGRectMake(targetRect.origin.x, calculateY, targetRect.size.width, frame.size.height); + break; + case PSTCollectionViewScrollPositionTop: + targetRect = CGRectMake(targetRect.origin.x, targetRect.origin.y, targetRect.size.width, frame.size.height); + break; + + case PSTCollectionViewScrollPositionBottom: + calculateY = fmax(targetRect.origin.y - (frame.size.height - targetRect.size.height), -self.contentInset.top); + targetRect = CGRectMake(targetRect.origin.x, calculateY, targetRect.size.width, frame.size.height); + break; + } + + switch (horizontalPosition) { + case PSTCollectionViewScrollPositionCenteredHorizontally: + calculateX = targetRect.origin.x - ((frame.size.width / 2) - (targetRect.size.width / 2)); + targetRect = CGRectMake(calculateX, targetRect.origin.y, frame.size.width, targetRect.size.height); + break; + + case PSTCollectionViewScrollPositionLeft: + targetRect = CGRectMake(targetRect.origin.x, targetRect.origin.y, frame.size.width, targetRect.size.height); + break; + + case PSTCollectionViewScrollPositionRight: + calculateX = targetRect.origin.x - (frame.size.width - targetRect.size.width); + targetRect = CGRectMake(calculateX, targetRect.origin.y, frame.size.width, targetRect.size.height); + break; + } + + return targetRect; +} + +/////////////////////////////////////////////////////////////////////////////////////////// +#pragma mark - Touch Handling + +- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event { + [super touchesBegan:touches withEvent:event]; + + // reset touching state vars + self.extVars.touchingIndexPath = nil; + self.extVars.currentIndexPath = nil; + + CGPoint touchPoint = [[touches anyObject] locationInView:self]; + NSIndexPath *indexPath = [self indexPathForItemAtPoint:touchPoint]; + if (indexPath && self.allowsSelection) { + if (![self highlightItemAtIndexPath:indexPath animated:YES scrollPosition:PSTCollectionViewScrollPositionNone notifyDelegate:YES]) + return; + + self.extVars.touchingIndexPath = indexPath; + self.extVars.currentIndexPath = indexPath; + + if (!self.allowsMultipleSelection) { + // temporally unhighlight background on touchesBegan (keeps selected by _indexPathsForSelectedItems) + // single-select only mode only though + NSIndexPath *tempDeselectIndexPath = _indexPathsForSelectedItems.anyObject; + if (tempDeselectIndexPath && ![tempDeselectIndexPath isEqual:self.extVars.touchingIndexPath]) { + // iOS6 UICollectionView deselects cell without notification + PSTCollectionViewCell *selectedCell = [self cellForItemAtIndexPath:tempDeselectIndexPath]; + selectedCell.selected = NO; + } + } + } +} + +- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event { + [super touchesMoved:touches withEvent:event]; + + // allows moving between highlight and unhighlight state only if setHighlighted is not overwritten + if (self.extVars.touchingIndexPath) { + CGPoint touchPoint = [[touches anyObject] locationInView:self]; + NSIndexPath *indexPath = [self indexPathForItemAtPoint:touchPoint]; + + // moving out of bounds + if ([self.extVars.currentIndexPath isEqual:self.extVars.touchingIndexPath] && + ![indexPath isEqual:self.extVars.touchingIndexPath] && + [self unhighlightItemAtIndexPath:self.extVars.touchingIndexPath animated:YES notifyDelegate:YES shouldCheckHighlight:YES]) { + self.extVars.currentIndexPath = indexPath; + // moving back into the original touching cell + }else if (![self.extVars.currentIndexPath isEqual:self.extVars.touchingIndexPath] && + [indexPath isEqual:self.extVars.touchingIndexPath]) { + [self highlightItemAtIndexPath:self.extVars.touchingIndexPath animated:YES scrollPosition:PSTCollectionViewScrollPositionNone notifyDelegate:YES]; + self.extVars.currentIndexPath = self.extVars.touchingIndexPath; + } + } +} + +- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event { + [super touchesEnded:touches withEvent:event]; + + if (self.extVars.touchingIndexPath) { + // first unhighlight the touch operation + [self unhighlightItemAtIndexPath:self.extVars.touchingIndexPath animated:YES notifyDelegate:YES]; + + CGPoint touchPoint = [[touches anyObject] locationInView:self]; + NSIndexPath *indexPath = [self indexPathForItemAtPoint:touchPoint]; + if ([indexPath isEqual:self.extVars.touchingIndexPath]) { + [self userSelectedItemAtIndexPath:indexPath]; + } + else if (!self.allowsMultipleSelection) { + NSIndexPath *tempDeselectIndexPath = _indexPathsForSelectedItems.anyObject; + if (tempDeselectIndexPath && ![tempDeselectIndexPath isEqual:self.extVars.touchingIndexPath]) { + [self cellTouchCancelled]; + } + } + + // for pedantic reasons only - always set to nil on touchesBegan + self.extVars.touchingIndexPath = nil; + self.extVars.currentIndexPath = nil; + } +} + +- (void)touchesCancelled:(NSSet *)touches withEvent:(UIEvent *)event { + [super touchesCancelled:touches withEvent:event]; + + // do not mark touchingIndexPath as nil because whoever cancelled this touch will need to signal a touch up event later + if (self.extVars.touchingIndexPath) { + // first unhighlight the touch operation + [self unhighlightItemAtIndexPath:self.extVars.touchingIndexPath animated:YES notifyDelegate:YES]; + } +} + +- (void)cellTouchCancelled { + // turn on ALL the *should be selected* cells (iOS6 UICollectionView does no state keeping or other fancy optimizations) + // there should be no notifications as this is a silent "turn everything back on" + for (NSIndexPath *tempDeselectedIndexPath in [_indexPathsForSelectedItems copy]) { + PSTCollectionViewCell *selectedCell = [self cellForItemAtIndexPath:tempDeselectedIndexPath]; + selectedCell.selected = YES; + } +} + +- (void)userSelectedItemAtIndexPath:(NSIndexPath *)indexPath { + if (self.allowsMultipleSelection && [_indexPathsForSelectedItems containsObject:indexPath]) { + [self deselectItemAtIndexPath:indexPath animated:YES notifyDelegate:YES]; + } + else if (self.allowsSelection) { + [self selectItemAtIndexPath:indexPath animated:YES scrollPosition:PSTCollectionViewScrollPositionNone notifyDelegate:YES]; + } +} + +// select item, notify delegate (internal) +- (void)selectItemAtIndexPath:(NSIndexPath *)indexPath animated:(BOOL)animated scrollPosition:(PSTCollectionViewScrollPosition)scrollPosition notifyDelegate:(BOOL)notifyDelegate { + if (self.allowsMultipleSelection && [_indexPathsForSelectedItems containsObject:indexPath]) { + BOOL shouldDeselect = YES; + if (notifyDelegate && _collectionViewFlags.delegateShouldDeselectItemAtIndexPath) { + shouldDeselect = [self.delegate collectionView:self shouldDeselectItemAtIndexPath:indexPath]; + } + + if (shouldDeselect) { + [self deselectItemAtIndexPath:indexPath animated:animated notifyDelegate:notifyDelegate]; + } + } + else { + // either single selection, or wasn't already selected in multiple selection mode + BOOL shouldSelect = YES; + if (notifyDelegate && _collectionViewFlags.delegateShouldSelectItemAtIndexPath) { + shouldSelect = [self.delegate collectionView:self shouldSelectItemAtIndexPath:indexPath]; + } + + if (!self.allowsMultipleSelection) { + // now unselect the previously selected cell for single selection + NSIndexPath *tempDeselectIndexPath = _indexPathsForSelectedItems.anyObject; + if (tempDeselectIndexPath && ![tempDeselectIndexPath isEqual:indexPath]) { + [self deselectItemAtIndexPath:tempDeselectIndexPath animated:YES notifyDelegate:YES]; + } + } + + if (shouldSelect) { + PSTCollectionViewCell *selectedCell = [self cellForItemAtIndexPath:indexPath]; + selectedCell.selected = YES; + + [_indexPathsForSelectedItems addObject:indexPath]; + + [selectedCell performSelectionSegue]; + + if (scrollPosition != PSTCollectionViewScrollPositionNone) { + [self scrollToItemAtIndexPath:indexPath atScrollPosition:scrollPosition animated:animated]; + } + + if (notifyDelegate && _collectionViewFlags.delegateDidSelectItemAtIndexPath) { + [self.delegate collectionView:self didSelectItemAtIndexPath:indexPath]; + } + } + } +} + +- (void)selectItemAtIndexPath:(NSIndexPath *)indexPath animated:(BOOL)animated scrollPosition:(PSTCollectionViewScrollPosition)scrollPosition { + [self selectItemAtIndexPath:indexPath animated:animated scrollPosition:scrollPosition notifyDelegate:NO]; +} + +- (void)deselectItemAtIndexPath:(NSIndexPath *)indexPath animated:(BOOL)animated { + [self deselectItemAtIndexPath:indexPath animated:animated notifyDelegate:NO]; +} + +- (void)deselectItemAtIndexPath:(NSIndexPath *)indexPath animated:(BOOL)animated notifyDelegate:(BOOL)notifyDelegate { + BOOL shouldDeselect = YES; + // deselect only relevant during multi mode + if (self.allowsMultipleSelection && notifyDelegate && _collectionViewFlags.delegateShouldDeselectItemAtIndexPath) { + shouldDeselect = [self.delegate collectionView:self shouldDeselectItemAtIndexPath:indexPath]; + } + + if (shouldDeselect && [_indexPathsForSelectedItems containsObject:indexPath]) { + PSTCollectionViewCell *selectedCell = [self cellForItemAtIndexPath:indexPath]; + if (selectedCell) { + if (selectedCell.selected) { + selectedCell.selected = NO; + } + } + [_indexPathsForSelectedItems removeObject:indexPath]; + + if (notifyDelegate && _collectionViewFlags.delegateDidDeselectItemAtIndexPath) { + [self.delegate collectionView:self didDeselectItemAtIndexPath:indexPath]; + } + } +} + +- (BOOL)highlightItemAtIndexPath:(NSIndexPath *)indexPath animated:(BOOL)animated scrollPosition:(PSTCollectionViewScrollPosition)scrollPosition notifyDelegate:(BOOL)notifyDelegate { + BOOL shouldHighlight = YES; + if (notifyDelegate && _collectionViewFlags.delegateShouldHighlightItemAtIndexPath) { + shouldHighlight = [self.delegate collectionView:self shouldHighlightItemAtIndexPath:indexPath]; + } + + if (shouldHighlight) { + PSTCollectionViewCell *highlightedCell = [self cellForItemAtIndexPath:indexPath]; + highlightedCell.highlighted = YES; + [_indexPathsForHighlightedItems addObject:indexPath]; + + if (scrollPosition != PSTCollectionViewScrollPositionNone) { + [self scrollToItemAtIndexPath:indexPath atScrollPosition:scrollPosition animated:animated]; + } + + if (notifyDelegate && _collectionViewFlags.delegateDidHighlightItemAtIndexPath) { + [self.delegate collectionView:self didHighlightItemAtIndexPath:indexPath]; + } + } + return shouldHighlight; +} + +- (BOOL)unhighlightItemAtIndexPath:(NSIndexPath *)indexPath animated:(BOOL)animated notifyDelegate:(BOOL)notifyDelegate { + return [self unhighlightItemAtIndexPath:indexPath animated:animated notifyDelegate:notifyDelegate shouldCheckHighlight:NO]; +} + +- (BOOL)unhighlightItemAtIndexPath:(NSIndexPath *)indexPath animated:(BOOL)animated notifyDelegate:(BOOL)notifyDelegate shouldCheckHighlight:(BOOL)check { + if ([_indexPathsForHighlightedItems containsObject:indexPath]) { + PSTCollectionViewCell *highlightedCell = [self cellForItemAtIndexPath:indexPath]; + // iOS6 does not notify any delegate if the cell was never highlighted (setHighlighted overwritten) during touchMoved + if (check && !highlightedCell.highlighted) { + return NO; + } + + // if multiple selection or not unhighlighting a selected item we don't perform any op + if (highlightedCell.highlighted && [_indexPathsForSelectedItems containsObject:indexPath]) { + highlightedCell.highlighted = YES; + }else { + highlightedCell.highlighted = NO; + } + + [_indexPathsForHighlightedItems removeObject:indexPath]; + + if (notifyDelegate && _collectionViewFlags.delegateDidUnhighlightItemAtIndexPath) { + [self.delegate collectionView:self didUnhighlightItemAtIndexPath:indexPath]; + } + + return YES; + } + return NO; +} + +/////////////////////////////////////////////////////////////////////////////////////////// +#pragma mark - Update Grid + +- (void)insertSections:(NSIndexSet *)sections { + [self updateSections:sections updateAction:PSTCollectionUpdateActionInsert]; +} + +- (void)deleteSections:(NSIndexSet *)sections { + // First delete all items + NSMutableArray *paths = [NSMutableArray new]; + [sections enumerateIndexesUsingBlock:^(NSUInteger idx, BOOL *stop) { + for (int i = 0; i < [self numberOfItemsInSection:(NSInteger)idx]; ++i) { + [paths addObject:[NSIndexPath indexPathForItem:i inSection:(NSInteger)idx]]; + } + }]; + [self deleteItemsAtIndexPaths:paths]; + // Then delete the section. + [self updateSections:sections updateAction:PSTCollectionUpdateActionDelete]; +} + +- (void)reloadSections:(NSIndexSet *)sections { + [self updateSections:sections updateAction:PSTCollectionUpdateActionReload]; +} + +- (void)moveSection:(NSInteger)section toSection:(NSInteger)newSection { + NSMutableArray *moveUpdateItems = [self arrayForUpdateAction:PSTCollectionUpdateActionMove]; + [moveUpdateItems addObject: + [[PSTCollectionViewUpdateItem alloc] initWithInitialIndexPath:[NSIndexPath indexPathForItem:NSNotFound inSection:section] + finalIndexPath:[NSIndexPath indexPathForItem:NSNotFound inSection:newSection] + updateAction:PSTCollectionUpdateActionMove]]; + if (!_collectionViewFlags.updating) { + [self setupCellAnimations]; + [self endItemAnimations]; + } +} + +- (void)insertItemsAtIndexPaths:(NSArray *)indexPaths { + [self updateRowsAtIndexPaths:indexPaths updateAction:PSTCollectionUpdateActionInsert]; +} + +- (void)deleteItemsAtIndexPaths:(NSArray *)indexPaths { + [self updateRowsAtIndexPaths:indexPaths updateAction:PSTCollectionUpdateActionDelete]; + +} + +- (void)reloadItemsAtIndexPaths:(NSArray *)indexPaths { + [self updateRowsAtIndexPaths:indexPaths updateAction:PSTCollectionUpdateActionReload]; +} + +- (void)moveItemAtIndexPath:(NSIndexPath *)indexPath toIndexPath:(NSIndexPath *)newIndexPath { + NSMutableArray *moveUpdateItems = [self arrayForUpdateAction:PSTCollectionUpdateActionMove]; + [moveUpdateItems addObject: + [[PSTCollectionViewUpdateItem alloc] initWithInitialIndexPath:indexPath + finalIndexPath:newIndexPath + updateAction:PSTCollectionUpdateActionMove]]; + if (!_collectionViewFlags.updating) { + [self setupCellAnimations]; + [self endItemAnimations]; + } + +} + +- (void)performBatchUpdates:(void (^)(void))updates completion:(void (^)(BOOL finished))completion { + [self setupCellAnimations]; + + if (updates) updates(); + if (completion) _updateCompletionHandler = completion; + + [self endItemAnimations]; +} + +/////////////////////////////////////////////////////////////////////////////////////////// +#pragma mark - Properties + +- (void)setBackgroundView:(UIView *)backgroundView { + if (backgroundView != _backgroundView) { + [_backgroundView removeFromSuperview]; + _backgroundView = backgroundView; + backgroundView.frame = (CGRect){.origin=self.contentOffset, .size=self.bounds.size}; + backgroundView.autoresizingMask = UIViewAutoresizingFlexibleHeight|UIViewAutoresizingFlexibleWidth; + [self addSubview:backgroundView]; + [self sendSubviewToBack:backgroundView]; + } +} + +- (void)setCollectionViewLayout:(PSTCollectionViewLayout *)layout animated:(BOOL)animated { + if (layout == _layout) return; + + // not sure it was it original code, but here this prevents crash + // in case we switch layout before previous one was initially loaded + if (CGRectIsEmpty(self.bounds) || !_collectionViewFlags.doneFirstLayout) { + _layout.collectionView = nil; + _collectionViewData = [[PSTCollectionViewData alloc] initWithCollectionView:self layout:layout]; + layout.collectionView = self; + _layout = layout; + + // originally the use method + // _setNeedsVisibleCellsUpdate:withLayoutAttributes: + // here with CellsUpdate set to YES and LayoutAttributes parameter set to NO + // inside this method probably some flags are set and finally + // setNeedsDisplay is called + + _collectionViewFlags.scheduledUpdateVisibleCells = YES; + _collectionViewFlags.scheduledUpdateVisibleCellLayoutAttributes = NO; + + [self setNeedsDisplay]; + } + else { + layout.collectionView = self; + + _layout.collectionView = nil; + _layout = layout; + + _collectionViewData = [[PSTCollectionViewData alloc] initWithCollectionView:self layout:layout]; + [_collectionViewData prepareToLoadData]; + + NSArray *previouslySelectedIndexPaths = [self indexPathsForSelectedItems]; + NSMutableSet *selectedCellKeys = [NSMutableSet setWithCapacity:previouslySelectedIndexPaths.count]; + + for (NSIndexPath *indexPath in previouslySelectedIndexPaths) { + [selectedCellKeys addObject:[PSTCollectionViewItemKey collectionItemKeyForCellWithIndexPath:indexPath]]; + } + + NSArray *previouslyVisibleItemsKeys = [_allVisibleViewsDict allKeys]; + NSSet *previouslyVisibleItemsKeysSet = [NSSet setWithArray:previouslyVisibleItemsKeys]; + NSMutableSet *previouslyVisibleItemsKeysSetMutable = [NSMutableSet setWithArray:previouslyVisibleItemsKeys]; + + if ([selectedCellKeys intersectsSet:selectedCellKeys]) { + [previouslyVisibleItemsKeysSetMutable intersectSet:previouslyVisibleItemsKeysSetMutable]; + } + + [self bringSubviewToFront:_allVisibleViewsDict[[previouslyVisibleItemsKeysSetMutable anyObject]]]; + + CGPoint targetOffset = self.contentOffset; + CGPoint centerPoint = CGPointMake(self.bounds.origin.x + self.bounds.size.width / 2.f, + self.bounds.origin.y + self.bounds.size.height / 2.f); + NSIndexPath *centerItemIndexPath = [self indexPathForItemAtPoint:centerPoint]; + + if (!centerItemIndexPath) { + NSArray *visibleItems = [self indexPathsForVisibleItems]; + if (visibleItems.count > 0) { + centerItemIndexPath = visibleItems[visibleItems.count / 2]; + } + } + + if (centerItemIndexPath) { + PSTCollectionViewLayoutAttributes *layoutAttributes = [layout layoutAttributesForItemAtIndexPath:centerItemIndexPath]; + if (layoutAttributes) { + PSTCollectionViewScrollPosition scrollPosition = PSTCollectionViewScrollPositionCenteredVertically|PSTCollectionViewScrollPositionCenteredHorizontally; + CGRect targetRect = [self makeRect:layoutAttributes.frame toScrollPosition:scrollPosition]; + targetOffset = CGPointMake(fmax(0.f, targetRect.origin.x), fmax(0.f, targetRect.origin.y)); + } + } + + CGRect newlyBounds = CGRectMake(targetOffset.x, targetOffset.y, self.bounds.size.width, self.bounds.size.height); + NSArray *newlyVisibleLayoutAttrs = [_collectionViewData layoutAttributesForElementsInRect:newlyBounds]; + + NSMutableDictionary *layoutInterchangeData = [NSMutableDictionary dictionaryWithCapacity: + newlyVisibleLayoutAttrs.count + previouslyVisibleItemsKeysSet.count]; + + NSMutableSet *newlyVisibleItemsKeys = [NSMutableSet set]; + for (PSTCollectionViewLayoutAttributes *attr in newlyVisibleLayoutAttrs) { + PSTCollectionViewItemKey *newKey = [PSTCollectionViewItemKey collectionItemKeyForLayoutAttributes:attr]; + [newlyVisibleItemsKeys addObject:newKey]; + + PSTCollectionViewLayoutAttributes *prevAttr = nil; + PSTCollectionViewLayoutAttributes *newAttr = nil; + + if (newKey.type == PSTCollectionViewItemTypeDecorationView) { + prevAttr = [self.collectionViewLayout layoutAttributesForDecorationViewOfKind:attr.representedElementKind + atIndexPath:newKey.indexPath]; + newAttr = [layout layoutAttributesForDecorationViewOfKind:attr.representedElementKind + atIndexPath:newKey.indexPath]; + } + else if (newKey.type == PSTCollectionViewItemTypeCell) { + prevAttr = [self.collectionViewLayout layoutAttributesForItemAtIndexPath:newKey.indexPath]; + newAttr = [layout layoutAttributesForItemAtIndexPath:newKey.indexPath]; + } + else { + prevAttr = [self.collectionViewLayout layoutAttributesForSupplementaryViewOfKind:attr.representedElementKind + atIndexPath:newKey.indexPath]; + newAttr = [layout layoutAttributesForSupplementaryViewOfKind:attr.representedElementKind + atIndexPath:newKey.indexPath]; + } + + if (prevAttr != nil && newAttr != nil) { + layoutInterchangeData[newKey] = @{@"previousLayoutInfos": prevAttr, @"newLayoutInfos": newAttr}; + } + } + + for (PSTCollectionViewItemKey *key in previouslyVisibleItemsKeysSet) { + PSTCollectionViewLayoutAttributes *prevAttr = nil; + PSTCollectionViewLayoutAttributes *newAttr = nil; + + if (key.type == PSTCollectionViewItemTypeDecorationView) { + PSTCollectionReusableView *decorView = _allVisibleViewsDict[key]; + prevAttr = [self.collectionViewLayout layoutAttributesForDecorationViewOfKind:decorView.reuseIdentifier + atIndexPath:key.indexPath]; + newAttr = [layout layoutAttributesForDecorationViewOfKind:decorView.reuseIdentifier + atIndexPath:key.indexPath]; + } + else if (key.type == PSTCollectionViewItemTypeCell) { + prevAttr = [self.collectionViewLayout layoutAttributesForItemAtIndexPath:key.indexPath]; + newAttr = [layout layoutAttributesForItemAtIndexPath:key.indexPath]; + } + else if (key.type == PSTCollectionViewItemTypeSupplementaryView) { + PSTCollectionReusableView *suuplView = _allVisibleViewsDict[key]; + prevAttr = [self.collectionViewLayout layoutAttributesForSupplementaryViewOfKind:suuplView.layoutAttributes.representedElementKind + atIndexPath:key.indexPath]; + newAttr = [layout layoutAttributesForSupplementaryViewOfKind:suuplView.layoutAttributes.representedElementKind + atIndexPath:key.indexPath]; + } + + NSMutableDictionary *layoutInterchangeDataValue = [NSMutableDictionary dictionary]; + if (prevAttr) layoutInterchangeDataValue[@"previousLayoutInfos"] = prevAttr; + if (newAttr) layoutInterchangeDataValue[@"newLayoutInfos"] = newAttr; + layoutInterchangeData[key] = layoutInterchangeDataValue; + } + + for (PSTCollectionViewItemKey *key in [layoutInterchangeData keyEnumerator]) { + if (key.type == PSTCollectionViewItemTypeCell) { + PSTCollectionViewCell *cell = _allVisibleViewsDict[key]; + + if (!cell) { + cell = [self createPreparedCellForItemAtIndexPath:key.indexPath + withLayoutAttributes:layoutInterchangeData[key][@"previousLayoutInfos"]]; + _allVisibleViewsDict[key] = cell; + [self addControlledSubview:cell]; + } + else [cell applyLayoutAttributes:layoutInterchangeData[key][@"previousLayoutInfos"]]; + } + else if (key.type == PSTCollectionViewItemTypeSupplementaryView) { + PSTCollectionReusableView *view = _allVisibleViewsDict[key]; + if (!view) { + PSTCollectionViewLayoutAttributes *attrs = layoutInterchangeData[key][@"previousLayoutInfos"]; + view = [self createPreparedSupplementaryViewForElementOfKind:attrs.representedElementKind + atIndexPath:attrs.indexPath + withLayoutAttributes:attrs]; + _allVisibleViewsDict[key] = view; + [self addControlledSubview:view]; + } + } + else if (key.type == PSTCollectionViewItemTypeDecorationView) { + PSTCollectionReusableView *view = _allVisibleViewsDict[key]; + if (!view) { + PSTCollectionViewLayoutAttributes *attrs = layoutInterchangeData[key][@"previousLayoutInfos"]; + view = [self dequeueReusableOrCreateDecorationViewOfKind:attrs.representedElementKind forIndexPath:attrs.indexPath]; + _allVisibleViewsDict[key] = view; + [self addControlledSubview:view]; + } + } + }; + + CGRect contentRect = [_collectionViewData collectionViewContentRect]; + + void (^applyNewLayoutBlock)(void) = ^{ + NSEnumerator *keys = [layoutInterchangeData keyEnumerator]; + for (PSTCollectionViewItemKey *key in keys) { + // TODO: This is most likely not 100% the same time as in UICollectionView. Needs to be investigated. + PSTCollectionViewCell *cell = (PSTCollectionViewCell *)_allVisibleViewsDict[key]; + [cell willTransitionFromLayout:_layout toLayout:layout]; + [cell applyLayoutAttributes:layoutInterchangeData[key][@"newLayoutInfos"]]; + [cell didTransitionFromLayout:_layout toLayout:layout]; + } + }; + + void (^freeUnusedViews)(void) = ^{ + NSMutableSet *toRemove = [NSMutableSet set]; + for (PSTCollectionViewItemKey *key in [_allVisibleViewsDict keyEnumerator]) { + if (![newlyVisibleItemsKeys containsObject:key]) { + if (key.type == PSTCollectionViewItemTypeCell) { + [self reuseCell:_allVisibleViewsDict[key]]; + [toRemove addObject:key]; + } + else if (key.type == PSTCollectionViewItemTypeSupplementaryView) { + [self reuseSupplementaryView:_allVisibleViewsDict[key]]; + [toRemove addObject:key]; + } + else if (key.type == PSTCollectionViewItemTypeDecorationView) { + [self reuseDecorationView:_allVisibleViewsDict[key]]; + [toRemove addObject:key]; + } + } + } + + for (id key in toRemove) + [_allVisibleViewsDict removeObjectForKey:key]; + }; + + if (animated) { + [UIView animateWithDuration:.3 animations:^{ + _collectionViewFlags.updatingLayout = YES; + self.contentOffset = targetOffset; + self.contentSize = contentRect.size; + applyNewLayoutBlock(); + } completion:^(BOOL finished) { + freeUnusedViews(); + _collectionViewFlags.updatingLayout = NO; + + // layout subviews for updating content offset or size while updating layout + if (!CGPointEqualToPoint(self.contentOffset, targetOffset) + || !CGSizeEqualToSize(self.contentSize, contentRect.size)) { + [self layoutSubviews]; + } + }]; + } + else { + self.contentOffset = targetOffset; + self.contentSize = contentRect.size; + applyNewLayoutBlock(); + freeUnusedViews(); + } + } +} + +- (void)setCollectionViewLayout:(PSTCollectionViewLayout *)layout { + [self setCollectionViewLayout:layout animated:NO]; +} + +- (id)delegate { + return self.extVars.collectionViewDelegate; +} + +- (void)setDelegate:(id)delegate { + self.extVars.collectionViewDelegate = delegate; + + // Managing the Selected Cells + _collectionViewFlags.delegateShouldSelectItemAtIndexPath = (unsigned int)[self.delegate respondsToSelector:@selector(collectionView:shouldSelectItemAtIndexPath:)]; + _collectionViewFlags.delegateDidSelectItemAtIndexPath = (unsigned int)[self.delegate respondsToSelector:@selector(collectionView:didSelectItemAtIndexPath:)]; + _collectionViewFlags.delegateShouldDeselectItemAtIndexPath = (unsigned int)[self.delegate respondsToSelector:@selector(collectionView:shouldDeselectItemAtIndexPath:)]; + _collectionViewFlags.delegateDidDeselectItemAtIndexPath = (unsigned int)[self.delegate respondsToSelector:@selector(collectionView:didDeselectItemAtIndexPath:)]; + + // Managing Cell Highlighting + _collectionViewFlags.delegateShouldHighlightItemAtIndexPath = (unsigned int)[self.delegate respondsToSelector:@selector(collectionView:shouldHighlightItemAtIndexPath:)]; + _collectionViewFlags.delegateDidHighlightItemAtIndexPath = (unsigned int)[self.delegate respondsToSelector:@selector(collectionView:didHighlightItemAtIndexPath:)]; + _collectionViewFlags.delegateDidUnhighlightItemAtIndexPath = (unsigned int)[self.delegate respondsToSelector:@selector(collectionView:didUnhighlightItemAtIndexPath:)]; + + // Tracking the Removal of Views + _collectionViewFlags.delegateDidEndDisplayingCell = (unsigned int)[self.delegate respondsToSelector:@selector(collectionView:didEndDisplayingCell:forItemAtIndexPath:)]; + _collectionViewFlags.delegateDidEndDisplayingSupplementaryView = (unsigned int)[self.delegate respondsToSelector:@selector(collectionView:didEndDisplayingSupplementaryView:forElementOfKind:atIndexPath:)]; + + // Managing Actions for Cells + _collectionViewFlags.delegateSupportsMenus = (unsigned int)[self.delegate respondsToSelector:@selector(collectionView:shouldShowMenuForItemAtIndexPath:)]; + + // These aren't present in the flags which is a little strange. Not adding them because that will mess with byte alignment which will affect cross compatibility. + // The flag names are guesses and are there for documentation purposes. + // _collectionViewFlags.delegateCanPerformActionForItemAtIndexPath = [self.delegate respondsToSelector:@selector(collectionView:canPerformAction:forItemAtIndexPath:withSender:)]; + // _collectionViewFlags.delegatePerformActionForItemAtIndexPath = [self.delegate respondsToSelector:@selector(collectionView:performAction:forItemAtIndexPath:withSender:)]; +} + +// Might be overkill since two are required and two are handled by PSTCollectionViewData leaving only one flag we actually need to check for +- (void)setDataSource:(id)dataSource { + if (dataSource != _dataSource) { + _dataSource = dataSource; + + // Getting Item and Section Metrics + _collectionViewFlags.dataSourceNumberOfSections = (unsigned int)[_dataSource respondsToSelector:@selector(numberOfSectionsInCollectionView:)]; + + // Getting Views for Items + _collectionViewFlags.dataSourceViewForSupplementaryElement = (unsigned int)[_dataSource respondsToSelector:@selector(collectionView:viewForSupplementaryElementOfKind:atIndexPath:)]; + } +} + +- (BOOL)allowsSelection { + return _collectionViewFlags.allowsSelection; +} + +- (void)setAllowsSelection:(BOOL)allowsSelection { + _collectionViewFlags.allowsSelection = (unsigned int)allowsSelection; +} + +- (BOOL)allowsMultipleSelection { + return _collectionViewFlags.allowsMultipleSelection; +} + +- (void)setAllowsMultipleSelection:(BOOL)allowsMultipleSelection { + _collectionViewFlags.allowsMultipleSelection = (unsigned int)allowsMultipleSelection; + + // Deselect all objects if allows multiple selection is false + if (!allowsMultipleSelection && _indexPathsForSelectedItems.count) { + + // Note: Apple's implementation leaves a mostly random item selected. Presumably they + // have a good reason for this, but I guess it's just skipping the last or first index. + for (NSIndexPath *selectedIndexPath in [_indexPathsForSelectedItems copy]) { + if (_indexPathsForSelectedItems.count == 1) continue; + [self deselectItemAtIndexPath:selectedIndexPath animated:YES notifyDelegate:YES]; + } + } +} + +- (CGRect)visibleBoundRects { + // in original UICollectionView implementation they + // check for _visibleBounds and can union self.bounds + // with this value. Don't know the meaning of _visibleBounds however. + return self.bounds; +} +/////////////////////////////////////////////////////////////////////////////////////////// +#pragma mark - Private + +- (PSTCollectionViewExt *)extVars { + return objc_getAssociatedObject(self, &kPSTColletionViewExt); +} + +- (void)invalidateLayout { + [self.collectionViewLayout invalidateLayout]; + [self.collectionViewData invalidate]; // invalidate layout cache +} + +// update currently visible cells, fetches new cells if needed +// TODO: use now parameter. +- (void)updateVisibleCellsNow:(BOOL)now { + NSArray *layoutAttributesArray = [_collectionViewData layoutAttributesForElementsInRect:self.bounds]; + + if (layoutAttributesArray == nil || layoutAttributesArray.count == 0) { + // If our layout source isn't providing any layout information, we should just + // stop, otherwise we'll blow away all the currently existing cells. + return; + } + + // create ItemKey/Attributes dictionary + NSMutableDictionary *itemKeysToAddDict = [NSMutableDictionary dictionary]; + + // Add new cells. + for (PSTCollectionViewLayoutAttributes *layoutAttributes in layoutAttributesArray) { + PSTCollectionViewItemKey *itemKey = [PSTCollectionViewItemKey collectionItemKeyForLayoutAttributes:layoutAttributes]; + itemKeysToAddDict[itemKey] = layoutAttributes; + + // check if cell is in visible dict; add it if not. + PSTCollectionReusableView *view = _allVisibleViewsDict[itemKey]; + if (!view) { + if (itemKey.type == PSTCollectionViewItemTypeCell) { + view = [self createPreparedCellForItemAtIndexPath:itemKey.indexPath withLayoutAttributes:layoutAttributes]; + + }else if (itemKey.type == PSTCollectionViewItemTypeSupplementaryView) { + view = [self createPreparedSupplementaryViewForElementOfKind:layoutAttributes.representedElementKind + atIndexPath:layoutAttributes.indexPath + withLayoutAttributes:layoutAttributes]; + }else if (itemKey.type == PSTCollectionViewItemTypeDecorationView) { + view = [self dequeueReusableOrCreateDecorationViewOfKind:layoutAttributes.representedElementKind forIndexPath:layoutAttributes.indexPath]; + } + + // Supplementary views are optional + if (view) { + _allVisibleViewsDict[itemKey] = view; + [self addControlledSubview:view]; + + // Always apply attributes. Fixes #203. + [view applyLayoutAttributes:layoutAttributes]; + } + }else { + // just update cell + [view applyLayoutAttributes:layoutAttributes]; + } + } + + // Detect what items should be removed and queued back. + NSMutableSet *allVisibleItemKeys = [NSMutableSet setWithArray:[_allVisibleViewsDict allKeys]]; + [allVisibleItemKeys minusSet:[NSSet setWithArray:[itemKeysToAddDict allKeys]]]; + + // Finally remove views that have not been processed and prepare them for re-use. + for (PSTCollectionViewItemKey *itemKey in allVisibleItemKeys) { + PSTCollectionReusableView *reusableView = _allVisibleViewsDict[itemKey]; + if (reusableView) { + [reusableView removeFromSuperview]; + [_allVisibleViewsDict removeObjectForKey:itemKey]; + if (itemKey.type == PSTCollectionViewItemTypeCell) { + if (_collectionViewFlags.delegateDidEndDisplayingCell) { + [self.delegate collectionView:self didEndDisplayingCell:(PSTCollectionViewCell *)reusableView forItemAtIndexPath:itemKey.indexPath]; + } + [self reuseCell:(PSTCollectionViewCell *)reusableView]; + } + else if (itemKey.type == PSTCollectionViewItemTypeSupplementaryView) { + if (_collectionViewFlags.delegateDidEndDisplayingSupplementaryView) { + [self.delegate collectionView:self didEndDisplayingSupplementaryView:reusableView forElementOfKind:itemKey.identifier atIndexPath:itemKey.indexPath]; + } + [self reuseSupplementaryView:reusableView]; + } + else if (itemKey.type == PSTCollectionViewItemTypeDecorationView) { + [self reuseDecorationView:reusableView]; + } + } + } +} + +// fetches a cell from the dataSource and sets the layoutAttributes +- (PSTCollectionViewCell *)createPreparedCellForItemAtIndexPath:(NSIndexPath *)indexPath withLayoutAttributes:(PSTCollectionViewLayoutAttributes *)layoutAttributes { + PSTCollectionViewCell *cell = [self.dataSource collectionView:self cellForItemAtIndexPath:indexPath]; + + // Apply attributes + [cell applyLayoutAttributes:layoutAttributes]; + + // reset selected/highlight state + [cell setHighlighted:[_indexPathsForHighlightedItems containsObject:indexPath]]; + [cell setSelected:[_indexPathsForSelectedItems containsObject:indexPath]]; + + // voiceover support + cell.isAccessibilityElement = YES; + + return cell; +} + +- (PSTCollectionReusableView *)createPreparedSupplementaryViewForElementOfKind:(NSString *)kind + atIndexPath:(NSIndexPath *)indexPath + withLayoutAttributes:(PSTCollectionViewLayoutAttributes *)layoutAttributes { + if (_collectionViewFlags.dataSourceViewForSupplementaryElement) { + PSTCollectionReusableView *view = [self.dataSource collectionView:self + viewForSupplementaryElementOfKind:kind + atIndexPath:indexPath]; + [view applyLayoutAttributes:layoutAttributes]; + return view; + } + return nil; +} + +// @steipete optimization +- (void)queueReusableView:(PSTCollectionReusableView *)reusableView inQueue:(NSMutableDictionary *)queue withIdentifier:(NSString *)identifier { + NSParameterAssert(identifier.length > 0); + + [reusableView removeFromSuperview]; + [reusableView prepareForReuse]; + + // enqueue cell + NSMutableArray *reuseableViews = queue[identifier]; + if (!reuseableViews) { + reuseableViews = [NSMutableArray array]; + queue[identifier] = reuseableViews; + } + [reuseableViews addObject:reusableView]; +} + +// enqueue cell for reuse +- (void)reuseCell:(PSTCollectionViewCell *)cell { + [self queueReusableView:cell inQueue:_cellReuseQueues withIdentifier:cell.reuseIdentifier]; +} + +// enqueue supplementary view for reuse +- (void)reuseSupplementaryView:(PSTCollectionReusableView *)supplementaryView { + NSString *kindAndIdentifier = [NSString stringWithFormat:@"%@/%@", supplementaryView.layoutAttributes.elementKind, supplementaryView.reuseIdentifier]; + [self queueReusableView:supplementaryView inQueue:_supplementaryViewReuseQueues withIdentifier:kindAndIdentifier]; +} + +// enqueue decoration view for reuse +- (void)reuseDecorationView:(PSTCollectionReusableView *)decorationView { + [self queueReusableView:decorationView inQueue:_decorationViewReuseQueues withIdentifier:decorationView.reuseIdentifier]; +} + +- (void)addControlledSubview:(PSTCollectionReusableView *)subview { + // avoids placing views above the scroll indicator + // If the collection view is not displaying scrollIndicators then self.subviews.count can be 0. + // We take the max to ensure we insert at a non negative index because a negative index will silently fail to insert the view + NSInteger insertionIndex = MAX((NSInteger)(self.subviews.count - (self.dragging ? 1 : 0)), 0); + [self insertSubview:subview atIndex:insertionIndex]; + UIView *scrollIndicatorView = nil; + if (self.dragging) { + scrollIndicatorView = [self.subviews lastObject]; + } + + NSMutableArray *floatingViews = [[NSMutableArray alloc] init]; + for (UIView *uiView in self.subviews) { + if ([uiView isKindOfClass:PSTCollectionReusableView.class] && [[(PSTCollectionReusableView *)uiView layoutAttributes] zIndex] > 0) { + [floatingViews addObject:uiView]; + } + } + + [floatingViews sortUsingComparator:^NSComparisonResult(PSTCollectionReusableView *obj1, PSTCollectionReusableView *obj2) { + CGFloat z1 = [[obj1 layoutAttributes] zIndex]; + CGFloat z2 = [[obj2 layoutAttributes] zIndex]; + if (z1 > z2) { + return (NSComparisonResult)NSOrderedDescending; + }else if (z1 < z2) { + return (NSComparisonResult)NSOrderedAscending; + }else { + return (NSComparisonResult)NSOrderedSame; + } + }]; + + for (PSTCollectionReusableView *uiView in floatingViews) { + [self bringSubviewToFront:uiView]; + } + + if (floatingViews.count && scrollIndicatorView) { + [self bringSubviewToFront:scrollIndicatorView]; + } +} + +/////////////////////////////////////////////////////////////////////////////////////////// +#pragma mark - Updating grid internal functionality + +- (void)suspendReloads { + _reloadingSuspendedCount++; +} + +- (void)resumeReloads { + if (0 < _reloadingSuspendedCount) _reloadingSuspendedCount--; +} + +- (NSMutableArray *)arrayForUpdateAction:(PSTCollectionUpdateAction)updateAction { + NSMutableArray *updateActions = nil; + + switch (updateAction) { + case PSTCollectionUpdateActionInsert: + if (!_insertItems) _insertItems = [NSMutableArray new]; + updateActions = _insertItems; + break; + case PSTCollectionUpdateActionDelete: + if (!_deleteItems) _deleteItems = [NSMutableArray new]; + updateActions = _deleteItems; + break; + case PSTCollectionUpdateActionMove: + if (!_moveItems) _moveItems = [NSMutableArray new]; + updateActions = _moveItems; + break; + case PSTCollectionUpdateActionReload: + if (!_reloadItems) _reloadItems = [NSMutableArray new]; + updateActions = _reloadItems; + break; + default: break; + } + return updateActions; +} + +- (void)prepareLayoutForUpdates { + NSMutableArray *array = [[NSMutableArray alloc] init]; + [array addObjectsFromArray:[_originalDeleteItems sortedArrayUsingSelector:@selector(inverseCompareIndexPaths:)]]; + [array addObjectsFromArray:[_originalInsertItems sortedArrayUsingSelector:@selector(compareIndexPaths:)]]; + [array addObjectsFromArray:[_reloadItems sortedArrayUsingSelector:@selector(compareIndexPaths:)]]; + [array addObjectsFromArray:[_moveItems sortedArrayUsingSelector:@selector(compareIndexPaths:)]]; + [_layout prepareForCollectionViewUpdates:array]; +} + +- (void)updateWithItems:(NSArray *)items { + [self prepareLayoutForUpdates]; + + NSMutableArray *animations = [[NSMutableArray alloc] init]; + NSMutableDictionary *newAllVisibleView = [[NSMutableDictionary alloc] init]; + + NSMutableDictionary *viewsToRemove = [NSMutableDictionary dictionaryWithObjectsAndKeys: + [NSMutableArray array], @(PSTCollectionViewItemTypeCell), + [NSMutableArray array], @(PSTCollectionViewItemTypeDecorationView), + [NSMutableArray array], @(PSTCollectionViewItemTypeSupplementaryView), nil]; + + for (PSTCollectionViewUpdateItem *updateItem in items) { + if (updateItem.isSectionOperation && updateItem.updateAction != PSTCollectionUpdateActionDelete) continue; + if (updateItem.isSectionOperation && updateItem.updateAction == PSTCollectionUpdateActionDelete) { + NSInteger numberOfBeforeSection = [_update[@"oldModel"] numberOfItemsInSection:updateItem.indexPathBeforeUpdate.section]; + for (NSInteger i = 0; i < numberOfBeforeSection; i++) { + NSIndexPath *indexPath = [NSIndexPath indexPathForItem:i inSection:updateItem.indexPathBeforeUpdate.section]; + + PSTCollectionViewLayoutAttributes *finalAttrs = [_layout finalLayoutAttributesForDisappearingItemAtIndexPath:indexPath]; + PSTCollectionViewItemKey *key = [PSTCollectionViewItemKey collectionItemKeyForCellWithIndexPath:indexPath]; + PSTCollectionReusableView *view = _allVisibleViewsDict[key]; + if (view) { + PSTCollectionViewLayoutAttributes *startAttrs = view.layoutAttributes; + + if (!finalAttrs) { + finalAttrs = [startAttrs copy]; + finalAttrs.alpha = 0; + } + [animations addObject:@{@"view" : view, @"previousLayoutInfos" : startAttrs, @"newLayoutInfos" : finalAttrs}]; + + [_allVisibleViewsDict removeObjectForKey:key]; + + [(NSMutableArray *)viewsToRemove[@(key.type)] addObject:view]; + + } + } + continue; + } + + if (updateItem.updateAction == PSTCollectionUpdateActionDelete) { + NSIndexPath *indexPath = updateItem.indexPathBeforeUpdate; + + PSTCollectionViewLayoutAttributes *finalAttrs = [_layout finalLayoutAttributesForDisappearingItemAtIndexPath:indexPath]; + PSTCollectionViewItemKey *key = [PSTCollectionViewItemKey collectionItemKeyForCellWithIndexPath:indexPath]; + PSTCollectionReusableView *view = _allVisibleViewsDict[key]; + if (view) { + PSTCollectionViewLayoutAttributes *startAttrs = view.layoutAttributes; + + if (!finalAttrs) { + finalAttrs = [startAttrs copy]; + finalAttrs.alpha = 0; + } + [animations addObject:@{@"view" : view, @"previousLayoutInfos" : startAttrs, @"newLayoutInfos" : finalAttrs}]; + + [_allVisibleViewsDict removeObjectForKey:key]; + + [(NSMutableArray *)viewsToRemove[@(key.type)] addObject:view]; + + } + } + else if (updateItem.updateAction == PSTCollectionUpdateActionInsert) { + NSIndexPath *indexPath = updateItem.indexPathAfterUpdate; + PSTCollectionViewItemKey *key = [PSTCollectionViewItemKey collectionItemKeyForCellWithIndexPath:indexPath]; + PSTCollectionViewLayoutAttributes *startAttrs = [_layout initialLayoutAttributesForAppearingItemAtIndexPath:indexPath]; + PSTCollectionViewLayoutAttributes *finalAttrs = [_layout layoutAttributesForItemAtIndexPath:indexPath]; + + CGRect startRect = startAttrs.frame; + CGRect finalRect = finalAttrs.frame; + + if (CGRectIntersectsRect(self.visibleBoundRects, startRect) || CGRectIntersectsRect(self.visibleBoundRects, finalRect)) { + + if (!startAttrs) { + startAttrs = [finalAttrs copy]; + startAttrs.alpha = 0; + } + + PSTCollectionReusableView *view = [self createPreparedCellForItemAtIndexPath:indexPath + withLayoutAttributes:startAttrs]; + [self addControlledSubview:view]; + + newAllVisibleView[key] = view; + [animations addObject:@{@"view" : view, @"previousLayoutInfos" : startAttrs, @"newLayoutInfos" : finalAttrs}]; + } + } + else if (updateItem.updateAction == PSTCollectionUpdateActionMove) { + NSIndexPath *indexPathBefore = updateItem.indexPathBeforeUpdate; + NSIndexPath *indexPathAfter = updateItem.indexPathAfterUpdate; + + PSTCollectionViewItemKey *keyBefore = [PSTCollectionViewItemKey collectionItemKeyForCellWithIndexPath:indexPathBefore]; + PSTCollectionViewItemKey *keyAfter = [PSTCollectionViewItemKey collectionItemKeyForCellWithIndexPath:indexPathAfter]; + PSTCollectionReusableView *view = _allVisibleViewsDict[keyBefore]; + + PSTCollectionViewLayoutAttributes *startAttrs = nil; + PSTCollectionViewLayoutAttributes *finalAttrs = [_layout layoutAttributesForItemAtIndexPath:indexPathAfter]; + + if (view) { + startAttrs = view.layoutAttributes; + [_allVisibleViewsDict removeObjectForKey:keyBefore]; + newAllVisibleView[keyAfter] = view; + } + else { + startAttrs = [finalAttrs copy]; + startAttrs.alpha = 0; + view = [self createPreparedCellForItemAtIndexPath:indexPathAfter withLayoutAttributes:startAttrs]; + [self addControlledSubview:view]; + newAllVisibleView[keyAfter] = view; + } + + [animations addObject:@{@"view" : view, @"previousLayoutInfos" : startAttrs, @"newLayoutInfos" : finalAttrs}]; + } + } + + for (PSTCollectionViewItemKey *key in [_allVisibleViewsDict keyEnumerator]) { + PSTCollectionReusableView *view = _allVisibleViewsDict[key]; + + if (key.type == PSTCollectionViewItemTypeCell) { + NSUInteger oldGlobalIndex = [_update[@"oldModel"] globalIndexForItemAtIndexPath:key.indexPath]; + NSArray *oldToNewIndexMap = _update[@"oldToNewIndexMap"]; + NSUInteger newGlobalIndex = NSNotFound; + if (NSNotFound != oldGlobalIndex && oldGlobalIndex < oldToNewIndexMap.count) { + newGlobalIndex = [oldToNewIndexMap[oldGlobalIndex] unsignedIntegerValue]; + } + NSIndexPath *newIndexPath = newGlobalIndex == NSNotFound ? nil : [_update[@"newModel"] indexPathForItemAtGlobalIndex:(int)newGlobalIndex]; + NSIndexPath *oldIndexPath = oldGlobalIndex == NSNotFound ? nil : [_update[@"oldModel"] indexPathForItemAtGlobalIndex:(int)oldGlobalIndex]; + + if (newIndexPath) { + PSTCollectionViewLayoutAttributes *startAttrs = nil; + PSTCollectionViewLayoutAttributes *finalAttrs = nil; + + startAttrs = [_layout initialLayoutAttributesForAppearingItemAtIndexPath:oldIndexPath]; + finalAttrs = [_layout layoutAttributesForItemAtIndexPath:newIndexPath]; + + NSMutableDictionary *dic = [NSMutableDictionary dictionaryWithDictionary:@{@"view" : view}]; + if (startAttrs) dic[@"previousLayoutInfos"] = startAttrs; + if (finalAttrs) dic[@"newLayoutInfos"] = finalAttrs; + + [animations addObject:dic]; + PSTCollectionViewItemKey *newKey = [key copy]; + [newKey setIndexPath:newIndexPath]; + newAllVisibleView[newKey] = view; + + } + }else if (key.type == PSTCollectionViewItemTypeSupplementaryView) { + PSTCollectionViewLayoutAttributes *startAttrs = nil; + PSTCollectionViewLayoutAttributes *finalAttrs = nil; + + startAttrs = view.layoutAttributes; + finalAttrs = [_layout layoutAttributesForSupplementaryViewOfKind:view.layoutAttributes.representedElementKind atIndexPath:key.indexPath]; + + NSMutableDictionary *dic = [NSMutableDictionary dictionaryWithDictionary:@{@"view" : view}]; + if (startAttrs) dic[@"previousLayoutInfos"] = startAttrs; + if (finalAttrs) dic[@"newLayoutInfos"] = finalAttrs; + + [animations addObject:dic]; + PSTCollectionViewItemKey *newKey = [key copy]; + newAllVisibleView[newKey] = view; + + } + } + NSArray *allNewlyVisibleItems = [_layout layoutAttributesForElementsInRect:self.visibleBoundRects]; + for (PSTCollectionViewLayoutAttributes *attrs in allNewlyVisibleItems) { + PSTCollectionViewItemKey *key = [PSTCollectionViewItemKey collectionItemKeyForLayoutAttributes:attrs]; + + if (key.type == PSTCollectionViewItemTypeCell && ![[newAllVisibleView allKeys] containsObject:key]) { + PSTCollectionViewLayoutAttributes *startAttrs = + [_layout initialLayoutAttributesForAppearingItemAtIndexPath:attrs.indexPath]; + + PSTCollectionReusableView *view = [self createPreparedCellForItemAtIndexPath:attrs.indexPath + withLayoutAttributes:startAttrs]; + [self addControlledSubview:view]; + newAllVisibleView[key] = view; + + [animations addObject:@{@"view" : view, @"previousLayoutInfos" : startAttrs ? startAttrs : attrs, @"newLayoutInfos" : attrs}]; + } + } + + //In here I think it doesn't need the animation but the transaction, it would cause some issue of display. + //I resolve the bug when user insert the new sections, the cell will display with a blink animation at the first operation. + //But I don't know why the next operation wouldn't reproduction in the pre version. + _allVisibleViewsDict = newAllVisibleView; + + for (NSDictionary *animation in animations) { + PSTCollectionReusableView *view = animation[@"view"]; + PSTCollectionViewLayoutAttributes *attr = animation[@"previousLayoutInfos"]; + [view applyLayoutAttributes:attr]; + }; + + _collectionViewFlags.updatingLayout = YES; + + [CATransaction begin]; + [CATransaction setAnimationDuration:0]; + [CATransaction setCompletionBlock:^{ + // Iterate through all the views that we are going to remove. + [viewsToRemove enumerateKeysAndObjectsUsingBlock:^(NSNumber *keyObj, NSArray *views, BOOL *stop) { + PSTCollectionViewItemType type = [keyObj unsignedIntegerValue]; + for (PSTCollectionReusableView *view in views) { + if (type == PSTCollectionViewItemTypeCell) { + [self reuseCell:(PSTCollectionViewCell *)view]; + } else if (type == PSTCollectionViewItemTypeSupplementaryView) { + [self reuseSupplementaryView:view]; + } else if (type == PSTCollectionViewItemTypeDecorationView) { + [self reuseDecorationView:view]; + } + } + }]; + + _collectionViewFlags.updatingLayout = NO; + + //In here I think when the block is called, the flag is YES. So the _updateCopletionHandler's paramer is YES. + if (_updateCompletionHandler) { + _updateCompletionHandler(YES); + _updateCompletionHandler = nil; + } + }]; + + for (NSDictionary *animation in animations) { + PSTCollectionReusableView *view = animation[@"view"]; + PSTCollectionViewLayoutAttributes *attrs = animation[@"newLayoutInfos"]; + [view applyLayoutAttributes:attrs]; + } + [CATransaction commit]; + + [_layout finalizeCollectionViewUpdates]; +} + +- (void)setupCellAnimations { + [self updateVisibleCellsNow:YES]; + [self suspendReloads]; + _collectionViewFlags.updating = YES; +} + +- (void)endItemAnimations { + _updateCount++; + PSTCollectionViewData *oldCollectionViewData = _collectionViewData; + _collectionViewData = [[PSTCollectionViewData alloc] initWithCollectionView:self layout:_layout]; + + [_layout invalidateLayout]; + [_collectionViewData prepareToLoadData]; + + NSMutableArray *someMutableArr1 = [[NSMutableArray alloc] init]; + + NSArray *removeUpdateItems = [[self arrayForUpdateAction:PSTCollectionUpdateActionDelete] + sortedArrayUsingSelector:@selector(inverseCompareIndexPaths:)]; + + NSArray *insertUpdateItems = [[self arrayForUpdateAction:PSTCollectionUpdateActionInsert] + sortedArrayUsingSelector:@selector(compareIndexPaths:)]; + + NSMutableArray *sortedMutableReloadItems = [[_reloadItems sortedArrayUsingSelector:@selector(compareIndexPaths:)] mutableCopy]; + NSMutableArray *sortedMutableMoveItems = [[_moveItems sortedArrayUsingSelector:@selector(compareIndexPaths:)] mutableCopy]; + + _originalDeleteItems = [removeUpdateItems copy]; + _originalInsertItems = [insertUpdateItems copy]; + + NSMutableArray *someMutableArr2 = [[NSMutableArray alloc] init]; + NSMutableArray *someMutableArr3 = [[NSMutableArray alloc] init]; + NSMutableDictionary *operations = [[NSMutableDictionary alloc] init]; + + for (PSTCollectionViewUpdateItem *updateItem in sortedMutableReloadItems) { + NSAssert(updateItem.indexPathBeforeUpdate.section < [oldCollectionViewData numberOfSections], + @"attempt to reload item (%@) that doesn't exist (there are only %ld sections before update)", + updateItem.indexPathBeforeUpdate, (long)[oldCollectionViewData numberOfSections]); + + if (updateItem.indexPathBeforeUpdate.item != NSNotFound) { + NSAssert(updateItem.indexPathBeforeUpdate.item < [oldCollectionViewData numberOfItemsInSection:updateItem.indexPathBeforeUpdate.section], + @"attempt to reload item (%@) that doesn't exist (there are only %ld items in section %ld before update)", + updateItem.indexPathBeforeUpdate, + (long)[oldCollectionViewData numberOfItemsInSection:updateItem.indexPathBeforeUpdate.section], + (long)updateItem.indexPathBeforeUpdate.section); + } + + [someMutableArr2 addObject:[[PSTCollectionViewUpdateItem alloc] initWithAction:PSTCollectionUpdateActionDelete + forIndexPath:updateItem.indexPathBeforeUpdate]]; + [someMutableArr3 addObject:[[PSTCollectionViewUpdateItem alloc] initWithAction:PSTCollectionUpdateActionInsert + forIndexPath:updateItem.indexPathAfterUpdate]]; + } + + NSMutableArray *sortedDeletedMutableItems = [[_deleteItems sortedArrayUsingSelector:@selector(inverseCompareIndexPaths:)] mutableCopy]; + NSMutableArray *sortedInsertMutableItems = [[_insertItems sortedArrayUsingSelector:@selector(compareIndexPaths:)] mutableCopy]; + + for (PSTCollectionViewUpdateItem *deleteItem in sortedDeletedMutableItems) { + if ([deleteItem isSectionOperation]) { + NSAssert(deleteItem.indexPathBeforeUpdate.section < [oldCollectionViewData numberOfSections], + @"attempt to delete section (%ld) that doesn't exist (there are only %ld sections before update)", + (long)deleteItem.indexPathBeforeUpdate.section, + (long)[oldCollectionViewData numberOfSections]); + + for (PSTCollectionViewUpdateItem *moveItem in sortedMutableMoveItems) { + if (moveItem.indexPathBeforeUpdate.section == deleteItem.indexPathBeforeUpdate.section) { + if (moveItem.isSectionOperation) + NSAssert(NO, @"attempt to delete and move from the same section %ld", (long)deleteItem.indexPathBeforeUpdate.section); + else + NSAssert(NO, @"attempt to delete and move from the same section (%@)", moveItem.indexPathBeforeUpdate); + } + } + }else { + NSAssert(deleteItem.indexPathBeforeUpdate.section < [oldCollectionViewData numberOfSections], + @"attempt to delete item (%@) that doesn't exist (there are only %ld sections before update)", + deleteItem.indexPathBeforeUpdate, + (long)[oldCollectionViewData numberOfSections]); + NSAssert(deleteItem.indexPathBeforeUpdate.item < [oldCollectionViewData numberOfItemsInSection:deleteItem.indexPathBeforeUpdate.section], + @"attempt to delete item (%@) that doesn't exist (there are only %ld items in section%ld before update)", + deleteItem.indexPathBeforeUpdate, + (long)[oldCollectionViewData numberOfItemsInSection:deleteItem.indexPathBeforeUpdate.section], + (long)deleteItem.indexPathBeforeUpdate.section); + + for (PSTCollectionViewUpdateItem *moveItem in sortedMutableMoveItems) { + NSAssert(![deleteItem.indexPathBeforeUpdate isEqual:moveItem.indexPathBeforeUpdate], + @"attempt to delete and move the same item (%@)", deleteItem.indexPathBeforeUpdate); + } + + if (!operations[@(deleteItem.indexPathBeforeUpdate.section)]) + operations[@(deleteItem.indexPathBeforeUpdate.section)] = [NSMutableDictionary dictionary]; + + operations[@(deleteItem.indexPathBeforeUpdate.section)][@"deleted"] = + @([operations[@(deleteItem.indexPathBeforeUpdate.section)][@"deleted"] intValue] + 1); + } + } + + for (NSUInteger i = 0; i < sortedInsertMutableItems.count; i++) { + PSTCollectionViewUpdateItem *insertItem = sortedInsertMutableItems[i]; + NSIndexPath *indexPath = insertItem.indexPathAfterUpdate; + + BOOL sectionOperation = [insertItem isSectionOperation]; + if (sectionOperation) { + NSAssert([indexPath section] < [_collectionViewData numberOfSections], + @"attempt to insert %ld but there are only %ld sections after update", + (long)[indexPath section], (long)[_collectionViewData numberOfSections]); + + for (PSTCollectionViewUpdateItem *moveItem in sortedMutableMoveItems) { + if ([moveItem.indexPathAfterUpdate isEqual:indexPath]) { + if (moveItem.isSectionOperation) + NSAssert(NO, @"attempt to perform an insert and a move to the same section (%ld)", (long)indexPath.section); + } + } + + NSUInteger j = i + 1; + while (j < sortedInsertMutableItems.count) { + PSTCollectionViewUpdateItem *nextInsertItem = sortedInsertMutableItems[j]; + + if (nextInsertItem.indexPathAfterUpdate.section == indexPath.section) { + NSAssert(nextInsertItem.indexPathAfterUpdate.item < [_collectionViewData numberOfItemsInSection:indexPath.section], + @"attempt to insert item %ld into section %ld, but there are only %ld items in section %ld after the update", + (long)nextInsertItem.indexPathAfterUpdate.item, + (long)indexPath.section, + (long)[_collectionViewData numberOfItemsInSection:indexPath.section], + (long)indexPath.section); + [sortedInsertMutableItems removeObjectAtIndex:j]; + } + else break; + } + }else { + NSAssert(indexPath.item < [_collectionViewData numberOfItemsInSection:indexPath.section], + @"attempt to insert item to (%@) but there are only %ld items in section %ld after update", + indexPath, + (long)[_collectionViewData numberOfItemsInSection:indexPath.section], + (long)indexPath.section); + + if (!operations[@(indexPath.section)]) + operations[@(indexPath.section)] = [NSMutableDictionary dictionary]; + + operations[@(indexPath.section)][@"inserted"] = + @([operations[@(indexPath.section)][@"inserted"] intValue] + 1); + } + } + + for (PSTCollectionViewUpdateItem *sortedItem in sortedMutableMoveItems) { + if (sortedItem.isSectionOperation) { + NSAssert(sortedItem.indexPathBeforeUpdate.section < [oldCollectionViewData numberOfSections], + @"attempt to move section (%ld) that doesn't exist (%ld sections before update)", + (long)sortedItem.indexPathBeforeUpdate.section, + (long)[oldCollectionViewData numberOfSections]); + NSAssert(sortedItem.indexPathAfterUpdate.section < [_collectionViewData numberOfSections], + @"attempt to move section to %ld but there are only %ld sections after update", + (long)sortedItem.indexPathAfterUpdate.section, + (long)[_collectionViewData numberOfSections]); + }else { + NSAssert(sortedItem.indexPathBeforeUpdate.section < [oldCollectionViewData numberOfSections], + @"attempt to move item (%@) that doesn't exist (%ld sections before update)", + sortedItem, (long)[oldCollectionViewData numberOfSections]); + NSAssert(sortedItem.indexPathBeforeUpdate.item < [oldCollectionViewData numberOfItemsInSection:sortedItem.indexPathBeforeUpdate.section], + @"attempt to move item (%@) that doesn't exist (%ld items in section %ld before update)", + sortedItem, + (long)[oldCollectionViewData numberOfItemsInSection:sortedItem.indexPathBeforeUpdate.section], + (long)sortedItem.indexPathBeforeUpdate.section); + + NSAssert(sortedItem.indexPathAfterUpdate.section < [_collectionViewData numberOfSections], + @"attempt to move item to (%@) but there are only %ld sections after update", + sortedItem.indexPathAfterUpdate, + (long)[_collectionViewData numberOfSections]); + NSAssert(sortedItem.indexPathAfterUpdate.item < [_collectionViewData numberOfItemsInSection:sortedItem.indexPathAfterUpdate.section], + @"attempt to move item to (%@) but there are only %ld items in section %ld after update", + sortedItem, + (long)[_collectionViewData numberOfItemsInSection:sortedItem.indexPathAfterUpdate.section], + (long)sortedItem.indexPathAfterUpdate.section); + } + + if (!operations[@(sortedItem.indexPathBeforeUpdate.section)]) + operations[@(sortedItem.indexPathBeforeUpdate.section)] = [NSMutableDictionary dictionary]; + if (!operations[@(sortedItem.indexPathAfterUpdate.section)]) + operations[@(sortedItem.indexPathAfterUpdate.section)] = [NSMutableDictionary dictionary]; + + operations[@(sortedItem.indexPathBeforeUpdate.section)][@"movedOut"] = + @([operations[@(sortedItem.indexPathBeforeUpdate.section)][@"movedOut"] intValue] + 1); + + operations[@(sortedItem.indexPathAfterUpdate.section)][@"movedIn"] = + @([operations[@(sortedItem.indexPathAfterUpdate.section)][@"movedIn"] intValue] + 1); + } + +#if !defined NS_BLOCK_ASSERTIONS + for (NSNumber *sectionKey in [operations keyEnumerator]) { + NSInteger section = [sectionKey integerValue]; + + NSInteger insertedCount = [operations[sectionKey][@"inserted"] integerValue]; + NSInteger deletedCount = [operations[sectionKey][@"deleted"] integerValue]; + NSInteger movedInCount = [operations[sectionKey][@"movedIn"] integerValue]; + NSInteger movedOutCount = [operations[sectionKey][@"movedOut"] integerValue]; + + NSAssert([oldCollectionViewData numberOfItemsInSection:section] + insertedCount - deletedCount + movedInCount - movedOutCount == + [_collectionViewData numberOfItemsInSection:section], + @"invalid update in section %ld: number of items after update (%ld) should be equal to the number of items before update (%ld) "\ + "plus count of inserted items (%ld), minus count of deleted items (%ld), plus count of items moved in (%ld), minus count of items moved out (%ld)", + (long)section, + (long)[_collectionViewData numberOfItemsInSection:section], + (long)[oldCollectionViewData numberOfItemsInSection:section], + (long)insertedCount, (long)deletedCount, (long)movedInCount, (long)movedOutCount); + } +#endif + + [someMutableArr2 addObjectsFromArray:sortedDeletedMutableItems]; + [someMutableArr3 addObjectsFromArray:sortedInsertMutableItems]; + [someMutableArr1 addObjectsFromArray:[someMutableArr2 sortedArrayUsingSelector:@selector(inverseCompareIndexPaths:)]]; + [someMutableArr1 addObjectsFromArray:sortedMutableMoveItems]; + [someMutableArr1 addObjectsFromArray:[someMutableArr3 sortedArrayUsingSelector:@selector(compareIndexPaths:)]]; + + NSMutableArray *layoutUpdateItems = [[NSMutableArray alloc] init]; + + [layoutUpdateItems addObjectsFromArray:sortedDeletedMutableItems]; + [layoutUpdateItems addObjectsFromArray:sortedMutableMoveItems]; + [layoutUpdateItems addObjectsFromArray:sortedInsertMutableItems]; + + + NSMutableArray *newModel = [NSMutableArray array]; + for (NSInteger i = 0; i < [oldCollectionViewData numberOfSections]; i++) { + NSMutableArray *sectionArr = [NSMutableArray array]; + for (NSInteger j = 0; j < [oldCollectionViewData numberOfItemsInSection:i]; j++) + [sectionArr addObject:@([oldCollectionViewData globalIndexForItemAtIndexPath:[NSIndexPath indexPathForItem:j inSection:i]])]; + [newModel addObject:sectionArr]; + } + + for (PSTCollectionViewUpdateItem *updateItem in layoutUpdateItems) { + switch (updateItem.updateAction) { + case PSTCollectionUpdateActionDelete: { + if (updateItem.isSectionOperation) { + // section updates are ignored anyway in animation code. If not commented, mixing rows and section deletion causes crash in else below + // [newModel removeObjectAtIndex:updateItem.indexPathBeforeUpdate.section]; + }else { + [(NSMutableArray *)newModel[(NSUInteger)updateItem.indexPathBeforeUpdate.section] + removeObjectAtIndex:(NSUInteger)updateItem.indexPathBeforeUpdate.item]; + } + } + break; + case PSTCollectionUpdateActionInsert: { + if (updateItem.isSectionOperation) { + [newModel insertObject:[[NSMutableArray alloc] init] + atIndex:(NSUInteger)updateItem.indexPathAfterUpdate.section]; + }else { + [(NSMutableArray *)newModel[(NSUInteger)updateItem.indexPathAfterUpdate.section] + insertObject:@(NSNotFound) + atIndex:(NSUInteger)updateItem.indexPathAfterUpdate.item]; + } + } + break; + + case PSTCollectionUpdateActionMove: { + if (updateItem.isSectionOperation) { + id section = newModel[(NSUInteger)updateItem.indexPathBeforeUpdate.section]; + [newModel insertObject:section atIndex:(NSUInteger)updateItem.indexPathAfterUpdate.section]; + } + else { + id object = @([oldCollectionViewData globalIndexForItemAtIndexPath:updateItem.indexPathBeforeUpdate]); + [newModel[(NSUInteger)updateItem.indexPathBeforeUpdate.section] removeObject:object]; + [newModel[(NSUInteger)updateItem.indexPathAfterUpdate.section] insertObject:object + atIndex:(NSUInteger)updateItem.indexPathAfterUpdate.item]; + } + } + break; + default: break; + } + } + + NSMutableArray *oldToNewMap = [NSMutableArray arrayWithCapacity:(NSUInteger)[oldCollectionViewData numberOfItems]]; + NSMutableArray *newToOldMap = [NSMutableArray arrayWithCapacity:(NSUInteger)[_collectionViewData numberOfItems]]; + + for (NSInteger i = 0; i < [oldCollectionViewData numberOfItems]; i++) + [oldToNewMap addObject:@(NSNotFound)]; + + for (NSInteger i = 0; i < [_collectionViewData numberOfItems]; i++) + [newToOldMap addObject:@(NSNotFound)]; + + for (NSUInteger i = 0; i < newModel.count; i++) { + NSMutableArray *section = newModel[i]; + for (NSUInteger j = 0; j < section.count; j++) { + NSUInteger newGlobalIndex = [_collectionViewData globalIndexForItemAtIndexPath:[NSIndexPath indexPathForItem:(NSInteger)j inSection:(NSInteger)i]]; + if ([section[j] integerValue] != NSNotFound) + oldToNewMap[[section[j] unsignedIntegerValue]] = @(newGlobalIndex); + if (newGlobalIndex != NSNotFound) + newToOldMap[newGlobalIndex] = section[j]; + } + } + + _update = @{@"oldModel" : oldCollectionViewData, @"newModel" : _collectionViewData, @"oldToNewIndexMap" : oldToNewMap, @"newToOldIndexMap" : newToOldMap}; + + [self updateWithItems:someMutableArr1]; + + _originalInsertItems = nil; + _originalDeleteItems = nil; + _insertItems = nil; + _deleteItems = nil; + _moveItems = nil; + _reloadItems = nil; + _update = nil; + _updateCount--; + _collectionViewFlags.updating = NO; + [self resumeReloads]; +} + +- (void)updateRowsAtIndexPaths:(NSArray *)indexPaths updateAction:(PSTCollectionUpdateAction)updateAction { + BOOL updating = _collectionViewFlags.updating; + if (!updating) [self setupCellAnimations]; + + NSMutableArray *array = [self arrayForUpdateAction:updateAction]; //returns appropriate empty array if not exists + + for (NSIndexPath *indexPath in indexPaths) { + PSTCollectionViewUpdateItem *updateItem = [[PSTCollectionViewUpdateItem alloc] initWithAction:updateAction forIndexPath:indexPath]; + [array addObject:updateItem]; + } + + if (!updating) [self endItemAnimations]; +} + + +- (void)updateSections:(NSIndexSet *)sections updateAction:(PSTCollectionUpdateAction)updateAction { + BOOL updating = _collectionViewFlags.updating; + if (!updating) [self setupCellAnimations]; + + NSMutableArray *updateActions = [self arrayForUpdateAction:updateAction]; + + [sections enumerateIndexesUsingBlock:^(NSUInteger section, BOOL *stop) { + PSTCollectionViewUpdateItem *updateItem = [[PSTCollectionViewUpdateItem alloc] initWithAction:updateAction forIndexPath:[NSIndexPath indexPathForItem:NSNotFound inSection:(NSInteger)section]]; + [updateActions addObject:updateItem]; + }]; + + if (!updating) [self endItemAnimations]; +} + +/////////////////////////////////////////////////////////////////////////////////////////// +#pragma mark - PSTCollection/UICollection interoperability + +#ifdef kPSUIInteroperabilityEnabled +#import +- (NSMethodSignature *)methodSignatureForSelector:(SEL)selector { + NSMethodSignature *sig = [super methodSignatureForSelector:selector]; + if(!sig) { + NSString *selString = NSStringFromSelector(selector); + if ([selString hasPrefix:@"_"]) { + SEL cleanedSelector = NSSelectorFromString([selString substringFromIndex:1]); + sig = [super methodSignatureForSelector:cleanedSelector]; + } + } + return sig; +} +- (void)forwardInvocation:(NSInvocation *)inv { + NSString *selString = NSStringFromSelector([inv selector]); + if ([selString hasPrefix:@"_"]) { + SEL cleanedSelector = NSSelectorFromString([selString substringFromIndex:1]); + if ([self respondsToSelector:cleanedSelector]) { + // dynamically add method for faster resolving + Method newMethod = class_getInstanceMethod(self.class, [inv selector]); + IMP underscoreIMP = imp_implementationWithBlock(^(id _self) { + return objc_msgSend(_self, cleanedSelector); + }); + class_addMethod(self.class, [inv selector], underscoreIMP, method_getTypeEncoding(newMethod)); + // invoke now + inv.selector = cleanedSelector; + [inv invokeWithTarget:self]; + } + }else { + [super forwardInvocation:inv]; + } +} +#endif + +@end + +/////////////////////////////////////////////////////////////////////////////////////////// +#pragma mark - Runtime Additions to create UICollectionView + +@implementation PSUICollectionView_ @end +@implementation PSUICollectionViewCell_ @end +@implementation PSUICollectionReusableView_ @end +@implementation PSUICollectionViewLayout_ @end +@implementation PSUICollectionViewFlowLayout_ @end +@implementation PSUICollectionViewLayoutAttributes_ @end +@implementation PSUICollectionViewController_ @end + +static void PSTRegisterClasses() { + NSDictionary *map = @{ + @"UICollectionView": PSUICollectionView_.class, + @"UICollectionViewCell": PSUICollectionViewCell_.class, + @"UICollectionReusableView": PSUICollectionReusableView_.class, + @"UICollectionViewLayout": PSUICollectionViewLayout_.class, + @"UICollectionViewFlowLayout": PSUICollectionViewFlowLayout_.class, + @"UICollectionViewLayoutAttributes": PSUICollectionViewLayoutAttributes_.class, + @"UICollectionViewController": PSUICollectionViewController_.class + }; + + // Ensure that superclass replacement is all-or-nothing for the PSUI*_ types. Either use exclusively + // UICollectionView*, or exclusively PSTCollectionView*. + __block BOOL canOverwrite = YES; + [map enumerateKeysAndObjectsUsingBlock:^(NSString* UIClassName, id PSTClass, BOOL *stop) { + Class UIClass = NSClassFromString(UIClassName); + if (UIClass) { + // Class size need to be the same for class_setSuperclass to work. + // If the UIKit class is smaller then our subclass, ivars won't clash, so there's no issue. + long sizeDifference = (long)class_getInstanceSize(UIClass) - class_getInstanceSize(PSTClass); + if (sizeDifference > 0) { + canOverwrite = NO; + NSLog(@"Warning! ivar size mismatch in %@ of %tu bytes - can't change the superclass.", PSTClass, sizeDifference); + } + } else { + canOverwrite = NO; + // We're most likely on iOS5, the requested UIKit class doesn't exist, so we create it dynamically. + if ((UIClass = objc_allocateClassPair(PSTClass, UIClassName.UTF8String, 0))) { + objc_registerClassPair(UIClass); + } + } + }]; + + if (canOverwrite) { + // All UICollectionView types were found and appropriately sized, so it is safe to replace the super-class. + [map enumerateKeysAndObjectsUsingBlock:^(NSString* UIClassName, id PSTClass, BOOL *stop) { + Class UIClass = NSClassFromString(UIClassName); +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" + // class_setSuperclass is deprecated, but still exists and works on iOS6/7. + class_setSuperclass(PSTClass, UIClass); +#pragma clang diagnostic pop + }]; + } +} + +// Create subclasses that pose as UICollectionView et al, if not available at runtime. +__attribute__((constructor)) static void PSTCreateUICollectionViewClasses(void) { + if (objc_getClass("PSTCollectionViewDisableForwardToUICollectionViewSentinel")) return; + + @autoreleasepool { + // Change superclass at runtime. This allows seamless switching from PST* to UI* at runtime. + PSTRegisterClasses(); + + // add PSUI classes at runtime to make Interface Builder sane + // (IB doesn't allow adding the PSUICollectionView_ types but doesn't complain on unknown classes) + // The class name may already be in use. This may happen if this code is running for the second time (first for an app bundle, then again for a unit test bundle). + Class c; + if ((c = objc_allocateClassPair(PSUICollectionView_.class, "PSUICollectionView", 0))) objc_registerClassPair(c); + if ((c = objc_allocateClassPair(PSUICollectionViewCell_.class, "PSUICollectionViewCell", 0))) objc_registerClassPair(c); + if ((c = objc_allocateClassPair(PSUICollectionReusableView_.class, "PSUICollectionReusableView", 0))) objc_registerClassPair(c); + if ((c = objc_allocateClassPair(PSUICollectionViewLayout_.class, "PSUICollectionViewLayout", 0))) objc_registerClassPair(c); + if ((c = objc_allocateClassPair(PSUICollectionViewFlowLayout_.class, "PSUICollectionViewFlowLayout", 0))) objc_registerClassPair(c); + if ((c = objc_allocateClassPair(PSUICollectionViewLayoutAttributes_.class, "PSUICollectionViewLayoutAttributes", 0)))objc_registerClassPair(c); + if ((c = objc_allocateClassPair(PSUICollectionViewController_.class, "PSUICollectionViewController", 0))) objc_registerClassPair(c); + } +} + +CGFloat PSTSimulatorAnimationDragCoefficient(void) { + static CGFloat (*UIAnimationDragCoefficient)(void) = NULL; +#if TARGET_IPHONE_SIMULATOR + static dispatch_once_t onceToken; + dispatch_once(&onceToken, ^{ + UIAnimationDragCoefficient = (CGFloat (*)(void))dlsym(RTLD_DEFAULT, "UIAnimationDragCoefficient"); + }); +#endif + return UIAnimationDragCoefficient ? UIAnimationDragCoefficient() : 1.f; +} + +// helper to check for ivar layout +#if 0 +static void PSTPrintIvarsForClass(Class aClass) { + unsigned int varCount; + Ivar *vars = class_copyIvarList(aClass, &varCount); + for (int i = 0; i < varCount; i++) { + NSLog(@"%s %s", ivar_getTypeEncoding(vars[i]), ivar_getName(vars[i])); + } + free(vars); +} + +__attribute__((constructor)) static void PSTCheckIfIVarLayoutIsEqualSize(void) { + @autoreleasepool { + NSLog(@"PSTCollectionView size = %zd, UICollectionView size = %zd", class_getInstanceSize(PSTCollectionView.class),class_getInstanceSize(UICollectionView.class)); + NSLog(@"PSTCollectionViewCell size = %zd, UICollectionViewCell size = %zd", class_getInstanceSize(PSTCollectionViewCell.class),class_getInstanceSize(UICollectionViewCell.class)); + NSLog(@"PSTCollectionViewController size = %zd, UICollectionViewController size = %zd", class_getInstanceSize(PSTCollectionViewController.class),class_getInstanceSize(UICollectionViewController.class)); + NSLog(@"PSTCollectionViewLayout size = %zd, UICollectionViewLayout size = %zd", class_getInstanceSize(PSTCollectionViewLayout.class),class_getInstanceSize(UICollectionViewLayout.class)); + NSLog(@"PSTCollectionViewFlowLayout size = %zd, UICollectionViewFlowLayout size = %zd", class_getInstanceSize(PSTCollectionViewFlowLayout.class),class_getInstanceSize(UICollectionViewFlowLayout.class)); + //PSTPrintIvarsForClass(PSTCollectionViewFlowLayout.class); NSLog(@"\n\n\n");PSTPrintIvarsForClass(UICollectionViewFlowLayout.class); + } +} +#endif diff --git a/Pods/PSTCollectionView/PSTCollectionView/PSTCollectionViewCell.h b/Pods/PSTCollectionView/PSTCollectionView/PSTCollectionViewCell.h new file mode 100644 index 0000000..ee71a7e --- /dev/null +++ b/Pods/PSTCollectionView/PSTCollectionView/PSTCollectionViewCell.h @@ -0,0 +1,49 @@ +// +// PSTCollectionViewCell.h +// PSPDFKit +// +// Copyright (c) 2012-2013 Peter Steinberger. All rights reserved. +// + +#import "PSTCollectionViewCommon.h" + +@class PSTCollectionViewLayout, PSTCollectionView, PSTCollectionViewLayoutAttributes; + +@interface PSTCollectionReusableView : UIView + +@property (nonatomic, readonly, copy) NSString *reuseIdentifier; + +// Override in subclasses. Called before instance is returned to the reuse queue. +- (void)prepareForReuse; + +// Apply layout attributes on cell. +- (void)applyLayoutAttributes:(PSTCollectionViewLayoutAttributes *)layoutAttributes; +- (void)willTransitionFromLayout:(PSTCollectionViewLayout *)oldLayout toLayout:(PSTCollectionViewLayout *)newLayout; +- (void)didTransitionFromLayout:(PSTCollectionViewLayout *)oldLayout toLayout:(PSTCollectionViewLayout *)newLayout; + +@end + +@interface PSTCollectionReusableView (Internal) +@property (nonatomic, unsafe_unretained) PSTCollectionView *collectionView; +@property (nonatomic, copy) NSString *reuseIdentifier; +@property (nonatomic, strong, readonly) PSTCollectionViewLayoutAttributes *layoutAttributes; +@end + + +@interface PSTCollectionViewCell : PSTCollectionReusableView + +@property (nonatomic, readonly) UIView *contentView; // add custom subviews to the cell's contentView + +// Cells become highlighted when the user touches them. +// The selected state is toggled when the user lifts up from a highlighted cell. +// Override these methods to provide custom UI for a selected or highlighted state. +// The collection view may call the setters inside an animation block. +@property (nonatomic, getter=isSelected) BOOL selected; +@property (nonatomic, getter=isHighlighted) BOOL highlighted; + +// The background view is a subview behind all other views. +// If selectedBackgroundView is different than backgroundView, it will be placed above the background view and animated in on selection. +@property (nonatomic, strong) UIView *backgroundView; +@property (nonatomic, strong) UIView *selectedBackgroundView; + +@end diff --git a/Pods/PSTCollectionView/PSTCollectionView/PSTCollectionViewCell.m b/Pods/PSTCollectionView/PSTCollectionView/PSTCollectionViewCell.m new file mode 100644 index 0000000..a81555e --- /dev/null +++ b/Pods/PSTCollectionView/PSTCollectionView/PSTCollectionViewCell.m @@ -0,0 +1,264 @@ +// +// PSTCollectionViewCell.m +// PSPDFKit +// +// Copyright (c) 2012-2013 Peter Steinberger. All rights reserved. +// + +#import "PSTCollectionView.h" + +@interface PSTCollectionReusableView () { + PSTCollectionViewLayoutAttributes *_layoutAttributes; + NSString *_reuseIdentifier; + __unsafe_unretained PSTCollectionView *_collectionView; + struct { + unsigned int inUpdateAnimation : 1; + }_reusableViewFlags; + char filler[50]; // [HACK] Our class needs to be larger than Apple's class for the superclass change to work. +} +@property (nonatomic, copy) NSString *reuseIdentifier; +@property (nonatomic, unsafe_unretained) PSTCollectionView *collectionView; +@property (nonatomic, strong) PSTCollectionViewLayoutAttributes *layoutAttributes; +@end + +@implementation PSTCollectionReusableView + +/////////////////////////////////////////////////////////////////////////////////////////// +#pragma mark - NSObject + +- (id)initWithFrame:(CGRect)frame { + if ((self = [super initWithFrame:frame])) { + } + return self; +} + +- (id)initWithCoder:(NSCoder *)aDecoder { + if ((self = [super initWithCoder:aDecoder])) { + self.reuseIdentifier = [aDecoder decodeObjectForKey:@"UIReuseIdentifier"]; + } + return self; +} + +- (void)awakeFromNib { + self.reuseIdentifier = [self valueForKeyPath:@"reuseIdentifier"]; +} + +/////////////////////////////////////////////////////////////////////////////////////////// +#pragma mark - Public + +- (void)prepareForReuse { + self.layoutAttributes = nil; +} + +- (void)applyLayoutAttributes:(PSTCollectionViewLayoutAttributes *)layoutAttributes { + if (layoutAttributes != _layoutAttributes) { + _layoutAttributes = layoutAttributes; + + self.bounds = (CGRect){.origin = self.bounds.origin, .size = layoutAttributes.size}; + self.center = layoutAttributes.center; + self.hidden = layoutAttributes.hidden; + self.layer.transform = layoutAttributes.transform3D; + self.layer.zPosition = layoutAttributes.zIndex; + self.layer.opacity = layoutAttributes.alpha; + } +} + +- (void)willTransitionFromLayout:(PSTCollectionViewLayout *)oldLayout toLayout:(PSTCollectionViewLayout *)newLayout { + _reusableViewFlags.inUpdateAnimation = YES; +} + +- (void)didTransitionFromLayout:(PSTCollectionViewLayout *)oldLayout toLayout:(PSTCollectionViewLayout *)newLayout { + _reusableViewFlags.inUpdateAnimation = NO; +} + +- (BOOL)isInUpdateAnimation { + return _reusableViewFlags.inUpdateAnimation; +} + +- (void)setInUpdateAnimation:(BOOL)inUpdateAnimation { + _reusableViewFlags.inUpdateAnimation = (unsigned int)inUpdateAnimation; +} + +@end + + +@implementation PSTCollectionViewCell { + UIView *_contentView; + UIView *_backgroundView; + UIView *_selectedBackgroundView; + UILongPressGestureRecognizer *_menuGesture; + id _selectionSegueTemplate; + id _highlightingSupport; + struct { + unsigned int selected : 1; + unsigned int highlighted : 1; + unsigned int showingMenu : 1; + unsigned int clearSelectionWhenMenuDisappears : 1; + unsigned int waitingForSelectionAnimationHalfwayPoint : 1; + }_collectionCellFlags; + BOOL _selected; + BOOL _highlighted; +} + +/////////////////////////////////////////////////////////////////////////////////////////// +#pragma mark - NSObject + +- (id)initWithFrame:(CGRect)frame { + if ((self = [super initWithFrame:frame])) { + _backgroundView = [[UIView alloc] initWithFrame:self.bounds]; + _backgroundView.autoresizingMask = UIViewAutoresizingFlexibleWidth|UIViewAutoresizingFlexibleHeight; + [self addSubview:_backgroundView]; + + _contentView = [[UIView alloc] initWithFrame:self.bounds]; + _contentView.autoresizingMask = UIViewAutoresizingFlexibleWidth|UIViewAutoresizingFlexibleHeight; + [self addSubview:_contentView]; + + _menuGesture = [[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(menuGesture:)]; + } + return self; +} + +- (id)initWithCoder:(NSCoder *)aDecoder { + if ((self = [super initWithCoder:aDecoder])) { + if (self.subviews.count > 0) { + _contentView = self.subviews[0]; + }else { + _contentView = [[UIView alloc] initWithFrame:self.bounds]; + _contentView.autoresizingMask = UIViewAutoresizingFlexibleWidth|UIViewAutoresizingFlexibleHeight; + [self addSubview:_contentView]; + } + + _backgroundView = [[UIView alloc] initWithFrame:self.bounds]; + _backgroundView.autoresizingMask = UIViewAutoresizingFlexibleWidth|UIViewAutoresizingFlexibleHeight; + [self insertSubview:_backgroundView belowSubview:_contentView]; + + _menuGesture = [[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(menuGesture:)]; + } + return self; +} + +/////////////////////////////////////////////////////////////////////////////////////////// +#pragma mark - Public + +- (void)prepareForReuse { + self.layoutAttributes = nil; + self.selected = NO; + self.highlighted = NO; + self.accessibilityTraits = UIAccessibilityTraitNone; +} + +// Selection highlights underlying contents +- (void)setSelected:(BOOL)selected { + _collectionCellFlags.selected = (unsigned int)selected; + self.accessibilityTraits = selected ? UIAccessibilityTraitSelected : UIAccessibilityTraitNone; + [self updateBackgroundView:selected]; +} + +// Cell highlighting only highlights the cell itself +- (void)setHighlighted:(BOOL)highlighted { + _collectionCellFlags.highlighted = (unsigned int)highlighted; + [self updateBackgroundView:highlighted]; +} + +- (void)updateBackgroundView:(BOOL)highlight { + _selectedBackgroundView.alpha = highlight ? 1.0f : 0.0f; + [self setHighlighted:highlight forViews:self.contentView.subviews]; +} + +- (void)setHighlighted:(BOOL)highlighted forViews:(id)subviews { + for (id view in subviews) { + // Ignore the events if view wants to + if (!((UIView *)view).isUserInteractionEnabled && + [view respondsToSelector:@selector(setHighlighted:)] && + ![view isKindOfClass:UIControl.class]) { + [view setHighlighted:highlighted]; + + [self setHighlighted:highlighted forViews:[view subviews]]; + } + } +} + +- (void)menuGesture:(UILongPressGestureRecognizer *)recognizer { + NSLog(@"Not yet implemented: %@", NSStringFromSelector(_cmd)); +} + +- (void)setBackgroundView:(UIView *)backgroundView { + if (_backgroundView != backgroundView) { + [_backgroundView removeFromSuperview]; + _backgroundView = backgroundView; + _backgroundView.frame = self.bounds; + _backgroundView.autoresizingMask = UIViewAutoresizingFlexibleHeight|UIViewAutoresizingFlexibleWidth; + [self insertSubview:_backgroundView atIndex:0]; + } +} + +- (void)setSelectedBackgroundView:(UIView *)selectedBackgroundView { + if (_selectedBackgroundView != selectedBackgroundView) { + [_selectedBackgroundView removeFromSuperview]; + _selectedBackgroundView = selectedBackgroundView; + _selectedBackgroundView.frame = self.bounds; + _selectedBackgroundView.autoresizingMask = UIViewAutoresizingFlexibleWidth|UIViewAutoresizingFlexibleHeight; + _selectedBackgroundView.alpha = self.selected ? 1.0f : 0.0f; + if (_backgroundView) { + [self insertSubview:_selectedBackgroundView aboveSubview:_backgroundView]; + } + else { + [self insertSubview:_selectedBackgroundView atIndex:0]; + } + } +} + +- (BOOL)isSelected { + return _collectionCellFlags.selected; +} + +- (BOOL)isHighlighted { + return _collectionCellFlags.highlighted; +} + +- (void)performSelectionSegue { + /* + Currently there's no "official" way to trigger a storyboard segue + using UIStoryboardSegueTemplate, so we're doing it in a semi-legal way. + */ + SEL selector = NSSelectorFromString([NSString stringWithFormat:@"per%@", @"form:"]); + if ([self->_selectionSegueTemplate respondsToSelector:selector]) { +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Warc-performSelector-leaks" + [self->_selectionSegueTemplate performSelector:selector withObject:self]; +#pragma clang diagnostic pop + } +} + +/////////////////////////////////////////////////////////////////////////////////////////// +#pragma mark - PSTCollection/UICollection interoperability + +#ifdef kPSUIInteroperabilityEnabled +#import +- (NSMethodSignature *)methodSignatureForSelector:(SEL)selector { + NSMethodSignature *sig = [super methodSignatureForSelector:selector]; + if(!sig) { + NSString *selString = NSStringFromSelector(selector); + if ([selString hasPrefix:@"_"]) { + SEL cleanedSelector = NSSelectorFromString([selString substringFromIndex:1]); + sig = [super methodSignatureForSelector:cleanedSelector]; + } + } + return sig; +} + +- (void)forwardInvocation:(NSInvocation *)inv { + NSString *selString = NSStringFromSelector([inv selector]); + if ([selString hasPrefix:@"_"]) { + SEL cleanedSelector = NSSelectorFromString([selString substringFromIndex:1]); + if ([self respondsToSelector:cleanedSelector]) { + inv.selector = cleanedSelector; + [inv invokeWithTarget:self]; + } + }else { + [super forwardInvocation:inv]; + } +} +#endif + +@end diff --git a/Pods/PSTCollectionView/PSTCollectionView/PSTCollectionViewCommon.h b/Pods/PSTCollectionView/PSTCollectionView/PSTCollectionViewCommon.h new file mode 100644 index 0000000..fcb0a3d --- /dev/null +++ b/Pods/PSTCollectionView/PSTCollectionView/PSTCollectionViewCommon.h @@ -0,0 +1,73 @@ +// +// PSTCollectionViewCommon.h +// PSPDFKit +// +// Copyright (c) 2012-2013 Peter Steinberger. All rights reserved. +// + +#import +#import + +// Mostly a debug feature, makes classes from UICollection* compatible with PSTCollection* +// (e.g. adding the "real" UICollectionViewFlowLayout to PSTCollectionView. +//#define kPSUIInteroperabilityEnabled + +@class PSTCollectionView, PSTCollectionViewCell, PSTCollectionReusableView; + +@protocol PSTCollectionViewDataSource +@required + +- (NSInteger)collectionView:(PSTCollectionView *)collectionView numberOfItemsInSection:(NSInteger)section; + +// The cell that is returned must be retrieved from a call to -dequeueReusableCellWithReuseIdentifier:forIndexPath: +- (PSTCollectionViewCell *)collectionView:(PSTCollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath; + +@optional + +- (NSInteger)numberOfSectionsInCollectionView:(PSTCollectionView *)collectionView; + +// The view that is returned must be retrieved from a call to -dequeueReusableSupplementaryViewOfKind:withReuseIdentifier:forIndexPath: +- (PSTCollectionReusableView *)collectionView:(PSTCollectionView *)collectionView viewForSupplementaryElementOfKind:(NSString *)kind atIndexPath:(NSIndexPath *)indexPath; + +@end + +@protocol PSTCollectionViewDelegate +@optional + +// Methods for notification of selection/deselection and highlight/unhighlight events. +// The sequence of calls leading to selection from a user touch is: +// +// (when the touch begins) +// 1. -collectionView:shouldHighlightItemAtIndexPath: +// 2. -collectionView:didHighlightItemAtIndexPath: +// +// (when the touch lifts) +// 3. -collectionView:shouldSelectItemAtIndexPath: or -collectionView:shouldDeselectItemAtIndexPath: +// 4. -collectionView:didSelectItemAtIndexPath: or -collectionView:didDeselectItemAtIndexPath: +// 5. -collectionView:didUnhighlightItemAtIndexPath: +- (BOOL)collectionView:(PSTCollectionView *)collectionView shouldHighlightItemAtIndexPath:(NSIndexPath *)indexPath; + +- (void)collectionView:(PSTCollectionView *)collectionView didHighlightItemAtIndexPath:(NSIndexPath *)indexPath; + +- (void)collectionView:(PSTCollectionView *)collectionView didUnhighlightItemAtIndexPath:(NSIndexPath *)indexPath; + +- (BOOL)collectionView:(PSTCollectionView *)collectionView shouldSelectItemAtIndexPath:(NSIndexPath *)indexPath; + +- (BOOL)collectionView:(PSTCollectionView *)collectionView shouldDeselectItemAtIndexPath:(NSIndexPath *)indexPath; // called when the user taps on an already-selected item in multi-select mode +- (void)collectionView:(PSTCollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath; + +- (void)collectionView:(PSTCollectionView *)collectionView didDeselectItemAtIndexPath:(NSIndexPath *)indexPath; + +- (void)collectionView:(PSTCollectionView *)collectionView didEndDisplayingCell:(PSTCollectionViewCell *)cell forItemAtIndexPath:(NSIndexPath *)indexPath; + +- (void)collectionView:(PSTCollectionView *)collectionView didEndDisplayingSupplementaryView:(PSTCollectionReusableView *)view forElementOfKind:(NSString *)elementKind atIndexPath:(NSIndexPath *)indexPath; + +// These methods provide support for copy/paste actions on cells. +// All three should be implemented if any are. +- (BOOL)collectionView:(PSTCollectionView *)collectionView shouldShowMenuForItemAtIndexPath:(NSIndexPath *)indexPath; + +- (BOOL)collectionView:(PSTCollectionView *)collectionView canPerformAction:(SEL)action forItemAtIndexPath:(NSIndexPath *)indexPath withSender:(id)sender; + +- (void)collectionView:(PSTCollectionView *)collectionView performAction:(SEL)action forItemAtIndexPath:(NSIndexPath *)indexPath withSender:(id)sender; + +@end diff --git a/Pods/PSTCollectionView/PSTCollectionView/PSTCollectionViewController.h b/Pods/PSTCollectionView/PSTCollectionView/PSTCollectionViewController.h new file mode 100644 index 0000000..1e9ca56 --- /dev/null +++ b/Pods/PSTCollectionView/PSTCollectionView/PSTCollectionViewController.h @@ -0,0 +1,24 @@ +// +// PSTCollectionViewController.h +// PSPDFKit +// +// Copyright (c) 2012-2013 Peter Steinberger. All rights reserved. +// + +#import "PSTCollectionViewCommon.h" + +@class PSTCollectionViewLayout, PSTCollectionViewController; + +// Simple controller-wrapper around PSTCollectionView. +@interface PSTCollectionViewController : UIViewController + +// Designated initializer. +- (id)initWithCollectionViewLayout:(PSTCollectionViewLayout *)layout; + +// Internally used collection view. If not set, created during loadView. +@property (nonatomic, strong) PSTCollectionView *collectionView; + +// Defaults to YES, and if YES, any selection is cleared in viewWillAppear: +@property (nonatomic, assign) BOOL clearsSelectionOnViewWillAppear; + +@end diff --git a/Pods/PSTCollectionView/PSTCollectionView/PSTCollectionViewController.m b/Pods/PSTCollectionView/PSTCollectionView/PSTCollectionViewController.m new file mode 100644 index 0000000..9000dc7 --- /dev/null +++ b/Pods/PSTCollectionView/PSTCollectionView/PSTCollectionViewController.m @@ -0,0 +1,145 @@ +// +// PSTCollectionViewController.m +// PSPDFKit +// +// Copyright (c) 2012-2013 Peter Steinberger. All rights reserved. +// + +#import "PSTCollectionViewController.h" +#import "PSTCollectionView.h" + +@interface PSTCollectionViewController () { + PSTCollectionViewLayout *_layout; + PSTCollectionView *_collectionView; + struct { + unsigned int clearsSelectionOnViewWillAppear : 1; + unsigned int appearsFirstTime : 1; // PST extension! + }_collectionViewControllerFlags; + char filler[100]; // [HACK] Our class needs to be larger than Apple's class for the superclass change to work. +} +@property (nonatomic, strong) PSTCollectionViewLayout *layout; +@end + +@implementation PSTCollectionViewController + +/////////////////////////////////////////////////////////////////////////////////////////// +#pragma mark - NSObject + +- (id)initWithCoder:(NSCoder *)coder { + self = [super initWithCoder:coder]; + if (self) { + self.layout = [PSTCollectionViewFlowLayout new]; + self.clearsSelectionOnViewWillAppear = YES; + _collectionViewControllerFlags.appearsFirstTime = YES; + } + return self; +} + +- (id)initWithCollectionViewLayout:(PSTCollectionViewLayout *)layout { + if ((self = [super init])) { + self.layout = layout; + self.clearsSelectionOnViewWillAppear = YES; + _collectionViewControllerFlags.appearsFirstTime = YES; + } + return self; +} + +/////////////////////////////////////////////////////////////////////////////////////////// +#pragma mark - UIViewController + +- (void)loadView { + [super loadView]; + + // if this is restored from IB, we don't have plain main view. + if ([self.view isKindOfClass:PSTCollectionView.class]) { + _collectionView = (PSTCollectionView *)self.view; + self.view = [[UIView alloc] initWithFrame:self.view.bounds]; + self.collectionView.autoresizingMask = UIViewAutoresizingFlexibleWidth|UIViewAutoresizingFlexibleHeight; + } + + if (_collectionView.delegate == nil) _collectionView.delegate = self; + if (_collectionView.dataSource == nil) _collectionView.dataSource = self; + + // only create the collection view if it is not already created (by IB) + if (!_collectionView) { + self.collectionView = [[PSTCollectionView alloc] initWithFrame:self.view.bounds collectionViewLayout:self.layout]; + self.collectionView.delegate = self; + self.collectionView.dataSource = self; + } +} + +- (void)viewDidLoad { + [super viewDidLoad]; + + // This seems like a hack, but is needed for real compatibility + // There can be implementations of loadView that don't call super and don't set the view, yet it works in UICollectionViewController. + if (!self.isViewLoaded) { + self.view = [[UIView alloc] initWithFrame:CGRectZero]; + } + + // Attach the view + if (self.view != self.collectionView) { + [self.view addSubview:self.collectionView]; + self.collectionView.frame = self.view.bounds; + self.collectionView.autoresizingMask = UIViewAutoresizingFlexibleWidth|UIViewAutoresizingFlexibleHeight; + } +} + +- (void)viewWillAppear:(BOOL)animated { + [super viewWillAppear:animated]; + + if (_collectionViewControllerFlags.appearsFirstTime) { + [_collectionView reloadData]; + _collectionViewControllerFlags.appearsFirstTime = NO; + } + + if (_collectionViewControllerFlags.clearsSelectionOnViewWillAppear) { + for (NSIndexPath *aIndexPath in [[_collectionView indexPathsForSelectedItems] copy]) { + [_collectionView deselectItemAtIndexPath:aIndexPath animated:animated]; + } + } +} + +/////////////////////////////////////////////////////////////////////////////////////////// +#pragma mark - Lazy load the collection view + +- (PSTCollectionView *)collectionView { + if (!_collectionView) { + _collectionView = [[PSTCollectionView alloc] initWithFrame:UIScreen.mainScreen.bounds collectionViewLayout:self.layout]; + _collectionView.delegate = self; + _collectionView.dataSource = self; + + // If the collection view isn't the main view, add it. + if (self.isViewLoaded && self.view != self.collectionView) { + [self.view addSubview:self.collectionView]; + self.collectionView.frame = self.view.bounds; + self.collectionView.autoresizingMask = UIViewAutoresizingFlexibleWidth|UIViewAutoresizingFlexibleHeight; + } + } + return _collectionView; +} + +/////////////////////////////////////////////////////////////////////////////////////////// +#pragma mark - Properties + +- (void)setClearsSelectionOnViewWillAppear:(BOOL)clearsSelectionOnViewWillAppear { + _collectionViewControllerFlags.clearsSelectionOnViewWillAppear = (unsigned int)clearsSelectionOnViewWillAppear; +} + +- (BOOL)clearsSelectionOnViewWillAppear { + return _collectionViewControllerFlags.clearsSelectionOnViewWillAppear; +} + +/////////////////////////////////////////////////////////////////////////////////////////// +#pragma mark - PSTCollectionViewDataSource + +- (NSInteger)collectionView:(PSTCollectionView *)collectionView numberOfItemsInSection:(NSInteger)section { + return 0; +} + +- (PSTCollectionViewCell *)collectionView:(PSTCollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath { + [self doesNotRecognizeSelector:_cmd]; + return nil; +} + +@end diff --git a/Pods/PSTCollectionView/PSTCollectionView/PSTCollectionViewData.h b/Pods/PSTCollectionView/PSTCollectionView/PSTCollectionViewData.h new file mode 100644 index 0000000..ef05d8c --- /dev/null +++ b/Pods/PSTCollectionView/PSTCollectionView/PSTCollectionViewData.h @@ -0,0 +1,75 @@ +// +// PSTCollectionViewData.h +// PSPDFKit +// +// Copyright (c) 2012-2013 Peter Steinberger. All rights reserved. +// + +#import "PSTCollectionViewCommon.h" + +@class PSTCollectionView, PSTCollectionViewLayout, PSTCollectionViewLayoutAttributes; + +// https://github.com/steipete/iOS6-Runtime-Headers/blob/master/UICollectionViewData.h +@interface PSTCollectionViewData : NSObject + +// Designated initializer. +- (id)initWithCollectionView:(PSTCollectionView *)collectionView layout:(PSTCollectionViewLayout *)layout; + +// Ensure data is valid. may fetches items from dataSource and layout. +- (void)validateLayoutInRect:(CGRect)rect; + +- (CGRect)rectForItemAtIndexPath:(NSIndexPath *)indexPath; + +/* + - (CGRect)rectForSupplementaryElementOfKind:(id)arg1 atIndexPath:(id)arg2; + - (CGRect)rectForDecorationElementOfKind:(id)arg1 atIndexPath:(id)arg2; + - (CGRect)rectForGlobalItemIndex:(int)arg1; +*/ + +// No fucking idea (yet) +- (NSUInteger)globalIndexForItemAtIndexPath:(NSIndexPath *)indexPath; + +- (NSIndexPath *)indexPathForItemAtGlobalIndex:(NSInteger)index; + +// Fetch layout attributes +- (NSArray *)layoutAttributesForElementsInRect:(CGRect)rect; + +/* +- (PSTCollectionViewLayoutAttributes *)layoutAttributesForItemAtIndexPath:(NSIndexPath *)indexPath; +- (PSTCollectionViewLayoutAttributes *)layoutAttributesForElementsInSection:(NSInteger)section; +- (PSTCollectionViewLayoutAttributes *)layoutAttributesForGlobalItemIndex:(NSInteger)index; +- (PSTCollectionViewLayoutAttributes *)layoutAttributesForDecorationViewOfKind:(id)arg1 atIndexPath:(NSIndexPath *)indexPath; +- (PSTCollectionViewLayoutAttributes *)layoutAttributesForSupplementaryElementOfKind:(id)arg1 atIndexPath:(NSIndexPath *)indexPath; + - (id)existingSupplementaryLayoutAttributesInSection:(int)arg1; +*/ + +// Make data to re-evaluate dataSources. +- (void)invalidate; + +// Access cached item data +- (NSInteger)numberOfItemsBeforeSection:(NSInteger)section; + +- (NSInteger)numberOfItemsInSection:(NSInteger)section; + +- (NSInteger)numberOfItems; + +- (NSInteger)numberOfSections; + +// Total size of the content. +- (CGRect)collectionViewContentRect; + +@property (readonly) BOOL layoutIsPrepared; + +/* + - (void)_setLayoutAttributes:(id)arg1 atGlobalItemIndex:(int)arg2; + - (void)_setupMutableIndexPath:(id*)arg1 forGlobalItemIndex:(int)arg2; + - (id)_screenPageForPoint:(struct CGPoint { float x1; float x2; })arg1; + - (void)_validateContentSize; + - (void)_validateItemCounts; + - (void)_updateItemCounts; + - (void)_loadEverything; + - (void)_prepareToLoadData; + - (void)invalidate:(BOOL)arg1; + */ + +@end diff --git a/Pods/PSTCollectionView/PSTCollectionView/PSTCollectionViewData.m b/Pods/PSTCollectionView/PSTCollectionView/PSTCollectionViewData.m new file mode 100644 index 0000000..2892e42 --- /dev/null +++ b/Pods/PSTCollectionView/PSTCollectionView/PSTCollectionViewData.m @@ -0,0 +1,235 @@ +// +// PSTCollectionViewData.m +// PSPDFKit +// +// Copyright (c) 2012-2013 Peter Steinberger. All rights reserved. +// + +#import "PSTCollectionViewData.h" +#import "PSTCollectionView.h" + +@interface PSTCollectionViewData () { + CGRect _validLayoutRect; + + NSInteger _numItems; + NSInteger _numSections; + NSInteger *_sectionItemCounts; +// id __strong* _globalItems; ///< _globalItems appears to be cached layoutAttributes. But adding that work in opens a can of worms, so deferring until later. + +/* + // At this point, I've no idea how _screenPageDict is structured. Looks like some optimization for layoutAttributesForElementsInRect. + And why UICGPointKey? Isn't that doable with NSValue? + + "" = "[number of indexes: 9 (in 1 ranges), indexes: (0-8)]"; + "" = "[number of indexes: 11 (in 2 ranges), indexes: (6-15 17)]"; + + (lldb) p (CGPoint)[[[[[collectionView valueForKey:@"_collectionViewData"] valueForKey:@"_screenPageDict"] allKeys] objectAtIndex:0] point] + (CGPoint) $11 = (x=15, y=159) + (lldb) p (CGPoint)[[[[[collectionView valueForKey:@"_collectionViewData"] valueForKey:@"_screenPageDict"] allKeys] objectAtIndex:1] point] + (CGPoint) $12 = (x=15, y=1128) + + // https://github.com/steipete/iOS6-Runtime-Headers/blob/master/UICGPointKey.h + + NSMutableDictionary *_screenPageDict; + */ + + // @steipete + + CGSize _contentSize; + struct { + unsigned int contentSizeIsValid:1; + unsigned int itemCountsAreValid:1; + unsigned int layoutIsPrepared:1; + }_collectionViewDataFlags; +} +@property (nonatomic, unsafe_unretained) PSTCollectionView *collectionView; +@property (nonatomic, unsafe_unretained) PSTCollectionViewLayout *layout; +@property (nonatomic, strong) NSArray *cachedLayoutAttributes; + +@end + +@implementation PSTCollectionViewData + +/////////////////////////////////////////////////////////////////////////////////////////// +#pragma mark - NSObject + +- (id)initWithCollectionView:(PSTCollectionView *)collectionView layout:(PSTCollectionViewLayout *)layout { + if ((self = [super init])) { + _collectionView = collectionView; + _layout = layout; + } + return self; +} + +- (void)dealloc { + free(_sectionItemCounts); +} + +- (NSString *)description { + return [NSString stringWithFormat:@"<%@: %p numItems:%ld numSections:%ld>", NSStringFromClass(self.class), self, (long)self.numberOfItems, (long)self.numberOfSections]; +} + +/////////////////////////////////////////////////////////////////////////////////////////// +#pragma mark - Public + +- (void)invalidate { + _collectionViewDataFlags.itemCountsAreValid = NO; + _collectionViewDataFlags.layoutIsPrepared = NO; + _validLayoutRect = CGRectNull; // don't set CGRectZero in case of _contentSize=CGSizeZero +} + +- (CGRect)collectionViewContentRect { + return (CGRect){.size=_contentSize}; +} + +- (void)validateLayoutInRect:(CGRect)rect { + [self validateItemCounts]; + [self prepareToLoadData]; + + // TODO: check if we need to fetch data from layout + if (!CGRectEqualToRect(_validLayoutRect, rect)) { + _validLayoutRect = rect; + // we only want cell layoutAttributes & supplementaryView layoutAttributes + self.cachedLayoutAttributes = [[self.layout layoutAttributesForElementsInRect:rect] filteredArrayUsingPredicate:[NSPredicate predicateWithBlock:^BOOL(PSTCollectionViewLayoutAttributes *evaluatedObject, NSDictionary *bindings) { + return ([evaluatedObject isKindOfClass:PSTCollectionViewLayoutAttributes.class] && + ([evaluatedObject isCell] || + [evaluatedObject isSupplementaryView] || + [evaluatedObject isDecorationView])); + }]]; + } +} + +- (NSInteger)numberOfItems { + [self validateItemCounts]; + return _numItems; +} + +- (NSInteger)numberOfItemsBeforeSection:(NSInteger)section { + [self validateItemCounts]; + + NSAssert(section < _numSections, @"request for number of items in section %ld when there are only %ld sections in the collection view", (long)section, (long)_numSections); + + NSInteger returnCount = 0; + for (int i = 0; i < section; i++) { + returnCount += _sectionItemCounts[i]; + } + + return returnCount; +} + +- (NSInteger)numberOfItemsInSection:(NSInteger)section { + [self validateItemCounts]; + if (section >= _numSections || section < 0) { + // In case of inconsistency returns the 'less harmful' amount of items. Throwing an exception here potentially + // causes exceptions when data is consistent. Deleting sections is one of the parts sensitive to this. + // All checks via assertions are done on CollectionView animation methods, specially 'endAnimations'. + return 0; + //@throw [NSException exceptionWithName:NSInvalidArgumentException reason:[NSString stringWithFormat:@"Section %d out of range: 0...%d", section, _numSections] userInfo:nil]; + } + + NSInteger numberOfItemsInSection = 0; + if (_sectionItemCounts) { + numberOfItemsInSection = _sectionItemCounts[section]; + } + return numberOfItemsInSection; +} + +- (NSInteger)numberOfSections { + [self validateItemCounts]; + return _numSections; +} + +- (CGRect)rectForItemAtIndexPath:(NSIndexPath *)indexPath { + return CGRectZero; +} + +- (NSIndexPath *)indexPathForItemAtGlobalIndex:(NSInteger)index { + [self validateItemCounts]; + + NSAssert(index < _numItems, @"request for index path for global index %ld when there are only %ld items in the collection view", (long)index, (long)_numItems); + + NSInteger section = 0; + NSInteger countItems = 0; + for (section = 0; section < _numSections; section++) { + NSInteger countIncludingThisSection = countItems + _sectionItemCounts[section]; + if (countIncludingThisSection > index) break; + countItems = countIncludingThisSection; + } + + NSInteger item = index - countItems; + + return [NSIndexPath indexPathForItem:item inSection:section]; +} + +- (NSUInteger)globalIndexForItemAtIndexPath:(NSIndexPath *)indexPath { + NSInteger offset = [self numberOfItemsBeforeSection:indexPath.section] + indexPath.item; + return (NSUInteger)offset; +} + +- (BOOL)layoutIsPrepared { + return _collectionViewDataFlags.layoutIsPrepared; +} + +- (void)setLayoutIsPrepared:(BOOL)layoutIsPrepared { + _collectionViewDataFlags.layoutIsPrepared = (unsigned int)layoutIsPrepared; +} + +/////////////////////////////////////////////////////////////////////////////////////////// +#pragma mark - Fetch Layout Attributes + +- (NSArray *)layoutAttributesForElementsInRect:(CGRect)rect { + [self validateLayoutInRect:rect]; + return self.cachedLayoutAttributes; +} + +/////////////////////////////////////////////////////////////////////////////////////////// +#pragma mark - Private + +// ensure item count is valid and loaded +- (void)validateItemCounts { + if (!_collectionViewDataFlags.itemCountsAreValid) { + [self updateItemCounts]; + } +} + +// query dataSource for new data +- (void)updateItemCounts { + // query how many sections there will be + _numSections = 1; + if ([self.collectionView.dataSource respondsToSelector:@selector(numberOfSectionsInCollectionView:)]) { + _numSections = [self.collectionView.dataSource numberOfSectionsInCollectionView:self.collectionView]; + } + if (_numSections <= 0) { // early bail-out + _numItems = 0; + free(_sectionItemCounts); + _sectionItemCounts = 0; + _collectionViewDataFlags.itemCountsAreValid = YES; + return; + } + // allocate space + if (!_sectionItemCounts) { + _sectionItemCounts = malloc((size_t)_numSections * sizeof(NSInteger)); + }else { + _sectionItemCounts = realloc(_sectionItemCounts, (size_t)_numSections * sizeof(NSInteger)); + } + + // query cells per section + _numItems = 0; + for (NSInteger i = 0; i < _numSections; i++) { + NSInteger cellCount = [self.collectionView.dataSource collectionView:self.collectionView numberOfItemsInSection:i]; + _sectionItemCounts[i] = cellCount; + _numItems += cellCount; + } + + _collectionViewDataFlags.itemCountsAreValid = YES; +} + +- (void)prepareToLoadData { + if (!self.layoutIsPrepared) { + [self.layout prepareLayout]; + _contentSize = self.layout.collectionViewContentSize; + self.layoutIsPrepared = YES; + } +} + +@end diff --git a/Pods/PSTCollectionView/PSTCollectionView/PSTCollectionViewFlowLayout.h b/Pods/PSTCollectionView/PSTCollectionView/PSTCollectionViewFlowLayout.h new file mode 100644 index 0000000..7dc971b --- /dev/null +++ b/Pods/PSTCollectionView/PSTCollectionView/PSTCollectionViewFlowLayout.h @@ -0,0 +1,115 @@ +// +// PSTCollectionViewFlowLayout.h +// PSPDFKit +// +// Copyright (c) 2012-2013 Peter Steinberger. All rights reserved. +// + +#import "PSTCollectionViewLayout.h" + +extern NSString *const PSTCollectionElementKindSectionHeader; +extern NSString *const PSTCollectionElementKindSectionFooter; + +typedef NS_ENUM(NSInteger, PSTCollectionViewScrollDirection) { + PSTCollectionViewScrollDirectionVertical, + PSTCollectionViewScrollDirectionHorizontal +}; + +@protocol PSTCollectionViewDelegateFlowLayout +@optional + +- (CGSize)collectionView:(PSTCollectionView *)collectionView layout:(PSTCollectionViewLayout*)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath; +- (UIEdgeInsets)collectionView:(PSTCollectionView *)collectionView layout:(PSTCollectionViewLayout*)collectionViewLayout insetForSectionAtIndex:(NSInteger)section; +- (CGFloat)collectionView:(PSTCollectionView *)collectionView layout:(PSTCollectionViewLayout*)collectionViewLayout minimumLineSpacingForSectionAtIndex:(NSInteger)section; +- (CGFloat)collectionView:(PSTCollectionView *)collectionView layout:(PSTCollectionViewLayout*)collectionViewLayout minimumInteritemSpacingForSectionAtIndex:(NSInteger)section; +- (CGSize)collectionView:(PSTCollectionView *)collectionView layout:(PSTCollectionViewLayout*)collectionViewLayout referenceSizeForHeaderInSection:(NSInteger)section; +- (CGSize)collectionView:(PSTCollectionView *)collectionView layout:(PSTCollectionViewLayout*)collectionViewLayout referenceSizeForFooterInSection:(NSInteger)section; + +@end + +@class PSTGridLayoutInfo; + +@interface PSTCollectionViewFlowLayout : PSTCollectionViewLayout + +@property (nonatomic) CGFloat minimumLineSpacing; +@property (nonatomic) CGFloat minimumInteritemSpacing; +@property (nonatomic) CGSize itemSize; // for the cases the delegate method is not implemented +@property (nonatomic) PSTCollectionViewScrollDirection scrollDirection; // default is PSTCollectionViewScrollDirectionVertical +@property (nonatomic) CGSize headerReferenceSize; +@property (nonatomic) CGSize footerReferenceSize; + +@property (nonatomic) UIEdgeInsets sectionInset; + +/* + Row alignment options exits in the official UICollectionView, but hasn't been made public API. + + Here's a snippet to test this on UICollectionView: + + NSMutableDictionary *rowAlign = [[flowLayout valueForKey:@"_rowAlignmentsOptionsDictionary"] mutableCopy]; + rowAlign[@"UIFlowLayoutCommonRowHorizontalAlignmentKey"] = @(1); + rowAlign[@"UIFlowLayoutLastRowHorizontalAlignmentKey"] = @(3); + [flowLayout setValue:rowAlign forKey:@"_rowAlignmentsOptionsDictionary"]; + */ +@property (nonatomic, strong) NSDictionary *rowAlignmentOptions; + +@end + +// @steipete addition, private API in UICollectionViewFlowLayout +extern NSString *const PSTFlowLayoutCommonRowHorizontalAlignmentKey; +extern NSString *const PSTFlowLayoutLastRowHorizontalAlignmentKey; +extern NSString *const PSTFlowLayoutRowVerticalAlignmentKey; + +typedef NS_ENUM(NSInteger, PSTFlowLayoutHorizontalAlignment) { + PSTFlowLayoutHorizontalAlignmentLeft, + PSTFlowLayoutHorizontalAlignmentCentered, + PSTFlowLayoutHorizontalAlignmentRight, + PSTFlowLayoutHorizontalAlignmentJustify // 3; default except for the last row +}; +// TODO: settings for UIFlowLayoutRowVerticalAlignmentKey + + +/* +@interface PSTCollectionViewFlowLayout (Private) + +- (CGSize)synchronizeLayout; + +// For items being inserted or deleted, the collection view calls some different methods, which you should override to provide the appropriate layout information. +- (PSTCollectionViewLayoutAttributes *)initialLayoutAttributesForFooterInInsertedSection:(NSInteger)section; +- (PSTCollectionViewLayoutAttributes *)initialLayoutAttributesForHeaderInInsertedSection:(NSInteger)section; +- (PSTCollectionViewLayoutAttributes *)initialLayoutAttributesForInsertedItemAtIndexPath:(NSIndexPath *)indexPath; +- (PSTCollectionViewLayoutAttributes *)finalLayoutAttributesForFooterInDeletedSection:(NSInteger)section; +- (PSTCollectionViewLayoutAttributes *)finalLayoutAttributesForHeaderInDeletedSection:(NSInteger)section; +- (PSTCollectionViewLayoutAttributes *)finalLayoutAttributesForDeletedItemAtIndexPath:(NSIndexPath *)indexPath; + +- (void)_updateItemsLayout; +- (void)_getSizingInfos; +- (void)_updateDelegateFlags; + +- (PSTCollectionViewLayoutAttributes *)layoutAttributesForFooterInSection:(NSInteger)section; +- (PSTCollectionViewLayoutAttributes *)layoutAttributesForHeaderInSection:(NSInteger)section; +- (PSTCollectionViewLayoutAttributes *)layoutAttributesForItemAtIndexPath:(NSIndexPath *)indexPath usingData:(id)data; +- (PSTCollectionViewLayoutAttributes *)layoutAttributesForFooterInSection:(NSInteger)section usingData:(id)data; +- (PSTCollectionViewLayoutAttributes *)layoutAttributesForHeaderInSection:(NSInteger)section usingData:(id)data; + +- (id)indexesForSectionFootersInRect:(CGRect)rect; +- (id)indexesForSectionHeadersInRect:(CGRect)rect; +- (id)indexPathsForItemsInRect:(CGRect)rect usingData:(id)arg2; +- (id)indexesForSectionFootersInRect:(CGRect)rect usingData:(id)arg2; +- (id)indexesForSectionHeadersInRect:(CGRect)arg1 usingData:(id)arg2; +- (CGRect)_frameForItemAtSection:(int)arg1 andRow:(int)arg2 usingData:(id)arg3; +- (CGRect)_frameForFooterInSection:(int)arg1 usingData:(id)arg2; +- (CGRect)_frameForHeaderInSection:(int)arg1 usingData:(id)arg2; +- (void)_invalidateLayout; +- (NSIndexPath *)indexPathForItemAtPoint:(CGPoint)arg1; +- (PSTCollectionViewLayoutAttributes *)_layoutAttributesForItemsInRect:(CGRect)arg1; +- (CGSize)collectionViewContentSize; +- (void)finalizeCollectionViewUpdates; +- (void)_invalidateButKeepDelegateInfo; +- (void)_invalidateButKeepAllInfo; +- (BOOL)shouldInvalidateLayoutForBoundsChange:(CGRect)arg1; +- (id)layoutAttributesForElementsInRect:(CGRect)arg1; +- (void)invalidateLayout; +- (id)layoutAttributesForItemAtIndexPath:(id)arg1; + +@end +*/ diff --git a/Pods/PSTCollectionView/PSTCollectionView/PSTCollectionViewFlowLayout.m b/Pods/PSTCollectionView/PSTCollectionView/PSTCollectionViewFlowLayout.m new file mode 100644 index 0000000..e34d002 --- /dev/null +++ b/Pods/PSTCollectionView/PSTCollectionView/PSTCollectionViewFlowLayout.m @@ -0,0 +1,420 @@ +// +// PSTCollectionViewFlowLayout.m +// PSPDFKit +// +// Copyright (c) 2012-2013 Peter Steinberger. All rights reserved. +// + +#import "PSTCollectionViewFlowLayout.h" +#import "PSTCollectionView.h" +#import "PSTGridLayoutItem.h" +#import "PSTGridLayoutInfo.h" +#import "PSTGridLayoutRow.h" +#import "PSTGridLayoutSection.h" +#import + +NSString *const PSTCollectionElementKindSectionHeader = @"UICollectionElementKindSectionHeader"; +NSString *const PSTCollectionElementKindSectionFooter = @"UICollectionElementKindSectionFooter"; + +// this is not exposed in UICollectionViewFlowLayout +NSString *const PSTFlowLayoutCommonRowHorizontalAlignmentKey = @"UIFlowLayoutCommonRowHorizontalAlignmentKey"; +NSString *const PSTFlowLayoutLastRowHorizontalAlignmentKey = @"UIFlowLayoutLastRowHorizontalAlignmentKey"; +NSString *const PSTFlowLayoutRowVerticalAlignmentKey = @"UIFlowLayoutRowVerticalAlignmentKey"; + +@implementation PSTCollectionViewFlowLayout { + // class needs to have same iVar layout as UICollectionViewLayout + struct { + unsigned int delegateSizeForItem : 1; + unsigned int delegateReferenceSizeForHeader : 1; + unsigned int delegateReferenceSizeForFooter : 1; + unsigned int delegateInsetForSection : 1; + unsigned int delegateInteritemSpacingForSection : 1; + unsigned int delegateLineSpacingForSection : 1; + unsigned int delegateAlignmentOptions : 1; + unsigned int keepDelegateInfoWhileInvalidating : 1; + unsigned int keepAllDataWhileInvalidating : 1; + unsigned int layoutDataIsValid : 1; + unsigned int delegateInfoIsValid : 1; + }_gridLayoutFlags; + CGFloat _interitemSpacing; + CGFloat _lineSpacing; + CGSize _itemSize; + CGSize _headerReferenceSize; + CGSize _footerReferenceSize; + UIEdgeInsets _sectionInset; + PSTGridLayoutInfo *_data; + CGSize _currentLayoutSize; + NSMutableDictionary *_insertedItemsAttributesDict; + NSMutableDictionary *_insertedSectionHeadersAttributesDict; + NSMutableDictionary *_insertedSectionFootersAttributesDict; + NSMutableDictionary *_deletedItemsAttributesDict; + NSMutableDictionary *_deletedSectionHeadersAttributesDict; + NSMutableDictionary *_deletedSectionFootersAttributesDict; + PSTCollectionViewScrollDirection _scrollDirection; + NSDictionary *_rowAlignmentsOptionsDictionary; + CGRect _visibleBounds; + char filler[200]; // [HACK] Our class needs to be larger than Apple's class for the superclass change to work. +} + +@synthesize rowAlignmentOptions = _rowAlignmentsOptionsDictionary; +@synthesize minimumLineSpacing = _lineSpacing; +@synthesize minimumInteritemSpacing = _interitemSpacing; + +/////////////////////////////////////////////////////////////////////////////////////////// +#pragma mark - NSObject + +- (void)commonInit { + _itemSize = CGSizeMake(50.f, 50.f); + _lineSpacing = 10.f; + _interitemSpacing = 10.f; + _sectionInset = UIEdgeInsetsZero; + _scrollDirection = PSTCollectionViewScrollDirectionVertical; + _headerReferenceSize = CGSizeZero; + _footerReferenceSize = CGSizeZero; +} + +- (id)init { + if ((self = [super init])) { + [self commonInit]; + + // set default values for row alignment. + _rowAlignmentsOptionsDictionary = @{ + PSTFlowLayoutCommonRowHorizontalAlignmentKey : @(PSTFlowLayoutHorizontalAlignmentJustify), + PSTFlowLayoutLastRowHorizontalAlignmentKey : @(PSTFlowLayoutHorizontalAlignmentJustify), + // TODO: those values are some enum. find out what that is. + PSTFlowLayoutRowVerticalAlignmentKey : @(1), + }; + } + return self; +} + +- (id)initWithCoder:(NSCoder *)decoder { + if ((self = [super initWithCoder:decoder])) { + [self commonInit]; + + // Some properties are not set if they're default (like minimumInteritemSpacing == 10) + if ([decoder containsValueForKey:@"UIItemSize"]) + self.itemSize = [decoder decodeCGSizeForKey:@"UIItemSize"]; + if ([decoder containsValueForKey:@"UIInteritemSpacing"]) + self.minimumInteritemSpacing = [decoder decodeFloatForKey:@"UIInteritemSpacing"]; + if ([decoder containsValueForKey:@"UILineSpacing"]) + self.minimumLineSpacing = [decoder decodeFloatForKey:@"UILineSpacing"]; + if ([decoder containsValueForKey:@"UIFooterReferenceSize"]) + self.footerReferenceSize = [decoder decodeCGSizeForKey:@"UIFooterReferenceSize"]; + if ([decoder containsValueForKey:@"UIHeaderReferenceSize"]) + self.headerReferenceSize = [decoder decodeCGSizeForKey:@"UIHeaderReferenceSize"]; + if ([decoder containsValueForKey:@"UISectionInset"]) + self.sectionInset = [decoder decodeUIEdgeInsetsForKey:@"UISectionInset"]; + if ([decoder containsValueForKey:@"UIScrollDirection"]) + self.scrollDirection = [decoder decodeIntegerForKey:@"UIScrollDirection"]; + } + return self; +} + +- (void)encodeWithCoder:(NSCoder *)coder { + [super encodeWithCoder:coder]; + [coder encodeCGSize:self.itemSize forKey:@"UIItemSize"]; + [coder encodeFloat:(float)self.minimumInteritemSpacing forKey:@"UIInteritemSpacing"]; + [coder encodeFloat:(float)self.minimumLineSpacing forKey:@"UILineSpacing"]; + [coder encodeCGSize:self.footerReferenceSize forKey:@"UIFooterReferenceSize"]; + [coder encodeCGSize:self.headerReferenceSize forKey:@"UIHeaderReferenceSize"]; + [coder encodeUIEdgeInsets:self.sectionInset forKey:@"UISectionInset"]; + [coder encodeInteger:self.scrollDirection forKey:@"UIScrollDirection"]; +} + +/////////////////////////////////////////////////////////////////////////////////////////// +#pragma mark - PSTCollectionViewLayout + +static char kPSTCachedItemRectsKey; + +- (NSArray *)layoutAttributesForElementsInRect:(CGRect)rect { + // Apple calls _layoutAttributesForItemsInRect + if (!_data) [self prepareLayout]; + + NSMutableArray *layoutAttributesArray = [NSMutableArray array]; + for (PSTGridLayoutSection *section in _data.sections) { + if (CGRectIntersectsRect(section.frame, rect)) { + + // if we have fixed size, calculate item frames only once. + // this also uses the default PSTFlowLayoutCommonRowHorizontalAlignmentKey alignment + // for the last row. (we want this effect!) + NSMutableDictionary *rectCache = objc_getAssociatedObject(self, &kPSTCachedItemRectsKey); + NSUInteger sectionIndex = [_data.sections indexOfObjectIdenticalTo:section]; + + CGRect normalizedHeaderFrame = section.headerFrame; + normalizedHeaderFrame.origin.x += section.frame.origin.x; + normalizedHeaderFrame.origin.y += section.frame.origin.y; + if (!CGRectIsEmpty(normalizedHeaderFrame) && CGRectIntersectsRect(normalizedHeaderFrame, rect)) { + PSTCollectionViewLayoutAttributes *layoutAttributes = [[self.class layoutAttributesClass] layoutAttributesForSupplementaryViewOfKind:PSTCollectionElementKindSectionHeader withIndexPath:[NSIndexPath indexPathForItem:0 inSection:(NSInteger)sectionIndex]]; + layoutAttributes.frame = normalizedHeaderFrame; + [layoutAttributesArray addObject:layoutAttributes]; + } + + NSArray *itemRects = rectCache[@(sectionIndex)]; + if (!itemRects && section.fixedItemSize && section.rows.count) { + itemRects = [(section.rows)[0] itemRects]; + if (itemRects) rectCache[@(sectionIndex)] = itemRects; + } + + for (PSTGridLayoutRow *row in section.rows) { + CGRect normalizedRowFrame = row.rowFrame; + + normalizedRowFrame.origin.x += section.frame.origin.x; + normalizedRowFrame.origin.y += section.frame.origin.y; + + if (CGRectIntersectsRect(normalizedRowFrame, rect)) { + // TODO be more fine-grained for items + + for (NSInteger itemIndex = 0; itemIndex < row.itemCount; itemIndex++) { + PSTCollectionViewLayoutAttributes *layoutAttributes; + NSUInteger sectionItemIndex; + CGRect itemFrame; + if (row.fixedItemSize) { + itemFrame = [itemRects[(NSUInteger)itemIndex] CGRectValue]; + sectionItemIndex = (NSUInteger)(row.index * section.itemsByRowCount + itemIndex); + }else { + PSTGridLayoutItem *item = row.items[(NSUInteger)itemIndex]; + sectionItemIndex = [section.items indexOfObjectIdenticalTo:item]; + itemFrame = item.itemFrame; + } + + CGRect normalisedItemFrame = CGRectMake(normalizedRowFrame.origin.x + itemFrame.origin.x, normalizedRowFrame.origin.y + itemFrame.origin.y, itemFrame.size.width, itemFrame.size.height); + + if (CGRectIntersectsRect(normalisedItemFrame, rect)) { + layoutAttributes = [[self.class layoutAttributesClass] layoutAttributesForCellWithIndexPath:[NSIndexPath indexPathForItem:(NSInteger)sectionItemIndex inSection:(NSInteger)sectionIndex]]; + layoutAttributes.frame = normalisedItemFrame; + [layoutAttributesArray addObject:layoutAttributes]; + } + } + } + } + + CGRect normalizedFooterFrame = section.footerFrame; + normalizedFooterFrame.origin.x += section.frame.origin.x; + normalizedFooterFrame.origin.y += section.frame.origin.y; + if (!CGRectIsEmpty(normalizedFooterFrame) && CGRectIntersectsRect(normalizedFooterFrame, rect)) { + PSTCollectionViewLayoutAttributes *layoutAttributes = [[self.class layoutAttributesClass] layoutAttributesForSupplementaryViewOfKind:PSTCollectionElementKindSectionFooter withIndexPath:[NSIndexPath indexPathForItem:0 inSection:(NSInteger)sectionIndex]]; + layoutAttributes.frame = normalizedFooterFrame; + [layoutAttributesArray addObject:layoutAttributes]; + } + } + } + return layoutAttributesArray; +} + +- (PSTCollectionViewLayoutAttributes *)layoutAttributesForItemAtIndexPath:(NSIndexPath *)indexPath { + if (!_data) [self prepareLayout]; + + PSTGridLayoutSection *section = _data.sections[(NSUInteger)indexPath.section]; + PSTGridLayoutRow *row = nil; + CGRect itemFrame = CGRectZero; + + if (section.fixedItemSize && section.itemsByRowCount > 0 && indexPath.item / section.itemsByRowCount < (NSInteger)section.rows.count) { + row = section.rows[(NSUInteger)(indexPath.item / section.itemsByRowCount)]; + NSUInteger itemIndex = (NSUInteger)(indexPath.item % section.itemsByRowCount); + NSArray *itemRects = [row itemRects]; + itemFrame = [itemRects[itemIndex] CGRectValue]; + }else if (indexPath.item < (NSInteger)section.items.count) { + PSTGridLayoutItem *item = section.items[(NSUInteger)indexPath.item]; + row = item.rowObject; + itemFrame = item.itemFrame; + } + + PSTCollectionViewLayoutAttributes *layoutAttributes = [[self.class layoutAttributesClass] layoutAttributesForCellWithIndexPath:indexPath]; + + // calculate item rect + CGRect normalizedRowFrame = row.rowFrame; + normalizedRowFrame.origin.x += section.frame.origin.x; + normalizedRowFrame.origin.y += section.frame.origin.y; + layoutAttributes.frame = CGRectMake(normalizedRowFrame.origin.x + itemFrame.origin.x, normalizedRowFrame.origin.y + itemFrame.origin.y, itemFrame.size.width, itemFrame.size.height); + + return layoutAttributes; +} + +- (PSTCollectionViewLayoutAttributes *)layoutAttributesForSupplementaryViewOfKind:(NSString *)kind atIndexPath:(NSIndexPath *)indexPath { + if (!_data) [self prepareLayout]; + + NSUInteger sectionIndex = (NSUInteger)indexPath.section; + PSTCollectionViewLayoutAttributes *layoutAttributes = nil; + + if (sectionIndex < _data.sections.count) { + PSTGridLayoutSection *section = _data.sections[sectionIndex]; + + CGRect normalizedFrame = CGRectZero; + if ([kind isEqualToString:PSTCollectionElementKindSectionHeader]) { + normalizedFrame = section.headerFrame; + } + else if ([kind isEqualToString:PSTCollectionElementKindSectionFooter]) { + normalizedFrame = section.footerFrame; + } + + if (!CGRectIsEmpty(normalizedFrame)) { + normalizedFrame.origin.x += section.frame.origin.x; + normalizedFrame.origin.y += section.frame.origin.y; + + layoutAttributes = [[self.class layoutAttributesClass] layoutAttributesForSupplementaryViewOfKind:kind withIndexPath:[NSIndexPath indexPathForItem:0 inSection:(NSInteger)sectionIndex]]; + layoutAttributes.frame = normalizedFrame; + } + } + return layoutAttributes; +} + +- (PSTCollectionViewLayoutAttributes *)layoutAttributesForDecorationViewWithReuseIdentifier:(NSString *)identifier atIndexPath:(NSIndexPath *)indexPath { + return nil; +} + +- (CGSize)collectionViewContentSize { + if (!_data) [self prepareLayout]; + + return _data.contentSize; +} + +- (void)setSectionInset:(UIEdgeInsets)sectionInset { + if (!UIEdgeInsetsEqualToEdgeInsets(sectionInset, _sectionInset)) { + _sectionInset = sectionInset; + [self invalidateLayout]; + } +} + +/////////////////////////////////////////////////////////////////////////////////////////// +#pragma mark - Invalidating the Layout + +- (void)invalidateLayout { + [super invalidateLayout]; + objc_setAssociatedObject(self, &kPSTCachedItemRectsKey, nil, OBJC_ASSOCIATION_RETAIN_NONATOMIC); + _data = nil; +} + +- (BOOL)shouldInvalidateLayoutForBoundsChange:(CGRect)newBounds { + // we need to recalculate on width changes + if ((_visibleBounds.size.width != newBounds.size.width && self.scrollDirection == PSTCollectionViewScrollDirectionVertical) || (_visibleBounds.size.height != newBounds.size.height && self.scrollDirection == PSTCollectionViewScrollDirectionHorizontal)) { + _visibleBounds = self.collectionView.bounds; + return YES; + } + return NO; +} + +// return a point at which to rest after scrolling - for layouts that want snap-to-point scrolling behavior +- (CGPoint)targetContentOffsetForProposedContentOffset:(CGPoint)proposedContentOffset withScrollingVelocity:(CGPoint)velocity { + return proposedContentOffset; +} + +- (void)prepareLayout { + // custom ivars + objc_setAssociatedObject(self, &kPSTCachedItemRectsKey, [NSMutableDictionary dictionary], OBJC_ASSOCIATION_RETAIN_NONATOMIC); + + _data = [PSTGridLayoutInfo new]; // clear old layout data + _data.horizontal = self.scrollDirection == PSTCollectionViewScrollDirectionHorizontal; + _visibleBounds = self.collectionView.bounds; + CGSize collectionViewSize = _visibleBounds.size; + _data.dimension = _data.horizontal ? collectionViewSize.height : collectionViewSize.width; + _data.rowAlignmentOptions = _rowAlignmentsOptionsDictionary; + [self fetchItemsInfo]; +} + +/////////////////////////////////////////////////////////////////////////////////////////// +#pragma mark - Private + +- (void)fetchItemsInfo { + [self getSizingInfos]; + [self updateItemsLayout]; +} + +// get size of all items (if delegate is implemented) +- (void)getSizingInfos { + NSAssert(_data.sections.count == 0, @"Grid layout is already populated?"); + + id flowDataSource = (id)self.collectionView.delegate; + + BOOL implementsSizeDelegate = [flowDataSource respondsToSelector:@selector(collectionView:layout:sizeForItemAtIndexPath:)]; + BOOL implementsHeaderReferenceDelegate = [flowDataSource respondsToSelector:@selector(collectionView:layout:referenceSizeForHeaderInSection:)]; + BOOL implementsFooterReferenceDelegate = [flowDataSource respondsToSelector:@selector(collectionView:layout:referenceSizeForFooterInSection:)]; + + NSInteger numberOfSections = [self.collectionView numberOfSections]; + for (NSInteger section = 0; section < numberOfSections; section++) { + PSTGridLayoutSection *layoutSection = [_data addSection]; + layoutSection.verticalInterstice = _data.horizontal ? self.minimumInteritemSpacing : self.minimumLineSpacing; + layoutSection.horizontalInterstice = !_data.horizontal ? self.minimumInteritemSpacing : self.minimumLineSpacing; + + if ([flowDataSource respondsToSelector:@selector(collectionView:layout:insetForSectionAtIndex:)]) { + layoutSection.sectionMargins = [flowDataSource collectionView:self.collectionView layout:self insetForSectionAtIndex:section]; + }else { + layoutSection.sectionMargins = self.sectionInset; + } + + if ([flowDataSource respondsToSelector:@selector(collectionView:layout:minimumLineSpacingForSectionAtIndex:)]) { + CGFloat minimumLineSpacing = [flowDataSource collectionView:self.collectionView layout:self minimumLineSpacingForSectionAtIndex:section]; + if (_data.horizontal) { + layoutSection.horizontalInterstice = minimumLineSpacing; + }else { + layoutSection.verticalInterstice = minimumLineSpacing; + } + } + + if ([flowDataSource respondsToSelector:@selector(collectionView:layout:minimumInteritemSpacingForSectionAtIndex:)]) { + CGFloat minimumInterimSpacing = [flowDataSource collectionView:self.collectionView layout:self minimumInteritemSpacingForSectionAtIndex:section]; + if (_data.horizontal) { + layoutSection.verticalInterstice = minimumInterimSpacing; + }else { + layoutSection.horizontalInterstice = minimumInterimSpacing; + } + } + + CGSize headerReferenceSize; + if (implementsHeaderReferenceDelegate) { + headerReferenceSize = [flowDataSource collectionView:self.collectionView layout:self referenceSizeForHeaderInSection:section]; + }else { + headerReferenceSize = self.headerReferenceSize; + } + layoutSection.headerDimension = _data.horizontal ? headerReferenceSize.width : headerReferenceSize.height; + + CGSize footerReferenceSize; + if (implementsFooterReferenceDelegate) { + footerReferenceSize = [flowDataSource collectionView:self.collectionView layout:self referenceSizeForFooterInSection:section]; + }else { + footerReferenceSize = self.footerReferenceSize; + } + layoutSection.footerDimension = _data.horizontal ? footerReferenceSize.width : footerReferenceSize.height; + + NSInteger numberOfItems = [self.collectionView numberOfItemsInSection:section]; + + // if delegate implements size delegate, query it for all items + if (implementsSizeDelegate) { + for (NSInteger item = 0; item < numberOfItems; item++) { + NSIndexPath *indexPath = [NSIndexPath indexPathForItem:item inSection:(NSInteger)section]; + CGSize itemSize = implementsSizeDelegate ? [flowDataSource collectionView:self.collectionView layout:self sizeForItemAtIndexPath:indexPath] : self.itemSize; + + PSTGridLayoutItem *layoutItem = [layoutSection addItem]; + layoutItem.itemFrame = (CGRect){.size=itemSize}; + } + // if not, go the fast path + }else { + layoutSection.fixedItemSize = YES; + layoutSection.itemSize = self.itemSize; + layoutSection.itemsCount = numberOfItems; + } + } +} + +- (void)updateItemsLayout { + CGSize contentSize = CGSizeZero; + for (PSTGridLayoutSection *section in _data.sections) { + [section computeLayout]; + + // update section offset to make frame absolute (section only calculates relative) + CGRect sectionFrame = section.frame; + if (_data.horizontal) { + sectionFrame.origin.x += contentSize.width; + contentSize.width += section.frame.size.width + section.frame.origin.x; + contentSize.height = MAX(contentSize.height, sectionFrame.size.height + section.frame.origin.y + section.sectionMargins.top + section.sectionMargins.bottom); + }else { + sectionFrame.origin.y += contentSize.height; + contentSize.height += sectionFrame.size.height + section.frame.origin.y; + contentSize.width = MAX(contentSize.width, sectionFrame.size.width + section.frame.origin.x + section.sectionMargins.left + section.sectionMargins.right); + } + section.frame = sectionFrame; + } + _data.contentSize = contentSize; +} + +@end diff --git a/Pods/PSTCollectionView/PSTCollectionView/PSTCollectionViewItemKey.h b/Pods/PSTCollectionView/PSTCollectionView/PSTCollectionViewItemKey.h new file mode 100644 index 0000000..ddc91aa --- /dev/null +++ b/Pods/PSTCollectionView/PSTCollectionView/PSTCollectionViewItemKey.h @@ -0,0 +1,28 @@ +// +// PSTCollectionViewItemKey.h +// PSPDFKit +// +// Copyright (c) 2012-2013 Peter Steinberger. All rights reserved. +// + +#import "PSTCollectionViewCommon.h" +#import "PSTCollectionViewLayout.h" + +extern NSString *const PSTCollectionElementKindCell; +extern NSString *const PSTCollectionElementKindDecorationView; +@class PSTCollectionViewLayoutAttributes; + +NSString *PSTCollectionViewItemTypeToString(PSTCollectionViewItemType type); // debug helper + +// Used in NSDictionaries +@interface PSTCollectionViewItemKey : NSObject + ++ (id)collectionItemKeyForLayoutAttributes:(PSTCollectionViewLayoutAttributes *)layoutAttributes; + ++ (id)collectionItemKeyForCellWithIndexPath:(NSIndexPath *)indexPath; + +@property (nonatomic, assign) PSTCollectionViewItemType type; +@property (nonatomic, strong) NSIndexPath *indexPath; +@property (nonatomic, strong) NSString *identifier; + +@end diff --git a/Pods/PSTCollectionView/PSTCollectionView/PSTCollectionViewItemKey.m b/Pods/PSTCollectionView/PSTCollectionView/PSTCollectionViewItemKey.m new file mode 100644 index 0000000..e9d69f4 --- /dev/null +++ b/Pods/PSTCollectionView/PSTCollectionView/PSTCollectionViewItemKey.m @@ -0,0 +1,77 @@ +// +// PSTCollectionViewItemKey.m +// PSPDFKit +// +// Copyright (c) 2012-2013 Peter Steinberger. All rights reserved. +// + +#import "PSTCollectionViewItemKey.h" + +NSString *const PSTCollectionElementKindCell = @"UICollectionElementKindCell"; + +@implementation PSTCollectionViewItemKey + +/////////////////////////////////////////////////////////////////////////////////////////// +#pragma mark - Static + ++ (id)collectionItemKeyForCellWithIndexPath:(NSIndexPath *)indexPath { + PSTCollectionViewItemKey *key = [self.class new]; + key.indexPath = indexPath; + key.type = PSTCollectionViewItemTypeCell; + key.identifier = PSTCollectionElementKindCell; + return key; +} + ++ (id)collectionItemKeyForLayoutAttributes:(PSTCollectionViewLayoutAttributes *)layoutAttributes { + PSTCollectionViewItemKey *key = [self.class new]; + key.indexPath = layoutAttributes.indexPath; + PSTCollectionViewItemType const itemType = layoutAttributes.representedElementCategory; + key.type = itemType; + key.identifier = layoutAttributes.representedElementKind; + return key; +} + +NSString *PSTCollectionViewItemTypeToString(PSTCollectionViewItemType type) { + switch (type) { + case PSTCollectionViewItemTypeCell: return @"Cell"; + case PSTCollectionViewItemTypeDecorationView: return @"Decoration"; + case PSTCollectionViewItemTypeSupplementaryView: return @"Supplementary"; + default: return @""; + } +} + +/////////////////////////////////////////////////////////////////////////////////////////// +#pragma mark - NSObject + +- (NSString *)description { + return [NSString stringWithFormat:@"<%@: %p Type = %@ Identifier=%@ IndexPath = %@>", NSStringFromClass(self.class), + self, PSTCollectionViewItemTypeToString(self.type), _identifier, self.indexPath]; +} + +- (NSUInteger)hash { + return (([_indexPath hash] + _type) * 31) + [_identifier hash]; +} + +- (BOOL)isEqual:(id)other { + if ([other isKindOfClass:self.class]) { + PSTCollectionViewItemKey *otherKeyItem = (PSTCollectionViewItemKey *)other; + // identifier might be nil? + if (_type == otherKeyItem.type && [_indexPath isEqual:otherKeyItem.indexPath] && ([_identifier isEqualToString:otherKeyItem.identifier] || _identifier == otherKeyItem.identifier)) { + return YES; + } + } + return NO; +} + +/////////////////////////////////////////////////////////////////////////////////////////// +#pragma mark - NSCopying + +- (id)copyWithZone:(NSZone *)zone { + PSTCollectionViewItemKey *itemKey = [self.class new]; + itemKey.indexPath = self.indexPath; + itemKey.type = self.type; + itemKey.identifier = self.identifier; + return itemKey; +} + +@end diff --git a/Pods/PSTCollectionView/PSTCollectionView/PSTCollectionViewLayout+Internals.h b/Pods/PSTCollectionView/PSTCollectionView/PSTCollectionViewLayout+Internals.h new file mode 100644 index 0000000..48f7746 --- /dev/null +++ b/Pods/PSTCollectionView/PSTCollectionView/PSTCollectionViewLayout+Internals.h @@ -0,0 +1,18 @@ +// +// PSTCollectionViewLayout+Internals.h +// FMPSTCollectionView +// +// Created by Scott Talbot on 27/02/13. +// Copyright (c) 2013 Scott Talbot. All rights reserved. +// + +#import "PSTCollectionViewLayout.h" + + +@interface PSTCollectionViewLayout (Internals) + +@property (nonatomic, copy, readonly) NSDictionary *decorationViewClassDict; +@property (nonatomic, copy, readonly) NSDictionary *decorationViewNibDict; +@property (nonatomic, copy, readonly) NSDictionary *decorationViewExternalObjectsTables; + +@end diff --git a/Pods/PSTCollectionView/PSTCollectionView/PSTCollectionViewLayout.h b/Pods/PSTCollectionView/PSTCollectionView/PSTCollectionViewLayout.h new file mode 100644 index 0000000..3f6f729 --- /dev/null +++ b/Pods/PSTCollectionView/PSTCollectionView/PSTCollectionViewLayout.h @@ -0,0 +1,128 @@ +// +// PSTCollectionViewLayout.h +// PSPDFKit +// +// Copyright (c) 2012-2013 Peter Steinberger. All rights reserved. +// + +#import "PSTCollectionViewCommon.h" +#import +#import + +typedef NS_ENUM(NSUInteger, PSTCollectionViewItemType) { + PSTCollectionViewItemTypeCell, + PSTCollectionViewItemTypeSupplementaryView, + PSTCollectionViewItemTypeDecorationView +}; + +// The PSTCollectionViewLayout class is provided as an abstract class for subclassing to define custom collection layouts. +// Defining a custom layout is an advanced operation intended for applications with complex needs. +@class PSTCollectionViewLayoutAttributes, PSTCollectionView; + +@interface PSTCollectionViewLayoutAttributes : NSObject + +@property (nonatomic) CGRect frame; +@property (nonatomic) CGPoint center; +@property (nonatomic) CGSize size; +@property (nonatomic) CATransform3D transform3D; +@property (nonatomic) CGFloat alpha; +@property (nonatomic) NSInteger zIndex; // default is 0 +@property (nonatomic, getter=isHidden) BOOL hidden; // As an optimization, PSTCollectionView might not create a view for items whose hidden attribute is YES +@property (nonatomic, strong) NSIndexPath *indexPath; + ++ (instancetype)layoutAttributesForCellWithIndexPath:(NSIndexPath *)indexPath; + ++ (instancetype)layoutAttributesForSupplementaryViewOfKind:(NSString *)elementKind withIndexPath:(NSIndexPath *)indexPath; + ++ (instancetype)layoutAttributesForDecorationViewOfKind:(NSString *)kind withIndexPath:(NSIndexPath *)indexPath; + +/* + + (id)layoutAttributesForDecorationViewOfKind:(id)arg1 withIndexPath:(id)arg2; + - (id)initialLayoutAttributesForInsertedDecorationElementOfKind:(id)arg1 atIndexPath:(id)arg2; + - (BOOL)_isEquivalentTo:(id)arg1; + */ +@end + +@interface PSTCollectionViewLayoutAttributes (Private) +@property (nonatomic, readonly) NSString *representedElementKind; +@property (nonatomic, readonly) PSTCollectionViewItemType representedElementCategory; + +- (BOOL)isDecorationView; + +- (BOOL)isSupplementaryView; + +- (BOOL)isCell; +@end + +@interface PSTCollectionViewLayout : NSObject + +// Methods in this class are meant to be overridden and will be called by its collection view to gather layout information. +// To get the truth on the current state of the collection view, call methods on PSTCollectionView rather than these. +@property (nonatomic, unsafe_unretained, readonly) PSTCollectionView *collectionView; + +// Call -invalidateLayout to indicate that the collection view needs to requery the layout information. +// Subclasses must always call super if they override. +- (void)invalidateLayout; + +/// @name Registering Decoration Views +- (void)registerClass:(Class)viewClass forDecorationViewOfKind:(NSString *)kind; + +- (void)registerNib:(UINib *)nib forDecorationViewOfKind:(NSString *)kind; + +@end + + +@interface PSTCollectionViewLayout (SubclassingHooks) + ++ (Class)layoutAttributesClass; // override this method to provide a custom class to be used when instantiating instances of PSTCollectionViewLayoutAttributes + +// The collection view calls -prepareLayout once at its first layout as the first message to the layout instance. +// The collection view calls -prepareLayout again after layout is invalidated and before requerying the layout information. +// Subclasses should always call super if they override. +- (void)prepareLayout; + +// PSTCollectionView calls these four methods to determine the layout information. +// Implement -layoutAttributesForElementsInRect: to return layout attributes for supplementary or decoration views, or to perform layout in an as-needed-on-screen fashion. +// Additionally, all layout subclasses should implement -layoutAttributesForItemAtIndexPath: to return layout attributes instances on demand for specific index paths. +// If the layout supports any supplementary or decoration view types, it should also implement the respective atIndexPath: methods for those types. +- (NSArray *)layoutAttributesForElementsInRect:(CGRect)rect; // return an array layout attributes instances for all the views in the given rect +- (PSTCollectionViewLayoutAttributes *)layoutAttributesForItemAtIndexPath:(NSIndexPath *)indexPath; + +- (PSTCollectionViewLayoutAttributes *)layoutAttributesForSupplementaryViewOfKind:(NSString *)kind atIndexPath:(NSIndexPath *)indexPath; + +- (PSTCollectionViewLayoutAttributes *)layoutAttributesForDecorationViewOfKind:(NSString *)kind atIndexPath:(NSIndexPath *)indexPath; + +- (BOOL)shouldInvalidateLayoutForBoundsChange:(CGRect)newBounds; // return YES to cause the collection view to requery the layout for geometry information +- (CGPoint)targetContentOffsetForProposedContentOffset:(CGPoint)proposedContentOffset withScrollingVelocity:(CGPoint)velocity; // return a point at which to rest after scrolling - for layouts that want snap-to-point scrolling behavior + +- (CGSize)collectionViewContentSize; // the collection view calls this to update its content size any time it queries new layout information - at least one of the width and height fields must match the respective field of the collection view's bounds + +@end + +@interface PSTCollectionViewLayout (UpdateSupportHooks) + +// This method is called when there is an update with deletes/inserts to the collection view. +// It will be called prior to calling the initial/final layout attribute methods below to give the layout an opportunity to do batch computations for the insertion and deletion layout attributes. +// The updateItems parameter is an array of PSTCollectionViewUpdateItem instances for each element that is moving to a new index path. +- (void)prepareForCollectionViewUpdates:(NSArray *)updateItems; + +// This method is called inside an animation block after all items have been laid out for a collection view update. +// Subclasses can use this opportunity to layout their 'layout-owned' decoration views in response to the update. +- (void)finalizeCollectionViewUpdates; + +// Collection view calls these methods to determine the starting layout for animating in newly inserted views, or the ending layout for animating out deleted views +- (PSTCollectionViewLayoutAttributes *)initialLayoutAttributesForAppearingItemAtIndexPath:(NSIndexPath *)itemIndexPath; + +- (PSTCollectionViewLayoutAttributes *)finalLayoutAttributesForDisappearingItemAtIndexPath:(NSIndexPath *)itemIndexPath; + +- (PSTCollectionViewLayoutAttributes *)initialLayoutAttributesForInsertedSupplementaryElementOfKind:(NSString *)elementKind atIndexPath:(NSIndexPath *)elementIndexPath; + +- (PSTCollectionViewLayoutAttributes *)finalLayoutAttributesForDeletedSupplementaryElementOfKind:(NSString *)elementKind atIndexPath:(NSIndexPath *)elementIndexPath; + +@end + +@interface PSTCollectionViewLayout (Private) +- (void)setCollectionViewBoundsSize:(CGSize)size; + +- (PSTCollectionReusableView *)decorationViewForCollectionView:(PSTCollectionView *)collectionView withReuseIdentifier:(NSString *)reuseIdentifier indexPath:(NSIndexPath *)indexPath; +@end diff --git a/Pods/PSTCollectionView/PSTCollectionView/PSTCollectionViewLayout.m b/Pods/PSTCollectionView/PSTCollectionView/PSTCollectionViewLayout.m new file mode 100644 index 0000000..7cb5ead --- /dev/null +++ b/Pods/PSTCollectionView/PSTCollectionView/PSTCollectionViewLayout.m @@ -0,0 +1,481 @@ +// +// PSTCollectionViewLayout.m +// PSPDFKit +// +// Copyright (c) 2012-2013 Peter Steinberger. All rights reserved. +// + +#import "PSTCollectionView.h" +#import "PSTCollectionViewItemKey.h" +#import "PSTCollectionViewData.h" + +#import + +@interface PSTCollectionView () +- (id)currentUpdate; +- (NSDictionary *)visibleViewsDict; +- (PSTCollectionViewData *)collectionViewData; +- (CGRect)visibleBoundRects; // visibleBounds is flagged as private API (wtf) +@end + +@interface PSTCollectionReusableView () +- (void)setIndexPath:(NSIndexPath *)indexPath; +@end + +@interface PSTCollectionViewUpdateItem () +- (BOOL)isSectionOperation; +@end + +@interface PSTCollectionViewLayoutAttributes () { + struct { + unsigned int isCellKind:1; + unsigned int isDecorationView:1; + unsigned int isHidden:1; + }_layoutFlags; + char filler[20]; // [HACK] Our class needs to be larger than Apple's class for the superclass change to work. +} +@property (nonatomic) PSTCollectionViewItemType elementCategory; +@property (nonatomic, copy) NSString *elementKind; +@end + +@interface PSTCollectionViewUpdateItem () +- (NSIndexPath *)indexPath; +@end + +@implementation PSTCollectionViewLayoutAttributes + +/////////////////////////////////////////////////////////////////////////////////////////// +#pragma mark - Static + ++ (instancetype)layoutAttributesForCellWithIndexPath:(NSIndexPath *)indexPath { + PSTCollectionViewLayoutAttributes *attributes = [self new]; + attributes.elementKind = PSTCollectionElementKindCell; + attributes.elementCategory = PSTCollectionViewItemTypeCell; + attributes.indexPath = indexPath; + return attributes; +} + ++ (instancetype)layoutAttributesForSupplementaryViewOfKind:(NSString *)elementKind withIndexPath:(NSIndexPath *)indexPath { + PSTCollectionViewLayoutAttributes *attributes = [self new]; + attributes.elementCategory = PSTCollectionViewItemTypeSupplementaryView; + attributes.elementKind = elementKind; + attributes.indexPath = indexPath; + return attributes; +} + ++ (instancetype)layoutAttributesForDecorationViewOfKind:(NSString *)elementKind withIndexPath:(NSIndexPath *)indexPath { + PSTCollectionViewLayoutAttributes *attributes = [self new]; + attributes.elementCategory = PSTCollectionViewItemTypeDecorationView; + attributes.elementKind = elementKind; + attributes.indexPath = indexPath; + return attributes; +} + +/////////////////////////////////////////////////////////////////////////////////////////// +#pragma mark - NSObject + +- (id)init { + if ((self = [super init])) { + _alpha = 1.f; + _transform3D = CATransform3DIdentity; + } + return self; +} + +- (NSUInteger)hash { + return ([_elementKind hash] * 31) + [_indexPath hash]; +} + +- (BOOL)isEqual:(id)other { + if ([other isKindOfClass:self.class]) { + PSTCollectionViewLayoutAttributes *otherLayoutAttributes = (PSTCollectionViewLayoutAttributes *)other; + if (_elementCategory == otherLayoutAttributes.elementCategory && [_elementKind isEqual:otherLayoutAttributes.elementKind] && [_indexPath isEqual:otherLayoutAttributes.indexPath]) { + return YES; + } + } + return NO; +} + +- (NSString *)description { + return [NSString stringWithFormat:@"<%@: %p frame:%@ indexPath:%@ elementKind:%@>", NSStringFromClass(self.class), self, NSStringFromCGRect(self.frame), self.indexPath, self.elementKind]; +} + +/////////////////////////////////////////////////////////////////////////////////////////// +#pragma mark - Public + +- (PSTCollectionViewItemType)representedElementCategory { + return _elementCategory; +} + +/////////////////////////////////////////////////////////////////////////////////////////// +#pragma mark - Private + +- (NSString *)representedElementKind { + return self.elementKind; +} + +- (BOOL)isDecorationView { + return self.representedElementCategory == PSTCollectionViewItemTypeDecorationView; +} + +- (BOOL)isSupplementaryView { + return self.representedElementCategory == PSTCollectionViewItemTypeSupplementaryView; +} + +- (BOOL)isCell { + return self.representedElementCategory == PSTCollectionViewItemTypeCell; +} + +- (void) updateFrame { + _frame = (CGRect){{_center.x - _size.width / 2, _center.y - _size.height / 2}, _size}; +} + +- (void)setSize:(CGSize)size { + _size = size; + [self updateFrame]; +} + +- (void)setCenter:(CGPoint)center { + _center = center; + [self updateFrame]; +} + +- (void)setFrame:(CGRect)frame { + _frame = frame; + _size = _frame.size; + _center = (CGPoint){CGRectGetMidX(_frame), CGRectGetMidY(_frame)}; +} + +/////////////////////////////////////////////////////////////////////////////////////////// +#pragma mark - NSCopying + +- (id)copyWithZone:(NSZone *)zone { + PSTCollectionViewLayoutAttributes *layoutAttributes = [self.class new]; + layoutAttributes.indexPath = self.indexPath; + layoutAttributes.elementKind = self.elementKind; + layoutAttributes.elementCategory = self.elementCategory; + layoutAttributes.frame = self.frame; + layoutAttributes.center = self.center; + layoutAttributes.size = self.size; + layoutAttributes.transform3D = self.transform3D; + layoutAttributes.alpha = self.alpha; + layoutAttributes.zIndex = self.zIndex; + layoutAttributes.hidden = self.isHidden; + return layoutAttributes; +} + +/////////////////////////////////////////////////////////////////////////////////////////// +#pragma mark - PSTCollection/UICollection interoperability + +- (NSMethodSignature *)methodSignatureForSelector:(SEL)selector { + NSMethodSignature *signature = [super methodSignatureForSelector:selector]; + if (!signature) { + NSString *selString = NSStringFromSelector(selector); + if ([selString hasPrefix:@"_"]) { + SEL cleanedSelector = NSSelectorFromString([selString substringFromIndex:1]); + signature = [super methodSignatureForSelector:cleanedSelector]; + } + } + return signature; +} + +- (void)forwardInvocation:(NSInvocation *)invocation { + NSString *selString = NSStringFromSelector([invocation selector]); + if ([selString hasPrefix:@"_"]) { + SEL cleanedSelector = NSSelectorFromString([selString substringFromIndex:1]); + if ([self respondsToSelector:cleanedSelector]) { + invocation.selector = cleanedSelector; + [invocation invokeWithTarget:self]; + } + }else { + [super forwardInvocation:invocation]; + } +} + +@end + + +@interface PSTCollectionViewLayout () { + __unsafe_unretained PSTCollectionView *_collectionView; + CGSize _collectionViewBoundsSize; + NSMutableDictionary *_initialAnimationLayoutAttributesDict; + NSMutableDictionary *_finalAnimationLayoutAttributesDict; + NSMutableIndexSet *_deletedSectionsSet; + NSMutableIndexSet *_insertedSectionsSet; + NSMutableDictionary *_decorationViewClassDict; + NSMutableDictionary *_decorationViewNibDict; + NSMutableDictionary *_decorationViewExternalObjectsTables; + char filler[200]; // [HACK] Our class needs to be larger than Apple's class for the superclass change to work. +} +@property (nonatomic, unsafe_unretained) PSTCollectionView *collectionView; +@property (nonatomic, copy, readonly) NSDictionary *decorationViewClassDict; +@property (nonatomic, copy, readonly) NSDictionary *decorationViewNibDict; +@property (nonatomic, copy, readonly) NSDictionary *decorationViewExternalObjectsTables; +@end + +@implementation PSTCollectionViewLayout +/////////////////////////////////////////////////////////////////////////////////////////// +#pragma mark - NSObject + +- (id)init { + if ((self = [super init])) { + _decorationViewClassDict = [NSMutableDictionary new]; + _decorationViewNibDict = [NSMutableDictionary new]; + _decorationViewExternalObjectsTables = [NSMutableDictionary new]; + _initialAnimationLayoutAttributesDict = [NSMutableDictionary new]; + _finalAnimationLayoutAttributesDict = [NSMutableDictionary new]; + _insertedSectionsSet = [NSMutableIndexSet new]; + _deletedSectionsSet = [NSMutableIndexSet new]; + } + return self; +} + +- (void)awakeFromNib { + [super awakeFromNib]; +} + +- (void)setCollectionView:(PSTCollectionView *)collectionView { + if (collectionView != _collectionView) { + _collectionView = collectionView; + } +} + +/////////////////////////////////////////////////////////////////////////////////////////// +#pragma mark - Invalidating the Layout + +- (void)invalidateLayout { + [[_collectionView collectionViewData] invalidate]; + [_collectionView setNeedsLayout]; +} + +- (BOOL)shouldInvalidateLayoutForBoundsChange:(CGRect)newBounds { + // not sure about his.. + if ((self.collectionView.bounds.size.width != newBounds.size.width) || (self.collectionView.bounds.size.height != newBounds.size.height)) { + return YES; + } + return NO; +} + +/////////////////////////////////////////////////////////////////////////////////////////// +#pragma mark - Providing Layout Attributes + ++ (Class)layoutAttributesClass { + return PSTCollectionViewLayoutAttributes.class; +} + +- (void)prepareLayout { +} + +- (NSArray *)layoutAttributesForElementsInRect:(CGRect)rect { + return nil; +} + +- (PSTCollectionViewLayoutAttributes *)layoutAttributesForItemAtIndexPath:(NSIndexPath *)indexPath { + return nil; +} + +- (PSTCollectionViewLayoutAttributes *)layoutAttributesForSupplementaryViewOfKind:(NSString *)kind atIndexPath:(NSIndexPath *)indexPath { + return nil; +} + +- (PSTCollectionViewLayoutAttributes *)layoutAttributesForDecorationViewOfKind:(NSString *)kind atIndexPath:(NSIndexPath *)indexPath { + return nil; +} + +// return a point at which to rest after scrolling - for layouts that want snap-to-point scrolling behavior +- (CGPoint)targetContentOffsetForProposedContentOffset:(CGPoint)proposedContentOffset withScrollingVelocity:(CGPoint)velocity { + return proposedContentOffset; +} + +- (CGSize)collectionViewContentSize { + return CGSizeZero; +} + +/////////////////////////////////////////////////////////////////////////////////////////// +#pragma mark - Responding to Collection View Updates + +- (void)prepareForCollectionViewUpdates:(NSArray *)updateItems { + NSDictionary *update = [_collectionView currentUpdate]; + + for (PSTCollectionReusableView *view in [[_collectionView visibleViewsDict] objectEnumerator]) { + PSTCollectionViewLayoutAttributes *attr = [view.layoutAttributes copy]; + if (attr) { + if (attr.isCell) { + NSUInteger index = [update[@"oldModel"] globalIndexForItemAtIndexPath:[attr indexPath]]; + if (index != NSNotFound) { + [attr setIndexPath:[attr indexPath]]; + } + } + _initialAnimationLayoutAttributesDict[[PSTCollectionViewItemKey collectionItemKeyForLayoutAttributes:attr]] = attr; + } + } + + PSTCollectionViewData *collectionViewData = [_collectionView collectionViewData]; + + CGRect bounds = [_collectionView visibleBoundRects]; + + for (PSTCollectionViewLayoutAttributes *attr in [collectionViewData layoutAttributesForElementsInRect:bounds]) { + if (attr.isCell) { + NSInteger index = (NSInteger)[collectionViewData globalIndexForItemAtIndexPath:attr.indexPath]; + + index = [update[@"newToOldIndexMap"][(NSUInteger)index] integerValue]; + if (index != NSNotFound) { + PSTCollectionViewLayoutAttributes *finalAttrs = [attr copy]; + [finalAttrs setIndexPath:[update[@"oldModel"] indexPathForItemAtGlobalIndex:index]]; + [finalAttrs setAlpha:0]; + _finalAnimationLayoutAttributesDict[[PSTCollectionViewItemKey collectionItemKeyForLayoutAttributes:finalAttrs]] = finalAttrs; + } + } + } + + for (PSTCollectionViewUpdateItem *updateItem in updateItems) { + PSTCollectionUpdateAction action = updateItem.updateAction; + + if ([updateItem isSectionOperation]) { + if (action == PSTCollectionUpdateActionReload) { + [_deletedSectionsSet addIndex:(NSUInteger)[[updateItem indexPathBeforeUpdate] section]]; + [_insertedSectionsSet addIndex:(NSUInteger)[updateItem indexPathAfterUpdate].section]; + } + else { + NSMutableIndexSet *indexSet = action == PSTCollectionUpdateActionInsert ? _insertedSectionsSet : _deletedSectionsSet; + [indexSet addIndex:(NSUInteger)[updateItem indexPath].section]; + } + } + else { + if (action == PSTCollectionUpdateActionDelete) { + PSTCollectionViewItemKey *key = [PSTCollectionViewItemKey collectionItemKeyForCellWithIndexPath: + [updateItem indexPathBeforeUpdate]]; + + PSTCollectionViewLayoutAttributes *attrs = [_finalAnimationLayoutAttributesDict[key] copy]; + + if (attrs) { + [attrs setAlpha:0]; + _finalAnimationLayoutAttributesDict[key] = attrs; + } + } + else if (action == PSTCollectionUpdateActionReload || action == PSTCollectionUpdateActionInsert) { + PSTCollectionViewItemKey *key = [PSTCollectionViewItemKey collectionItemKeyForCellWithIndexPath: + [updateItem indexPathAfterUpdate]]; + PSTCollectionViewLayoutAttributes *attrs = [_initialAnimationLayoutAttributesDict[key] copy]; + + if (attrs) { + [attrs setAlpha:0]; + _initialAnimationLayoutAttributesDict[key] = attrs; + } + } + } + } +} + +- (PSTCollectionViewLayoutAttributes *)initialLayoutAttributesForAppearingItemAtIndexPath:(NSIndexPath *)itemIndexPath { + PSTCollectionViewLayoutAttributes *attrs = _initialAnimationLayoutAttributesDict[[PSTCollectionViewItemKey collectionItemKeyForCellWithIndexPath:itemIndexPath]]; + + if ([_insertedSectionsSet containsIndex:(NSUInteger)[itemIndexPath section]]) { + attrs = [attrs copy]; + [attrs setAlpha:0]; + } + return attrs; +} + +- (PSTCollectionViewLayoutAttributes *)finalLayoutAttributesForDisappearingItemAtIndexPath:(NSIndexPath *)itemIndexPath { + PSTCollectionViewLayoutAttributes *attrs = _finalAnimationLayoutAttributesDict[[PSTCollectionViewItemKey collectionItemKeyForCellWithIndexPath:itemIndexPath]]; + + if ([_deletedSectionsSet containsIndex:(NSUInteger)[itemIndexPath section]]) { + attrs = [attrs copy]; + [attrs setAlpha:0]; + } + return attrs; + +} + +- (PSTCollectionViewLayoutAttributes *)initialLayoutAttributesForInsertedSupplementaryElementOfKind:(NSString *)elementKind atIndexPath:(NSIndexPath *)elementIndexPath { + PSTCollectionViewLayoutAttributes *attrs = _initialAnimationLayoutAttributesDict[[PSTCollectionViewItemKey collectionItemKeyForCellWithIndexPath:elementIndexPath]]; + + if ([_insertedSectionsSet containsIndex:(NSUInteger)[elementIndexPath section]]) { + attrs = [attrs copy]; + [attrs setAlpha:0]; + } + return attrs; + +} + +- (PSTCollectionViewLayoutAttributes *)finalLayoutAttributesForDeletedSupplementaryElementOfKind:(NSString *)elementKind atIndexPath:(NSIndexPath *)elementIndexPath { + return nil; +} + +- (void)finalizeCollectionViewUpdates { + [_initialAnimationLayoutAttributesDict removeAllObjects]; + [_finalAnimationLayoutAttributesDict removeAllObjects]; + [_deletedSectionsSet removeAllIndexes]; + [_insertedSectionsSet removeAllIndexes]; +} + +/////////////////////////////////////////////////////////////////////////////////////////// +#pragma mark - Registering Decoration Views + +- (void)registerClass:(Class)viewClass forDecorationViewOfKind:(NSString *)kind { + _decorationViewClassDict[kind] = viewClass; +} + +- (void)registerNib:(UINib *)nib forDecorationViewOfKind:(NSString *)kind { + _decorationViewNibDict[kind] = nib; +} + +/////////////////////////////////////////////////////////////////////////////////////////// +#pragma mark - Private + +- (void)setCollectionViewBoundsSize:(CGSize)size { + _collectionViewBoundsSize = size; +} + +/////////////////////////////////////////////////////////////////////////////////////////// +#pragma mark - NSCoding + +- (id)initWithCoder:(NSCoder *)coder { + if ((self = [self init])) { + } + return self; +} + +- (void)encodeWithCoder:(NSCoder *)coder {} + +/////////////////////////////////////////////////////////////////////////////////////////// +#pragma mark - PSTCollection/UICollection interoperability + +#ifdef kPSUIInteroperabilityEnabled +#import +#import +- (NSMethodSignature *)methodSignatureForSelector:(SEL)selector { + NSMethodSignature *sig = [super methodSignatureForSelector:selector]; + if(!sig) { + NSString *selString = NSStringFromSelector(selector); + if ([selString hasPrefix:@"_"]) { + SEL cleanedSelector = NSSelectorFromString([selString substringFromIndex:1]); + sig = [super methodSignatureForSelector:cleanedSelector]; + } + } + return sig; +} + +- (void)forwardInvocation:(NSInvocation *)inv { + NSString *selString = NSStringFromSelector([inv selector]); + if ([selString hasPrefix:@"_"]) { + SEL cleanedSelector = NSSelectorFromString([selString substringFromIndex:1]); + if ([self respondsToSelector:cleanedSelector]) { + // dynamically add method for faster resolving + Method newMethod = class_getInstanceMethod(self.class, [inv selector]); + IMP underscoreIMP = imp_implementationWithBlock(^(id _self) { + return objc_msgSend(_self, cleanedSelector); + }); + class_addMethod(self.class, [inv selector], underscoreIMP, method_getTypeEncoding(newMethod)); + // invoke now + inv.selector = cleanedSelector; + [inv invokeWithTarget:self]; + } + }else { + [super forwardInvocation:inv]; + } +} +#endif + +@end diff --git a/Pods/PSTCollectionView/PSTCollectionView/PSTCollectionViewUpdateItem.h b/Pods/PSTCollectionView/PSTCollectionView/PSTCollectionViewUpdateItem.h new file mode 100644 index 0000000..d74c7cf --- /dev/null +++ b/Pods/PSTCollectionView/PSTCollectionView/PSTCollectionViewUpdateItem.h @@ -0,0 +1,41 @@ +// +// PSTCollectionViewUpdateItem.h +// PSPDFKit +// +// Copyright (c) 2012-2013 Peter Steinberger. All rights reserved. +// Contributed by Sergey Gavrilyuk. +// + +#import + +typedef NS_ENUM(NSInteger, PSTCollectionUpdateAction) { + PSTCollectionUpdateActionInsert, + PSTCollectionUpdateActionDelete, + PSTCollectionUpdateActionReload, + PSTCollectionUpdateActionMove, + PSTCollectionUpdateActionNone +}; + +@interface PSTCollectionViewUpdateItem : NSObject + +@property (nonatomic, readonly, strong) NSIndexPath *indexPathBeforeUpdate; // nil for PSTCollectionUpdateActionInsert +@property (nonatomic, readonly, strong) NSIndexPath *indexPathAfterUpdate; // nil for PSTCollectionUpdateActionDelete +@property (nonatomic, readonly, assign) PSTCollectionUpdateAction updateAction; + + +- (id)initWithInitialIndexPath:(NSIndexPath *)arg1 + finalIndexPath:(NSIndexPath *)arg2 + updateAction:(PSTCollectionUpdateAction)arg3; + +- (id)initWithAction:(PSTCollectionUpdateAction)arg1 + forIndexPath:(NSIndexPath *)indexPath; + +- (id)initWithOldIndexPath:(NSIndexPath *)arg1 newIndexPath:(NSIndexPath *)arg2; + +- (PSTCollectionUpdateAction)updateAction; + +- (NSComparisonResult)compareIndexPaths:(PSTCollectionViewUpdateItem *)otherItem; + +- (NSComparisonResult)inverseCompareIndexPaths:(PSTCollectionViewUpdateItem *)otherItem; + +@end diff --git a/Pods/PSTCollectionView/PSTCollectionView/PSTCollectionViewUpdateItem.m b/Pods/PSTCollectionView/PSTCollectionView/PSTCollectionViewUpdateItem.m new file mode 100644 index 0000000..fe019db --- /dev/null +++ b/Pods/PSTCollectionView/PSTCollectionView/PSTCollectionViewUpdateItem.m @@ -0,0 +1,117 @@ +// +// PSTCollectionViewUpdateItem.m +// PSPDFKit +// +// Copyright (c) 2012-2013 Peter Steinberger. All rights reserved. +// Contributed by Sergey Gavrilyuk. +// + +#import "PSTCollectionViewUpdateItem.h" +#import "NSIndexPath+PSTCollectionViewAdditions.h" + +@interface PSTCollectionViewUpdateItem () { + NSIndexPath *_initialIndexPath; + NSIndexPath *_finalIndexPath; + PSTCollectionUpdateAction _updateAction; + id _gap; +} +@end + +@implementation PSTCollectionViewUpdateItem + +@synthesize updateAction = _updateAction; +@synthesize indexPathBeforeUpdate = _initialIndexPath; +@synthesize indexPathAfterUpdate = _finalIndexPath; + +- (id)initWithInitialIndexPath:(NSIndexPath *)initialIndexPath finalIndexPath:(NSIndexPath *)finalIndexPath updateAction:(PSTCollectionUpdateAction)updateAction { + if ((self = [super init])) { + _initialIndexPath = initialIndexPath; + _finalIndexPath = finalIndexPath; + _updateAction = updateAction; + } + return self; +} + +- (id)initWithAction:(PSTCollectionUpdateAction)updateAction forIndexPath:(NSIndexPath *)indexPath { + if (updateAction == PSTCollectionUpdateActionInsert) + return [self initWithInitialIndexPath:nil finalIndexPath:indexPath updateAction:updateAction]; + else if (updateAction == PSTCollectionUpdateActionDelete) + return [self initWithInitialIndexPath:indexPath finalIndexPath:nil updateAction:updateAction]; + else if (updateAction == PSTCollectionUpdateActionReload) + return [self initWithInitialIndexPath:indexPath finalIndexPath:indexPath updateAction:updateAction]; + + return nil; +} + +- (id)initWithOldIndexPath:(NSIndexPath *)oldIndexPath newIndexPath:(NSIndexPath *)newIndexPath { + return [self initWithInitialIndexPath:oldIndexPath finalIndexPath:newIndexPath updateAction:PSTCollectionUpdateActionMove]; +} + +- (NSString *)description { + NSString *action = nil; + switch (_updateAction) { + case PSTCollectionUpdateActionInsert: action = @"insert"; break; + case PSTCollectionUpdateActionDelete: action = @"delete"; break; + case PSTCollectionUpdateActionMove: action = @"move"; break; + case PSTCollectionUpdateActionReload: action = @"reload"; break; + default: break; + } + + return [NSString stringWithFormat:@"Index path before update (%@) index path after update (%@) action (%@).", _initialIndexPath, _finalIndexPath, action]; +} + +- (void)setNewIndexPath:(NSIndexPath *)indexPath { + _finalIndexPath = indexPath; +} + +- (void)setGap:(id)gap { + _gap = gap; +} + +- (BOOL)isSectionOperation { + return (_initialIndexPath.item == NSNotFound || _finalIndexPath.item == NSNotFound); +} + +- (NSIndexPath *)newIndexPath { + return _finalIndexPath; +} + +- (id)gap { + return _gap; +} + +- (PSTCollectionUpdateAction)action { + return _updateAction; +} + +- (id)indexPath { + //TODO: check this + return _initialIndexPath; +} + +- (NSComparisonResult)compareIndexPaths:(PSTCollectionViewUpdateItem *)otherItem { + NSComparisonResult result = NSOrderedSame; + NSIndexPath *selfIndexPath = nil; + NSIndexPath *otherIndexPath = nil; + + switch (_updateAction) { + case PSTCollectionUpdateActionInsert: + selfIndexPath = _finalIndexPath; + otherIndexPath = [otherItem newIndexPath]; + break; + case PSTCollectionUpdateActionDelete: + selfIndexPath = _initialIndexPath; + otherIndexPath = [otherItem indexPath]; + default: break; + } + + if (self.isSectionOperation) result = [@(selfIndexPath.section) compare:@(otherIndexPath.section)]; + else result = [selfIndexPath compare:otherIndexPath]; + return result; +} + +- (NSComparisonResult)inverseCompareIndexPaths:(PSTCollectionViewUpdateItem *)otherItem { + return (NSComparisonResult)([self compareIndexPaths:otherItem] * -1); +} + +@end diff --git a/Pods/PSTCollectionView/PSTCollectionView/PSTGridLayoutInfo.h b/Pods/PSTCollectionView/PSTCollectionView/PSTGridLayoutInfo.h new file mode 100644 index 0000000..c3f215f --- /dev/null +++ b/Pods/PSTCollectionView/PSTCollectionView/PSTGridLayoutInfo.h @@ -0,0 +1,43 @@ +// +// PSTGridLayoutInfo.h +// PSPDFKit +// +// Copyright (c) 2012-2013 Peter Steinberger. All rights reserved. +// + +#import + +@class PSTGridLayoutSection; + +/* + Every PSTCollectionViewLayout has a PSTGridLayoutInfo attached. + Is used extensively in PSTCollectionViewFlowLayout. + */ +@interface PSTGridLayoutInfo : NSObject + +@property (nonatomic, strong, readonly) NSArray *sections; +@property (nonatomic, strong) NSDictionary *rowAlignmentOptions; +@property (nonatomic, assign) BOOL usesFloatingHeaderFooter; + +// Vertical/horizontal dimension (depending on horizontal) +// Used to create row objects +@property (nonatomic, assign) CGFloat dimension; + +@property (nonatomic, assign) BOOL horizontal; +@property (nonatomic, assign) BOOL leftToRight; +@property (nonatomic, assign) CGSize contentSize; + +// Frame for specific PSTGridLayoutItem. +- (CGRect)frameForItemAtIndexPath:(NSIndexPath *)indexPath; + +// Add new section. Invalidates layout. +- (PSTGridLayoutSection *)addSection; + +// forces the layout to recompute on next access +// TODO; what's the parameter for? +- (void)invalidate:(BOOL)arg; + +// Make a copy of the current state. +- (PSTGridLayoutInfo *)snapshot; + +@end diff --git a/Pods/PSTCollectionView/PSTCollectionView/PSTGridLayoutInfo.m b/Pods/PSTCollectionView/PSTCollectionView/PSTGridLayoutInfo.m new file mode 100644 index 0000000..6ab1aeb --- /dev/null +++ b/Pods/PSTCollectionView/PSTCollectionView/PSTGridLayoutInfo.m @@ -0,0 +1,76 @@ +// +// PSTGridLayoutInfo.m +// PSPDFKit +// +// Copyright (c) 2012-2013 Peter Steinberger. All rights reserved. +// + +#import "PSTGridLayoutInfo.h" +#import "PSTGridLayoutSection.h" +#import "PSTGridLayoutItem.h" + +@interface PSTGridLayoutInfo () { + NSMutableArray *_sections; + CGRect _visibleBounds; + CGSize _layoutSize; + BOOL _isValid; +} +@property (nonatomic, strong) NSMutableArray *sections; +@end + +@implementation PSTGridLayoutInfo + +/////////////////////////////////////////////////////////////////////////////////////////// +#pragma mark - NSObject + +- (id)init { + if ((self = [super init])) { + _sections = [NSMutableArray new]; + } + return self; +} + +- (NSString *)description { + return [NSString stringWithFormat:@"<%@: %p dimension:%.1f horizontal:%d contentSize:%@ sections:%@>", NSStringFromClass(self.class), self, self.dimension, self.horizontal, NSStringFromCGSize(self.contentSize), self.sections]; +} + +/////////////////////////////////////////////////////////////////////////////////////////// +#pragma mark - Public + +- (PSTGridLayoutInfo *)snapshot { + PSTGridLayoutInfo *layoutInfo = [self.class new]; + layoutInfo.sections = self.sections; + layoutInfo.rowAlignmentOptions = self.rowAlignmentOptions; + layoutInfo.usesFloatingHeaderFooter = self.usesFloatingHeaderFooter; + layoutInfo.dimension = self.dimension; + layoutInfo.horizontal = self.horizontal; + layoutInfo.leftToRight = self.leftToRight; + layoutInfo.contentSize = self.contentSize; + return layoutInfo; +} + +- (CGRect)frameForItemAtIndexPath:(NSIndexPath *)indexPath { + PSTGridLayoutSection *section = self.sections[(NSUInteger)indexPath.section]; + CGRect itemFrame; + if (section.fixedItemSize) { + itemFrame = (CGRect){.size=section.itemSize}; + }else { + itemFrame = [section.items[(NSUInteger)indexPath.item] itemFrame]; + } + return itemFrame; +} + +- (id)addSection { + PSTGridLayoutSection *section = [PSTGridLayoutSection new]; + section.rowAlignmentOptions = self.rowAlignmentOptions; + section.layoutInfo = self; + [_sections addObject:section]; + [self invalidate:NO]; + return section; +} + +- (void)invalidate:(BOOL)arg { + _isValid = NO; +} + +@end diff --git a/Pods/PSTCollectionView/PSTCollectionView/PSTGridLayoutItem.h b/Pods/PSTCollectionView/PSTCollectionView/PSTGridLayoutItem.h new file mode 100644 index 0000000..380f1a9 --- /dev/null +++ b/Pods/PSTCollectionView/PSTCollectionView/PSTGridLayoutItem.h @@ -0,0 +1,19 @@ +// +// PSTGridLayoutItem.h +// PSPDFKit +// +// Copyright (c) 2012-2013 Peter Steinberger. All rights reserved. +// + +#import + +@class PSTGridLayoutSection, PSTGridLayoutRow; + +// Represents a single grid item; only created for non-uniform-sized grids. +@interface PSTGridLayoutItem : NSObject + +@property (nonatomic, unsafe_unretained) PSTGridLayoutSection *section; +@property (nonatomic, unsafe_unretained) PSTGridLayoutRow *rowObject; +@property (nonatomic, assign) CGRect itemFrame; + +@end diff --git a/Pods/PSTCollectionView/PSTCollectionView/PSTGridLayoutItem.m b/Pods/PSTCollectionView/PSTCollectionView/PSTGridLayoutItem.m new file mode 100644 index 0000000..69cb63b --- /dev/null +++ b/Pods/PSTCollectionView/PSTCollectionView/PSTGridLayoutItem.m @@ -0,0 +1,19 @@ +// +// PSTGridLayoutItem.m +// PSPDFKit +// +// Copyright (c) 2012-2013 Peter Steinberger. All rights reserved. +// + +#import "PSTGridLayoutItem.h" + +@implementation PSTGridLayoutItem + +/////////////////////////////////////////////////////////////////////////////////////////// +#pragma mark - NSObject + +- (NSString *)description { + return [NSString stringWithFormat:@"<%@: %p itemFrame:%@>", NSStringFromClass(self.class), self, NSStringFromCGRect(self.itemFrame)]; +} + +@end diff --git a/Pods/PSTCollectionView/PSTCollectionView/PSTGridLayoutRow.h b/Pods/PSTCollectionView/PSTCollectionView/PSTGridLayoutRow.h new file mode 100644 index 0000000..613db1e --- /dev/null +++ b/Pods/PSTCollectionView/PSTCollectionView/PSTGridLayoutRow.h @@ -0,0 +1,43 @@ +// +// PSTGridLayoutRow.h +// PSPDFKit +// +// Copyright (c) 2012-2013 Peter Steinberger. All rights reserved. +// + +#import + +@class PSTGridLayoutSection, PSTGridLayoutItem; + +@interface PSTGridLayoutRow : NSObject + +@property (nonatomic, unsafe_unretained) PSTGridLayoutSection *section; +@property (nonatomic, strong, readonly) NSArray *items; +@property (nonatomic, assign) CGSize rowSize; +@property (nonatomic, assign) CGRect rowFrame; +@property (nonatomic, assign) NSInteger index; +@property (nonatomic, assign) BOOL complete; +@property (nonatomic, assign) BOOL fixedItemSize; + +// @steipete addition for row-fastPath +@property (nonatomic, assign) NSInteger itemCount; + +//- (PSTGridLayoutRow *)copyFromSection:(PSTGridLayoutSection *)section; // ??? + +// Add new item to items array. +- (void)addItem:(PSTGridLayoutItem *)item; + +// Layout current row (if invalid) +- (void)layoutRow; + +// @steipete: Helper to save code in PSTCollectionViewFlowLayout. +// Returns the item rects when fixedItemSize is enabled. +- (NSArray *)itemRects; + +// Set current row frame invalid. +- (void)invalidate; + +// Copy a snapshot of the current row data +- (PSTGridLayoutRow *)snapshot; + +@end diff --git a/Pods/PSTCollectionView/PSTCollectionView/PSTGridLayoutRow.m b/Pods/PSTCollectionView/PSTCollectionView/PSTGridLayoutRow.m new file mode 100644 index 0000000..3d6ef65 --- /dev/null +++ b/Pods/PSTCollectionView/PSTCollectionView/PSTGridLayoutRow.m @@ -0,0 +1,193 @@ +// +// PSTGridLayoutRow.m +// PSPDFKit +// +// Copyright (c) 2012-2013 Peter Steinberger. All rights reserved. +// + +#import "PSTCollectionView.h" +#import "PSTGridLayoutRow.h" +#import "PSTGridLayoutSection.h" +#import "PSTGridLayoutItem.h" +#import "PSTGridLayoutInfo.h" + +@interface PSTGridLayoutRow () { + NSMutableArray *_items; + BOOL _isValid; + int _verticalAlignement; + int _horizontalAlignement; +} +@property (nonatomic, strong) NSArray *items; +@end + +@implementation PSTGridLayoutRow + +/////////////////////////////////////////////////////////////////////////////////////////// +#pragma mark - NSObject + +- (id)init { + if ((self = [super init])) { + _items = [NSMutableArray new]; + } + return self; +} + +- (NSString *)description { + return [NSString stringWithFormat:@"<%@: %p frame:%@ index:%ld items:%@>", NSStringFromClass(self.class), self, NSStringFromCGRect(self.rowFrame), (long)self.index, self.items]; +} + +/////////////////////////////////////////////////////////////////////////////////////////// +#pragma mark - Public + +- (void)invalidate { + _isValid = NO; + _rowSize = CGSizeZero; + _rowFrame = CGRectZero; +} + +- (NSArray *)itemRects { + return [self layoutRowAndGenerateRectArray:YES]; +} + +- (void)layoutRow { + [self layoutRowAndGenerateRectArray:NO]; +} + +- (NSArray *)layoutRowAndGenerateRectArray:(BOOL)generateRectArray { + NSMutableArray *rects = generateRectArray ? [NSMutableArray array] : nil; + if (!_isValid || generateRectArray) { + // properties for aligning + BOOL isHorizontal = self.section.layoutInfo.horizontal; + BOOL isLastRow = self.section.indexOfImcompleteRow == self.index; + PSTFlowLayoutHorizontalAlignment horizontalAlignment = [self.section.rowAlignmentOptions[isLastRow ? PSTFlowLayoutLastRowHorizontalAlignmentKey : PSTFlowLayoutCommonRowHorizontalAlignmentKey] integerValue]; + + // calculate space that's left over if we would align it from left to right. + CGFloat leftOverSpace = self.section.layoutInfo.dimension; + if (isHorizontal) { + leftOverSpace -= self.section.sectionMargins.top + self.section.sectionMargins.bottom; + }else { + leftOverSpace -= self.section.sectionMargins.left + self.section.sectionMargins.right; + } + + // calculate the space that we have left after counting all items. + // UICollectionView is smart and lays out items like they would have been placed on a full row + // So we need to calculate the "usedItemCount" with using the last item as a reference size. + // This allows us to correctly justify-place the items in the grid. + NSInteger usedItemCount = 0; + NSInteger itemIndex = 0; + CGFloat spacing = isHorizontal ? self.section.verticalInterstice : self.section.horizontalInterstice; + // the last row should justify as if it is filled with more (invisible) items so that the whole + // UICollectionView feels more like a grid than a random line of blocks + while (itemIndex < self.itemCount || isLastRow) { + CGFloat nextItemSize; + // first we need to find the size (width/height) of the next item to fit + if (!self.fixedItemSize) { + PSTGridLayoutItem *item = self.items[(NSUInteger)MIN(itemIndex, self.itemCount - 1)]; + nextItemSize = isHorizontal ? item.itemFrame.size.height : item.itemFrame.size.width; + }else { + nextItemSize = isHorizontal ? self.section.itemSize.height : self.section.itemSize.width; + } + + // the first item does not add a separator spacing, + // every one afterwards in the same row will need this spacing constant + if (itemIndex > 0) { + nextItemSize += spacing; + } + + // check to see if we can at least fit an item (+separator if necessary) + if (leftOverSpace < nextItemSize) { + break; + } + + // we need to maintain the leftover space after the maximum amount of items have + // occupied, so we know how to adjust equal spacing among all the items in a row + leftOverSpace -= nextItemSize; + + itemIndex++; + usedItemCount = itemIndex; + } + + // push everything to the right if right-aligning and divide in half for centered + // currently there is no public API supporting this behavior + CGPoint itemOffset = CGPointZero; + if (horizontalAlignment == PSTFlowLayoutHorizontalAlignmentRight) { + itemOffset.x += leftOverSpace; + }else if (horizontalAlignment == PSTFlowLayoutHorizontalAlignmentCentered || + (horizontalAlignment == PSTFlowLayoutHorizontalAlignmentJustify && usedItemCount == 1)) { + // Special case one item row to split leftover space in half + itemOffset.x += leftOverSpace / 2; + } + + // calculate the justified spacing among all items in a row if we are using + // the default PSTFlowLayoutHorizontalAlignmentJustify layout + CGFloat interSpacing = usedItemCount <= 1 ? 0 : leftOverSpace / (CGFloat)(usedItemCount - 1); + + // calculate row frame as union of all items + CGRect frame = CGRectZero; + CGRect itemFrame = (CGRect){.size=self.section.itemSize}; + for (itemIndex = 0; itemIndex < self.itemCount; itemIndex++) { + PSTGridLayoutItem *item = nil; + if (!self.fixedItemSize) { + item = self.items[(NSUInteger)itemIndex]; + itemFrame = [item itemFrame]; + } + // depending on horizontal/vertical for an item size (height/width), + // we add the minimum separator then an equally distributed spacing + // (since our default mode is justify) calculated from the total leftover + // space divided by the number of intervals + if (isHorizontal) { + itemFrame.origin.y = itemOffset.y; + itemOffset.y += itemFrame.size.height + self.section.verticalInterstice; + if (horizontalAlignment == PSTFlowLayoutHorizontalAlignmentJustify) { + itemOffset.y += interSpacing; + } + }else { + itemFrame.origin.x = itemOffset.x; + itemOffset.x += itemFrame.size.width + self.section.horizontalInterstice; + if (horizontalAlignment == PSTFlowLayoutHorizontalAlignmentJustify) { + itemOffset.x += interSpacing; + } + } + item.itemFrame = itemFrame; // might call nil; don't care + [rects addObject:[NSValue valueWithCGRect:itemFrame]]; + frame = CGRectUnion(frame, itemFrame); + } + _rowSize = frame.size; + // _rowFrame = frame; // set externally + _isValid = YES; + } + return rects; +} + +- (void)addItem:(PSTGridLayoutItem *)item { + [_items addObject:item]; + item.rowObject = self; + [self invalidate]; +} + +- (PSTGridLayoutRow *)snapshot { + PSTGridLayoutRow *snapshotRow = [self.class new]; + snapshotRow.section = self.section; + snapshotRow.items = self.items; + snapshotRow.rowSize = self.rowSize; + snapshotRow.rowFrame = self.rowFrame; + snapshotRow.index = self.index; + snapshotRow.complete = self.complete; + snapshotRow.fixedItemSize = self.fixedItemSize; + snapshotRow.itemCount = self.itemCount; + return snapshotRow; +} + +- (PSTGridLayoutRow *)copyFromSection:(PSTGridLayoutSection *)section { + return nil; // ??? +} + +- (NSInteger)itemCount { + if (self.fixedItemSize) { + return _itemCount; + }else { + return (NSInteger)self.items.count; + } +} + +@end diff --git a/Pods/PSTCollectionView/PSTCollectionView/PSTGridLayoutSection.h b/Pods/PSTCollectionView/PSTCollectionView/PSTGridLayoutSection.h new file mode 100644 index 0000000..225f370 --- /dev/null +++ b/Pods/PSTCollectionView/PSTCollectionView/PSTGridLayoutSection.h @@ -0,0 +1,64 @@ +// +// PSTGridLayoutSection.h +// PSPDFKit +// +// Copyright (c) 2012-2013 Peter Steinberger. All rights reserved. +// + +#import + +@class PSTGridLayoutInfo, PSTGridLayoutRow, PSTGridLayoutItem; + +@interface PSTGridLayoutSection : NSObject + +@property (nonatomic, strong, readonly) NSArray *items; +@property (nonatomic, strong, readonly) NSArray *rows; + +// fast path for equal-size items +@property (nonatomic, assign) BOOL fixedItemSize; +@property (nonatomic, assign) CGSize itemSize; +// depending on fixedItemSize, this either is a _ivar or queries items. +@property (nonatomic, assign) NSInteger itemsCount; + +@property (nonatomic, assign) CGFloat verticalInterstice; +@property (nonatomic, assign) CGFloat horizontalInterstice; +@property (nonatomic, assign) UIEdgeInsets sectionMargins; + +@property (nonatomic, assign) CGRect frame; +@property (nonatomic, assign) CGRect headerFrame; +@property (nonatomic, assign) CGRect footerFrame; +@property (nonatomic, assign) CGFloat headerDimension; +@property (nonatomic, assign) CGFloat footerDimension; +@property (nonatomic, unsafe_unretained) PSTGridLayoutInfo *layoutInfo; +@property (nonatomic, strong) NSDictionary *rowAlignmentOptions; + +@property (nonatomic, assign, readonly) CGFloat otherMargin; +@property (nonatomic, assign, readonly) CGFloat beginMargin; +@property (nonatomic, assign, readonly) CGFloat endMargin; +@property (nonatomic, assign, readonly) CGFloat actualGap; +@property (nonatomic, assign, readonly) CGFloat lastRowBeginMargin; +@property (nonatomic, assign, readonly) CGFloat lastRowEndMargin; +@property (nonatomic, assign, readonly) CGFloat lastRowActualGap; +@property (nonatomic, assign, readonly) BOOL lastRowIncomplete; +@property (nonatomic, assign, readonly) NSInteger itemsByRowCount; +@property (nonatomic, assign, readonly) NSInteger indexOfImcompleteRow; // typo as of iOS6B3 + +//- (PSTGridLayoutSection *)copyFromLayoutInfo:(PSTGridLayoutInfo *)layoutInfo; + +// Faster variant of invalidate/compute +- (void)recomputeFromIndex:(NSInteger)index; + +// Invalidate layout. Destroys rows. +- (void)invalidate; + +// Compute layout. Creates rows. +- (void)computeLayout; + +- (PSTGridLayoutItem *)addItem; + +- (PSTGridLayoutRow *)addRow; + +// Copy snapshot of current object +- (PSTGridLayoutSection *)snapshot; + +@end diff --git a/Pods/PSTCollectionView/PSTCollectionView/PSTGridLayoutSection.m b/Pods/PSTCollectionView/PSTCollectionView/PSTGridLayoutSection.m new file mode 100644 index 0000000..42bef96 --- /dev/null +++ b/Pods/PSTCollectionView/PSTCollectionView/PSTGridLayoutSection.m @@ -0,0 +1,210 @@ +// +// PSTGridLayoutSection.m +// PSPDFKit +// +// Copyright (c) 2012-2013 Peter Steinberger. All rights reserved. +// + +#import "PSTGridLayoutSection.h" +#import "PSTGridLayoutItem.h" +#import "PSTGridLayoutRow.h" +#import "PSTGridLayoutInfo.h" + +@interface PSTGridLayoutSection () { + NSMutableArray *_items; + NSMutableArray *_rows; + BOOL _isValid; +} +@property (nonatomic, strong) NSArray *items; +@property (nonatomic, strong) NSArray *rows; +@property (nonatomic, assign) CGFloat otherMargin; +@property (nonatomic, assign) CGFloat beginMargin; +@property (nonatomic, assign) CGFloat endMargin; +@property (nonatomic, assign) CGFloat actualGap; +@property (nonatomic, assign) CGFloat lastRowBeginMargin; +@property (nonatomic, assign) CGFloat lastRowEndMargin; +@property (nonatomic, assign) CGFloat lastRowActualGap; +@property (nonatomic, assign) BOOL lastRowIncomplete; +@property (nonatomic, assign) NSInteger itemsByRowCount; +@property (nonatomic, assign) NSInteger indexOfImcompleteRow; +@end + +@implementation PSTGridLayoutSection + +/////////////////////////////////////////////////////////////////////////////////////////// +#pragma mark - NSObject + +- (id)init { + if ((self = [super init])) { + _items = [NSMutableArray new]; + _rows = [NSMutableArray new]; + } + return self; +} + +- (NSString *)description { + return [NSString stringWithFormat:@"<%@: %p itemCount:%ld frame:%@ rows:%@>", NSStringFromClass(self.class), self, (long)self.itemsCount, NSStringFromCGRect(self.frame), self.rows]; +} + +/////////////////////////////////////////////////////////////////////////////////////////// +#pragma mark - Public + +- (void)invalidate { + _isValid = NO; + self.rows = [NSMutableArray array]; +} + +- (void)computeLayout { + if (!_isValid) { + NSAssert(self.rows.count == 0, @"No rows shall be at this point."); + + // iterate over all items, turning them into rows. + CGSize sectionSize = CGSizeZero; + NSInteger rowIndex = 0; + NSInteger itemIndex = 0; + NSInteger itemsByRowCount = 0; + CGFloat dimensionLeft = 0; + PSTGridLayoutRow *row = nil; + // get dimension and compensate for section margin + CGFloat headerFooterDimension = self.layoutInfo.dimension; + CGFloat dimension = headerFooterDimension; + + if (self.layoutInfo.horizontal) { + dimension -= self.sectionMargins.top + self.sectionMargins.bottom; + self.headerFrame = CGRectMake(sectionSize.width, 0, self.headerDimension, headerFooterDimension); + sectionSize.width += self.headerDimension + self.sectionMargins.left; + }else { + dimension -= self.sectionMargins.left + self.sectionMargins.right; + self.headerFrame = CGRectMake(0, sectionSize.height, headerFooterDimension, self.headerDimension); + sectionSize.height += self.headerDimension + self.sectionMargins.top; + } + + CGFloat spacing = self.layoutInfo.horizontal ? self.verticalInterstice : self.horizontalInterstice; + + do { + BOOL finishCycle = itemIndex >= self.itemsCount; + // TODO: fast path could even remove row creation and just calculate on the fly + PSTGridLayoutItem *item = nil; + if (!finishCycle) item = self.fixedItemSize ? nil : self.items[(NSUInteger)itemIndex]; + + CGSize itemSize = self.fixedItemSize ? self.itemSize : item.itemFrame.size; + CGFloat itemDimension = self.layoutInfo.horizontal ? itemSize.height : itemSize.width; + // first item of each row does not add spacing + if (itemsByRowCount > 0) itemDimension += spacing; + if (dimensionLeft < itemDimension || finishCycle) { + // finish current row + if (row) { + // compensate last row + self.itemsByRowCount = fmax(itemsByRowCount, self.itemsByRowCount); + row.itemCount = itemsByRowCount; + + // if current row is done but there are still items left, increase the incomplete row counter + if (!finishCycle) self.indexOfImcompleteRow = rowIndex; + + [row layoutRow]; + + if (self.layoutInfo.horizontal) { + row.rowFrame = CGRectMake(sectionSize.width, self.sectionMargins.top, row.rowSize.width, row.rowSize.height); + sectionSize.height = MAX(row.rowSize.height, sectionSize.height); + sectionSize.width += row.rowSize.width + (finishCycle ? 0 : self.horizontalInterstice); + }else { + row.rowFrame = CGRectMake(self.sectionMargins.left, sectionSize.height, row.rowSize.width, row.rowSize.height); + sectionSize.height += row.rowSize.height + (finishCycle ? 0 : self.verticalInterstice); + sectionSize.width = MAX(row.rowSize.width, sectionSize.width); + } + } + // add new rows until the section is fully laid out + if (!finishCycle) { + // create new row + row.complete = YES; // finish up current row + row = [self addRow]; + row.fixedItemSize = self.fixedItemSize; + row.index = rowIndex; + self.indexOfImcompleteRow = rowIndex; + rowIndex++; + // convert an item from previous row to current, remove spacing for first item + if (itemsByRowCount > 0) itemDimension -= spacing; + dimensionLeft = dimension - itemDimension; + itemsByRowCount = 0; + } + }else { + dimensionLeft -= itemDimension; + } + + // add item on slow path + if (item) [row addItem:item]; + + itemIndex++; + itemsByRowCount++; + } while (itemIndex <= self.itemsCount); // cycle once more to finish last row + + if (self.layoutInfo.horizontal) { + sectionSize.width += self.sectionMargins.right; + self.footerFrame = CGRectMake(sectionSize.width, 0, self.footerDimension, headerFooterDimension); + sectionSize.width += self.footerDimension; + }else { + sectionSize.height += self.sectionMargins.bottom; + self.footerFrame = CGRectMake(0, sectionSize.height, headerFooterDimension, self.footerDimension); + sectionSize.height += self.footerDimension; + } + + _frame = CGRectMake(0, 0, sectionSize.width, sectionSize.height); + _isValid = YES; + } +} + +- (void)recomputeFromIndex:(NSInteger)index { + // TODO: use index. + [self invalidate]; + [self computeLayout]; +} + +- (PSTGridLayoutItem *)addItem { + PSTGridLayoutItem *item = [PSTGridLayoutItem new]; + item.section = self; + [_items addObject:item]; + return item; +} + +- (PSTGridLayoutRow *)addRow { + PSTGridLayoutRow *row = [PSTGridLayoutRow new]; + row.section = self; + [_rows addObject:row]; + return row; +} + +- (PSTGridLayoutSection *)snapshot { + PSTGridLayoutSection *snapshotSection = [PSTGridLayoutSection new]; + snapshotSection.items = [self.items copy]; + snapshotSection.rows = [self.items copy]; + snapshotSection.verticalInterstice = self.verticalInterstice; + snapshotSection.horizontalInterstice = self.horizontalInterstice; + snapshotSection.sectionMargins = self.sectionMargins; + snapshotSection.frame = self.frame; + snapshotSection.headerFrame = self.headerFrame; + snapshotSection.footerFrame = self.footerFrame; + snapshotSection.headerDimension = self.headerDimension; + snapshotSection.footerDimension = self.footerDimension; + snapshotSection.layoutInfo = self.layoutInfo; + snapshotSection.rowAlignmentOptions = self.rowAlignmentOptions; + snapshotSection.fixedItemSize = self.fixedItemSize; + snapshotSection.itemSize = self.itemSize; + snapshotSection.itemsCount = self.itemsCount; + snapshotSection.otherMargin = self.otherMargin; + snapshotSection.beginMargin = self.beginMargin; + snapshotSection.endMargin = self.endMargin; + snapshotSection.actualGap = self.actualGap; + snapshotSection.lastRowBeginMargin = self.lastRowBeginMargin; + snapshotSection.lastRowEndMargin = self.lastRowEndMargin; + snapshotSection.lastRowActualGap = self.lastRowActualGap; + snapshotSection.lastRowIncomplete = self.lastRowIncomplete; + snapshotSection.itemsByRowCount = self.itemsByRowCount; + snapshotSection.indexOfImcompleteRow = self.indexOfImcompleteRow; + return snapshotSection; +} + +- (NSInteger)itemsCount { + return self.fixedItemSize ? _itemsCount : (NSInteger)self.items.count; +} + +@end diff --git a/Pods/Pods.xcodeproj/project.pbxproj b/Pods/Pods.xcodeproj/project.pbxproj index ea9273b..6b2cc1c 100644 --- a/Pods/Pods.xcodeproj/project.pbxproj +++ b/Pods/Pods.xcodeproj/project.pbxproj @@ -7,2256 +7,2553 @@ objects = { /* Begin PBXBuildFile section */ - 013467F6755569661F39AF4B /* DTObjectTextAttachment.h in Headers */ = {isa = PBXBuildFile; fileRef = 3670C7769C590549B0C44E1D /* DTObjectTextAttachment.h */; }; - 02FDDB835C27EF636DAB16C8 /* NSData+ImageContentType.m in Sources */ = {isa = PBXBuildFile; fileRef = 4207141FCF781427DE11D23B /* NSData+ImageContentType.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 03602DA16768AA2E4F44EF9F /* NSURL+DTUnshorten.m in Sources */ = {isa = PBXBuildFile; fileRef = DF93B9175E450858873DDAA6 /* NSURL+DTUnshorten.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 07DC747AB89E367CCFD890C2 /* DTVersion.m in Sources */ = {isa = PBXBuildFile; fileRef = 5B6AF433338EC4AC033A9181 /* DTVersion.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 07E1C1882ADC1CE2FA6B0F55 /* MJRefreshConst.m in Sources */ = {isa = PBXBuildFile; fileRef = 88996DCFB9C20647C811521A /* MJRefreshConst.m */; }; - 08B673B94982357C5B554C17 /* Pods-AFNetworking-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 6C0F24BC2B49183DD4CDCD44 /* Pods-AFNetworking-dummy.m */; }; - 09D5C7B9E5669FC9852799A0 /* NSAttributedString+HTML.m in Sources */ = {isa = PBXBuildFile; fileRef = FEC31545FD989A646944ADE6 /* NSAttributedString+HTML.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 09F24AED39819E1AABBE030D /* DTCSSStylesheet.h in Headers */ = {isa = PBXBuildFile; fileRef = 3696ED74324B48504AA37EDC /* DTCSSStylesheet.h */; }; - 0A67893342424A28B89B671F /* SBJson4StreamWriter.h in Headers */ = {isa = PBXBuildFile; fileRef = ACDC97D0468852D958D8D8E8 /* SBJson4StreamWriter.h */; }; - 0AC8372303BEDD826B295C92 /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 773442E765A1C63F2FE4C7A7 /* CoreGraphics.framework */; }; - 0D2FE5AF1FEFA62248A77602 /* MJRefreshLegendFooter.m in Sources */ = {isa = PBXBuildFile; fileRef = EB1FFA98D7F41E49D4A1FC80 /* MJRefreshLegendFooter.m */; }; - 0D7CE15921BEF9485FFB70EC /* DTWeakSupport.h in Headers */ = {isa = PBXBuildFile; fileRef = D086CB92C6BD593F773E96CE /* DTWeakSupport.h */; }; - 0EED913B03DF39227F72F553 /* NSDictionary+DTCoreText.h in Headers */ = {isa = PBXBuildFile; fileRef = DB9901403DB337D702874EE5 /* NSDictionary+DTCoreText.h */; }; - 0F853548CDF9FB2256F7E61D /* DTCoreTextLayoutFrame+Cursor.h in Headers */ = {isa = PBXBuildFile; fileRef = 836D171FF07483A75E6861A1 /* DTCoreTextLayoutFrame+Cursor.h */; }; - 10013362018CA4989D580A81 /* DTAnimatedGIF.m in Sources */ = {isa = PBXBuildFile; fileRef = 756716097FFEF7DF57ABDADA /* DTAnimatedGIF.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 1081B1832D78FB4CF7BF72F6 /* DTExtendedFileAttributes.m in Sources */ = {isa = PBXBuildFile; fileRef = DBBDECA0E031AACA6A6FD77E /* DTExtendedFileAttributes.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 10C70F53FD8C8952216F80BC /* NSData+Godzippa.h in Headers */ = {isa = PBXBuildFile; fileRef = DD2E4AF02D89954634EFF8C5 /* NSData+Godzippa.h */; }; - 11AC09BAEB0E1B2D525AA41C /* DTTextBlock.h in Headers */ = {isa = PBXBuildFile; fileRef = 09E5FA8F17EC2E65ADAAADCF /* DTTextBlock.h */; }; - 11D7AE61ACE8E5EF584A2334 /* UIView+DTFoundation.h in Headers */ = {isa = PBXBuildFile; fileRef = 2B66DC6C098625298FDCAD16 /* UIView+DTFoundation.h */; }; - 129137FB275A32B0ADC82CE2 /* UIFont+DTCoreText.h in Headers */ = {isa = PBXBuildFile; fileRef = 39A1C34F923602E69F92BFDE /* UIFont+DTCoreText.h */; }; - 12F17919DA35204E9E8190E2 /* NSString+DTUtilities.m in Sources */ = {isa = PBXBuildFile; fileRef = 8D7624987F033F98039FBAA9 /* NSString+DTUtilities.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 1498E1CE4D319EC01BFFAB10 /* NSValueTransformer+MTLPredefinedTransformerAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = 78733D989F9F73E37027C410 /* NSValueTransformer+MTLPredefinedTransformerAdditions.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 150FF6D4FE69C5430F4A310B /* MJRefreshFooter.m in Sources */ = {isa = PBXBuildFile; fileRef = C9D08CD6B532365139DA1407 /* MJRefreshFooter.m */; }; - 1557DF7243D3BE8FF57762F9 /* NSString+Paragraphs.m in Sources */ = {isa = PBXBuildFile; fileRef = E9073FA1B8DD32D6490E136E /* NSString+Paragraphs.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 157F0C0C9BE20C20E2FDB47D /* DTIframeTextAttachment.h in Headers */ = {isa = PBXBuildFile; fileRef = 59658FE86151B90EC9F3BE27 /* DTIframeTextAttachment.h */; }; - 17C8DB4DB8A058C8E99C7756 /* NSValueTransformer+MTLInversionAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = 10E66F61731BC4E063DE4062 /* NSValueTransformer+MTLInversionAdditions.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 1927D218D867C80904A9D718 /* Pods-Godzippa-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 503A291995410E5B5A763B2D /* Pods-Godzippa-dummy.m */; }; - 193E008C51214B282BB15DB0 /* UIWebView+AFNetworking.m in Sources */ = {isa = PBXBuildFile; fileRef = 5A9EFA1E9B05357190D9172E /* UIWebView+AFNetworking.m */; }; - 1A81AFCE6AD8D0FD89CC236C /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9DD9C5A817433D789365FBBE /* Foundation.framework */; }; - 1A8BC21DA14BFA5949E50016 /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 773442E765A1C63F2FE4C7A7 /* CoreGraphics.framework */; }; - 1C071DB1CEBE4A97470A88CB /* UIAlertView+AFNetworking.h in Headers */ = {isa = PBXBuildFile; fileRef = 930A0AB4C8E7F92D743F8FB7 /* UIAlertView+AFNetworking.h */; }; - 1FD9A8ED7D34AF7E58005295 /* UIButton+WebCache.m in Sources */ = {isa = PBXBuildFile; fileRef = 0C1064303DF3B737DA725814 /* UIButton+WebCache.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 1FF57ED960C0D6CC6FEEE7B1 /* DTCoreTextLayoutLine.h in Headers */ = {isa = PBXBuildFile; fileRef = ACDAAD9655E2C1AC4DAA7447 /* DTCoreTextLayoutLine.h */; }; - 207323BBA418E47FB0C5570A /* EGOCache.m in Sources */ = {isa = PBXBuildFile; fileRef = E30D75C853F99F1A5BB9BD3B /* EGOCache.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 22C576C9448921EFF3D709CA /* DTCoreTextLayouter.h in Headers */ = {isa = PBXBuildFile; fileRef = 7CB88CB32F99B23A91737376 /* DTCoreTextLayouter.h */; }; - 22DC6D081D812BDC590D1790 /* UIActivityIndicatorView+AFNetworking.m in Sources */ = {isa = PBXBuildFile; fileRef = 20D928D2843510C0E5CBFF97 /* UIActivityIndicatorView+AFNetworking.m */; }; - 23572C332549731F35868C27 /* DTHorizontalRuleHTMLElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B2778A2CBCC22A5EBAD6A04 /* DTHorizontalRuleHTMLElement.h */; }; - 2414AE68EE3B87A413FAF4A6 /* NSFileManager+Godzippa.m in Sources */ = {isa = PBXBuildFile; fileRef = 755D62429655E5D59DD7F71D /* NSFileManager+Godzippa.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 24D229DD078766D957CCF1BD /* MTLReflection.h in Headers */ = {isa = PBXBuildFile; fileRef = 7BC113614F7136493658DF3D /* MTLReflection.h */; }; - 2557188806A5F77BE086DA35 /* STableViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = C65AC3C56199B42EA9136A83 /* STableViewController.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; - 2599716241029048D12453BB /* NSCoder+DTCompatibility.m in Sources */ = {isa = PBXBuildFile; fileRef = E76ADADDF8D8EED738777D61 /* NSCoder+DTCompatibility.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 26AC6C444F6FAE0FAA2E760C /* NSData+DTCrypto.m in Sources */ = {isa = PBXBuildFile; fileRef = D5EA61467C60003133DD0D39 /* NSData+DTCrypto.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 28B28847D5910CBE3459691C /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9DD9C5A817433D789365FBBE /* Foundation.framework */; }; - 28C947BC1C877387DA779D3E /* MTLReflection.m in Sources */ = {isa = PBXBuildFile; fileRef = D905170C724FC07A087DA177 /* MTLReflection.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 290912F2E086545784B86935 /* DTTextHTMLElement.h in Headers */ = {isa = PBXBuildFile; fileRef = D9832217CABFF0E976E49A8F /* DTTextHTMLElement.h */; }; - 2957FD54466B570824668768 /* DTHTMLParserNode.m in Sources */ = {isa = PBXBuildFile; fileRef = E90048AC25846309934924ED /* DTHTMLParserNode.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 29DE3615E251CDE95E6E5BFC /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 773442E765A1C63F2FE4C7A7 /* CoreGraphics.framework */; }; - 2A1611C1112D3B4127B318A0 /* DTColorFunctions.h in Headers */ = {isa = PBXBuildFile; fileRef = EDE030D85B22A8F05A718A4C /* DTColorFunctions.h */; }; - 2A29E5880992E50A2340F226 /* DTCoreTextLayoutFrame.m in Sources */ = {isa = PBXBuildFile; fileRef = 8BB919BCAFB78FEB1758A4DC /* DTCoreTextLayoutFrame.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 2AA1FE64199A6BD55C88E843 /* UIView+WebCacheOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = 12CAC97CA7D7C1588D4A140F /* UIView+WebCacheOperation.h */; }; - 2B3CEB8B932D6275D22E365C /* SBJson4StreamParser.m in Sources */ = {isa = PBXBuildFile; fileRef = F27265DD7AC462708EDB1231 /* SBJson4StreamParser.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 2BA7FBFBD062CEDAD4E5DC98 /* UIScrollView+MJExtension.m in Sources */ = {isa = PBXBuildFile; fileRef = 9447CAF1045E27BEEDA3F476 /* UIScrollView+MJExtension.m */; }; - 2BFC12E3A6466342025550CC /* MJRefreshLegendHeader.m in Sources */ = {isa = PBXBuildFile; fileRef = 69A1F0BE372389DA46197303 /* MJRefreshLegendHeader.m */; }; - 2C8EC9E0E48E4E51F2E26FBD /* NSFileWrapper+DTCopying.h in Headers */ = {isa = PBXBuildFile; fileRef = 2ADF5358C353032A4C980480 /* NSFileWrapper+DTCopying.h */; }; - 2CA32DA7E65DF80E7C750048 /* NSAttributedString+DTDebug.m in Sources */ = {isa = PBXBuildFile; fileRef = 3CB8ABE55CC35E6B1DD6EB1B /* NSAttributedString+DTDebug.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 2CDE09CE2BD3FCE505BC0E48 /* SDWebImageManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 70BE3A9C24806ADF38059D79 /* SDWebImageManager.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 2E0A61731F92585F5F6409A1 /* UIRefreshControl+AFNetworking.h in Headers */ = {isa = PBXBuildFile; fileRef = BD4CC0F4A206E3387EB23FC7 /* UIRefreshControl+AFNetworking.h */; }; - 2E2A225E09AA1776237DA0A3 /* EGOCache.h in Headers */ = {isa = PBXBuildFile; fileRef = 9AF4EEBE22CA0773738FC4D0 /* EGOCache.h */; }; - 30AAEE8481CF871BBD3F3632 /* MTLValueTransformer.h in Headers */ = {isa = PBXBuildFile; fileRef = 4DBFAFDF68A673A50270352B /* MTLValueTransformer.h */; }; - 31071C73FFA23AD720191706 /* UIImage+GIF.h in Headers */ = {isa = PBXBuildFile; fileRef = 000C7C8E20F34124E0809DB3 /* UIImage+GIF.h */; }; - 33130592D42A6A1ECAD801F3 /* DTCoreText.h in Headers */ = {isa = PBXBuildFile; fileRef = 425566B984B0A4BCA253D006 /* DTCoreText.h */; }; - 35CAD4E7E13BD530B42C2A88 /* UIView+WebCacheOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = AFFE47C69E2CCB6543DD7528 /* UIView+WebCacheOperation.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 3632E9ABE4CBE8994EF0AFB2 /* AFHTTPSessionManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 75148258B54D8B8313FE17F3 /* AFHTTPSessionManager.m */; }; - 365D687F479329B69DC21B1F /* DTExtendedFileAttributes.h in Headers */ = {isa = PBXBuildFile; fileRef = 7AA0FD965C5FBB1287C48E48 /* DTExtendedFileAttributes.h */; }; - 36E06283E2A8B178FCEA10F8 /* DTHTMLElement.h in Headers */ = {isa = PBXBuildFile; fileRef = F168A911AA440D4C151F9C1D /* DTHTMLElement.h */; }; - 36E611C63BFDA916CBCD6895 /* AFSecurityPolicy.h in Headers */ = {isa = PBXBuildFile; fileRef = 30F3F9E01B43C34729A44800 /* AFSecurityPolicy.h */; }; - 387F89C6691C6631954FAE74 /* DTVideoTextAttachment.h in Headers */ = {isa = PBXBuildFile; fileRef = AF028E837C5BC33FDC893180 /* DTVideoTextAttachment.h */; }; - 38D554163E106E1C88D223F8 /* NSDictionary+DTCoreText.m in Sources */ = {isa = PBXBuildFile; fileRef = 51EC2D065396A6C2D8A571D6 /* NSDictionary+DTCoreText.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 3A199E6E897D83B2FE5E0BC5 /* SBJson4Writer.m in Sources */ = {isa = PBXBuildFile; fileRef = F3AFBC2A7345283D309D433A /* SBJson4Writer.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 3BB69F101FB7962D1F60644E /* DTPieProgressIndicator.m in Sources */ = {isa = PBXBuildFile; fileRef = 73327572566D7640FD245B2A /* DTPieProgressIndicator.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 3CAC6C9048BD575906F46945 /* AFURLConnectionOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = BB7CD6D48CF336B4A54D21F1 /* AFURLConnectionOperation.m */; }; - 3D9DE2FAF1FDDF8C25A57A35 /* DTCSSListStyle.h in Headers */ = {isa = PBXBuildFile; fileRef = A0F6431993B81C62063DA281 /* DTCSSListStyle.h */; }; - 3ED3617D49C9292442C8C8EB /* SDImageCache.h in Headers */ = {isa = PBXBuildFile; fileRef = C69239397978F1E0635D29A1 /* SDImageCache.h */; }; - 3F2F8A5FD546EFB18686E1D1 /* DTColorFunctions.m in Sources */ = {isa = PBXBuildFile; fileRef = D2E92F7A6612F4A24E6F20D7 /* DTColorFunctions.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 3F5AF18A621A4141626E0CD5 /* NSAttributedString+DTDebug.h in Headers */ = {isa = PBXBuildFile; fileRef = 44FA4F56DE2750802DDF3E7D /* NSAttributedString+DTDebug.h */; }; - 408435DD7CF9179692B3B6AD /* NSScanner+HTML.h in Headers */ = {isa = PBXBuildFile; fileRef = 044DC8C7F9205B47C61B7091 /* NSScanner+HTML.h */; }; - 4092F1978DB4496E053C37AB /* AFURLSessionManager.m in Sources */ = {isa = PBXBuildFile; fileRef = E70B4D3E26344AF290F4C98E /* AFURLSessionManager.m */; }; - 4190B3AE187ED49E37EA4E3B /* DTCoreTextConstants.m in Sources */ = {isa = PBXBuildFile; fileRef = CD3E2723A996F6F8BF044B77 /* DTCoreTextConstants.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 41B3C717DCE4AA5E4D1BE745 /* SBJson4StreamTokeniser.m in Sources */ = {isa = PBXBuildFile; fileRef = 320C4B3C2C920938601B4305 /* SBJson4StreamTokeniser.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 41D4ACE03A4D78DD7594743C /* NSError+MTLModelException.h in Headers */ = {isa = PBXBuildFile; fileRef = D938F08000DB650B2F491850 /* NSError+MTLModelException.h */; }; - 426686586767BC3E0A121DD8 /* DTTextAttachment.h in Headers */ = {isa = PBXBuildFile; fileRef = 539798AD51FB8DC0BD6B0E2A /* DTTextAttachment.h */; }; - 42A53897D5B4C170C8BA5A2D /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9DD9C5A817433D789365FBBE /* Foundation.framework */; }; - 4311CCE77CCC6D844976EAFA /* NSData+DTCrypto.h in Headers */ = {isa = PBXBuildFile; fileRef = E423E5459EDC690BEBD6A3A4 /* NSData+DTCrypto.h */; }; - 457F86F0E38CA9DCD7CE1695 /* DTWebVideoView.h in Headers */ = {isa = PBXBuildFile; fileRef = 7FA2010E282D8967EE2214B2 /* DTWebVideoView.h */; }; - 468589F666ABDDD9A6FA07F4 /* DTAccessibilityViewProxy.m in Sources */ = {isa = PBXBuildFile; fileRef = 6F4E8F22347EFC734538CC8B /* DTAccessibilityViewProxy.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 48E611DCB028272820C85F25 /* EXTScope.m in Sources */ = {isa = PBXBuildFile; fileRef = 2FBF0F645D702F931F268E9E /* EXTScope.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 49287364D76BF68CD71F0059 /* NSValueTransformer+MTLInversionAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = E185C3A63D33EA5B221AC913 /* NSValueTransformer+MTLInversionAdditions.h */; }; - 4A53FD937B8D71DC6EEFA258 /* AFNetworking.h in Headers */ = {isa = PBXBuildFile; fileRef = C0130EFECC56B2652B94F81E /* AFNetworking.h */; }; - 4A84D4DF3953FEE67A8BDAC4 /* SystemConfiguration.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9CDF2BBFC944D7EC9ED7E876 /* SystemConfiguration.framework */; }; - 4ACCE6B6945543B1B0C7E3D8 /* DTCoreGraphicsUtils.h in Headers */ = {isa = PBXBuildFile; fileRef = 57E5F26122F2FB06F884C15A /* DTCoreGraphicsUtils.h */; }; - 4AE39F5A27F3C1A67BC1F10C /* default.css.c in Sources */ = {isa = PBXBuildFile; fileRef = 1B659E68785F55141EB11EE7 /* default.css.c */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 4B58DE5823C889AA7BCE5AF8 /* SDWebImageManager.h in Headers */ = {isa = PBXBuildFile; fileRef = C4236B98DE95D458253A2E28 /* SDWebImageManager.h */; }; - 4C63FDE40B392A78CAE77305 /* UIScrollView+MJExtension.h in Headers */ = {isa = PBXBuildFile; fileRef = AE4D8F0FE101726A21C7916D /* UIScrollView+MJExtension.h */; }; - 4CC40D4013DBF1B0E277E3AF /* MBProgressHUD.h in Headers */ = {isa = PBXBuildFile; fileRef = 7B4E1FCB0CDB86A8C3132D2B /* MBProgressHUD.h */; }; - 4D0482135D8BD6F38AC8E82F /* NSString+DTUtilities.h in Headers */ = {isa = PBXBuildFile; fileRef = 4847BB93AAE212547B53AC4C /* NSString+DTUtilities.h */; }; - 4D178EA509151771F9471851 /* Pods-SDWebImage-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 4F2E55C6466ED5FD349BC1A9 /* Pods-SDWebImage-dummy.m */; }; - 4E19B321140DF0FFCAD39931 /* AFHTTPRequestOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = 8548215E6816926EBD286077 /* AFHTTPRequestOperation.m */; }; - 4E882AE138DA4FB231C758E1 /* NSURL+DTUnshorten.h in Headers */ = {isa = PBXBuildFile; fileRef = 7BBF2A6202CA507D30D3476A /* NSURL+DTUnshorten.h */; }; - 4EA70A8BB0A35B6C33B7C140 /* SDWebImageDecoder.h in Headers */ = {isa = PBXBuildFile; fileRef = F6A6D3AA20DAA77868C1D091 /* SDWebImageDecoder.h */; }; - 4EF33D5049AFA1509CF73779 /* DTTextBlock.m in Sources */ = {isa = PBXBuildFile; fileRef = AC5D6F872F7F6A7FEBA2E5A2 /* DTTextBlock.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 4F10F0A70F10D1D2BAF784C5 /* SDImageCache.m in Sources */ = {isa = PBXBuildFile; fileRef = FC33FC69327B72065A6A6850 /* SDImageCache.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 50977A6FB806F7290536C123 /* UIImage+MultiFormat.m in Sources */ = {isa = PBXBuildFile; fileRef = 34D8B3FF86517D1908DF722D /* UIImage+MultiFormat.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 511BAA36D0762088F7DDD7B9 /* DTDictationPlaceholderView.m in Sources */ = {isa = PBXBuildFile; fileRef = 42A2C07608DCFE0ADD03E8BD /* DTDictationPlaceholderView.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 522B27D45468F4BB65EAFAA3 /* UIButton+WebCache.h in Headers */ = {isa = PBXBuildFile; fileRef = 02567E2AFA2ABD2F2C933C40 /* UIButton+WebCache.h */; }; - 5281FE4438B836460AAF08AA /* DTCustomColoredAccessory.h in Headers */ = {isa = PBXBuildFile; fileRef = C3CACD01ECAC658FCCD298EC /* DTCustomColoredAccessory.h */; }; - 52CAE06DBD6FA7F2C2B4B95B /* Pods-DTFoundation-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = CD2AE4C4FECECC3D80428448 /* Pods-DTFoundation-dummy.m */; }; - 56325DA5C191FA7D75ADCC94 /* NSDictionary+MTLManipulationAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = 9A64DFA72DEB806D609C599D /* NSDictionary+MTLManipulationAdditions.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 56537D1008A6086C62D57D36 /* DTTextHTMLElement.m in Sources */ = {isa = PBXBuildFile; fileRef = EDF8FB7A99E6A32E06931FC8 /* DTTextHTMLElement.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 56702CE0370CD7591056FE21 /* MJRefreshComponent.h in Headers */ = {isa = PBXBuildFile; fileRef = 73CEA0FB979ED40EC2A6B6BC /* MJRefreshComponent.h */; }; - 57EEF7C5E70A9BB7C4B0FADB /* DTAccessibilityElement.m in Sources */ = {isa = PBXBuildFile; fileRef = 148DEBCC24AB506B6C316DCD /* DTAccessibilityElement.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 5867806F774A920DE6FBBA4F /* NSCharacterSet+HTML.h in Headers */ = {isa = PBXBuildFile; fileRef = E2047543F1590232A94322E0 /* NSCharacterSet+HTML.h */; }; - 586BFFC03A65CB210F74D722 /* UIScrollView+MJRefresh.h in Headers */ = {isa = PBXBuildFile; fileRef = F64AF8C879E7300CB2CB9C16 /* UIScrollView+MJRefresh.h */; }; - 58BC9D84FAD6E995FA149EF2 /* NSString+CSS.h in Headers */ = {isa = PBXBuildFile; fileRef = 5CCC7AC0562537FEB44115A4 /* NSString+CSS.h */; }; - 58C065258DA29A4B7228293B /* DTCompatibility.h in Headers */ = {isa = PBXBuildFile; fileRef = 1E596786EA619668160B3663 /* DTCompatibility.h */; }; - 5921EB579F7FAEF03FF8B6F5 /* DTCustomColoredAccessory.m in Sources */ = {isa = PBXBuildFile; fileRef = 8603AA1F5FB93FC0461DE390 /* DTCustomColoredAccessory.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 5941F1A283E283FA9A7ACC8A /* DTBase64Coding.m in Sources */ = {isa = PBXBuildFile; fileRef = B500ECF7DB98EE0B317600B7 /* DTBase64Coding.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 5BE033B73E0CC0E509D10181 /* NSAttributedString+HTML.h in Headers */ = {isa = PBXBuildFile; fileRef = 6242A9BEC50022E7229F5D08 /* NSAttributedString+HTML.h */; }; - 5C5BFC53F089F1892CE28BCE /* DTAccessibilityViewProxy.h in Headers */ = {isa = PBXBuildFile; fileRef = 80F2C8CC2597851350219120 /* DTAccessibilityViewProxy.h */; }; - 5C675D64694AF44C794E298D /* DTAccessibilityElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 4EB3E403669E23800E28A5B7 /* DTAccessibilityElement.h */; }; - 6022AE41B46C9B7FDE781425 /* MJRefreshConst.h in Headers */ = {isa = PBXBuildFile; fileRef = E318B19F03E9DE62C674966F /* MJRefreshConst.h */; }; - 611A97144BA4643E8F4C1C23 /* AFURLResponseSerialization.h in Headers */ = {isa = PBXBuildFile; fileRef = 499918F35DCBA4F2298533F3 /* AFURLResponseSerialization.h */; }; - 61674A1F9BD420367B6C7A57 /* DTFolderMonitor.m in Sources */ = {isa = PBXBuildFile; fileRef = 74AC06D02C0D9C5BA41A0675 /* DTFolderMonitor.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 6230463E54645081E39A2E9C /* AFNetworkReachabilityManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 46FB8C8725057434D48E2858 /* AFNetworkReachabilityManager.m */; }; - 62C7A6CCED2206B30F54EE83 /* MTLModel+NSCoding.h in Headers */ = {isa = PBXBuildFile; fileRef = AE53AD511CE0BA44B4752FEA /* MTLModel+NSCoding.h */; }; - 62E2DD56976312E5C92C1895 /* AFURLConnectionOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = 74503AAA593FD430ACC0474E /* AFURLConnectionOperation.h */; }; - 63152F7711EC5D68D37865E6 /* MobileCoreServices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 82CC48C7AD519486AEE6522C /* MobileCoreServices.framework */; }; - 6352551E83620AA320F9BEAD /* DTAsyncFileDeleter.m in Sources */ = {isa = PBXBuildFile; fileRef = 49AB829E61E71E2B8119ABA5 /* DTAsyncFileDeleter.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 635F190AD6CEECBB54365F03 /* DTBlockFunctions.h in Headers */ = {isa = PBXBuildFile; fileRef = 663130FDE5B7DD0A2641EB9D /* DTBlockFunctions.h */; }; - 645A5C37747872C68DE2F8B2 /* NSAttributedStringRunDelegates.m in Sources */ = {isa = PBXBuildFile; fileRef = E03546E55068EB6FC56539AA /* NSAttributedStringRunDelegates.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 648AB936C6937FF4E02FA4BB /* UIScrollView+MJRefresh.m in Sources */ = {isa = PBXBuildFile; fileRef = 51DA841889AC7CDBDC4EEC6E /* UIScrollView+MJRefresh.m */; }; - 65C3DC46F7BF23D8216E7D73 /* DTAnimatedGIF.h in Headers */ = {isa = PBXBuildFile; fileRef = E285C11FC8A0EDC3C050F5BA /* DTAnimatedGIF.h */; }; - 66831CEE444CB67898D15B84 /* MTLManagedObjectAdapter.h in Headers */ = {isa = PBXBuildFile; fileRef = CE8D89294248FA6062C49829 /* MTLManagedObjectAdapter.h */; }; - 66BF2FC248E1EF98DC3FE975 /* DTAttributedLabel.h in Headers */ = {isa = PBXBuildFile; fileRef = B9DF7E684875D2D0F3F9E90E /* DTAttributedLabel.h */; }; - 67A2862A89CFDBF643CE13AE /* NSAttributedString+SmallCaps.h in Headers */ = {isa = PBXBuildFile; fileRef = 85EDAE7F553BE9B9025A5BBE /* NSAttributedString+SmallCaps.h */; }; - 67F735E54B44DB40A8261D3B /* Godzippa.h in Headers */ = {isa = PBXBuildFile; fileRef = E2E58C3EBFFE680BA8B27886 /* Godzippa.h */; }; - 6823457F8E43FB5C9C7554F8 /* DTAnchorHTMLElement.m in Sources */ = {isa = PBXBuildFile; fileRef = BDBB5D463CB84DB5FCE7F69C /* DTAnchorHTMLElement.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 682FDEED1A6A7C8243E4AF37 /* Pods-STableViewController-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 8E7C41887C23810EB51DD0A0 /* Pods-STableViewController-dummy.m */; }; - 6A07B0C1D9C7D99852513FE8 /* NSString+DTURLEncoding.m in Sources */ = {isa = PBXBuildFile; fileRef = A5DC4DE3B2C1EA11EA2068EE /* NSString+DTURLEncoding.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 6A21E94A5341699D26C493FB /* DTActivityTitleView.m in Sources */ = {isa = PBXBuildFile; fileRef = 02297CC15BF3E306414B69BD /* DTActivityTitleView.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 6B9E38201BDE3E9D77525C4E /* NSString+Paragraphs.h in Headers */ = {isa = PBXBuildFile; fileRef = 39E350355D4CDA7345039AA1 /* NSString+Paragraphs.h */; }; - 6C5C29A4193C3E3380BDA42F /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9DD9C5A817433D789365FBBE /* Foundation.framework */; }; - 6D12B076ADD9EF9B2105D6D6 /* DTLinkButton.m in Sources */ = {isa = PBXBuildFile; fileRef = E9ACB5A0A0AB3C727CEFEE7D /* DTLinkButton.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 6D1BA9DEA803AD732BC520C1 /* UIButton+AFNetworking.m in Sources */ = {isa = PBXBuildFile; fileRef = C81BB5A80B9CDD86C332157A /* UIButton+AFNetworking.m */; }; - 6D3C077CE557A5159838A720 /* SDWebImageCompat.h in Headers */ = {isa = PBXBuildFile; fileRef = 2931671231F2BF356C7EAEAC /* SDWebImageCompat.h */; }; - 6E1B015496786B6F6BECD649 /* SBJson4StreamWriterState.m in Sources */ = {isa = PBXBuildFile; fileRef = 09EAFDAD063EDC00096089DB /* SBJson4StreamWriterState.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 6E8CB74C97B4358B4A14FA53 /* NSString+DTFormatNumbers.m in Sources */ = {isa = PBXBuildFile; fileRef = E3CA9A0D1022C0680DD14622 /* NSString+DTFormatNumbers.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 6EDBF0DABB6635A9974D4707 /* DTCSSStylesheet.m in Sources */ = {isa = PBXBuildFile; fileRef = 4A2144565633C90B3C594FED /* DTCSSStylesheet.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 6F0101FEEAF8EEAFA8AAA3DD /* UIImageView+HighlightedWebCache.m in Sources */ = {isa = PBXBuildFile; fileRef = 9AC757925F47F6FF993302F2 /* UIImageView+HighlightedWebCache.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 6F14BCD3CD08AA94874A79D5 /* NSValueTransformer+MTLPredefinedTransformerAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = F582FC8D28A00099572FBB6E /* NSValueTransformer+MTLPredefinedTransformerAdditions.h */; }; - 6F8C0549CE0E74983DEB2525 /* DTLog.m in Sources */ = {isa = PBXBuildFile; fileRef = 5A1335E83B09E0425099AB9E /* DTLog.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 6FB17487DBD6EBEC72C5147B /* SBJson4StreamParserState.h in Headers */ = {isa = PBXBuildFile; fileRef = C1A3480ED022780B4482E351 /* SBJson4StreamParserState.h */; }; - 71264C5CD1A8852E56E3F88F /* DTImageTextAttachment.m in Sources */ = {isa = PBXBuildFile; fileRef = 4ED3BBB64F7701D817161278 /* DTImageTextAttachment.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 713D0BE35B2F72D703DB903A /* NSArray+DTError.h in Headers */ = {isa = PBXBuildFile; fileRef = 9F42516FEA63D4DC3288C7DE /* NSArray+DTError.h */; }; - 74A6D03D803FA63BDC52419B /* DTImageTextAttachment.h in Headers */ = {isa = PBXBuildFile; fileRef = CFFCBAA6E08FE2EC737991CC /* DTImageTextAttachment.h */; }; - 74ACEBE8FC6D5F215150EAEB /* MTLJSONAdapter.m in Sources */ = {isa = PBXBuildFile; fileRef = 0DBF7BFED66DEA608EE98F79 /* MTLJSONAdapter.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 759B24C40B042D2318608AC4 /* SBJson4Parser.h in Headers */ = {isa = PBXBuildFile; fileRef = 4750630460C4BF10955C50F5 /* SBJson4Parser.h */; }; - 76A8AF44494649F2C9921273 /* DTHTMLParserTextNode.m in Sources */ = {isa = PBXBuildFile; fileRef = 05ED87CBC8DC6A907A84AD2A /* DTHTMLParserTextNode.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 781C990028B2EBDF93F75AD7 /* DTCoreTextLayoutFrameAccessibilityElementGenerator.h in Headers */ = {isa = PBXBuildFile; fileRef = 0DEB70690586C98E99677DF6 /* DTCoreTextLayoutFrameAccessibilityElementGenerator.h */; }; - 7A439BD4DA6EFE2F4F61EB63 /* NSAttributedString+DTCoreText.m in Sources */ = {isa = PBXBuildFile; fileRef = 533693CAE3A5D5A92C7CA2B7 /* NSAttributedString+DTCoreText.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 7B076D2975F1D808E454CF8E /* UIView+DTFoundation.m in Sources */ = {isa = PBXBuildFile; fileRef = 36F28FF07FEBCD953A6BF6AF /* UIView+DTFoundation.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 7B712A885E3AC50A4797B179 /* NSURL+DTAppLinks.m in Sources */ = {isa = PBXBuildFile; fileRef = AEE0406A9A825584A0F6B860 /* NSURL+DTAppLinks.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 7C3CB77A3ECF1A4BC6059E79 /* EXTScope.h in Headers */ = {isa = PBXBuildFile; fileRef = 7769048F02C4CA9F2EDF56FB /* EXTScope.h */; }; - 7CA5F3C41A1F4A4AD8BC1FBC /* DTAttributedTextCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 6EE3DD7AA93E5C3165EADD31 /* DTAttributedTextCell.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 7D64ADF8423BB40EF10D4ADF /* MJRefreshGifHeader.m in Sources */ = {isa = PBXBuildFile; fileRef = 30EF123E79EC9F1A86F2FB80 /* MJRefreshGifHeader.m */; }; - 7E2B06EBB71E73F76B965207 /* DTCoreTextParagraphStyle.m in Sources */ = {isa = PBXBuildFile; fileRef = 8BDFB7E4C0AAC71A08B0A6CC /* DTCoreTextParagraphStyle.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 7E61F86C0DF0B103B9EDFABF /* DTHTMLAttributedStringBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = 02284A8207F847282436F7AD /* DTHTMLAttributedStringBuilder.h */; }; - 7E63FB57AFE221521DBC1166 /* UIImage+DTFoundation.h in Headers */ = {isa = PBXBuildFile; fileRef = C55CF69840949A3B9DB21983 /* UIImage+DTFoundation.h */; }; - 7FD058B6B5B638759C5FE085 /* UIImageView+WebCache.h in Headers */ = {isa = PBXBuildFile; fileRef = B26EF2E1F5791671372428C1 /* UIImageView+WebCache.h */; }; - 80B421C7C030F68C530E30CB /* MJRefreshFooter.h in Headers */ = {isa = PBXBuildFile; fileRef = BC02B7E0A617A2C3EE555756 /* MJRefreshFooter.h */; }; - 8181C1F6C24D1FCF7528E66B /* DTFolderMonitor.h in Headers */ = {isa = PBXBuildFile; fileRef = 0CD381B22C0C351795FA961B /* DTFolderMonitor.h */; }; - 8189EAE9B094C139F07B5E31 /* DTAttributedTextView.m in Sources */ = {isa = PBXBuildFile; fileRef = F0CC372E47C461FBE2EB7486 /* DTAttributedTextView.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 848E6515BC358ABCB0B89350 /* NSMutableAttributedString+HTML.h in Headers */ = {isa = PBXBuildFile; fileRef = 9930956F5D90FA1EBCBB3A48 /* NSMutableAttributedString+HTML.h */; }; - 86AF24B70739E2E410382A24 /* DTAttributedTextContentView.m in Sources */ = {isa = PBXBuildFile; fileRef = 58AB7EDBD11A4580DE48181E /* DTAttributedTextContentView.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 86EE283DDB3EF027EBBEF98D /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9DD9C5A817433D789365FBBE /* Foundation.framework */; }; - 8737D39FC757F48505E97ADC /* DTColor+Compatibility.m in Sources */ = {isa = PBXBuildFile; fileRef = BB4F7C51E8746A317D228300 /* DTColor+Compatibility.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 874457D74458E84DA62E07FD /* UIImageView+AFNetworking.h in Headers */ = {isa = PBXBuildFile; fileRef = B2BE44C2BD5CFBD496BADAF2 /* UIImageView+AFNetworking.h */; }; - 87693E4DDCFD61DC4FE03752 /* UIProgressView+AFNetworking.m in Sources */ = {isa = PBXBuildFile; fileRef = 1FAA7411D6D971B73B99F6D3 /* UIProgressView+AFNetworking.m */; }; - 889D550F5F71A9830B7E8390 /* MJRefreshLegendHeader.h in Headers */ = {isa = PBXBuildFile; fileRef = EB72821D64E431973F02A38F /* MJRefreshLegendHeader.h */; }; - 8916EC3A47FE50159DAC7D6E /* DTCoreTextConstants.h in Headers */ = {isa = PBXBuildFile; fileRef = CD097ED93E1C276A7FA9430E /* DTCoreTextConstants.h */; }; - 8A44333E6C1AD1939F353AFF /* AFHTTPRequestOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = ACBD88BFCFCB486595242A16 /* AFHTTPRequestOperation.h */; }; - 8A5510C98A8314548E449EA7 /* NSDictionary+MTLManipulationAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = 272D39690151F2016FF485C2 /* NSDictionary+MTLManipulationAdditions.h */; }; - 8AD1D251EA2B8F7410EEBB3F /* DTSmartPagingScrollView.h in Headers */ = {isa = PBXBuildFile; fileRef = D7D7A0CB50404353CCE42F15 /* DTSmartPagingScrollView.h */; }; - 8AFFF954971550F4B9A3C48E /* MTLValueTransformer.m in Sources */ = {isa = PBXBuildFile; fileRef = 1198240109E0FF9B776C4A37 /* MTLValueTransformer.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 8C51B09BD3256961EF3080D9 /* NSString+DTPaths.m in Sources */ = {isa = PBXBuildFile; fileRef = 0546F3C3A3284709F421382A /* NSString+DTPaths.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 8D3424918AC53F8CB0290DC1 /* MJRefresh.h in Headers */ = {isa = PBXBuildFile; fileRef = F2551C1ACF348C6C30F3CD19 /* MJRefresh.h */; }; - 8DC366B059E33BABA6099AE2 /* DTImage+HTML.h in Headers */ = {isa = PBXBuildFile; fileRef = B4E0100EC49E294FB3E6DD7A /* DTImage+HTML.h */; }; - 8DFDD3ECF2CC01CC5BDCEE9D /* DTCoreTextFontDescriptor.h in Headers */ = {isa = PBXBuildFile; fileRef = BBAB2C0DE7B01A6D434F48BD /* DTCoreTextFontDescriptor.h */; }; - 8F575E11771A529DCF0FE05D /* MJRefreshGifFooter.m in Sources */ = {isa = PBXBuildFile; fileRef = 87F422B2E0D48E37DAC11B50 /* MJRefreshGifFooter.m */; }; - 8F75C6859C046A3212ED3F4D /* DTDictationPlaceholderTextAttachment.h in Headers */ = {isa = PBXBuildFile; fileRef = AF34AB79D5153D4F27D6D084 /* DTDictationPlaceholderTextAttachment.h */; }; - 90039C5C2F0C0A40DD688913 /* AFURLResponseSerialization.m in Sources */ = {isa = PBXBuildFile; fileRef = EE8565A6AA74E73D16AA06A7 /* AFURLResponseSerialization.m */; }; - 9022D1E464FFC78664C3FDA0 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9DD9C5A817433D789365FBBE /* Foundation.framework */; }; - 9174116757AEC26D0E6CF78C /* DTHTMLWriter.h in Headers */ = {isa = PBXBuildFile; fileRef = F0D499BD4214ECB217034F23 /* DTHTMLWriter.h */; }; - 91DA1F9D2E84A4178269769D /* UIImageView+AFNetworking.m in Sources */ = {isa = PBXBuildFile; fileRef = 7EF4F9B8E1DE4E5EC5ADEADA /* UIImageView+AFNetworking.m */; }; - 93784C2C01C15630CFC61D83 /* DTAttributedLabel.m in Sources */ = {isa = PBXBuildFile; fileRef = 622F4B3E7D7A4AECD2871F39 /* DTAttributedLabel.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 93CF95030A57C4D95B906FD8 /* DTPieProgressIndicator.h in Headers */ = {isa = PBXBuildFile; fileRef = C988330BF193EC2D1790D01E /* DTPieProgressIndicator.h */; }; - 94053C0235D66070913E143E /* SDWebImageDownloader.m in Sources */ = {isa = PBXBuildFile; fileRef = 97B8EB9DDB15EC1FE96AD6FC /* SDWebImageDownloader.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 94B3F003C98A7E89F27C14BF /* DTAttributedTextContentView.h in Headers */ = {isa = PBXBuildFile; fileRef = 24549194CFAFFDC9DDED662B /* DTAttributedTextContentView.h */; }; - 95E1EDEF69C715F30E73EEC8 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9DD9C5A817433D789365FBBE /* Foundation.framework */; }; - 960DC808B718C5A17E234BDD /* Pods-MBProgressHUD-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 51F816C7B2A3D31378A7677E /* Pods-MBProgressHUD-dummy.m */; }; - 96E08C7FF522874F7BC99D16 /* NSFileManager+Godzippa.h in Headers */ = {isa = PBXBuildFile; fileRef = CD5024FC7D47DD48B5ED9D8D /* NSFileManager+Godzippa.h */; }; - 96F2B34DECCF317CDCD62D0F /* MJRefreshHeader.h in Headers */ = {isa = PBXBuildFile; fileRef = F48BD34D52AB4DDAFF22F360 /* MJRefreshHeader.h */; }; - 9788817922F0E81CA3356114 /* NSMutableAttributedString+HTML.m in Sources */ = {isa = PBXBuildFile; fileRef = 735C2D06848839B5B1750A09 /* NSMutableAttributedString+HTML.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 982F61ACA8240D98559EF20C /* MTLModel.m in Sources */ = {isa = PBXBuildFile; fileRef = C9D338DCF7BBE8E416037CF6 /* MTLModel.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 99392309B94CE18346DA0EA8 /* NSArray+DTError.m in Sources */ = {isa = PBXBuildFile; fileRef = FBF4D2435D4D21F020CB5127 /* NSArray+DTError.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 995D2ACC6676C7A21A9785A1 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9DD9C5A817433D789365FBBE /* Foundation.framework */; }; - 99EC58284F82D2E9157DABD2 /* SDWebImageDownloader.h in Headers */ = {isa = PBXBuildFile; fileRef = A4297449CDDF54794845DE0B /* SDWebImageDownloader.h */; }; - 9A9D9A340943B30B067EE1B0 /* DTDictationPlaceholderTextAttachment.m in Sources */ = {isa = PBXBuildFile; fileRef = AF6FAB1F9B36456C522A1AE0 /* DTDictationPlaceholderTextAttachment.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 9AEAEC552D6893233463DFD1 /* AFSecurityPolicy.m in Sources */ = {isa = PBXBuildFile; fileRef = 8BA13D397123DD418D9A5557 /* AFSecurityPolicy.m */; }; - 9B47C7363665EC5AB1EBCF13 /* UIView+MJExtension.m in Sources */ = {isa = PBXBuildFile; fileRef = F3298950D38367B5B0B857B9 /* UIView+MJExtension.m */; }; - 9C0D830AA8DCB895AFEDD1C6 /* CoreText.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0113E9980E365E7C47DF37E /* CoreText.framework */; }; - 9C17C9964E4DC070FD248AB2 /* NSString+DTURLEncoding.h in Headers */ = {isa = PBXBuildFile; fileRef = E12A9F77537BE752605BE4FB /* NSString+DTURLEncoding.h */; }; - 9C6D4BFC5E92F7CEFD61F772 /* NSObject+MTLComparisonAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = CAB0A45839DC7DB4DE3ED48D /* NSObject+MTLComparisonAdditions.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 9C8515C72E37C7405E0E9028 /* NSAttributedString+DTCoreText.h in Headers */ = {isa = PBXBuildFile; fileRef = EC01E94AC6E9783C2C51CA03 /* NSAttributedString+DTCoreText.h */; }; - 9D2BAA3444ECCF844DCC2D0E /* UIImageView+WebCache.m in Sources */ = {isa = PBXBuildFile; fileRef = B84601644BABDDB5EF4E1742 /* UIImageView+WebCache.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 9D98773DFC27852056B73E3A /* SecureUDID.h in Headers */ = {isa = PBXBuildFile; fileRef = C072F31E804C6721B44E54F2 /* SecureUDID.h */; }; - 9DDF74DB7D7E5E8EF07BA04F /* DTImage+HTML.m in Sources */ = {isa = PBXBuildFile; fileRef = EEBAAD0C74D269B0751069C8 /* DTImage+HTML.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 9EA6F696EA65ED8F56DFF108 /* UIAlertView+AFNetworking.m in Sources */ = {isa = PBXBuildFile; fileRef = 9EAF55F3F29A2DC5F6D0D400 /* UIAlertView+AFNetworking.m */; }; - 9F3924124111D61A4BA8685C /* Pods-EGOCache-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 10AD45869DE0C509621F9E38 /* Pods-EGOCache-dummy.m */; }; - 9FDAFAA00821E2363F415822 /* DTTextAttachmentHTMLElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 9F12284C6293A7179D9BBF6A /* DTTextAttachmentHTMLElement.h */; }; - A0B8C20FD2206CA9A59B5010 /* DTAttributedTextCell.h in Headers */ = {isa = PBXBuildFile; fileRef = B93673E4E9B9583E3B0A0B12 /* DTAttributedTextCell.h */; }; - A0C69FEB13FEBF23970F0426 /* DTDictationPlaceholderView.h in Headers */ = {isa = PBXBuildFile; fileRef = E985496411C338BFFF72DC59 /* DTDictationPlaceholderView.h */; }; - A0CB67B24A241A2D279DDF5C /* Mantle.h in Headers */ = {isa = PBXBuildFile; fileRef = 0CB61A9012F7783015E18B7B /* Mantle.h */; }; - A21C6B68A0B246CA9CC03108 /* Pods-SecureUDID-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 57CBAECC87D95F8EDCB43392 /* Pods-SecureUDID-dummy.m */; }; - A2676B4ABFF77B64F6E91ED0 /* Pods-MJRefresh-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = A4E0118791F34CD014CF9579 /* Pods-MJRefresh-dummy.m */; }; - A3CA2D7609359CBBD2DE525F /* DTHTMLParserNode.h in Headers */ = {isa = PBXBuildFile; fileRef = A1934AD2A92C4DDA7871D006 /* DTHTMLParserNode.h */; }; - A4A0304CC5B6B2198E42C817 /* MJRefreshGifFooter.h in Headers */ = {isa = PBXBuildFile; fileRef = 905830A7C598494CA2F91F4C /* MJRefreshGifFooter.h */; }; - A4FCDA6E8A73132DE1697C8C /* SystemConfiguration.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9CDF2BBFC944D7EC9ED7E876 /* SystemConfiguration.framework */; }; - A561A3BE1A8675BF0FFF7668 /* Pods-Mantle-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 976E8ED367ED5D8851AFBD7F /* Pods-Mantle-dummy.m */; }; - A56BFA99D1F1F6A6AC80DBC3 /* SBJson4StreamParserState.m in Sources */ = {isa = PBXBuildFile; fileRef = D9A3FE59729AC5FB74AF9D67 /* SBJson4StreamParserState.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - A77FFAB16B99174E3A942137 /* Reachability.h in Headers */ = {isa = PBXBuildFile; fileRef = C99E56F7134A39AC6037E2E3 /* Reachability.h */; }; - A813C4B472CD834C8826EC9D /* ImageIO.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 75CADB59E864B3C4B66EE1C2 /* ImageIO.framework */; }; - A833C2A3D7B70FB37A4E46DC /* DTVideoTextAttachment.m in Sources */ = {isa = PBXBuildFile; fileRef = CB44F38D8EB7A12F257CF13C /* DTVideoTextAttachment.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - A878E4C6E4373E80F5D13660 /* MediaPlayer.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B4DD78557F2221312508EA29 /* MediaPlayer.framework */; }; - A88E1FB837D2987A7D105B1A /* DTLog.h in Headers */ = {isa = PBXBuildFile; fileRef = 155778E11B2A513DDDAEF986 /* DTLog.h */; }; - A8A8688A740DB6DA56EF6DB5 /* NSData+Godzippa.m in Sources */ = {isa = PBXBuildFile; fileRef = 14E0B24681D42846B0CD9A3B /* NSData+Godzippa.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - A92C33E5C970F02348C70FDA /* SBJson4.h in Headers */ = {isa = PBXBuildFile; fileRef = F2A3D38884C41197378682EC /* SBJson4.h */; }; - A9AA44A38FC6A113DBFC01C7 /* NSDictionary+DTError.h in Headers */ = {isa = PBXBuildFile; fileRef = 2F6688E0FD46351AE98ED8E7 /* NSDictionary+DTError.h */; }; - A9D7A4E61D9132A38B88240A /* SBJson4StreamParser.h in Headers */ = {isa = PBXBuildFile; fileRef = 09B84FF607C97FBFEA9CEE6F /* SBJson4StreamParser.h */; }; - AA776D7C0C90F33CD7D327E3 /* NSDictionary+DTError.m in Sources */ = {isa = PBXBuildFile; fileRef = 7177B72C59C85460D5052B06 /* NSDictionary+DTError.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - AAD748AA4CF2E3319D3D082D /* NSURL+DTAppLinks.h in Headers */ = {isa = PBXBuildFile; fileRef = 49732D6B3FAC6FA975BA8B57 /* NSURL+DTAppLinks.h */; }; - AC27ED2936703D4B82F70D64 /* SBJson4StreamWriterState.h in Headers */ = {isa = PBXBuildFile; fileRef = 05BD0FA1310754768903BD03 /* SBJson4StreamWriterState.h */; }; - AD390BCEA9D792C3957FFAF8 /* NSMutableString+HTML.m in Sources */ = {isa = PBXBuildFile; fileRef = 23308DE32C980BD290D12A4B /* NSMutableString+HTML.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - ADD401B6FB058141AA765121 /* DTHTMLParser.h in Headers */ = {isa = PBXBuildFile; fileRef = E06A0E4811BBE705C4CCACAB /* DTHTMLParser.h */; }; - ADED2C0F4CC498E8BAFDF335 /* DTCoreTextFontCollection.m in Sources */ = {isa = PBXBuildFile; fileRef = 96B8523A07E3B9C83A16BC62 /* DTCoreTextFontCollection.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - AF4C931E95064EFE6898E4B2 /* NSURL+DTComparing.m in Sources */ = {isa = PBXBuildFile; fileRef = 9363BC239F7CCC502F0109FD /* NSURL+DTComparing.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - AF803D64E061565CAF4E16A1 /* MTLModel.h in Headers */ = {isa = PBXBuildFile; fileRef = 8831276CD46A5B60D74C2BAC /* MTLModel.h */; }; - B09E10479A8A43F7EE0CF8FF /* DTVersion.h in Headers */ = {isa = PBXBuildFile; fileRef = 9520C2A2987FE0DFD1CC4197 /* DTVersion.h */; }; - B19980DFE118C678022EE1B4 /* UIView+MJExtension.h in Headers */ = {isa = PBXBuildFile; fileRef = 1803F7DA4A6EF54918CD8DAB /* UIView+MJExtension.h */; }; - B242B3A45F719245D03D7C39 /* DTCoreTextParagraphStyle.h in Headers */ = {isa = PBXBuildFile; fileRef = F657B550373040E1E6477D64 /* DTCoreTextParagraphStyle.h */; }; - B299EE3F4930338CF702A3A1 /* DTObjectTextAttachment.m in Sources */ = {isa = PBXBuildFile; fileRef = E8A843E0157B0F0CB285E87E /* DTObjectTextAttachment.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - B2A8559D66257E3A2975F635 /* DTCoreTextGlyphRun.h in Headers */ = {isa = PBXBuildFile; fileRef = 0ADDF9071F468C9B000996C8 /* DTCoreTextGlyphRun.h */; }; - B2BA58000A6B0F2FB85768F4 /* DTSmartPagingScrollView.m in Sources */ = {isa = PBXBuildFile; fileRef = C9CEC52E2C906AE8F6B24AF0 /* DTSmartPagingScrollView.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - B370B3BE0B0230D96361A967 /* DTCoreTextMacros.h in Headers */ = {isa = PBXBuildFile; fileRef = ACA554A92D0F17480F387916 /* DTCoreTextMacros.h */; }; - B415B86319633DFAB02E2298 /* STableViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = 2C66CCE611914E181AD7F1F5 /* STableViewController.h */; }; - B4490C1535367E6529BCA8E0 /* UIWebView+AFNetworking.h in Headers */ = {isa = PBXBuildFile; fileRef = 43E49596A789FBF422F82CB3 /* UIWebView+AFNetworking.h */; }; - B4FB5B03E656C8109381638D /* DTLazyImageView.h in Headers */ = {isa = PBXBuildFile; fileRef = F69B519C120CB30E30FF66B2 /* DTLazyImageView.h */; }; - B5AB8DB17846A2138A288704 /* DTCoreTextLayoutFrame+Cursor.m in Sources */ = {isa = PBXBuildFile; fileRef = 1569D676E63A0FD1BC54FB04 /* DTCoreTextLayoutFrame+Cursor.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - B5CF28826926F9B920F476D2 /* DTHorizontalRuleHTMLElement.m in Sources */ = {isa = PBXBuildFile; fileRef = 9268DFFDA72C1B913AEBDAC9 /* DTHorizontalRuleHTMLElement.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - B5E86D0F95798788DC35F949 /* NSString+DTPaths.h in Headers */ = {isa = PBXBuildFile; fileRef = 4F72F40D140F09B394AAEE86 /* NSString+DTPaths.h */; }; - B63584FC9C032F8408AE5C78 /* DTTiledLayerWithoutFade.h in Headers */ = {isa = PBXBuildFile; fileRef = 596D48C47A75A30F8F476EF7 /* DTTiledLayerWithoutFade.h */; }; - B8CABA753182C060BFA2183F /* NSString+HTML.m in Sources */ = {isa = PBXBuildFile; fileRef = 5E2A76CCC4F20D18844F698C /* NSString+HTML.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - B9AFBA8CD2AB1E9C44D38193 /* DTBreakHTMLElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 306DD73F546D8F8A8EABA570 /* DTBreakHTMLElement.h */; }; - BA5A2568F1D20CD7514550A7 /* DTStylesheetHTMLElement.h in Headers */ = {isa = PBXBuildFile; fileRef = AD7C7DDA0AE1AFD4F00970DA /* DTStylesheetHTMLElement.h */; }; - BBC629713AEAD9C359329092 /* DTBase64Coding.h in Headers */ = {isa = PBXBuildFile; fileRef = 34E2230D1DF25D9C76EEE3BA /* DTBase64Coding.h */; }; - BD4EEE83BE46779F584C7CC7 /* NSFileWrapper+DTCopying.m in Sources */ = {isa = PBXBuildFile; fileRef = 5AC655EBA4D1C6760F814C3F /* NSFileWrapper+DTCopying.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - BDDB77AF9A58D1B79014004D /* DTTextAttachmentHTMLElement.m in Sources */ = {isa = PBXBuildFile; fileRef = F50BE35C5313CE948435A1BE /* DTTextAttachmentHTMLElement.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - BDF2155F432F8BD9411CD9F8 /* SDWebImagePrefetcher.m in Sources */ = {isa = PBXBuildFile; fileRef = 5C9CE7FF98D4D9258B432D6A /* SDWebImagePrefetcher.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - BDF22929F9D18A2FCC0E80A0 /* NSAttributedStringRunDelegates.h in Headers */ = {isa = PBXBuildFile; fileRef = AB2F60F681150993334D0AF7 /* NSAttributedStringRunDelegates.h */; }; - BE0CBC7BE3C7FE02DE8C3DC7 /* DTAsyncFileDeleter.h in Headers */ = {isa = PBXBuildFile; fileRef = 2EC05C5B2AC470186E038E3F /* DTAsyncFileDeleter.h */; }; - BE11DC3A17A6DFC45300239C /* DTAttributedTextView.h in Headers */ = {isa = PBXBuildFile; fileRef = 0111CBCAA13EC54A465F0746 /* DTAttributedTextView.h */; }; - BE38EC0AE62924DD67E9FE1C /* DTTiledLayerWithoutFade.m in Sources */ = {isa = PBXBuildFile; fileRef = 99BB5CAD5850C8794A82F246 /* DTTiledLayerWithoutFade.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - C0596E0610B32053A42E3BCD /* DTAnchorHTMLElement.h in Headers */ = {isa = PBXBuildFile; fileRef = AB0C595492DC29BD26231AFF /* DTAnchorHTMLElement.h */; }; - C091864FBB955E27F86D3F85 /* DTHTMLElement.m in Sources */ = {isa = PBXBuildFile; fileRef = 37533697C6A34D1B83B33C24 /* DTHTMLElement.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - C0C1AEC45B65D87312750F35 /* UIWebView+DTFoundation.m in Sources */ = {isa = PBXBuildFile; fileRef = B0A3460A7A2FDD3392A03A11 /* UIWebView+DTFoundation.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - C1C69BE3D60B1A2AE6C5718C /* DTFoundationConstants.h in Headers */ = {isa = PBXBuildFile; fileRef = DD6A78B0D9A58DFC5680AEF5 /* DTFoundationConstants.h */; }; - C235636402245C5EE9811447 /* DTCoreTextLayouter.m in Sources */ = {isa = PBXBuildFile; fileRef = 4675B125EF5ADBB90CEA3374 /* DTCoreTextLayouter.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - C2CC62434A97B8C789A52755 /* UIActivityIndicatorView+AFNetworking.h in Headers */ = {isa = PBXBuildFile; fileRef = D5C54EE1B30EC338D3303861 /* UIActivityIndicatorView+AFNetworking.h */; }; - C2D87BDA5A4BE1128FED5388 /* UIImage+MultiFormat.h in Headers */ = {isa = PBXBuildFile; fileRef = DF3A183ACE7AA9CF9B0D51C3 /* UIImage+MultiFormat.h */; }; - C33777998D03C1943CA5729F /* Pods-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 070F3F5B859156F2E1935C36 /* Pods-dummy.m */; }; - C3666EC3988C0685E339F926 /* DTCoreTextFunctions.m in Sources */ = {isa = PBXBuildFile; fileRef = 4AC683F0D93BD0059752887D /* DTCoreTextFunctions.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - C3880D9F121CBB124377A26C /* MTLJSONAdapter.h in Headers */ = {isa = PBXBuildFile; fileRef = 02267995D166E83411B7FA6E /* MTLJSONAdapter.h */; }; - C3F00385920B4655024620E7 /* DTIframeTextAttachment.m in Sources */ = {isa = PBXBuildFile; fileRef = 42F04B328F71757BD504E292 /* DTIframeTextAttachment.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - C49951E6B3BEE0D50DE44200 /* AFNetworkActivityIndicatorManager.h in Headers */ = {isa = PBXBuildFile; fileRef = A1B9DA4F4DB2E5878765292A /* AFNetworkActivityIndicatorManager.h */; }; - C6223C9399648AFB82BE760E /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 20C1566CF6ACC33C01D5FD71 /* QuartzCore.framework */; }; - C628730FA336FA7325BB0E9C /* DTCoreTextGlyphRun.m in Sources */ = {isa = PBXBuildFile; fileRef = F090452F16DD6E56998D85F1 /* DTCoreTextGlyphRun.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - C6D22327B28AB9680C0F9DE3 /* DTTextAttachment.m in Sources */ = {isa = PBXBuildFile; fileRef = EBC22545F6D32A951618D5CE /* DTTextAttachment.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - C6E8E09246A2749A956187B4 /* DTCoreGraphicsUtils.m in Sources */ = {isa = PBXBuildFile; fileRef = ECBCCCD797D5A2DC1FEF0C9E /* DTCoreGraphicsUtils.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - C7012A0C970F247FA61DAB11 /* SDWebImagePrefetcher.h in Headers */ = {isa = PBXBuildFile; fileRef = 0FE4C73D317A76FA9C7AE4B2 /* SDWebImagePrefetcher.h */; }; - C8101DF5EB0D1F6C7CB8E527 /* AFHTTPSessionManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 4F7C8832258AE8D64AD6EB22 /* AFHTTPSessionManager.h */; }; - C85DA5C7C81D45D0D891C657 /* NSCoder+DTCompatibility.h in Headers */ = {isa = PBXBuildFile; fileRef = D78D447FDC3C650ACDBF8768 /* NSCoder+DTCompatibility.h */; }; - C8AD6D29FA096FD12F747DDC /* NSAttributedString+SmallCaps.m in Sources */ = {isa = PBXBuildFile; fileRef = D982A5993F423F2602770DD7 /* NSAttributedString+SmallCaps.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - C8EC2777DAF6CBD59342E191 /* NSURL+DTComparing.h in Headers */ = {isa = PBXBuildFile; fileRef = 2CF9B41C27A9903229B4D678 /* NSURL+DTComparing.h */; }; - CAF5189BCDA0A6BBE9B232F4 /* Pods-SBJson-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 8DB836771DC16F4553F6187C /* Pods-SBJson-dummy.m */; }; - CB679A67581D7F5E8E844983 /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 20C1566CF6ACC33C01D5FD71 /* QuartzCore.framework */; }; - CBBBBF0C2A6E70025BEC8C04 /* UIButton+AFNetworking.h in Headers */ = {isa = PBXBuildFile; fileRef = 799A3F011EE9572BE76485F5 /* UIButton+AFNetworking.h */; }; - CBD0AA6E6D10C4235B9AE15C /* NSMutableString+HTML.h in Headers */ = {isa = PBXBuildFile; fileRef = A7DD0CD7ACA9C39AC1571612 /* NSMutableString+HTML.h */; }; - CC05D3F5473B93B70829B099 /* NSScanner+HTML.m in Sources */ = {isa = PBXBuildFile; fileRef = 3EDF560E4F5DC163CFD3BCD3 /* NSScanner+HTML.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - CD9837AE41A628CDF013036D /* SDWebImageOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = 64BD8CA15822F6A5D7114EE5 /* SDWebImageOperation.h */; }; - CFDEA7BADEE329C1A1A1EBB0 /* NSCharacterSet+HTML.m in Sources */ = {isa = PBXBuildFile; fileRef = CA3FD3F948E17C33EBE4FEEA /* NSCharacterSet+HTML.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - D03BF1D90B0CF2294761BE2E /* UIImageView+HighlightedWebCache.h in Headers */ = {isa = PBXBuildFile; fileRef = 26C9F48A9F0BC01C9500E750 /* UIImageView+HighlightedWebCache.h */; }; - D0C42B5BF5A6FA191E4C5E9A /* DTCoreTextFontCollection.h in Headers */ = {isa = PBXBuildFile; fileRef = 0A482D8F45EBE17D716551A2 /* DTCoreTextFontCollection.h */; }; - D0E72496EE93035611EE166A /* ImageIO.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 75CADB59E864B3C4B66EE1C2 /* ImageIO.framework */; }; - D1513F5C50DC7A175A2469CE /* NSString+HTML.h in Headers */ = {isa = PBXBuildFile; fileRef = CC9008DF746F6AE684082BCB /* NSString+HTML.h */; }; - D1B7A9D9D013845DDDE157AF /* NSError+MTLModelException.m in Sources */ = {isa = PBXBuildFile; fileRef = 3E9CAEF7849C7310918D8E32 /* NSError+MTLModelException.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - D1F439C75EC1CFFF9A2DD88D /* DTListItemHTMLElement.m in Sources */ = {isa = PBXBuildFile; fileRef = 0414DCA4C8A0D9FEFA8D0CB2 /* DTListItemHTMLElement.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - D2ED567FF654C0C51AF05599 /* AFURLSessionManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 7C0CF15C9EC35C2E7049DE73 /* AFURLSessionManager.h */; }; - D38EB84DF2438FE89F1DDE05 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9DD9C5A817433D789365FBBE /* Foundation.framework */; }; - D3A3C2E147CEEFBB7FEB74EF /* DTHTMLParser.m in Sources */ = {isa = PBXBuildFile; fileRef = 54154F8BD9FC16F347D72760 /* DTHTMLParser.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - D4A103D081F2189CBCC9AA77 /* UIProgressView+AFNetworking.h in Headers */ = {isa = PBXBuildFile; fileRef = 11123DE0038FC1BD0EB81C7B /* UIProgressView+AFNetworking.h */; }; - D536F373B3F30C87AEFC268D /* UIImage+GIF.m in Sources */ = {isa = PBXBuildFile; fileRef = 53816A84E2AE1459E9514BC5 /* UIImage+GIF.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - D5F1C7ECCF73943D6CA58CD6 /* UIKit+AFNetworking.h in Headers */ = {isa = PBXBuildFile; fileRef = 365283556A4FFE038B8368A7 /* UIKit+AFNetworking.h */; }; - D67BEA5E08AF4AD5987737D4 /* NSMutableArray+DTMoving.h in Headers */ = {isa = PBXBuildFile; fileRef = 38824C80AA03F622FF5609CD /* NSMutableArray+DTMoving.h */; }; - D80BE4E29F69553549A0713E /* Pods-DTCoreText-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = F114083C13D15B1EB627A350 /* Pods-DTCoreText-dummy.m */; }; - D860516C72317BD81E11CEB5 /* DTBlockFunctions.m in Sources */ = {isa = PBXBuildFile; fileRef = 811C72238540E10D821E509F /* DTBlockFunctions.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - D8BF1DF7C130E466A3D81125 /* DTCoreTextLayoutFrame.h in Headers */ = {isa = PBXBuildFile; fileRef = 787874207266EB6FAABD051A /* DTCoreTextLayoutFrame.h */; }; - D9A42AA8AC78B29F5909F2EF /* AFHTTPRequestOperationManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 5A049A3C50CE466C4E012A2E /* AFHTTPRequestOperationManager.m */; }; - D9AA4784C032E0D998543045 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9DD9C5A817433D789365FBBE /* Foundation.framework */; }; - D9B241CC9D4C1902E629A74C /* Security.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 55E04A8B77AF2CE09FB706A1 /* Security.framework */; }; - DAB2571C793D060D2245BA6D /* DTListItemHTMLElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 7759495D676C2716B5C752A2 /* DTListItemHTMLElement.h */; }; - DC4D77D8D89DD39056EDF450 /* EXTRuntimeExtensions.h in Headers */ = {isa = PBXBuildFile; fileRef = 2AEE9E5C80C90AF637A41B1D /* EXTRuntimeExtensions.h */; }; - DC639029D855700349F85E09 /* AFURLRequestSerialization.m in Sources */ = {isa = PBXBuildFile; fileRef = 337FFFD4E19E5FEE3B22903C /* AFURLRequestSerialization.m */; }; - DE032459E92803F21DAF6177 /* DTHTMLWriter.m in Sources */ = {isa = PBXBuildFile; fileRef = 824F3205D3AFC48DF86294BD /* DTHTMLWriter.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - DE1BFFAE508A2E2B26A7BE09 /* DTCoreTextFontDescriptor.m in Sources */ = {isa = PBXBuildFile; fileRef = 09E8DECB7BF75BA0244B2071 /* DTCoreTextFontDescriptor.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - DE6D56467B4F6118F21DCBB7 /* DTStylesheetHTMLElement.m in Sources */ = {isa = PBXBuildFile; fileRef = 3E978A5700527A930D7D1B6C /* DTStylesheetHTMLElement.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - DECFDFCCAC554EAE56A2A9C2 /* UIApplication+DTNetworkActivity.m in Sources */ = {isa = PBXBuildFile; fileRef = AE00973AB256DF3A0D0BA60F /* UIApplication+DTNetworkActivity.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - DEFBA23CF6F4EF128E90E531 /* SDWebImageCompat.m in Sources */ = {isa = PBXBuildFile; fileRef = 2089825488BA852B53109B98 /* SDWebImageCompat.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - E074600F4370E1104CD8D06F /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9DD9C5A817433D789365FBBE /* Foundation.framework */; }; - E118C1A6B57D45A3566D2579 /* NSObject+MTLComparisonAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = 8312AECB034C2BC0914BFAAF /* NSObject+MTLComparisonAdditions.h */; }; - E169462BDEA825EC2FFA2818 /* DTFoundationConstants.m in Sources */ = {isa = PBXBuildFile; fileRef = 1B6C1077FF5B5CE830E38ED8 /* DTFoundationConstants.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - E1EF224D6F3F7C9ECD7A0354 /* SBJson4StreamTokeniser.h in Headers */ = {isa = PBXBuildFile; fileRef = 6F6BBE8AF6052FBE8F7598DD /* SBJson4StreamTokeniser.h */; }; - E22A0D18EFBF2CF39F5B261F /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9DD9C5A817433D789365FBBE /* Foundation.framework */; }; - E41FB029EF2930643C3DD2F5 /* DTColor+Compatibility.h in Headers */ = {isa = PBXBuildFile; fileRef = 5A0F5FB33E256EFCE938303C /* DTColor+Compatibility.h */; }; - E4A708ED5E6882982158D569 /* SecureUDID.m in Sources */ = {isa = PBXBuildFile; fileRef = 61383BAC381EA9F53764205F /* SecureUDID.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; - E67300C88742A4B681315996 /* ImageIO.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 75CADB59E864B3C4B66EE1C2 /* ImageIO.framework */; }; - E708A811779C19D6AAA55A8E /* NSString+DTFormatNumbers.h in Headers */ = {isa = PBXBuildFile; fileRef = F9F7F21660EEA731250022FB /* NSString+DTFormatNumbers.h */; }; - E7291F024C531A2A9C013429 /* DTLazyImageView.m in Sources */ = {isa = PBXBuildFile; fileRef = 37CAD4D7A0AEA3B3C94B73BE /* DTLazyImageView.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - E731054ECE70017FBA55AA43 /* UIApplication+DTNetworkActivity.h in Headers */ = {isa = PBXBuildFile; fileRef = A4476FAA3F466E24375C066C /* UIApplication+DTNetworkActivity.h */; }; - E732DB06754EA53254B94735 /* DTHTMLAttributedStringBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = 319687905BA188E79179D100 /* DTHTMLAttributedStringBuilder.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - E82B8C9DE1D60F403B63D8FE /* MBProgressHUD.m in Sources */ = {isa = PBXBuildFile; fileRef = 28542C81679EC1F5BE13B85D /* MBProgressHUD.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - E8A28A4DFDA1422FD74336B6 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9DD9C5A817433D789365FBBE /* Foundation.framework */; }; - E980727C56C02EF4FD745263 /* DTWebVideoView.m in Sources */ = {isa = PBXBuildFile; fileRef = AF72C372F5483D431A4FF1A7 /* DTWebVideoView.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - EA09C1BD4F83E0CFE02B214C /* DTActivityTitleView.h in Headers */ = {isa = PBXBuildFile; fileRef = 98A1A4FA156A15C63ED19D69 /* DTActivityTitleView.h */; }; - ED1F77755C992D872C44378A /* AFNetworkReachabilityManager.h in Headers */ = {isa = PBXBuildFile; fileRef = FCFD752A2ADB6A2F75E062F9 /* AFNetworkReachabilityManager.h */; }; - ED603858C05FB7A9F4C8A998 /* AFNetworkActivityIndicatorManager.m in Sources */ = {isa = PBXBuildFile; fileRef = BAD193C4FADB5899C6C15C32 /* AFNetworkActivityIndicatorManager.m */; }; - EDB4EAEA8C8CA7582BE6524F /* DTCoreTextLayoutLine.m in Sources */ = {isa = PBXBuildFile; fileRef = 6FCD29A7ED59ACB691B908DD /* DTCoreTextLayoutLine.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - EDCDAD0297C93F420DB0A137 /* SBJson4StreamWriter.m in Sources */ = {isa = PBXBuildFile; fileRef = A652D0BB9B4989A790D1C56C /* SBJson4StreamWriter.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - EE3D8069B5FFFB74BDBDE5A6 /* Reachability.m in Sources */ = {isa = PBXBuildFile; fileRef = A5204F4E2CF3C362FF72EF76 /* Reachability.m */; }; - EF0B1DCEC8F2C6569C9E2793 /* DTCSSListStyle.m in Sources */ = {isa = PBXBuildFile; fileRef = 910112F4F3EB875F4AA0D908 /* DTCSSListStyle.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - EF51ED77B13ABAA7CB745CFA /* MJRefreshComponent.m in Sources */ = {isa = PBXBuildFile; fileRef = A3A3790BFF503435831271AC /* MJRefreshComponent.m */; }; - EF56D323C7DE78EA9D735BE2 /* NSString+CSS.m in Sources */ = {isa = PBXBuildFile; fileRef = 234F1B433F201823EDFA1E6E /* NSString+CSS.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - EF6A510848C75360AF7E2C2E /* EXTKeyPathCoding.h in Headers */ = {isa = PBXBuildFile; fileRef = E682227BB5148A457619A3B8 /* EXTKeyPathCoding.h */; }; - F0CA0C18E7FB5C661C72F124 /* metamacros.h in Headers */ = {isa = PBXBuildFile; fileRef = 286208A4C4A2A5532D103394 /* metamacros.h */; }; - F24C8AF54568D6BEDD06A674 /* MJRefreshHeader.m in Sources */ = {isa = PBXBuildFile; fileRef = 1D67FE333691046E4CB8302C /* MJRefreshHeader.m */; }; - F2A0662D1C975B86473CABD8 /* MJRefreshLegendFooter.h in Headers */ = {isa = PBXBuildFile; fileRef = 3F785BCBA9B7F64378E76278 /* MJRefreshLegendFooter.h */; }; - F2A40A1202DB1216C90862A4 /* UIImage+DTFoundation.m in Sources */ = {isa = PBXBuildFile; fileRef = 016554F1D5DBD110C0A9FAF8 /* UIImage+DTFoundation.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - F3E77CD28645D885900F45DC /* NSMutableArray+DTMoving.m in Sources */ = {isa = PBXBuildFile; fileRef = 0FFDB42E147E3F4AC3BD515A /* NSMutableArray+DTMoving.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - F434831BC75495A6AFF126D7 /* DTHTMLParserTextNode.h in Headers */ = {isa = PBXBuildFile; fileRef = D200097579CFD9EDF1B9A1B3 /* DTHTMLParserTextNode.h */; }; - F48F5AC8407EDE9DDB80D39D /* DTCoreTextFunctions.h in Headers */ = {isa = PBXBuildFile; fileRef = DDB5573320075200698C87D5 /* DTCoreTextFunctions.h */; }; - F541704588D0C5A8F61476F5 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9DD9C5A817433D789365FBBE /* Foundation.framework */; }; - F56A55B38E7F033348C55957 /* SDWebImageDownloaderOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = 39293F16EE02408BB628602B /* SDWebImageDownloaderOperation.h */; }; - F5C8F6274B4C9131CFAA827F /* SDWebImageDownloaderOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = 92DD137860918A2914D09FBE /* SDWebImageDownloaderOperation.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - F6060AD3D3D289C8F5E2E1E1 /* MTLModel+NSCoding.m in Sources */ = {isa = PBXBuildFile; fileRef = FD5081DE159AF8A6D580542B /* MTLModel+NSCoding.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - F6E1E04DED7418AC39859D77 /* DTLinkButton.h in Headers */ = {isa = PBXBuildFile; fileRef = 843417D7C9BE78F634ED964E /* DTLinkButton.h */; }; - F7A4BFA846605A22CB40F48A /* EXTRuntimeExtensions.m in Sources */ = {isa = PBXBuildFile; fileRef = 0338FF159AEAE4FBAB5EA8DE /* EXTRuntimeExtensions.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - F85CE8E45976C128A2058567 /* AFHTTPRequestOperationManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 46BBD8CD798A9C6A959B2F9C /* AFHTTPRequestOperationManager.h */; }; - F8931DEA95BB8BC72F432430 /* DTBreakHTMLElement.m in Sources */ = {isa = PBXBuildFile; fileRef = A97975ECB669CF8B1BD1619F /* DTBreakHTMLElement.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - F91E1D6B1784B35C920BAD67 /* UIFont+DTCoreText.m in Sources */ = {isa = PBXBuildFile; fileRef = E5A4E4DF071DF4FCF2C16428 /* UIFont+DTCoreText.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - F9D9AFBB20E3D04BA9F40590 /* MTLManagedObjectAdapter.m in Sources */ = {isa = PBXBuildFile; fileRef = 19360A8F7BDBEE56A4499368 /* MTLManagedObjectAdapter.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - FA3D4208009A96348BA934ED /* SBJson4Parser.m in Sources */ = {isa = PBXBuildFile; fileRef = 10FEB6C385D0B97A813899C3 /* SBJson4Parser.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - FA624995017C8D9B99980ECD /* UIRefreshControl+AFNetworking.m in Sources */ = {isa = PBXBuildFile; fileRef = 9A0DCAD1855DE063C4F9EC83 /* UIRefreshControl+AFNetworking.m */; }; - FAEF7FA14CA99039F2C19349 /* NSArray+MTLManipulationAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = D82372A59C0AC80663B90CED /* NSArray+MTLManipulationAdditions.h */; }; - FB0C39EACA7A7231B83897E1 /* UIWebView+DTFoundation.h in Headers */ = {isa = PBXBuildFile; fileRef = 3F710767E010692A479E81A8 /* UIWebView+DTFoundation.h */; }; - FB997B55BB092421A61123C2 /* DTCoreTextLayoutFrameAccessibilityElementGenerator.m in Sources */ = {isa = PBXBuildFile; fileRef = BFADDF1EED8DBE2B4E2421F9 /* DTCoreTextLayoutFrameAccessibilityElementGenerator.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - FC0C6AA4307A7E5DB2E0E360 /* Pods-Reachability-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 2CFB20E08EB3F41ABA5F07D0 /* Pods-Reachability-dummy.m */; }; - FC3A73111B3A0E2F3FD1DEB7 /* NSData+ImageContentType.h in Headers */ = {isa = PBXBuildFile; fileRef = 5BFCE43BFE1BE917E23BA9CE /* NSData+ImageContentType.h */; }; - FC7E0A71D43D6741387A9C00 /* MJRefreshGifHeader.h in Headers */ = {isa = PBXBuildFile; fileRef = FA171C7D85D5C1A68B9F4FF4 /* MJRefreshGifHeader.h */; }; - FCC315EC9B022BB58231B39D /* NSArray+MTLManipulationAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = AC65D72031F0470A4D32818C /* NSArray+MTLManipulationAdditions.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - FD8F1DFEE9A6D874F7BA6AB6 /* AFURLRequestSerialization.h in Headers */ = {isa = PBXBuildFile; fileRef = A8F04169908591C458261427 /* AFURLRequestSerialization.h */; }; - FF8CB0ABA29672C1B2634C2F /* SDWebImageDecoder.m in Sources */ = {isa = PBXBuildFile; fileRef = 4970587FBCB99927707153C7 /* SDWebImageDecoder.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - FFB6EEBAEACCD9DC9896A0DC /* SBJson4Writer.h in Headers */ = {isa = PBXBuildFile; fileRef = 10E13906FA92C4B9CF1CEA8B /* SBJson4Writer.h */; }; + 002EBA8BE55F2A8CDA444C67 /* Godzippa.h in Headers */ = {isa = PBXBuildFile; fileRef = EAEC32D466FD74E5211E7C0B /* Godzippa.h */; }; + 01A2575BB0563E5C56ED34BC /* SBJson4StreamParserState.m in Sources */ = {isa = PBXBuildFile; fileRef = 3B55122264A08E723B1D3514 /* SBJson4StreamParserState.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 020C87160EC3157CF89FEFBD /* NSAttributedString+DTDebug.m in Sources */ = {isa = PBXBuildFile; fileRef = C80738193F3FFA54B568F18D /* NSAttributedString+DTDebug.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 0276C8068BEB7964A69886F6 /* SDWebImageDecoder.m in Sources */ = {isa = PBXBuildFile; fileRef = B1D5F99191F63391339A819F /* SDWebImageDecoder.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 0286EA170A7F9A2EE1543958 /* SBJson4StreamTokeniser.h in Headers */ = {isa = PBXBuildFile; fileRef = 57075E9FBD51E50A8FA7D702 /* SBJson4StreamTokeniser.h */; }; + 02955D91F3D762730E3A87E6 /* UIImage+GIF.m in Sources */ = {isa = PBXBuildFile; fileRef = 1539845BC83391CEB1DDB5A9 /* UIImage+GIF.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 034DFE81051FE800FD5F607E /* NSObject+MTLComparisonAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = 412DCA2E7BDED0F2C9151D8F /* NSObject+MTLComparisonAdditions.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 0396B5FD44AFB4580FBC0F3C /* MTLReflection.m in Sources */ = {isa = PBXBuildFile; fileRef = 1E97809E14A070272AF13164 /* MTLReflection.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 03AB500AC6C2F8A6AC2784C3 /* DTHTMLParser.m in Sources */ = {isa = PBXBuildFile; fileRef = 4DF3DFE61F66277DF46A9CD2 /* DTHTMLParser.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 03E37CE5760F9939D36E28AB /* MTLJSONAdapter.h in Headers */ = {isa = PBXBuildFile; fileRef = F28A68EBEA1FF22A1ED6BCCD /* MTLJSONAdapter.h */; }; + 05601DEC5254D53357DE039F /* MJRefreshGifFooter.h in Headers */ = {isa = PBXBuildFile; fileRef = A13AAF3FCC06D3FF552C9F3C /* MJRefreshGifFooter.h */; }; + 05D6942AE8DEB8366FDB3DC1 /* DTLinkButton.h in Headers */ = {isa = PBXBuildFile; fileRef = 829BBAE85BD1BAE3D031802F /* DTLinkButton.h */; }; + 067C00B6D9216B28AB58DBC7 /* Pods-EGOCache-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 3A430325C1F6A5F87C55A13A /* Pods-EGOCache-dummy.m */; }; + 06AFCE725C3A2C601D526337 /* DTCoreTextLayoutFrame.m in Sources */ = {isa = PBXBuildFile; fileRef = FBA5CE78D030DFA3169DF5AC /* DTCoreTextLayoutFrame.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 0756462E168ADA67854A26DB /* DTCoreTextFontCollection.m in Sources */ = {isa = PBXBuildFile; fileRef = C8E2A2D7719824C56D23A3D2 /* DTCoreTextFontCollection.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 091E99A9CF9B281934600FEC /* UIImage+MultiFormat.h in Headers */ = {isa = PBXBuildFile; fileRef = 23D4AAB2C2B27F6EE8C8DE10 /* UIImage+MultiFormat.h */; }; + 0A0E83B9D48E088A6DB1D31B /* AFURLSessionManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 9BBC57F896F66747AF345112 /* AFURLSessionManager.h */; }; + 0A3BA305E0CC51463BCAE107 /* UIWebView+DTFoundation.h in Headers */ = {isa = PBXBuildFile; fileRef = 4995FFF64F2BA9FC55BA8D2D /* UIWebView+DTFoundation.h */; }; + 0B193E45A26A874B0AB7AF67 /* NSIndexPath+PSTCollectionViewAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = 98355F8523C217A4BC3F7804 /* NSIndexPath+PSTCollectionViewAdditions.h */; }; + 0B571141D6B9AE9909E523A5 /* SDWebImageManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 8439C84DAB4F2CE7CF4FBAF2 /* SDWebImageManager.h */; }; + 0B5D8811CB1D9571801ABB01 /* UIApplication+DTNetworkActivity.m in Sources */ = {isa = PBXBuildFile; fileRef = 4B63EC260A05DFC4D399F1AB /* UIApplication+DTNetworkActivity.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 0BB84D8DC28B0132AE20C5C0 /* NSData+DTCrypto.m in Sources */ = {isa = PBXBuildFile; fileRef = 804D22BA9FC3EF1F3C79EB25 /* NSData+DTCrypto.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 0CE16C7FF17EF4CBA8F02E3D /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 28996023C44AEDBF2DF289F3 /* QuartzCore.framework */; }; + 0CED5FFC23E5F7C799F1BBDF /* EXTScope.m in Sources */ = {isa = PBXBuildFile; fileRef = 0260A32C9F82314300062B7E /* EXTScope.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 0E0258225E9A3447128FE4EA /* NSString+Paragraphs.m in Sources */ = {isa = PBXBuildFile; fileRef = AB4B3D24CBA78B8F6EA9A4E4 /* NSString+Paragraphs.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 115BDFFDF665D9FC70598E63 /* AFHTTPSessionManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 672232F579EBAD24A042C9DB /* AFHTTPSessionManager.h */; }; + 117595C18DFB393F5658D609 /* UIProgressView+AFNetworking.h in Headers */ = {isa = PBXBuildFile; fileRef = E0EA5134749A5A4D8FB5482E /* UIProgressView+AFNetworking.h */; }; + 11D13F9B0729BC6C2F0B2AB6 /* MJRefreshLegendHeader.m in Sources */ = {isa = PBXBuildFile; fileRef = 23C455522543942330F76B21 /* MJRefreshLegendHeader.m */; }; + 121AC94E9DD4713ED397D70D /* MWCaptionView.h in Headers */ = {isa = PBXBuildFile; fileRef = 73DDAAE42102D09B42DB488F /* MWCaptionView.h */; }; + 13D3FC66D1B07302C01CD753 /* MWZoomingScrollView.h in Headers */ = {isa = PBXBuildFile; fileRef = EB5E96D395A883CEB6B79051 /* MWZoomingScrollView.h */; }; + 14B9161397C7EAD4D81AE21A /* PSTCollectionViewData.h in Headers */ = {isa = PBXBuildFile; fileRef = C4D6C6EAA66A48B7803C9B59 /* PSTCollectionViewData.h */; }; + 15C2EB4A5493E74E34D469C6 /* STableViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 92155185E5912BF89731A502 /* STableViewController.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; + 168F51D770168F43238D7682 /* Pods-SDWebImage-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 1ECD5EDC3483D2B63C2D7B30 /* Pods-SDWebImage-dummy.m */; }; + 196601985F509E15C4E5E3B1 /* DTHTMLParserTextNode.h in Headers */ = {isa = PBXBuildFile; fileRef = 6B120CD05D881BD7E2795568 /* DTHTMLParserTextNode.h */; }; + 19A4A74B972EF132B8020020 /* Pods-SecureUDID-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = B65AE780350C25F0228C69E3 /* Pods-SecureUDID-dummy.m */; }; + 1AA44C0FBF0825A67FBDC6A1 /* NSDictionary+DTError.h in Headers */ = {isa = PBXBuildFile; fileRef = 19D812DDE49E62CF0091341E /* NSDictionary+DTError.h */; }; + 1B39B607E3D12F2542532902 /* Pods-DACircularProgress-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = C1455DDDD97A23A091782898 /* Pods-DACircularProgress-dummy.m */; }; + 1BDF972078061DBD06D71ECF /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F3DF9A726280BC12EC3DB192 /* CoreGraphics.framework */; }; + 1C0CC4188DD664C6D4BD3D01 /* SDWebImageCompat.m in Sources */ = {isa = PBXBuildFile; fileRef = 3D339B0E71A8442181019636 /* SDWebImageCompat.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 1D4D7C99B4DE272DC10354CD /* PSTCollectionViewFlowLayout.h in Headers */ = {isa = PBXBuildFile; fileRef = 652C5F033E0EAAC5B4106B15 /* PSTCollectionViewFlowLayout.h */; }; + 1D59F52CFE5B411469FE6F0B /* NSString+DTFormatNumbers.h in Headers */ = {isa = PBXBuildFile; fileRef = C2F1439F52961691B236204D /* NSString+DTFormatNumbers.h */; }; + 1D5A7E5D16B00B048BAFF788 /* NSFileManager+Godzippa.m in Sources */ = {isa = PBXBuildFile; fileRef = 62A191863839321A1EFDBDDD /* NSFileManager+Godzippa.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 1D633B94612385CA216115E7 /* UIImageView+AFNetworking.h in Headers */ = {isa = PBXBuildFile; fileRef = 5F8636DA14445D8908BCA45F /* UIImageView+AFNetworking.h */; }; + 1EFAC081435B9BEE9EA28C89 /* ImageIO.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8F49DC29AE1663866C0639E5 /* ImageIO.framework */; }; + 1F942C2D96714E9C6A4688EB /* DTCoreTextFontDescriptor.h in Headers */ = {isa = PBXBuildFile; fileRef = 29BDFECB9C814B652C55CAE3 /* DTCoreTextFontDescriptor.h */; }; + 2096CDB547026402D7796F37 /* DTHTMLAttributedStringBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = 2527254E1C9A4D37868A4B20 /* DTHTMLAttributedStringBuilder.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 221BF983B711320BE1149FBB /* AFHTTPRequestOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = 5A65DE7D5F8F6CD991923C93 /* AFHTTPRequestOperation.h */; }; + 223F4A8A89E9C73FB4F54189 /* MWCaptionView.m in Sources */ = {isa = PBXBuildFile; fileRef = EF15C58E886F11F5B30D4C67 /* MWCaptionView.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 246FE24B97BBCD790592D6E9 /* MJRefreshGifHeader.h in Headers */ = {isa = PBXBuildFile; fileRef = BC34D16392969478DD635E71 /* MJRefreshGifHeader.h */; }; + 249D54E19C3F9C01397C9451 /* MJRefreshHeader.m in Sources */ = {isa = PBXBuildFile; fileRef = 8E853B1B4C8751C80812E0EA /* MJRefreshHeader.m */; }; + 24FCE1072FD2A60153C036A8 /* DTBase64Coding.m in Sources */ = {isa = PBXBuildFile; fileRef = C34AE8F0F62BEEE4F3F5992B /* DTBase64Coding.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 2548220F0E58350AE44B1A8D /* DTColor+Compatibility.h in Headers */ = {isa = PBXBuildFile; fileRef = ED8AA524D60B4DCBD6856A7B /* DTColor+Compatibility.h */; }; + 25678E7EA09A08AB3AFE9E0E /* NSDictionary+DTError.m in Sources */ = {isa = PBXBuildFile; fileRef = 00A1C64C5E2ACEA1D852C0D3 /* NSDictionary+DTError.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 25C8A5BD5BEB360C1D1F28BB /* DTVideoTextAttachment.h in Headers */ = {isa = PBXBuildFile; fileRef = 1A991EA211E146D0D56FEAC7 /* DTVideoTextAttachment.h */; }; + 2690EE58BC558C6DADB6270B /* MWGridViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = 14D3263619D19707B51CFF0C /* MWGridViewController.h */; }; + 26A3BC61BC3739BEDDBA145C /* MTLModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 893F618070C2E6E210C9AED9 /* MTLModel.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 27D5FC0B12FC19C3F9A88C37 /* PSTCollectionViewCommon.h in Headers */ = {isa = PBXBuildFile; fileRef = 4CA085565AF29A6635D7524A /* PSTCollectionViewCommon.h */; }; + 2870C09F762AA3DB30D86A7E /* NSData+ImageContentType.m in Sources */ = {isa = PBXBuildFile; fileRef = E3D5B29091B13DA0F6B8C1A1 /* NSData+ImageContentType.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 29193E42B675EEF08E0D9588 /* SDWebImageDownloader.h in Headers */ = {isa = PBXBuildFile; fileRef = 284F4DCB2777C6DD6FFBAB85 /* SDWebImageDownloader.h */; }; + 299480403489F2F31FEAAFA1 /* DTVersion.m in Sources */ = {isa = PBXBuildFile; fileRef = 9DBEACC772CDCFCF19E23E0E /* DTVersion.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 2AA464468AAE2A9BD54402B0 /* DTObjectTextAttachment.h in Headers */ = {isa = PBXBuildFile; fileRef = 3F631D09C0546512F381FA93 /* DTObjectTextAttachment.h */; }; + 2AD71187E46030D102B771AD /* Pods-DTFoundation-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = C06E0283B6A8E5B652E3612A /* Pods-DTFoundation-dummy.m */; }; + 2AE9C7CFBC4C6E6791059DBD /* PSTCollectionViewItemKey.h in Headers */ = {isa = PBXBuildFile; fileRef = 67048FBA5C94CC914BF183E7 /* PSTCollectionViewItemKey.h */; }; + 2BCFCD9BC243CAE3875F2C09 /* DTTextAttachmentHTMLElement.m in Sources */ = {isa = PBXBuildFile; fileRef = 25DCF52C496FAF18970506A5 /* DTTextAttachmentHTMLElement.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 2C8693F1862CA229708FD099 /* DTImageTextAttachment.h in Headers */ = {isa = PBXBuildFile; fileRef = 6B68E96D2A286CBC679C6DBC /* DTImageTextAttachment.h */; }; + 2CC726C0DAF27E9186824BAB /* MJRefreshFooter.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E1CCB18B19516DE1847483C /* MJRefreshFooter.m */; }; + 2DD0850ECE920581061E1BE7 /* NSString+DTURLEncoding.h in Headers */ = {isa = PBXBuildFile; fileRef = 5BE65C02EB14BDDB6079BAE4 /* NSString+DTURLEncoding.h */; }; + 2DE45D43096FA45BA08B0181 /* NSMutableString+HTML.h in Headers */ = {isa = PBXBuildFile; fileRef = 34ABA48F54F3E0BDEC396D5E /* NSMutableString+HTML.h */; }; + 2FAEE1959255C43B33A10169 /* DTLog.m in Sources */ = {isa = PBXBuildFile; fileRef = A5B0153F85EF27C708CECEF5 /* DTLog.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 316DD1BF57B73B300891DCF9 /* DTImage+HTML.m in Sources */ = {isa = PBXBuildFile; fileRef = 4BCF9A47FE188CA09F42CA3D /* DTImage+HTML.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 318EA73C445FC562A1798F41 /* DACircularProgressView.m in Sources */ = {isa = PBXBuildFile; fileRef = F972322C028021FB0AF95B7F /* DACircularProgressView.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 31CD40198A986D2E9C0B35EE /* EGOCache.h in Headers */ = {isa = PBXBuildFile; fileRef = 2A28A0F8FAE772BA5101C496 /* EGOCache.h */; }; + 31D252B556F818FDCEEF1938 /* DTIframeTextAttachment.h in Headers */ = {isa = PBXBuildFile; fileRef = 31DD4A6490B6AB93A5D50467 /* DTIframeTextAttachment.h */; }; + 32476845937493D7782E5651 /* DTTiledLayerWithoutFade.m in Sources */ = {isa = PBXBuildFile; fileRef = 0D10A5C0E88F1E5712BD90D3 /* DTTiledLayerWithoutFade.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 32628604E2894E128642EE98 /* NSAttributedStringRunDelegates.m in Sources */ = {isa = PBXBuildFile; fileRef = FB53F65CA41D37CE6BC1BBD4 /* NSAttributedStringRunDelegates.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 327D915F4012BA77A8F1C7E4 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 840DB8F5749C3CF76AC9D137 /* Foundation.framework */; }; + 329584B8F7139EA8570A8249 /* AFURLRequestSerialization.h in Headers */ = {isa = PBXBuildFile; fileRef = C710346A77C3D428A08DBCB0 /* AFURLRequestSerialization.h */; }; + 33A25CE2AC0B58A949874B20 /* SBJson4StreamParser.h in Headers */ = {isa = PBXBuildFile; fileRef = B8E794A68C4D79D76021DF88 /* SBJson4StreamParser.h */; }; + 33DC6DA7F54F8F7DF3225553 /* PSTCollectionViewItemKey.m in Sources */ = {isa = PBXBuildFile; fileRef = 47007B1E20B8AA8677B79FFD /* PSTCollectionViewItemKey.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 351C6C28907D530ED829133D /* UIImageView+HighlightedWebCache.m in Sources */ = {isa = PBXBuildFile; fileRef = 87E0C9F5D6C764726AF7F7AA /* UIImageView+HighlightedWebCache.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 3571D5D3C3062F029A65BF71 /* DTColorFunctions.h in Headers */ = {isa = PBXBuildFile; fileRef = 6BEE063E8ED7E4937C04DA32 /* DTColorFunctions.h */; }; + 363E1A0FA0B27721606DE952 /* EGOCache.m in Sources */ = {isa = PBXBuildFile; fileRef = AA758ABFB27D4AC27007C32F /* EGOCache.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 365484596A8C9C8DE67D56F3 /* NSURL+DTAppLinks.m in Sources */ = {isa = PBXBuildFile; fileRef = E5D412FF2D36AABC06E965C4 /* NSURL+DTAppLinks.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 3660C01AD8D67A4377942AFE /* MWTapDetectingView.h in Headers */ = {isa = PBXBuildFile; fileRef = 22D12AF5F6823D3192CBCCA6 /* MWTapDetectingView.h */; }; + 36B512BA30566DFA2140A879 /* NSData+ImageContentType.h in Headers */ = {isa = PBXBuildFile; fileRef = 438BCA86F07872AFA75E215D /* NSData+ImageContentType.h */; }; + 36B69AE44698E683119C9629 /* DTAttributedTextContentView.h in Headers */ = {isa = PBXBuildFile; fileRef = 36A25141DD8730D4A34E9232 /* DTAttributedTextContentView.h */; }; + 36BDDB90F0FFA80F14910F9A /* NSString+Paragraphs.h in Headers */ = {isa = PBXBuildFile; fileRef = 19C21F30C322ED33490255DE /* NSString+Paragraphs.h */; }; + 36FBA2CEB43753E25C93C3DB /* MJRefreshComponent.h in Headers */ = {isa = PBXBuildFile; fileRef = 89A4DAE02361602398EDAE02 /* MJRefreshComponent.h */; }; + 371E9B99642B10F8F471E044 /* PSTGridLayoutSection.h in Headers */ = {isa = PBXBuildFile; fileRef = CAEB71EF71AE6C94B9B7F50B /* PSTGridLayoutSection.h */; }; + 3800AAF46AF7FF0CA0460351 /* DTLinkButton.m in Sources */ = {isa = PBXBuildFile; fileRef = 088CAD50985EA7FBB7C2BA07 /* DTLinkButton.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 385D44DC7FCD44F257A489CE /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 28996023C44AEDBF2DF289F3 /* QuartzCore.framework */; }; + 3862C6BB36B33DF39687C1D7 /* DTSmartPagingScrollView.h in Headers */ = {isa = PBXBuildFile; fileRef = 0C21ADE502662C9474628A52 /* DTSmartPagingScrollView.h */; }; + 3870F7E9B91AF7C8A6958B25 /* MessageUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2AC64D336BCA6D2EE4072DB9 /* MessageUI.framework */; }; + 39AF55564A0CAF4176CCAAA8 /* SBJson4StreamWriterState.m in Sources */ = {isa = PBXBuildFile; fileRef = FC66DAEA97E0828FDC2EE204 /* SBJson4StreamWriterState.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 39BDC7AC099AA98A5F00517B /* DTCoreText.h in Headers */ = {isa = PBXBuildFile; fileRef = AF38302B46AF2F3E8A10B5DB /* DTCoreText.h */; }; + 3A563A0EA615BA1CBF1B5F26 /* MWPhotoProtocol.h in Headers */ = {isa = PBXBuildFile; fileRef = 85832FDFBE9A505650D93711 /* MWPhotoProtocol.h */; }; + 3B9AA063A0498F6349EE4CD4 /* DTAttributedTextContentView.m in Sources */ = {isa = PBXBuildFile; fileRef = 30010FF6484107A7FF4E4FD3 /* DTAttributedTextContentView.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 3BB7351F385667B1073C7A42 /* DTCSSStylesheet.m in Sources */ = {isa = PBXBuildFile; fileRef = A02D1EB9B1EE55417F5C18E9 /* DTCSSStylesheet.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 3BCE9CB5579AE5A2BAFB6A11 /* DTTextAttachment.h in Headers */ = {isa = PBXBuildFile; fileRef = 2B0E7FC40F6CF49A47D7C2D5 /* DTTextAttachment.h */; }; + 3C3265591FCBD7A7E6721CC9 /* NSError+MTLModelException.m in Sources */ = {isa = PBXBuildFile; fileRef = 88369D802AB4264DE7AA7627 /* NSError+MTLModelException.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 3C4B4DD8F65026A18FC04783 /* MTLModel+NSCoding.m in Sources */ = {isa = PBXBuildFile; fileRef = 94B0C075DFA12336A0866A1A /* MTLModel+NSCoding.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 3CBA729F30727B2D818966C4 /* UIView+WebCacheOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = B0D64C1E93E5B320DB304BC9 /* UIView+WebCacheOperation.h */; }; + 3E130872DB446F631E919735 /* SDWebImageManager.m in Sources */ = {isa = PBXBuildFile; fileRef = BB189CE4214B6C133422E700 /* SDWebImageManager.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 3ED4E22EF2DDBDBBDF41C7A4 /* DTCoreTextLayoutFrameAccessibilityElementGenerator.h in Headers */ = {isa = PBXBuildFile; fileRef = 63CE8E03989FF75DE3D76AB4 /* DTCoreTextLayoutFrameAccessibilityElementGenerator.h */; }; + 3EF1D06F6DE76BD90762632D /* AFNetworkReachabilityManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 9F7808BFDB77E9E05617421C /* AFNetworkReachabilityManager.h */; }; + 3FE35D8C92B0185318724E07 /* SBJson4StreamWriter.h in Headers */ = {isa = PBXBuildFile; fileRef = 0DC61F188173825DED2D2F9D /* SBJson4StreamWriter.h */; }; + 3FE97CD8B494BFE2B7D7C170 /* NSString+HTML.h in Headers */ = {isa = PBXBuildFile; fileRef = 0E78310FE33EEFE36F471255 /* NSString+HTML.h */; }; + 40565216C75840FCE73CE757 /* NSAttributedString+HTML.m in Sources */ = {isa = PBXBuildFile; fileRef = CB5C37C31875EAA0FBA33135 /* NSAttributedString+HTML.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 4087FA6F9B663446F8A96125 /* DTAnimatedGIF.h in Headers */ = {isa = PBXBuildFile; fileRef = 7C51359051D614CD33B33EDD /* DTAnimatedGIF.h */; }; + 40A6447A5505D0DBE2A9C127 /* SecureUDID.m in Sources */ = {isa = PBXBuildFile; fileRef = 92FAE51DA85633D98A202C7A /* SecureUDID.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; + 40CC390E82B904010B21341F /* DTCoreTextConstants.m in Sources */ = {isa = PBXBuildFile; fileRef = 55650CADF266B3B168F77673 /* DTCoreTextConstants.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 417EB6BBD5213EB120F49DDC /* AFURLResponseSerialization.m in Sources */ = {isa = PBXBuildFile; fileRef = 5F96DC2B68861D8F7451EEBA /* AFURLResponseSerialization.m */; }; + 41ACD9C96E5AF726F7CF3550 /* MTLValueTransformer.h in Headers */ = {isa = PBXBuildFile; fileRef = FBC3FFA76EDD721D64A45116 /* MTLValueTransformer.h */; }; + 4399C07A28CC66924F98D179 /* DTDictationPlaceholderView.m in Sources */ = {isa = PBXBuildFile; fileRef = 7150CDD7AA008C112339F701 /* DTDictationPlaceholderView.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 439E5F7BF56E3E7A94E6D070 /* DTCoreTextMacros.h in Headers */ = {isa = PBXBuildFile; fileRef = 7D6373224D691308BD41AFC9 /* DTCoreTextMacros.h */; }; + 43FA999692F97346CFB015BF /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 28996023C44AEDBF2DF289F3 /* QuartzCore.framework */; }; + 444199BE04FE1FAE7B00FAC3 /* NSString+DTFormatNumbers.m in Sources */ = {isa = PBXBuildFile; fileRef = 9717F44CED3997C5FF1DE5D8 /* NSString+DTFormatNumbers.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 44F429C26571B1F9FEC9B83E /* DTTextHTMLElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 02019007E705E56F85FB6310 /* DTTextHTMLElement.h */; }; + 4531FCB3E9DFEC3AF4A53579 /* UIFont+DTCoreText.m in Sources */ = {isa = PBXBuildFile; fileRef = 7DBB1D81A4C2805D2C7FCE14 /* UIFont+DTCoreText.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 45901E36BE9EF58EC6D2A98E /* UIImageView+WebCache.h in Headers */ = {isa = PBXBuildFile; fileRef = A232491FFB5AC420BF0A80A2 /* UIImageView+WebCache.h */; }; + 47CE11C2CB354D30E3B0EF6B /* NSString+HTML.m in Sources */ = {isa = PBXBuildFile; fileRef = EDC4BB95D1C3D0E5B736D1A7 /* NSString+HTML.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 489E037069D77E49C3A986F8 /* NSString+CSS.m in Sources */ = {isa = PBXBuildFile; fileRef = A5B1F2A62FC25726911E6378 /* NSString+CSS.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 48FF8DE7E8D775ABAC2DDED4 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 840DB8F5749C3CF76AC9D137 /* Foundation.framework */; }; + 49509B5FF706B989A9F2CA27 /* MWTapDetectingView.m in Sources */ = {isa = PBXBuildFile; fileRef = 61863E911A8FE703FBB01B1A /* MWTapDetectingView.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 49A48C4E9A5CB5C0573E29F6 /* UIRefreshControl+AFNetworking.m in Sources */ = {isa = PBXBuildFile; fileRef = 4D3969EE686560B8820C4B79 /* UIRefreshControl+AFNetworking.m */; }; + 49E65E25E37A655D1B2A2149 /* DTColor+Compatibility.m in Sources */ = {isa = PBXBuildFile; fileRef = 842DFF80188A2DC326CE5CB6 /* DTColor+Compatibility.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 4A9FF4F5890DF192268C2653 /* NSMutableAttributedString+HTML.m in Sources */ = {isa = PBXBuildFile; fileRef = 953EFA7E65537962B0AD185C /* NSMutableAttributedString+HTML.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 4BB47E5114CB87C9DA90C0EE /* NSAttributedString+DTCoreText.m in Sources */ = {isa = PBXBuildFile; fileRef = 234606703661525CCAFA494E /* NSAttributedString+DTCoreText.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 4C793E2A5F6CF472EA83D553 /* NSString+DTPaths.m in Sources */ = {isa = PBXBuildFile; fileRef = 789D4D4345E05931576418FC /* NSString+DTPaths.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 4CCEF4FF6F8F4EF74004B7CD /* NSURL+DTComparing.h in Headers */ = {isa = PBXBuildFile; fileRef = 61275FA8416613DCE16C5A59 /* NSURL+DTComparing.h */; }; + 4D4E22EF9ABF53A10208705A /* DTCoreTextLayoutLine.m in Sources */ = {isa = PBXBuildFile; fileRef = A9132D17445264B64274F066 /* DTCoreTextLayoutLine.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 4D9DEF6A14F240A57E170FE4 /* DTBase64Coding.h in Headers */ = {isa = PBXBuildFile; fileRef = 83849EF3412B1319AFD7BED0 /* DTBase64Coding.h */; }; + 4E3F48BEC0DD378B7B72F3F8 /* MediaPlayer.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FA4C7837106A8EABD827772E /* MediaPlayer.framework */; }; + 4F4DDC4D45419451B2A12C2E /* NSFileManager+Godzippa.h in Headers */ = {isa = PBXBuildFile; fileRef = AB0CE0CF97F7CFED31A721A8 /* NSFileManager+Godzippa.h */; }; + 4F543701EED5C086563440E5 /* UIActivityIndicatorView+AFNetworking.m in Sources */ = {isa = PBXBuildFile; fileRef = 59B3B20C1FA6BAC13D780551 /* UIActivityIndicatorView+AFNetworking.m */; }; + 4F7BEE5A9DBBCDEFDFE2BC99 /* DTCompatibility.h in Headers */ = {isa = PBXBuildFile; fileRef = 210B178945CD55AFC51EBE3F /* DTCompatibility.h */; }; + 4FB74AB80AF049E43996FD68 /* Reachability.h in Headers */ = {isa = PBXBuildFile; fileRef = D2834C993837078BFF56AB66 /* Reachability.h */; }; + 5002F311EB4AB7E8FB6F29B9 /* NSValueTransformer+MTLPredefinedTransformerAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = 8AC723CBF533799C5A183A66 /* NSValueTransformer+MTLPredefinedTransformerAdditions.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 500439D7202F2BD18DBE2FF0 /* NSString+DTURLEncoding.m in Sources */ = {isa = PBXBuildFile; fileRef = 602423FD27B311C6DA0FB7D3 /* NSString+DTURLEncoding.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 5166F7BBC3306B91BE64BFB5 /* NSAttributedString+DTCoreText.h in Headers */ = {isa = PBXBuildFile; fileRef = 333A8AD31C9FAE379090F4F5 /* NSAttributedString+DTCoreText.h */; }; + 52F78AE898F6BD8E9C6ED83C /* DTAttributedLabel.m in Sources */ = {isa = PBXBuildFile; fileRef = 5C848095DAF973175665F472 /* DTAttributedLabel.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 534F39BC9970B65EABFA9AA2 /* Pods-MWPhotoBrowser-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = A481E249FAFBED5D1A496EC6 /* Pods-MWPhotoBrowser-dummy.m */; }; + 535849DDFD3563AD4834CEF9 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D1548899F0E058E2CC964DF0 /* UIKit.framework */; }; + 54C0DD6F1066936ACC42CC4D /* AFURLConnectionOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = B231DFB5AE9AE94A5A311E77 /* AFURLConnectionOperation.h */; }; + 56B4B236D3884B063FD8CFC2 /* PSTGridLayoutItem.h in Headers */ = {isa = PBXBuildFile; fileRef = EFC0B81C368300CC151FDC53 /* PSTGridLayoutItem.h */; }; + 58865EBF19AD550D1B6A6C19 /* NSDictionary+MTLManipulationAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = 962F46F02DB263BC3B638EB4 /* NSDictionary+MTLManipulationAdditions.h */; }; + 59146CB6F52805903B1FA47D /* DTTextHTMLElement.m in Sources */ = {isa = PBXBuildFile; fileRef = 98E301C14830416131DC9223 /* DTTextHTMLElement.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 5A1B7168F6A2D6ED806E87F2 /* PSTCollectionView.h in Headers */ = {isa = PBXBuildFile; fileRef = 18D367094EC0AF9D94EADD89 /* PSTCollectionView.h */; }; + 5A218ED1AB25CC56FBC1CF66 /* PSTCollectionViewLayout.m in Sources */ = {isa = PBXBuildFile; fileRef = 6C57EADB16C6B35C76ABF58C /* PSTCollectionViewLayout.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 5A8447C992621323AF0B6C3B /* DTWebVideoView.h in Headers */ = {isa = PBXBuildFile; fileRef = 556EBFCC32200088DE214AD1 /* DTWebVideoView.h */; }; + 5AA8F5AF66989002E28A6D94 /* NSData+Godzippa.m in Sources */ = {isa = PBXBuildFile; fileRef = 22102AF11B8BE9029948F197 /* NSData+Godzippa.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 5B91650A9D1B41326E3AD805 /* DTPieProgressIndicator.h in Headers */ = {isa = PBXBuildFile; fileRef = 27947216BA9B57A7FDD371ED /* DTPieProgressIndicator.h */; }; + 5C144E8A0023F600FBFA421A /* NSScanner+HTML.h in Headers */ = {isa = PBXBuildFile; fileRef = B84B240F0823531A031C41C7 /* NSScanner+HTML.h */; }; + 5C3A47305D7D239B4D431529 /* SBJson4StreamParserState.h in Headers */ = {isa = PBXBuildFile; fileRef = 0F28E723636C615F9CD3E0EC /* SBJson4StreamParserState.h */; }; + 5E38BADE95190BBAD6E0D902 /* NSFileWrapper+DTCopying.h in Headers */ = {isa = PBXBuildFile; fileRef = 8CFC987D05DA0349BC818797 /* NSFileWrapper+DTCopying.h */; }; + 5E6F4571EB5664048572B83B /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 840DB8F5749C3CF76AC9D137 /* Foundation.framework */; }; + 5EA0F70E4ACFEDBC4520D249 /* UIRefreshControl+AFNetworking.h in Headers */ = {isa = PBXBuildFile; fileRef = 97DC47CAD23715AFA2B41B12 /* UIRefreshControl+AFNetworking.h */; }; + 5F5056A4BDD734A480C96F30 /* DTAccessibilityViewProxy.m in Sources */ = {isa = PBXBuildFile; fileRef = 517889B83DF0B0BBBD20A600 /* DTAccessibilityViewProxy.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 5F54D221A335C0158FB04FE1 /* DTExtendedFileAttributes.h in Headers */ = {isa = PBXBuildFile; fileRef = FA46450EBB4EAC69FCB91718 /* DTExtendedFileAttributes.h */; }; + 5FEB4F298BDD80A7321E93C9 /* UIAlertView+AFNetworking.h in Headers */ = {isa = PBXBuildFile; fileRef = C9A24640323933637F95A837 /* UIAlertView+AFNetworking.h */; }; + 60DBD1AD533428D2DC001971 /* DTTextBlock.h in Headers */ = {isa = PBXBuildFile; fileRef = 830E54BCAD2FCF61971141D0 /* DTTextBlock.h */; }; + 613103028F1EDB4895BFE65B /* EXTScope.h in Headers */ = {isa = PBXBuildFile; fileRef = 4F6EC8AA0855744BAD97006B /* EXTScope.h */; }; + 613F989C94B2787A7E5EA92D /* DTCustomColoredAccessory.m in Sources */ = {isa = PBXBuildFile; fileRef = AEAAEE2D5A265598325D0F2C /* DTCustomColoredAccessory.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 6165D092249067FE05D2F300 /* MTLManagedObjectAdapter.m in Sources */ = {isa = PBXBuildFile; fileRef = 10F6C2912E12899952817331 /* MTLManagedObjectAdapter.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 6188CBC694903FE643EF63A8 /* DTCSSListStyle.m in Sources */ = {isa = PBXBuildFile; fileRef = D143C3BA7EE6142F6FDC9AF6 /* DTCSSListStyle.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 62BE91A24115CDA97656AD35 /* AFHTTPRequestOperationManager.h in Headers */ = {isa = PBXBuildFile; fileRef = F921A28DCABA42CA363E9ADD /* AFHTTPRequestOperationManager.h */; }; + 63B95A6E1A6296CCF2F863D7 /* NSString+DTUtilities.m in Sources */ = {isa = PBXBuildFile; fileRef = E3A0AD85C1449025FD7B5207 /* NSString+DTUtilities.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 6458142C7D5CA10B21E2D5B0 /* MWPhoto.h in Headers */ = {isa = PBXBuildFile; fileRef = CDE753A2DDE3C94568833AF3 /* MWPhoto.h */; }; + 64FF71B962A8DFCACF27C965 /* DTAnchorHTMLElement.m in Sources */ = {isa = PBXBuildFile; fileRef = 03E30B9B3AC56019DD0402E7 /* DTAnchorHTMLElement.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 656405A94145561EECD63A10 /* SDImageCache.m in Sources */ = {isa = PBXBuildFile; fileRef = B9B0B85F571949646551402B /* SDImageCache.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 665A6D3765FE3A5EFB8471E0 /* Pods-MBProgressHUD-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = B613A4BF661F83988EC75EE5 /* Pods-MBProgressHUD-dummy.m */; }; + 67A88DBB1E308F5E8781BF7A /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 840DB8F5749C3CF76AC9D137 /* Foundation.framework */; }; + 6993212012C0296C7A4D5B77 /* UIProgressView+AFNetworking.m in Sources */ = {isa = PBXBuildFile; fileRef = 2F761BB7FC4AC9993DD40D23 /* UIProgressView+AFNetworking.m */; }; + 69A2A1E1C666A137580BDDB4 /* DTHTMLWriter.m in Sources */ = {isa = PBXBuildFile; fileRef = F21965578047393389F88764 /* DTHTMLWriter.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 69BB3E4F8A9A3EF505089FDB /* DTHTMLElement.h in Headers */ = {isa = PBXBuildFile; fileRef = F81A603925A5CCDE79B391E9 /* DTHTMLElement.h */; }; + 6A33AD68D2B098E6A0178FC9 /* SDWebImageDecoder.h in Headers */ = {isa = PBXBuildFile; fileRef = 5E9FC5A7CD88C4EB4D7BD65C /* SDWebImageDecoder.h */; }; + 6A8F51E5BA70F9636F5032C1 /* NSURL+DTUnshorten.m in Sources */ = {isa = PBXBuildFile; fileRef = DCDA7743525DD3A1AE972A76 /* NSURL+DTUnshorten.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 6ABCEC0D9F0BA9B3A1D0B0B0 /* DTListItemHTMLElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 467D4950128F1A0DEDA83F6E /* DTListItemHTMLElement.h */; }; + 6AC2D31041F4EE413C9F4E45 /* PSTCollectionViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 8162493DD977034E3B7B64B8 /* PSTCollectionViewCell.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 6B2FC452A2039DB670CE46A9 /* ImageIO.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8F49DC29AE1663866C0639E5 /* ImageIO.framework */; }; + 6B444B64C726803F3AE4FD7B /* NSError+MTLModelException.h in Headers */ = {isa = PBXBuildFile; fileRef = 767887B1D509CC220D5D2AC1 /* NSError+MTLModelException.h */; }; + 6BF88BADF28D789A8294ED2D /* DTAccessibilityViewProxy.h in Headers */ = {isa = PBXBuildFile; fileRef = F901CA49C117ED24E29DE70B /* DTAccessibilityViewProxy.h */; }; + 6C2BC4CA309CB96A0EE4DCF7 /* NSData+Godzippa.h in Headers */ = {isa = PBXBuildFile; fileRef = 74AFD7083CB157C9C0670585 /* NSData+Godzippa.h */; }; + 6C7725E8A2F88D45BD711533 /* DTWebVideoView.m in Sources */ = {isa = PBXBuildFile; fileRef = 73CD638F6F148C7304D1FD32 /* DTWebVideoView.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 6C9E939DE8B59B367D5A5D85 /* MWZoomingScrollView.m in Sources */ = {isa = PBXBuildFile; fileRef = 4F887A0C195BDB5417C29BB6 /* MWZoomingScrollView.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 6CCBDAE54825E5AB41D403E9 /* Pods-Mantle-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 988CBFD68948730F70CC8659 /* Pods-Mantle-dummy.m */; }; + 6D5D13BDA42136813178655A /* DTCoreTextFontCollection.h in Headers */ = {isa = PBXBuildFile; fileRef = 07F049280D9C381907648E09 /* DTCoreTextFontCollection.h */; }; + 6DCBC2E89AF1584D371BA06D /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 840DB8F5749C3CF76AC9D137 /* Foundation.framework */; }; + 6F2249C8B581C332CD4BF3AC /* NSScanner+HTML.m in Sources */ = {isa = PBXBuildFile; fileRef = 003D03619950FB54423249CA /* NSScanner+HTML.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 6FB4CEFD980BCB90A2CA7B9C /* PSTCollectionViewCell.h in Headers */ = {isa = PBXBuildFile; fileRef = C52AE3AF76FB0127CB9675DA /* PSTCollectionViewCell.h */; }; + 6FCEB794F332AD38DF148645 /* UIImageView+AFNetworking.m in Sources */ = {isa = PBXBuildFile; fileRef = C5DB47713C18D5514CE31E59 /* UIImageView+AFNetworking.m */; }; + 7193C9AD602E16353368759F /* UIButton+AFNetworking.h in Headers */ = {isa = PBXBuildFile; fileRef = 5C6BC136D1A9CE914936B571 /* UIButton+AFNetworking.h */; }; + 71FEF4DEB972B9DDF950F52C /* MBProgressHUD.m in Sources */ = {isa = PBXBuildFile; fileRef = 658942C397C29DF978BA5B53 /* MBProgressHUD.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 7273B6055BE8AA17AF21BB1F /* UIScrollView+MJRefresh.m in Sources */ = {isa = PBXBuildFile; fileRef = 7AA780EC70408D63F4D5BF61 /* UIScrollView+MJRefresh.m */; }; + 72A2A375F92AEF7E0A015F4D /* AFHTTPRequestOperationManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 68E34E9C4EE7D4107528EDF5 /* AFHTTPRequestOperationManager.m */; }; + 73177D1D1C1B935A38112120 /* AFNetworkActivityIndicatorManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 8C2FBD33609D25944EE9ED5D /* AFNetworkActivityIndicatorManager.m */; }; + 74CC60B12A4D4453B3A81CFD /* UIView+MJExtension.m in Sources */ = {isa = PBXBuildFile; fileRef = 164DCDD2B2EA6DBD3953BE66 /* UIView+MJExtension.m */; }; + 74CE2EE74F28D4E9FB214EFC /* AFNetworkReachabilityManager.m in Sources */ = {isa = PBXBuildFile; fileRef = BC3CE7DA59F1959BB87CCE29 /* AFNetworkReachabilityManager.m */; }; + 756360186438ED363CD1A269 /* NSURL+DTUnshorten.h in Headers */ = {isa = PBXBuildFile; fileRef = 492B9114041D1B8B0F0A5ABC /* NSURL+DTUnshorten.h */; }; + 75ACFAC8189C5C5648A6C047 /* NSValueTransformer+MTLInversionAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = 021F539DD58B45CE79A628FC /* NSValueTransformer+MTLInversionAdditions.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 75BB5A8D8208BE8D2DEBE5EF /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 840DB8F5749C3CF76AC9D137 /* Foundation.framework */; }; + 764409012C4D37E7B7DF2DF8 /* UIView+DTFoundation.h in Headers */ = {isa = PBXBuildFile; fileRef = 3FB0005B313D61EF6BDE0A77 /* UIView+DTFoundation.h */; }; + 76B6279571B5BAB3D01AADA5 /* DTHTMLParserNode.h in Headers */ = {isa = PBXBuildFile; fileRef = 62BAE3ABCDBB11CB587E952E /* DTHTMLParserNode.h */; }; + 777EF53E21C6A7AEC2069F39 /* SDWebImageOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B544391DA6AD2E0429113D2 /* SDWebImageOperation.h */; }; + 780A368BE10558004A419A2A /* NSString+CSS.h in Headers */ = {isa = PBXBuildFile; fileRef = C5884F10654896A69DB4485D /* NSString+CSS.h */; }; + 78202E57709EE3B10D54818D /* DTCoreTextGlyphRun.h in Headers */ = {isa = PBXBuildFile; fileRef = 1AB03E8DB12A67211E7F4822 /* DTCoreTextGlyphRun.h */; }; + 794123F699D3E3301620A928 /* DTFolderMonitor.h in Headers */ = {isa = PBXBuildFile; fileRef = 794588D8BF675C45520C5FC6 /* DTFolderMonitor.h */; }; + 7958328AC23A4326D2CCBE2E /* DTHTMLElement.m in Sources */ = {isa = PBXBuildFile; fileRef = A10F2C28E66C7A24064FA92D /* DTHTMLElement.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 79A605EDD2B05508CFFDD0E7 /* UIWebView+AFNetworking.m in Sources */ = {isa = PBXBuildFile; fileRef = CBBE591F96CD63234E3FC49B /* UIWebView+AFNetworking.m */; }; + 7A157B0CFE887734A8657E4A /* DTStylesheetHTMLElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 929DFA5A6498F25C08720FF2 /* DTStylesheetHTMLElement.h */; }; + 7A2CBCC96C1DD96892881528 /* SystemConfiguration.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 228D62A84D1F2314138CB6BE /* SystemConfiguration.framework */; }; + 7A9C809D1EF232B2C479D19F /* DTAsyncFileDeleter.h in Headers */ = {isa = PBXBuildFile; fileRef = 597EBA17A2FF6498E38965AC /* DTAsyncFileDeleter.h */; }; + 7B3F776FEA47C09DC24BA764 /* metamacros.h in Headers */ = {isa = PBXBuildFile; fileRef = 7BCC506622D2F6D2BF2E2FC0 /* metamacros.h */; }; + 7B9C4AF4A4F77EDF6FCC3CF3 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 840DB8F5749C3CF76AC9D137 /* Foundation.framework */; }; + 7BA1F6A516E7A057D6222597 /* AssetsLibrary.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F4C9A5D56D30BB7ABC1D1455 /* AssetsLibrary.framework */; }; + 7C763BF831A69384D86A0F6D /* UIImage+DTFoundation.h in Headers */ = {isa = PBXBuildFile; fileRef = F57E6762D14F3812CE0711D3 /* UIImage+DTFoundation.h */; }; + 7C96421F392F749C8DE590D1 /* DTCoreTextFontDescriptor.m in Sources */ = {isa = PBXBuildFile; fileRef = 416F649BA565B2F50342C740 /* DTCoreTextFontDescriptor.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 7DA75ADE029FF132BA1E50F9 /* DTColorFunctions.m in Sources */ = {isa = PBXBuildFile; fileRef = 522E3EFD08D48EE01F1FB914 /* DTColorFunctions.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 7DD540C8823E74405E512436 /* MapKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2090085022483B35C9205497 /* MapKit.framework */; }; + 7E18735D1A95DAD218437363 /* NSCoder+DTCompatibility.m in Sources */ = {isa = PBXBuildFile; fileRef = 9A5AFE9E1832C2B511126D27 /* NSCoder+DTCompatibility.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 7EF36CFD99CBC35FEFD1EA27 /* NSAttributedStringRunDelegates.h in Headers */ = {isa = PBXBuildFile; fileRef = 3EA344384CB75CED3FCCD1A1 /* NSAttributedStringRunDelegates.h */; }; + 7F08855B9E148A475B59DDD1 /* NSAttributedString+SmallCaps.h in Headers */ = {isa = PBXBuildFile; fileRef = 5C4ACAE9DB7A14E8B488A859 /* NSAttributedString+SmallCaps.h */; }; + 7FDCE62C25C741321711D79A /* Pods-DTCoreText-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = F78D42CCB4242594ED456535 /* Pods-DTCoreText-dummy.m */; }; + 800294A480F64EA3157CBE6B /* Pods-MJRefresh-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = C7B04C01F1A02B0E2D91D6AA /* Pods-MJRefresh-dummy.m */; }; + 8007F13536B188BA351E55D8 /* AFSecurityPolicy.h in Headers */ = {isa = PBXBuildFile; fileRef = 10724403D3A0ADA6095E7F64 /* AFSecurityPolicy.h */; }; + 8122B21198EE1C929FD1C043 /* PSTCollectionViewUpdateItem.h in Headers */ = {isa = PBXBuildFile; fileRef = 704D3FE1DE425498627C6A10 /* PSTCollectionViewUpdateItem.h */; }; + 81295B5F0891A8F6981B45E8 /* UIButton+AFNetworking.m in Sources */ = {isa = PBXBuildFile; fileRef = 2036F60042DE2157C9D6E705 /* UIButton+AFNetworking.m */; }; + 8173015B6BC7206FEA20520A /* DTHorizontalRuleHTMLElement.m in Sources */ = {isa = PBXBuildFile; fileRef = 53423FE9852A6B82179DD40B /* DTHorizontalRuleHTMLElement.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 817D485A1F586D4A42CD9DF2 /* SDWebImageDownloaderOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = BDBBE799E7BF683373026C9A /* SDWebImageDownloaderOperation.h */; }; + 81DDB2BBEBBB7ACF04279681 /* NSMutableAttributedString+HTML.h in Headers */ = {isa = PBXBuildFile; fileRef = 99B22C9FD33D7B3435DA6C4E /* NSMutableAttributedString+HTML.h */; }; + 820D0ABA7C2B1AB03CFF929E /* SecureUDID.h in Headers */ = {isa = PBXBuildFile; fileRef = CD5D32FF02B0A8154D1C07FE /* SecureUDID.h */; }; + 825CF0914C5033C90D3E1B41 /* DTFoundationConstants.m in Sources */ = {isa = PBXBuildFile; fileRef = 33A11E53D63743EE686A0252 /* DTFoundationConstants.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 826301BE0F53480BDC5F9575 /* MJRefresh.h in Headers */ = {isa = PBXBuildFile; fileRef = 5FCCFCCAEB95294F41FCF0D1 /* MJRefresh.h */; }; + 842AFD3C09E75E1F02193537 /* PSTGridLayoutSection.m in Sources */ = {isa = PBXBuildFile; fileRef = BCDD491476207334EBE058F4 /* PSTGridLayoutSection.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 84B2B80C99B6BD67A3AF450F /* SBJson4StreamTokeniser.m in Sources */ = {isa = PBXBuildFile; fileRef = 35B800EA30F95E80296E5A0B /* SBJson4StreamTokeniser.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 85645FDFA30B0CBD22709E5B /* Mantle.h in Headers */ = {isa = PBXBuildFile; fileRef = 3792EECD13D0158D73F5745D /* Mantle.h */; }; + 859B13E54DE99C75D145BAFE /* DTCoreTextLayouter.m in Sources */ = {isa = PBXBuildFile; fileRef = 52616B17F0988C8F1B599A79 /* DTCoreTextLayouter.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 8621E05EF6D186BA360E626E /* DTSmartPagingScrollView.m in Sources */ = {isa = PBXBuildFile; fileRef = 60B89B85631410B65C3439EC /* DTSmartPagingScrollView.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 864035EABC4EAF9D6E0991C8 /* DTExtendedFileAttributes.m in Sources */ = {isa = PBXBuildFile; fileRef = 03400F44B514737FC576D22D /* DTExtendedFileAttributes.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 866A4EE76BCD168C9D75E6BE /* DTHTMLParser.h in Headers */ = {isa = PBXBuildFile; fileRef = 4201F582F07CDDD8765540D2 /* DTHTMLParser.h */; }; + 867DCB1D3D89337C01713F9C /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 28996023C44AEDBF2DF289F3 /* QuartzCore.framework */; }; + 88EA4FB582B3164C4AEB354E /* PSTGridLayoutItem.m in Sources */ = {isa = PBXBuildFile; fileRef = 57E1FBA24CDF1C671195DD9A /* PSTGridLayoutItem.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 896980ED6C0D031EF455311C /* DTLazyImageView.m in Sources */ = {isa = PBXBuildFile; fileRef = 42BBEEDA82B1C171B33C9853 /* DTLazyImageView.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 896DAB87D38325E3F0BEAE91 /* SDWebImagePrefetcher.h in Headers */ = {isa = PBXBuildFile; fileRef = CC10F0A51919623D07F245E4 /* SDWebImagePrefetcher.h */; }; + 8A7D7F3225854F174E0321DC /* DTHTMLWriter.h in Headers */ = {isa = PBXBuildFile; fileRef = C1C20FF9BFBC1A57C8291F86 /* DTHTMLWriter.h */; }; + 8AA3471802C274586E823416 /* NSDictionary+DTCoreText.m in Sources */ = {isa = PBXBuildFile; fileRef = E748BB16CA6FD38DF4DE75B2 /* NSDictionary+DTCoreText.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 8B2090488F5FB774A6B93400 /* MTLManagedObjectAdapter.h in Headers */ = {isa = PBXBuildFile; fileRef = FE63F00F5690CCE4F938A292 /* MTLManagedObjectAdapter.h */; }; + 8B81702969A19C620672612C /* MWPhotoBrowser.m in Sources */ = {isa = PBXBuildFile; fileRef = 96D077240E63D1AE6CE735A1 /* MWPhotoBrowser.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 8BEA85740BA37043CA92A72F /* NSMutableArray+DTMoving.h in Headers */ = {isa = PBXBuildFile; fileRef = 46006A8C612F4ECCB62CCC24 /* NSMutableArray+DTMoving.h */; }; + 8D073E4D6DAB70E9AD7519E6 /* AFURLConnectionOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = BC233462DD17D9E6C3E7150D /* AFURLConnectionOperation.m */; }; + 8D9C8129D3F02ADDD17F102B /* Pods-SBJson-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 33338BEB65192CAEE2311367 /* Pods-SBJson-dummy.m */; }; + 8DC382C53B3510E164568F70 /* SBJson4StreamParser.m in Sources */ = {isa = PBXBuildFile; fileRef = 4B77CE440F23DD24AD099D7B /* SBJson4StreamParser.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 8DE09B856063AAEEA495F53E /* NSDictionary+MTLManipulationAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = DBAE137A22ABA7FCA5A4AB3E /* NSDictionary+MTLManipulationAdditions.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 8E2DD341D47F6D4A85505723 /* NSURL+DTAppLinks.h in Headers */ = {isa = PBXBuildFile; fileRef = B600CF4281A0482986B93737 /* NSURL+DTAppLinks.h */; }; + 8F59D1655595A142BB9ED4CD /* SDWebImagePrefetcher.m in Sources */ = {isa = PBXBuildFile; fileRef = D0D86AF96BCD338F5705C8D9 /* SDWebImagePrefetcher.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 8FD72B64A22E16EDBEEDDC13 /* DTDictationPlaceholderTextAttachment.m in Sources */ = {isa = PBXBuildFile; fileRef = FD517D5C5BB5C7F212D64D17 /* DTDictationPlaceholderTextAttachment.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 90962298AFD31DCC02502560 /* MWGridCell.m in Sources */ = {isa = PBXBuildFile; fileRef = B56EAA98B74308B005C2A9F1 /* MWGridCell.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 90B46A06F916E9C100328347 /* UIKit+AFNetworking.h in Headers */ = {isa = PBXBuildFile; fileRef = B717092C91BAABF3FE631B87 /* UIKit+AFNetworking.h */; }; + 90EBB8EEBA09A98D6E53AB54 /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F3DF9A726280BC12EC3DB192 /* CoreGraphics.framework */; }; + 918DFC38A6390D78D42B0C37 /* SBJson4StreamWriterState.h in Headers */ = {isa = PBXBuildFile; fileRef = 04608BD81CB1D6FD7BB13DC6 /* SBJson4StreamWriterState.h */; }; + 920CFA99227A2C3A4E42302A /* DTLazyImageView.h in Headers */ = {isa = PBXBuildFile; fileRef = 499D8236889B69EE1C0C0E81 /* DTLazyImageView.h */; }; + 923AD7139E1342FAFADEE098 /* UIScrollView+MJExtension.h in Headers */ = {isa = PBXBuildFile; fileRef = 57948CE2AB2E4F39E5909787 /* UIScrollView+MJExtension.h */; }; + 9248EF66FDACC79E2A2D3108 /* NSAttributedString+SmallCaps.m in Sources */ = {isa = PBXBuildFile; fileRef = 3ED6E9AEE4A17BE9828F96B4 /* NSAttributedString+SmallCaps.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 92F7AFFDB76C7DD7CCD12B22 /* MJRefreshFooter.h in Headers */ = {isa = PBXBuildFile; fileRef = BAA9EE4B4F5CD99F90C855AE /* MJRefreshFooter.h */; }; + 938EAFD247E3113DC4FC0D34 /* AFSecurityPolicy.m in Sources */ = {isa = PBXBuildFile; fileRef = 465746F81489445C1D904820 /* AFSecurityPolicy.m */; }; + 93CD5E89427C02B9D5624491 /* NSString+DTPaths.h in Headers */ = {isa = PBXBuildFile; fileRef = 5441E8F2C876ED71D85FA524 /* NSString+DTPaths.h */; }; + 94782A2A822CB584053D2E85 /* AFHTTPSessionManager.m in Sources */ = {isa = PBXBuildFile; fileRef = AF12A3600080609A16C7C8C3 /* AFHTTPSessionManager.m */; }; + 972EC10517E865A57838A7C6 /* UIScrollView+MJExtension.m in Sources */ = {isa = PBXBuildFile; fileRef = 5830771528ACD8F6A1D09785 /* UIScrollView+MJExtension.m */; }; + 97C6DFA55ECE1ADF8E91EF95 /* DTCoreTextGlyphRun.m in Sources */ = {isa = PBXBuildFile; fileRef = 65C582EB9B0BD38FAA343C86 /* DTCoreTextGlyphRun.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 980B82FDA58EA0BF7DE929E7 /* DTPieProgressIndicator.m in Sources */ = {isa = PBXBuildFile; fileRef = 07FD0086FFE5BFDC1FF91E21 /* DTPieProgressIndicator.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 9816B3660EA3A8BAF0DD7C71 /* Reachability.m in Sources */ = {isa = PBXBuildFile; fileRef = CC502E3D07422A6FE697A3BF /* Reachability.m */; }; + 9818379A0D43A35EDA25F703 /* NSCoder+DTCompatibility.h in Headers */ = {isa = PBXBuildFile; fileRef = A71A8BF280D4B3F177A77BC6 /* NSCoder+DTCompatibility.h */; }; + 982A6B51545DFDC7101E23AC /* DTAttributedTextView.m in Sources */ = {isa = PBXBuildFile; fileRef = BEEF6F71F87F033602F3E11D /* DTAttributedTextView.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 98A36A7AAAC2423CF7841052 /* AFURLRequestSerialization.m in Sources */ = {isa = PBXBuildFile; fileRef = BEB8B9553B457AF656C5AEAF /* AFURLRequestSerialization.m */; }; + 9995639EC6E18AB23A0CA2D6 /* MTLValueTransformer.m in Sources */ = {isa = PBXBuildFile; fileRef = A3A56978D466B5A33634A9A9 /* MTLValueTransformer.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 9AB1AB1FC97EED608AA4C6BB /* UIImage+DTFoundation.m in Sources */ = {isa = PBXBuildFile; fileRef = 43CA4D66E63AB7D3FAED0A05 /* UIImage+DTFoundation.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 9AB638140A05E53E1AD70C01 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 840DB8F5749C3CF76AC9D137 /* Foundation.framework */; }; + 9C00E01AB1E4D5683834A8D1 /* UIActivityIndicatorView+AFNetworking.h in Headers */ = {isa = PBXBuildFile; fileRef = 870F336C096333F8B63528A8 /* UIActivityIndicatorView+AFNetworking.h */; }; + 9C19B8D36472C810B33A7FC9 /* SDWebImageCompat.h in Headers */ = {isa = PBXBuildFile; fileRef = 607B2E6EBF9B5F89C356BCA9 /* SDWebImageCompat.h */; }; + 9C5B4AEA50A5BA117BC59C36 /* NSAttributedString+HTML.h in Headers */ = {isa = PBXBuildFile; fileRef = 72024D8E3DEE77E874263345 /* NSAttributedString+HTML.h */; }; + 9C7DF1FD8BFF2AAFEA2150A5 /* NSArray+DTError.h in Headers */ = {isa = PBXBuildFile; fileRef = 6D51E8B360081879FDF75D63 /* NSArray+DTError.h */; }; + 9DB33B3434052C9E0A215CF7 /* SBJson4StreamWriter.m in Sources */ = {isa = PBXBuildFile; fileRef = 636FB9759C07282A157DA86E /* SBJson4StreamWriter.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 9DFFD62A28398071EF5DE725 /* MJRefreshConst.m in Sources */ = {isa = PBXBuildFile; fileRef = B49F9531730EB589BA4DF321 /* MJRefreshConst.m */; }; + 9E8D61AC3B26F7941B5594DC /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F3DF9A726280BC12EC3DB192 /* CoreGraphics.framework */; }; + 9F660CA796A78116C5C071A2 /* NSMutableString+HTML.m in Sources */ = {isa = PBXBuildFile; fileRef = 7947AFE3FC05070B9F5BCFB5 /* NSMutableString+HTML.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 9FA9BA94B5D5C4012D5B0F1C /* UIWebView+AFNetworking.h in Headers */ = {isa = PBXBuildFile; fileRef = 544EF65D5565B80B8EEF9586 /* UIWebView+AFNetworking.h */; }; + A01BAF3B3EA1C5CBEFC92037 /* NSString+DTUtilities.h in Headers */ = {isa = PBXBuildFile; fileRef = E82534A386E5A087ED826968 /* NSString+DTUtilities.h */; }; + A3C12D2E82E4B31C43FEF7B3 /* DTCustomColoredAccessory.h in Headers */ = {isa = PBXBuildFile; fileRef = 3D72BA953085FF2B243A0C40 /* DTCustomColoredAccessory.h */; }; + A435E81952D076AC603159F1 /* DTCoreTextParagraphStyle.m in Sources */ = {isa = PBXBuildFile; fileRef = 8F37484C6AC75527380FCF75 /* DTCoreTextParagraphStyle.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + A4F77B569E06FEC6F566B6BB /* DTFolderMonitor.m in Sources */ = {isa = PBXBuildFile; fileRef = D5F7442CC240F7F50B735528 /* DTFolderMonitor.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + A6E35F95AFDF3789624A21F9 /* SDImageCache.h in Headers */ = {isa = PBXBuildFile; fileRef = C70121602CECC22892E5EC76 /* SDImageCache.h */; }; + A7A738E4B4C61EA4C4658ABE /* SDWebImageDownloaderOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = 4857A7FC3C7758328BEF273B /* SDWebImageDownloaderOperation.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + A7FB2E356B454013526BB9DD /* Pods-STableViewController-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 380E27AAAD32D37E6DAA6ACC /* Pods-STableViewController-dummy.m */; }; + AAC16EA793698120EB0E8A99 /* DTCoreTextLayoutLine.h in Headers */ = {isa = PBXBuildFile; fileRef = 091210310FE167D9C6269D59 /* DTCoreTextLayoutLine.h */; }; + AAEAD818552F32BB8A7397C0 /* DTAccessibilityElement.h in Headers */ = {isa = PBXBuildFile; fileRef = CE30CCBD39C072F15976D44B /* DTAccessibilityElement.h */; }; + AB31D5125FAE4C250318E4B1 /* PSTGridLayoutInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = ACA2F4636D4D4742DF7C56AD /* PSTGridLayoutInfo.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + AB3BEF7AF436C5EB4A680EF7 /* DTIframeTextAttachment.m in Sources */ = {isa = PBXBuildFile; fileRef = 78E1C3F894C314421EF1C439 /* DTIframeTextAttachment.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + ACAE8F62FEF535A7385EDEE4 /* DTTextBlock.m in Sources */ = {isa = PBXBuildFile; fileRef = 2C11A54574B7474FFD6613F5 /* DTTextBlock.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + ACE90D9ECE33BCD3AB03630E /* EXTRuntimeExtensions.h in Headers */ = {isa = PBXBuildFile; fileRef = BE46A85CDCF92DC9378F035F /* EXTRuntimeExtensions.h */; }; + AD42A9372C0319E1EEB28637 /* NSURL+DTComparing.m in Sources */ = {isa = PBXBuildFile; fileRef = 9EAD1264E97732BEC44196AF /* NSURL+DTComparing.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + AD7CC4837F92FB686B66F92F /* EXTKeyPathCoding.h in Headers */ = {isa = PBXBuildFile; fileRef = 9389DEF66191A2AD3AA1C057 /* EXTKeyPathCoding.h */; }; + ADA1B2227AF8CB7EE0D54D33 /* AFNetworkActivityIndicatorManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 5E9F7BF5A1EBDA36FB3724C7 /* AFNetworkActivityIndicatorManager.h */; }; + ADAF0C325037F7B4D4ABD919 /* DTHorizontalRuleHTMLElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 0A4DE42725555C4AE2176AAC /* DTHorizontalRuleHTMLElement.h */; }; + AE83E9C71B301B3C41F9974C /* MobileCoreServices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5918F14BB8CC1E9208F49E4E /* MobileCoreServices.framework */; }; + AEBC9D15B03F0DBB92B8033D /* NSObject+MTLComparisonAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = E3006A904DC8E2EA96940F9D /* NSObject+MTLComparisonAdditions.h */; }; + AEDE272F0316FF7E0D90C261 /* SDWebImageDownloader.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C9757B7405F81BAB2643615 /* SDWebImageDownloader.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + AFCBF4A05F497687F34AD888 /* NSIndexPath+PSTCollectionViewAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = 40D4A15DEB9FF4E9FCE78583 /* NSIndexPath+PSTCollectionViewAdditions.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + B0B2D99A392BE53BF81153DD /* DTFoundationConstants.h in Headers */ = {isa = PBXBuildFile; fileRef = 8DD9C09340C5B517DF373D50 /* DTFoundationConstants.h */; }; + B0EF49690609550E7D246B62 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 840DB8F5749C3CF76AC9D137 /* Foundation.framework */; }; + B0F9D9CAEF7CC158E5C12C4B /* DTImage+HTML.h in Headers */ = {isa = PBXBuildFile; fileRef = 636911C6F949B6B3DE96508C /* DTImage+HTML.h */; }; + B356840B13010BEA772CF8C4 /* NSMutableArray+DTMoving.m in Sources */ = {isa = PBXBuildFile; fileRef = 249452CB1BAA300A469E0853 /* NSMutableArray+DTMoving.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + B4054375246268088CF9E621 /* MJRefreshConst.h in Headers */ = {isa = PBXBuildFile; fileRef = 277DAE9556EE45ED443AA4C6 /* MJRefreshConst.h */; }; + B4F4CD25E8C81512480DC1DC /* DTLog.h in Headers */ = {isa = PBXBuildFile; fileRef = E1EA6EF1EF58BC1BCFC46590 /* DTLog.h */; }; + B5244F5AEFAF4723BD7755DE /* NSValueTransformer+MTLPredefinedTransformerAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = BE0BBA851FFD8C10601F459E /* NSValueTransformer+MTLPredefinedTransformerAdditions.h */; }; + B63FB37550CCE67F2C61DF65 /* UIButton+WebCache.m in Sources */ = {isa = PBXBuildFile; fileRef = 5555D987AA26F52561F87E76 /* UIButton+WebCache.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + B6409A2E86906EE690E93A8E /* MWTapDetectingImageView.h in Headers */ = {isa = PBXBuildFile; fileRef = 9B777F150C2789558A36C305 /* MWTapDetectingImageView.h */; }; + B69FC0987DB66D7711ECB98C /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 840DB8F5749C3CF76AC9D137 /* Foundation.framework */; }; + B7AA7A70878F67070C829A93 /* SBJson4Writer.m in Sources */ = {isa = PBXBuildFile; fileRef = B338B7FA2D94D51A0629A3A7 /* SBJson4Writer.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + B8B83DA7F188F413728D56E2 /* NSDictionary+DTCoreText.h in Headers */ = {isa = PBXBuildFile; fileRef = EA265AE97FB5394FC75AF033 /* NSDictionary+DTCoreText.h */; }; + B9B257CFDACBE7E1FF80397F /* Pods-Reachability-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 16FF291C006A900385DB96EA /* Pods-Reachability-dummy.m */; }; + BA2747B9C401441C8862ADE1 /* PSTCollectionViewLayout.h in Headers */ = {isa = PBXBuildFile; fileRef = 257C4422B6FFED6E7467D398 /* PSTCollectionViewLayout.h */; }; + BA5681802543FEA498CB8818 /* DTBreakHTMLElement.h in Headers */ = {isa = PBXBuildFile; fileRef = D5408DE225597265AB7B8425 /* DTBreakHTMLElement.h */; }; + BA7B2D47CF7DEF90A7234EF1 /* MWTapDetectingImageView.m in Sources */ = {isa = PBXBuildFile; fileRef = F21DD059C7F32076B0D5A8E2 /* MWTapDetectingImageView.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + BAAE375D2B6843A72DEB3CD3 /* MTLModel+NSCoding.h in Headers */ = {isa = PBXBuildFile; fileRef = 596F49A483D7487072F54FB5 /* MTLModel+NSCoding.h */; }; + BB24A5B947AB043C38D17FF2 /* NSData+DTCrypto.h in Headers */ = {isa = PBXBuildFile; fileRef = D9C88418B4E8322410425733 /* NSData+DTCrypto.h */; }; + BCB586CD336285548FA6B8B3 /* AFNetworking.h in Headers */ = {isa = PBXBuildFile; fileRef = 9920B4011029C225917B09D4 /* AFNetworking.h */; }; + BD96441F435C1CBF1410B41B /* PSTCollectionViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = 9AA0FE8679FBE21A4E246E19 /* PSTCollectionViewController.h */; }; + BDF84A076EA8085162E6649C /* DTCoreTextLayoutFrameAccessibilityElementGenerator.m in Sources */ = {isa = PBXBuildFile; fileRef = D59425FD7D3C1B5D55F23E3C /* DTCoreTextLayoutFrameAccessibilityElementGenerator.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + BF02B1882EF664333A0758D7 /* NSFileWrapper+DTCopying.m in Sources */ = {isa = PBXBuildFile; fileRef = 44CB702EDFA9BE9DBDF1AEC4 /* NSFileWrapper+DTCopying.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + C11DF7524AE0087307054333 /* DTDictationPlaceholderView.h in Headers */ = {isa = PBXBuildFile; fileRef = BC37EB48F000A15B3D5BD665 /* DTDictationPlaceholderView.h */; }; + C189EDB1FFC03D152A1BD7A8 /* DTCoreTextLayoutFrame+Cursor.m in Sources */ = {isa = PBXBuildFile; fileRef = 32A1231256BA62B79A52AFD8 /* DTCoreTextLayoutFrame+Cursor.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + C29BB29202A874DB35FF99BE /* DTVideoTextAttachment.m in Sources */ = {isa = PBXBuildFile; fileRef = 5056C21F217DC2E921D52E91 /* DTVideoTextAttachment.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + C301BACE4EC44F141974EE81 /* DACircularProgressView.h in Headers */ = {isa = PBXBuildFile; fileRef = 1410D4C4D6F51DF135522C7E /* DACircularProgressView.h */; }; + C38F80427408C76A0522903D /* PSTCollectionViewLayout+Internals.h in Headers */ = {isa = PBXBuildFile; fileRef = A72E4F1DB377186E56A73E7B /* PSTCollectionViewLayout+Internals.h */; }; + C5B172A75AC56AFB9A2861EB /* UIImageView+HighlightedWebCache.h in Headers */ = {isa = PBXBuildFile; fileRef = 218789BFC7D3CEDA7C2DC855 /* UIImageView+HighlightedWebCache.h */; }; + C75E53CD3BDFE9AAC69BEDFA /* DTImageTextAttachment.m in Sources */ = {isa = PBXBuildFile; fileRef = 6BBFC4565B0C47B89673EA6A /* DTImageTextAttachment.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + C87B35578817A74BA41EE08D /* MTLReflection.h in Headers */ = {isa = PBXBuildFile; fileRef = D32ADA3B1609B2422C9CD05B /* MTLReflection.h */; }; + C8BC99BD1A1BAAB923C71558 /* STableViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = 602462EA1C18EE59FBA4BA70 /* STableViewController.h */; }; + C8CAB1D1F8FA8B72158EC301 /* MJRefreshGifFooter.m in Sources */ = {isa = PBXBuildFile; fileRef = EA71121BF1D7E29FEF425210 /* MJRefreshGifFooter.m */; }; + C974369196B98030C4CFEE6E /* NSArray+DTError.m in Sources */ = {isa = PBXBuildFile; fileRef = 70C116CCDF229CB6FC7C6E37 /* NSArray+DTError.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + CA97D353CE054765DA1F3A82 /* DTCoreTextFunctions.h in Headers */ = {isa = PBXBuildFile; fileRef = 75AE8E7ADBE583B35549CD6E /* DTCoreTextFunctions.h */; }; + CAE2FE61F20CFD6E71ABE219 /* DTAsyncFileDeleter.m in Sources */ = {isa = PBXBuildFile; fileRef = 329B3787F338AB03C9263C97 /* DTAsyncFileDeleter.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + CB6B73315222590178305455 /* UIImage+GIF.h in Headers */ = {isa = PBXBuildFile; fileRef = 04229EA39468FD5D89C9F83C /* UIImage+GIF.h */; }; + CCAFCA0612A7C78698EFE5AF /* UIView+DTFoundation.m in Sources */ = {isa = PBXBuildFile; fileRef = 6EA98190477EF68C9C7B7C22 /* UIView+DTFoundation.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + CCF3D2A545BBDAFD1C4CACEB /* PSTCollectionView.m in Sources */ = {isa = PBXBuildFile; fileRef = 67AEF5088E2F78B9E820F1F6 /* PSTCollectionView.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + CE7DEE18038241E3C6D42334 /* CoreText.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1811CB7FBBF725B277131843 /* CoreText.framework */; }; + CE84B033046FDBE95A4D7A50 /* DTAnimatedGIF.m in Sources */ = {isa = PBXBuildFile; fileRef = 92BE37CE160321EBFD9E2A87 /* DTAnimatedGIF.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + CF11625F925FA5283C57C25F /* MJRefreshLegendHeader.h in Headers */ = {isa = PBXBuildFile; fileRef = 8AFBE41C33B9F6D9CA6AA17B /* MJRefreshLegendHeader.h */; }; + CFBBA31FD90BF871E08273ED /* MWGridViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 283567AF2362532C2FC1A25F /* MWGridViewController.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + CFFCA8E37D7F262FBA7A8365 /* PSTGridLayoutRow.m in Sources */ = {isa = PBXBuildFile; fileRef = BCD47136278F91DFBFC7AE99 /* PSTGridLayoutRow.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + D006A4436A29F0E44080DFB9 /* UIImage+MultiFormat.m in Sources */ = {isa = PBXBuildFile; fileRef = C85954153EA6FA2252687A5E /* UIImage+MultiFormat.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + D0C5C4B2719AE0B5D1F76A21 /* UIFont+DTCoreText.h in Headers */ = {isa = PBXBuildFile; fileRef = ABFC82F7816830BD765CE888 /* UIFont+DTCoreText.h */; }; + D0D0C639AD58EB4AEBB1B408 /* NSArray+MTLManipulationAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = 441D7091AAFF6307AA12C55E /* NSArray+MTLManipulationAdditions.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + D279A9D2867BE88C34FE555D /* MJRefreshHeader.h in Headers */ = {isa = PBXBuildFile; fileRef = 2B49D6D7D6F56CF4DDCDC91A /* MJRefreshHeader.h */; }; + D315D5BCC31D4F5A24A22C1C /* MWPhotoBrowser.h in Headers */ = {isa = PBXBuildFile; fileRef = 32521B8EA32E7084137BA8B3 /* MWPhotoBrowser.h */; }; + D3425BBCABE4B9B1A40D566C /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 840DB8F5749C3CF76AC9D137 /* Foundation.framework */; }; + D3465A8A3559B9D7D7F1ADF7 /* DTCoreTextLayoutFrame+Cursor.h in Headers */ = {isa = PBXBuildFile; fileRef = 91935CD096E885F5D4516338 /* DTCoreTextLayoutFrame+Cursor.h */; }; + D35BD55B95B3B28F007A1482 /* DTHTMLParserTextNode.m in Sources */ = {isa = PBXBuildFile; fileRef = 4CAFE90654F06AC8EC0C0E25 /* DTHTMLParserTextNode.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + D3924E23984C89331A0E1CF1 /* DTCSSStylesheet.h in Headers */ = {isa = PBXBuildFile; fileRef = FE43A93322F264CF5FBC4BBE /* DTCSSStylesheet.h */; }; + D4406E3CE39E67B58D4122BC /* SBJson4.h in Headers */ = {isa = PBXBuildFile; fileRef = 29047B27A222EE428F21AEC6 /* SBJson4.h */; }; + D47495456F32D6DE09719881 /* MJRefreshLegendFooter.m in Sources */ = {isa = PBXBuildFile; fileRef = 16F6885C6B188F295317CB7C /* MJRefreshLegendFooter.m */; }; + D645D837B16D291B2D97102E /* MWCommon.h in Headers */ = {isa = PBXBuildFile; fileRef = 8AF00765DC7A8DB1A4E4E572 /* MWCommon.h */; }; + D6A46969E83A58CCA90F0614 /* DTTiledLayerWithoutFade.h in Headers */ = {isa = PBXBuildFile; fileRef = ACCACE86EF932D9A74602506 /* DTTiledLayerWithoutFade.h */; }; + D723E08618D1892E73228E61 /* DTBreakHTMLElement.m in Sources */ = {isa = PBXBuildFile; fileRef = 082FA3B0705A0298918991C5 /* DTBreakHTMLElement.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + D7714136C0C0BE53839B6131 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 840DB8F5749C3CF76AC9D137 /* Foundation.framework */; }; + D852F0435C0480DF6AA01B60 /* NSArray+MTLManipulationAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = 91C321E14CE1501F45E1A3E3 /* NSArray+MTLManipulationAdditions.h */; }; + D884E3967842B6A51E34BE24 /* Pods-AFNetworking-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 8AAB2896D7863775D7DDA728 /* Pods-AFNetworking-dummy.m */; }; + D8BEEBA1CEF31E4EB8603A0A /* AFURLSessionManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 3C9C56059AD8164D322E9F7A /* AFURLSessionManager.m */; }; + D91A9A16D801614BA6842D72 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 840DB8F5749C3CF76AC9D137 /* Foundation.framework */; }; + D929FBA4464E13A399611C85 /* MWPhotoBrowserPrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = A0DD3F36356FE8CC74AA8E20 /* MWPhotoBrowserPrivate.h */; }; + D969956942962CF7E57B9C17 /* DTListItemHTMLElement.m in Sources */ = {isa = PBXBuildFile; fileRef = 8844F78283A5A799306146AE /* DTListItemHTMLElement.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + DA4413CF46DF51285AB77BE9 /* DTAttributedTextCell.m in Sources */ = {isa = PBXBuildFile; fileRef = F0CAF4393D8072037ACF7FF3 /* DTAttributedTextCell.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + DA53435142485F4D73AB4FEF /* DTWeakSupport.h in Headers */ = {isa = PBXBuildFile; fileRef = 698ED35BEB9EA9845836C0C9 /* DTWeakSupport.h */; }; + DAE87F12210AD930A7FA1E34 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 840DB8F5749C3CF76AC9D137 /* Foundation.framework */; }; + DB1938604D718852F01F4DE3 /* AFURLResponseSerialization.h in Headers */ = {isa = PBXBuildFile; fileRef = 2D97DDA2AE1A703999D28F28 /* AFURLResponseSerialization.h */; }; + DB4A61FE229216B88047F82E /* UIScrollView+MJRefresh.h in Headers */ = {isa = PBXBuildFile; fileRef = ECB3F29659C350CEBD3ADB41 /* UIScrollView+MJRefresh.h */; }; + DB66382B86A898E67E91634A /* MTLModel.h in Headers */ = {isa = PBXBuildFile; fileRef = F2E56CA9D39A915548A7DA5A /* MTLModel.h */; }; + DC45A60A13C3E916CEF0F9F5 /* UIApplication+DTNetworkActivity.h in Headers */ = {isa = PBXBuildFile; fileRef = 89B62ED7E52987209DC04932 /* UIApplication+DTNetworkActivity.h */; }; + DCD3136C1D977E93363C9A89 /* DTStylesheetHTMLElement.m in Sources */ = {isa = PBXBuildFile; fileRef = 25FF3DD0EE462D4D3D703271 /* DTStylesheetHTMLElement.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + DCDE6D0DFBCC10C1205A644A /* PSTCollectionViewData.m in Sources */ = {isa = PBXBuildFile; fileRef = DB7007692C14889674AFB1C2 /* PSTCollectionViewData.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + DE2B61397DA0121B9508C801 /* UIImageView+WebCache.m in Sources */ = {isa = PBXBuildFile; fileRef = 6437E78CDE35412016E0EF8D /* UIImageView+WebCache.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + DE8D930E4CA749F00B0FE11C /* DTActivityTitleView.m in Sources */ = {isa = PBXBuildFile; fileRef = 8F7FB18D19AB4F7E14E62258 /* DTActivityTitleView.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + DE97DC87515A5597616910A2 /* DTTextAttachmentHTMLElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 45B927D2775EA6D39AF9350B /* DTTextAttachmentHTMLElement.h */; }; + DEBEE8BA7F9CBA69700B7115 /* DTVersion.h in Headers */ = {isa = PBXBuildFile; fileRef = 4BFDDC0BB55AB123F180A783 /* DTVersion.h */; }; + DEC870606AEB28A80157A739 /* DTCoreTextLayouter.h in Headers */ = {isa = PBXBuildFile; fileRef = D3E64E73DE3C91606151E6B1 /* DTCoreTextLayouter.h */; }; + DF4AF4782FA4F7A0547EC5B1 /* MWPhoto.m in Sources */ = {isa = PBXBuildFile; fileRef = C9F44AD76AB8A3A90FD1D49E /* MWPhoto.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + E0FED45500F27BC341AAFAFF /* UIView+MJExtension.h in Headers */ = {isa = PBXBuildFile; fileRef = 26FDF7AFD41C9CB0129EB7A6 /* UIView+MJExtension.h */; }; + E13870153338A9807A8878BA /* PSTCollectionViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 8AD6581BF6D2C7D8542BEAA2 /* PSTCollectionViewController.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + E1B00E6F31E9C3B378811377 /* DTCoreTextConstants.h in Headers */ = {isa = PBXBuildFile; fileRef = 35A12005320196DE1C3B9402 /* DTCoreTextConstants.h */; }; + E2206C08452B18363CC423D6 /* Pods-Godzippa-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 579575BAE0137A4DEB08CDFC /* Pods-Godzippa-dummy.m */; }; + E2B689280C37F53820AC2264 /* DTCoreGraphicsUtils.h in Headers */ = {isa = PBXBuildFile; fileRef = 2FDFF225A72C6E222476AB25 /* DTCoreGraphicsUtils.h */; }; + E32F9AA5A68F674DDFFE6654 /* SBJson4Parser.h in Headers */ = {isa = PBXBuildFile; fileRef = 7C4E67D6FDAC4663924A7125 /* SBJson4Parser.h */; }; + E3CE1A22981272694D8F37FD /* PSTGridLayoutInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = 1E381E4EBAF2F1EF0CE4A7F4 /* PSTGridLayoutInfo.h */; }; + E3DB1FFDC510CB3EEC2EDD4E /* SystemConfiguration.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 228D62A84D1F2314138CB6BE /* SystemConfiguration.framework */; }; + E3EF848246C9FCFB44F91A21 /* NSCharacterSet+HTML.h in Headers */ = {isa = PBXBuildFile; fileRef = C96CFE97D97E5980A46013FE /* NSCharacterSet+HTML.h */; }; + E4BABCC08BA028D9F2A3F931 /* ImageIO.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8F49DC29AE1663866C0639E5 /* ImageIO.framework */; }; + E5FE8915E43B22C459A758AE /* ImageIO.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8F49DC29AE1663866C0639E5 /* ImageIO.framework */; }; + E70E6B6B1B93BF443D9AD149 /* DTHTMLParserNode.m in Sources */ = {isa = PBXBuildFile; fileRef = A0C581C1D4F3B407471F6989 /* DTHTMLParserNode.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + E72F57C31A7A4102ED53458B /* Pods-PSTCollectionView-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 49C9B7C9423FB5594ED26A00 /* Pods-PSTCollectionView-dummy.m */; }; + E81D951E31B3CA8DBCDAEB43 /* UIButton+WebCache.h in Headers */ = {isa = PBXBuildFile; fileRef = C815B7D91F2C17B7233636B7 /* UIButton+WebCache.h */; }; + E84D88C9B04676B817E0F2D6 /* MTLJSONAdapter.m in Sources */ = {isa = PBXBuildFile; fileRef = 4E69F46466E5C8712B86C1CC /* MTLJSONAdapter.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + E9111E9E95CE096CABAE1BA2 /* PSTCollectionViewFlowLayout.m in Sources */ = {isa = PBXBuildFile; fileRef = 2A143E7284F7872D2256EF3F /* PSTCollectionViewFlowLayout.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + E9B94625AEB9A87A8A59CCE5 /* DTAnchorHTMLElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 6EE16C676DF6AB64910157AA /* DTAnchorHTMLElement.h */; }; + E9CEDD3CC7B13497466D2156 /* DTTextAttachment.m in Sources */ = {isa = PBXBuildFile; fileRef = 0AB85644C22A7EA0EB2F4ED0 /* DTTextAttachment.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + E9E75E40D4BFE04187F1B0A4 /* PSTGridLayoutRow.h in Headers */ = {isa = PBXBuildFile; fileRef = 9C0E898AF9E481B0FCE83812 /* PSTGridLayoutRow.h */; }; + EA1611767B2F0DDF8BEA8BB5 /* EXTRuntimeExtensions.m in Sources */ = {isa = PBXBuildFile; fileRef = 66D3C19760A87AB7C86D1386 /* EXTRuntimeExtensions.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + EA3905748722914626534565 /* Pods-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 82DC2A4AFF377431721FEB92 /* Pods-dummy.m */; }; + EB11F133808619C0B75C9083 /* DTBlockFunctions.m in Sources */ = {isa = PBXBuildFile; fileRef = F282E0EE63732D24E5EAB564 /* DTBlockFunctions.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + EB699F95380961B38A45EDA1 /* DTCoreTextParagraphStyle.h in Headers */ = {isa = PBXBuildFile; fileRef = F7C1D8428536D3EE9F8331A1 /* DTCoreTextParagraphStyle.h */; }; + EB7DEB4051000BB7B29D6F91 /* MBProgressHUD.h in Headers */ = {isa = PBXBuildFile; fileRef = 2BB4618BE9D5E6F640E04F26 /* MBProgressHUD.h */; }; + EBDB69C13600A9CF7A0A8011 /* default.css.c in Sources */ = {isa = PBXBuildFile; fileRef = 9AF1C183602CE8203DDC86ED /* default.css.c */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + EC22FEE08608E5E2A1547ADB /* NSCharacterSet+HTML.m in Sources */ = {isa = PBXBuildFile; fileRef = 56D007D6FA5D8914B9E0B5D6 /* NSCharacterSet+HTML.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + EC52C357C2DB594DAB5F4568 /* MWGridCell.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B2D13120B27AAA66C834386 /* MWGridCell.h */; }; + EC955B8CACADEFF67E84AABB /* DTCoreTextLayoutFrame.h in Headers */ = {isa = PBXBuildFile; fileRef = EF72252CCE5C540114ABB165 /* DTCoreTextLayoutFrame.h */; }; + EE0E99ABD6519C8095554ACA /* DTAccessibilityElement.m in Sources */ = {isa = PBXBuildFile; fileRef = 9BDC782A1D3B9D8B7F4B2B4A /* DTAccessibilityElement.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + EE1B9F47759BA12D1B7E3DB3 /* DTAttributedTextCell.h in Headers */ = {isa = PBXBuildFile; fileRef = 1E1722DD1BFF10C18945FF61 /* DTAttributedTextCell.h */; }; + EF554DED532CC6AF38899469 /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 28996023C44AEDBF2DF289F3 /* QuartzCore.framework */; }; + F06B54CD714129E0037DD35C /* MJRefreshLegendFooter.h in Headers */ = {isa = PBXBuildFile; fileRef = E4FBE9216473C11D6B61D947 /* MJRefreshLegendFooter.h */; }; + F0984FEA8C211A422FA7000C /* NSValueTransformer+MTLInversionAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = B48A3233AEB13D95AFBE68FD /* NSValueTransformer+MTLInversionAdditions.h */; }; + F0BEE50E2AA88E734B1C1D63 /* NSAttributedString+DTDebug.h in Headers */ = {isa = PBXBuildFile; fileRef = B66713DB154632D2152CA299 /* NSAttributedString+DTDebug.h */; }; + F0FE8B0ACFB0E1A07CACBD42 /* AFHTTPRequestOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = 09430B88F175AF3535814D9B /* AFHTTPRequestOperation.m */; }; + F1640BAFF50FB98090A5ECD0 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 840DB8F5749C3CF76AC9D137 /* Foundation.framework */; }; + F1ADD11943162476465836CA /* DTAttributedTextView.h in Headers */ = {isa = PBXBuildFile; fileRef = FFC96955EADCDF5BCEF7D7A0 /* DTAttributedTextView.h */; }; + F1D425692E182FA43436CC17 /* DTActivityTitleView.h in Headers */ = {isa = PBXBuildFile; fileRef = 6BA8E2892CC77726234BCC8C /* DTActivityTitleView.h */; }; + F3B2FC6A1055F6C63105B77A /* DTDictationPlaceholderTextAttachment.h in Headers */ = {isa = PBXBuildFile; fileRef = ED6AFCDC2A503DB45153A947 /* DTDictationPlaceholderTextAttachment.h */; }; + F59CD2FAE1A11967E35244F3 /* DTCoreGraphicsUtils.m in Sources */ = {isa = PBXBuildFile; fileRef = 64BED7D77D473EFFCF0B1C6C /* DTCoreGraphicsUtils.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + F59FDCD7D4F112CCEF14C889 /* DTCoreTextFunctions.m in Sources */ = {isa = PBXBuildFile; fileRef = 94152ABDBF6BB8B5C1D40A09 /* DTCoreTextFunctions.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + F6937EA84C96410322EA81AE /* DTCSSListStyle.h in Headers */ = {isa = PBXBuildFile; fileRef = 5EB74211A6BD53D098537EFB /* DTCSSListStyle.h */; }; + F6BC8B6DD9B149902E463D8D /* PSTCollectionViewUpdateItem.m in Sources */ = {isa = PBXBuildFile; fileRef = 5C872F8537C439C2B94CB9A0 /* PSTCollectionViewUpdateItem.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + F72C248235D285A06D9A6FCE /* MJRefreshComponent.m in Sources */ = {isa = PBXBuildFile; fileRef = FDEFAEE759D48781EFFE20F5 /* MJRefreshComponent.m */; }; + F7CBE197A77D5806486A6C78 /* DTBlockFunctions.h in Headers */ = {isa = PBXBuildFile; fileRef = C22459C1C0218D404E1D2B02 /* DTBlockFunctions.h */; }; + F80CE6CF55AA3D220371E7DC /* SBJson4Writer.h in Headers */ = {isa = PBXBuildFile; fileRef = A585E20FF3DFFBFC5E28D101 /* SBJson4Writer.h */; }; + F8650B78C3069BAC9451B5B7 /* UIWebView+DTFoundation.m in Sources */ = {isa = PBXBuildFile; fileRef = 30959A156623D25B15A2E98E /* UIWebView+DTFoundation.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + F9E632FC9D53E1E7F49E8A12 /* DTObjectTextAttachment.m in Sources */ = {isa = PBXBuildFile; fileRef = B1B0243AB8B0E62E62896EE1 /* DTObjectTextAttachment.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + FAEB4D12E4BB923FACBCB2DE /* UIAlertView+AFNetworking.m in Sources */ = {isa = PBXBuildFile; fileRef = D59228AC3B6D04487E7ABD16 /* UIAlertView+AFNetworking.m */; }; + FB2D77294B5EC8315EDAD083 /* SBJson4Parser.m in Sources */ = {isa = PBXBuildFile; fileRef = D8FA086F2301731653032E64 /* SBJson4Parser.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + FB92BC461DDC64E42135B50B /* DTHTMLAttributedStringBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = 43D65AF3542A6052DC298230 /* DTHTMLAttributedStringBuilder.h */; }; + FBE01FC1D8B429B74FAE9F01 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 840DB8F5749C3CF76AC9D137 /* Foundation.framework */; }; + FD28D007836F8B070A492A3E /* Security.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F8CA60251D4E7A87A805293E /* Security.framework */; }; + FD641A9CE11094F55D1C8F37 /* DTAttributedLabel.h in Headers */ = {isa = PBXBuildFile; fileRef = 95626418E4ADD29C0CAEB7B1 /* DTAttributedLabel.h */; }; + FDECC6BC0E2E0294FD7576FC /* MJRefreshGifHeader.m in Sources */ = {isa = PBXBuildFile; fileRef = 7FB3A23241022EEB4236AE8F /* MJRefreshGifHeader.m */; }; + FEF961A74296FEEE40D892BB /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 840DB8F5749C3CF76AC9D137 /* Foundation.framework */; }; + FF8D5B336688F3803EAB3833 /* UIView+WebCacheOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = 586E461C500145AB1E597DEB /* UIView+WebCacheOperation.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ - 02AD8F81C589D205D29DB38C /* PBXContainerItemProxy */ = { + 15A30D61A20A5E5C17B5B17E /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; - containerPortal = 90BC916F6B727ED9575295CB /* Project object */; + containerPortal = 1BD8303C8D8D44595ADAF4F8 /* Project object */; proxyType = 1; - remoteGlobalIDString = 5516FCAE39C9ADCE88363669; - remoteInfo = "Pods-EGOCache"; + remoteGlobalIDString = 0965509D6FC49C811309F372; + remoteInfo = "Pods-MWPhotoBrowser"; }; - 1739FF7FE3B342BF01E503F6 /* PBXContainerItemProxy */ = { + 26D120BB399AC3540699F019 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; - containerPortal = 90BC916F6B727ED9575295CB /* Project object */; + containerPortal = 1BD8303C8D8D44595ADAF4F8 /* Project object */; proxyType = 1; - remoteGlobalIDString = 7AAD259F4548BFB4D392BCE8; + remoteGlobalIDString = 12D6EACA73735A1B258DC584; remoteInfo = "Pods-DTFoundation"; }; - 21120104EC635683D0B4D139 /* PBXContainerItemProxy */ = { + 2A5D83757E182FF1764DF0D3 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; - containerPortal = 90BC916F6B727ED9575295CB /* Project object */; + containerPortal = 1BD8303C8D8D44595ADAF4F8 /* Project object */; proxyType = 1; - remoteGlobalIDString = 7AAD259F4548BFB4D392BCE8; - remoteInfo = "Pods-DTFoundation"; - }; - 38C945F1F6F6BC52E4CE665E /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 90BC916F6B727ED9575295CB /* Project object */; - proxyType = 1; - remoteGlobalIDString = 246007DB8F862E25EDD87EC3; + remoteGlobalIDString = 7E0C326C21065451AF915068; remoteInfo = "Pods-SDWebImage"; }; - 42261464B06A0BFF5FA815D5 /* PBXContainerItemProxy */ = { + 2BC3F3518815D6D67A4FED40 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; - containerPortal = 90BC916F6B727ED9575295CB /* Project object */; + containerPortal = 1BD8303C8D8D44595ADAF4F8 /* Project object */; proxyType = 1; - remoteGlobalIDString = F923B086C24D15CF9BD1F307; + remoteGlobalIDString = 082A9C1460279150C0A6B992; remoteInfo = "Pods-DTCoreText"; }; - 4B2A182BEEF28A31FB75187D /* PBXContainerItemProxy */ = { + 2EAF4DD89F3FE2D4C5A45551 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; - containerPortal = 90BC916F6B727ED9575295CB /* Project object */; + containerPortal = 1BD8303C8D8D44595ADAF4F8 /* Project object */; proxyType = 1; - remoteGlobalIDString = E4CE1DC0A990D7D49C2F3706; - remoteInfo = "Pods-MBProgressHUD"; + remoteGlobalIDString = 12D6EACA73735A1B258DC584; + remoteInfo = "Pods-DTFoundation"; }; - 4D573A2942931FFD1FAA6C61 /* PBXContainerItemProxy */ = { + 4DFA12577713403FD6F83B81 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; - containerPortal = 90BC916F6B727ED9575295CB /* Project object */; + containerPortal = 1BD8303C8D8D44595ADAF4F8 /* Project object */; proxyType = 1; - remoteGlobalIDString = 1C099AB0A914FF873E22025E; - remoteInfo = "Pods-SecureUDID"; + remoteGlobalIDString = 436E0A2F78024613E0497B57; + remoteInfo = "Pods-EGOCache"; }; - 7EB8709494DC6FB10B44B3BE /* PBXContainerItemProxy */ = { + 508495F79596412E431019FB /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; - containerPortal = 90BC916F6B727ED9575295CB /* Project object */; + containerPortal = 1BD8303C8D8D44595ADAF4F8 /* Project object */; proxyType = 1; - remoteGlobalIDString = 5CE1CEB18F375654764E6BEE; - remoteInfo = "Pods-Mantle"; - }; - 8E25F8235F2571BBC5DA927B /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 90BC916F6B727ED9575295CB /* Project object */; - proxyType = 1; - remoteGlobalIDString = 3407AC2ADE0234D6024C3225; - remoteInfo = "Pods-MJRefresh"; - }; - 9F99C0C33B43C989580614FC /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 90BC916F6B727ED9575295CB /* Project object */; - proxyType = 1; - remoteGlobalIDString = F564FE7FF3C0FFC99E487782; + remoteGlobalIDString = CE6309E0EE9C415DCA1D6900; remoteInfo = "Pods-Godzippa"; }; - AB93C3A70AFE14B9D5948982 /* PBXContainerItemProxy */ = { + 55848F7E75DA7A3FA5D26DCE /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; - containerPortal = 90BC916F6B727ED9575295CB /* Project object */; + containerPortal = 1BD8303C8D8D44595ADAF4F8 /* Project object */; proxyType = 1; - remoteGlobalIDString = EDBB7D54D3DBA6D222E66ACC; - remoteInfo = "Pods-AFNetworking"; - }; - B2F393B569A411420FA898BE /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 90BC916F6B727ED9575295CB /* Project object */; - proxyType = 1; - remoteGlobalIDString = F71420DF9662B503D8ACFF36; - remoteInfo = "Pods-Reachability"; - }; - B71AED8C508841B62163A219 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 90BC916F6B727ED9575295CB /* Project object */; - proxyType = 1; - remoteGlobalIDString = 71A4FA4DD2C39B010FEF1F64; + remoteGlobalIDString = F957CDF7C0878193FD3EDB48; remoteInfo = "Pods-STableViewController"; }; - FE0CECC3D1513298672661F4 /* PBXContainerItemProxy */ = { + 580CAACDCCA97B651EA4AA07 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; - containerPortal = 90BC916F6B727ED9575295CB /* Project object */; + containerPortal = 1BD8303C8D8D44595ADAF4F8 /* Project object */; proxyType = 1; - remoteGlobalIDString = D4CB5066DD4B9FA1102C148C; + remoteGlobalIDString = B2366AF3542637503A71E0A9; + remoteInfo = "Pods-MBProgressHUD"; + }; + 631976BE3B8246B6F5E19A92 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 1BD8303C8D8D44595ADAF4F8 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 7E0C326C21065451AF915068; + remoteInfo = "Pods-SDWebImage"; + }; + 6C3EBBDC3DC47FE3D5A529A9 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 1BD8303C8D8D44595ADAF4F8 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 744BBE6A2B6DB06A58643241; + remoteInfo = "Pods-MJRefresh"; + }; + 70F0658C483ACCBC8FDC660B /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 1BD8303C8D8D44595ADAF4F8 /* Project object */; + proxyType = 1; + remoteGlobalIDString = EA0106004E80381BF40BA4E8; remoteInfo = "Pods-SBJson"; }; + 88D3C91A3EC418896CDF497E /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 1BD8303C8D8D44595ADAF4F8 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 4BD013E38F08B8A236F2377D; + remoteInfo = "Pods-PSTCollectionView"; + }; + 9A0BF19F4DB0FCF429C0FEB4 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 1BD8303C8D8D44595ADAF4F8 /* Project object */; + proxyType = 1; + remoteGlobalIDString = C37FD853CB072143A5870EDB; + remoteInfo = "Pods-DACircularProgress"; + }; + A6AD488E06BCA3C59EB878A2 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 1BD8303C8D8D44595ADAF4F8 /* Project object */; + proxyType = 1; + remoteGlobalIDString = B37E6E1C3E8E3B523811465A; + remoteInfo = "Pods-AFNetworking"; + }; + B5A1AB51C68A3EB9D7A1D99B /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 1BD8303C8D8D44595ADAF4F8 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 4BD013E38F08B8A236F2377D; + remoteInfo = "Pods-PSTCollectionView"; + }; + BCBA1B03B6FA1BD831856B64 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 1BD8303C8D8D44595ADAF4F8 /* Project object */; + proxyType = 1; + remoteGlobalIDString = C37FD853CB072143A5870EDB; + remoteInfo = "Pods-DACircularProgress"; + }; + C29477443EB7CF149D1080D1 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 1BD8303C8D8D44595ADAF4F8 /* Project object */; + proxyType = 1; + remoteGlobalIDString = B2366AF3542637503A71E0A9; + remoteInfo = "Pods-MBProgressHUD"; + }; + F3B29824FC296E3B51275067 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 1BD8303C8D8D44595ADAF4F8 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 2ADE72A514F2B9DCC6AA9078; + remoteInfo = "Pods-Reachability"; + }; + F40AF6B9C76445FB2E2F8599 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 1BD8303C8D8D44595ADAF4F8 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 5E581170A93903727961FF04; + remoteInfo = "Pods-Mantle"; + }; + FE5925C1575E02EDFB133DAA /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 1BD8303C8D8D44595ADAF4F8 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 9094841566C2C953FA59B13F; + remoteInfo = "Pods-SecureUDID"; + }; /* End PBXContainerItemProxy section */ /* Begin PBXFileReference section */ - 000C7C8E20F34124E0809DB3 /* UIImage+GIF.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIImage+GIF.h"; path = "SDWebImage/UIImage+GIF.h"; sourceTree = ""; }; - 0111CBCAA13EC54A465F0746 /* DTAttributedTextView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DTAttributedTextView.h; path = Core/Source/DTAttributedTextView.h; sourceTree = ""; }; - 016554F1D5DBD110C0A9FAF8 /* UIImage+DTFoundation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIImage+DTFoundation.m"; path = "Core/Source/iOS/UIImage+DTFoundation.m"; sourceTree = ""; }; - 02267995D166E83411B7FA6E /* MTLJSONAdapter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MTLJSONAdapter.h; path = Mantle/MTLJSONAdapter.h; sourceTree = ""; }; - 02284A8207F847282436F7AD /* DTHTMLAttributedStringBuilder.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DTHTMLAttributedStringBuilder.h; path = Core/Source/DTHTMLAttributedStringBuilder.h; sourceTree = ""; }; - 02297CC15BF3E306414B69BD /* DTActivityTitleView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DTActivityTitleView.m; path = Core/Source/iOS/DTActivityTitleView.m; sourceTree = ""; }; - 02567E2AFA2ABD2F2C933C40 /* UIButton+WebCache.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIButton+WebCache.h"; path = "SDWebImage/UIButton+WebCache.h"; sourceTree = ""; }; - 0338FF159AEAE4FBAB5EA8DE /* EXTRuntimeExtensions.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = EXTRuntimeExtensions.m; path = Mantle/extobjc/EXTRuntimeExtensions.m; sourceTree = ""; }; - 0414DCA4C8A0D9FEFA8D0CB2 /* DTListItemHTMLElement.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DTListItemHTMLElement.m; path = Core/Source/DTListItemHTMLElement.m; sourceTree = ""; }; - 043D98647761B600A32F118F /* Pods-Godzippa-Private.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-Godzippa-Private.xcconfig"; sourceTree = ""; }; - 044DC8C7F9205B47C61B7091 /* NSScanner+HTML.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSScanner+HTML.h"; path = "Core/Source/NSScanner+HTML.h"; sourceTree = ""; }; - 053E650D0FAE12D024D858D0 /* libPods-MJRefresh.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-MJRefresh.a"; sourceTree = BUILT_PRODUCTS_DIR; }; - 0546F3C3A3284709F421382A /* NSString+DTPaths.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSString+DTPaths.m"; path = "Core/Source/NSString+DTPaths.m"; sourceTree = ""; }; - 05BD0FA1310754768903BD03 /* SBJson4StreamWriterState.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SBJson4StreamWriterState.h; path = src/main/objc/SBJson4StreamWriterState.h; sourceTree = ""; }; - 05ED87CBC8DC6A907A84AD2A /* DTHTMLParserTextNode.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DTHTMLParserTextNode.m; path = Core/Source/DTHTMLParserTextNode.m; sourceTree = ""; }; - 070F3F5B859156F2E1935C36 /* Pods-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-dummy.m"; sourceTree = ""; }; - 09B84FF607C97FBFEA9CEE6F /* SBJson4StreamParser.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SBJson4StreamParser.h; path = src/main/objc/SBJson4StreamParser.h; sourceTree = ""; }; - 09E5FA8F17EC2E65ADAAADCF /* DTTextBlock.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DTTextBlock.h; path = Core/Source/DTTextBlock.h; sourceTree = ""; }; - 09E8DECB7BF75BA0244B2071 /* DTCoreTextFontDescriptor.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DTCoreTextFontDescriptor.m; path = Core/Source/DTCoreTextFontDescriptor.m; sourceTree = ""; }; - 09EAFDAD063EDC00096089DB /* SBJson4StreamWriterState.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SBJson4StreamWriterState.m; path = src/main/objc/SBJson4StreamWriterState.m; sourceTree = ""; }; - 0A482D8F45EBE17D716551A2 /* DTCoreTextFontCollection.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DTCoreTextFontCollection.h; path = Core/Source/DTCoreTextFontCollection.h; sourceTree = ""; }; - 0ADDF9071F468C9B000996C8 /* DTCoreTextGlyphRun.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DTCoreTextGlyphRun.h; path = Core/Source/DTCoreTextGlyphRun.h; sourceTree = ""; }; - 0C1064303DF3B737DA725814 /* UIButton+WebCache.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIButton+WebCache.m"; path = "SDWebImage/UIButton+WebCache.m"; sourceTree = ""; }; - 0CB61A9012F7783015E18B7B /* Mantle.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = Mantle.h; path = Mantle/Mantle.h; sourceTree = ""; }; - 0CD381B22C0C351795FA961B /* DTFolderMonitor.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DTFolderMonitor.h; path = Core/Source/DTFolderMonitor.h; sourceTree = ""; }; - 0DBF7BFED66DEA608EE98F79 /* MTLJSONAdapter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MTLJSONAdapter.m; path = Mantle/MTLJSONAdapter.m; sourceTree = ""; }; - 0DEB70690586C98E99677DF6 /* DTCoreTextLayoutFrameAccessibilityElementGenerator.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DTCoreTextLayoutFrameAccessibilityElementGenerator.h; path = Core/Source/DTCoreTextLayoutFrameAccessibilityElementGenerator.h; sourceTree = ""; }; - 0DFC802C0A6071810B82B253 /* libPods.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libPods.a; sourceTree = BUILT_PRODUCTS_DIR; }; - 0EE45DCFC5E46ECBA0783341 /* Pods-DTFoundation-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-DTFoundation-prefix.pch"; sourceTree = ""; }; - 0F3FAAAEBB793D8BD8F6B7AB /* Pods-EGOCache-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-EGOCache-prefix.pch"; sourceTree = ""; }; - 0FE4C73D317A76FA9C7AE4B2 /* SDWebImagePrefetcher.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDWebImagePrefetcher.h; path = SDWebImage/SDWebImagePrefetcher.h; sourceTree = ""; }; - 0FFDB42E147E3F4AC3BD515A /* NSMutableArray+DTMoving.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSMutableArray+DTMoving.m"; path = "Core/Source/NSMutableArray+DTMoving.m"; sourceTree = ""; }; - 10AD45869DE0C509621F9E38 /* Pods-EGOCache-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-EGOCache-dummy.m"; sourceTree = ""; }; - 10E13906FA92C4B9CF1CEA8B /* SBJson4Writer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SBJson4Writer.h; path = src/main/objc/SBJson4Writer.h; sourceTree = ""; }; - 10E66F61731BC4E063DE4062 /* NSValueTransformer+MTLInversionAdditions.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSValueTransformer+MTLInversionAdditions.m"; path = "Mantle/NSValueTransformer+MTLInversionAdditions.m"; sourceTree = ""; }; - 10FEB6C385D0B97A813899C3 /* SBJson4Parser.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SBJson4Parser.m; path = src/main/objc/SBJson4Parser.m; sourceTree = ""; }; - 11123DE0038FC1BD0EB81C7B /* UIProgressView+AFNetworking.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIProgressView+AFNetworking.h"; path = "UIKit+AFNetworking/UIProgressView+AFNetworking.h"; sourceTree = ""; }; - 1198240109E0FF9B776C4A37 /* MTLValueTransformer.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MTLValueTransformer.m; path = Mantle/MTLValueTransformer.m; sourceTree = ""; }; - 12CAC97CA7D7C1588D4A140F /* UIView+WebCacheOperation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIView+WebCacheOperation.h"; path = "SDWebImage/UIView+WebCacheOperation.h"; sourceTree = ""; }; - 148DEBCC24AB506B6C316DCD /* DTAccessibilityElement.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DTAccessibilityElement.m; path = Core/Source/DTAccessibilityElement.m; sourceTree = ""; }; - 14B01793281B15823DA8AB70 /* Pods-STableViewController-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-STableViewController-prefix.pch"; sourceTree = ""; }; - 14E0B24681D42846B0CD9A3B /* NSData+Godzippa.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSData+Godzippa.m"; path = "Godzippa/NSData+Godzippa.m"; sourceTree = ""; }; - 155778E11B2A513DDDAEF986 /* DTLog.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DTLog.h; path = Core/Source/DTLog.h; sourceTree = ""; }; - 1569D676E63A0FD1BC54FB04 /* DTCoreTextLayoutFrame+Cursor.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "DTCoreTextLayoutFrame+Cursor.m"; path = "Core/Source/DTCoreTextLayoutFrame+Cursor.m"; sourceTree = ""; }; - 1803F7DA4A6EF54918CD8DAB /* UIView+MJExtension.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIView+MJExtension.h"; path = "MJRefreshExample/MJRefreshExample/MJRefresh/UIView+MJExtension.h"; sourceTree = ""; }; - 19360A8F7BDBEE56A4499368 /* MTLManagedObjectAdapter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MTLManagedObjectAdapter.m; path = Mantle/MTLManagedObjectAdapter.m; sourceTree = ""; }; - 1B659E68785F55141EB11EE7 /* default.css.c */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.c; name = default.css.c; path = Core/Source/default.css.c; sourceTree = ""; }; - 1B6C1077FF5B5CE830E38ED8 /* DTFoundationConstants.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DTFoundationConstants.m; path = Core/Source/DTFoundationConstants.m; sourceTree = ""; }; - 1C4485F4C42846C2279D9B3C /* libPods-SDWebImage.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-SDWebImage.a"; sourceTree = BUILT_PRODUCTS_DIR; }; - 1D67FE333691046E4CB8302C /* MJRefreshHeader.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MJRefreshHeader.m; path = MJRefreshExample/MJRefreshExample/MJRefresh/MJRefreshHeader.m; sourceTree = ""; }; - 1E596786EA619668160B3663 /* DTCompatibility.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DTCompatibility.h; path = Core/Source/DTCompatibility.h; sourceTree = ""; }; - 1FAA7411D6D971B73B99F6D3 /* UIProgressView+AFNetworking.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIProgressView+AFNetworking.m"; path = "UIKit+AFNetworking/UIProgressView+AFNetworking.m"; sourceTree = ""; }; - 2089825488BA852B53109B98 /* SDWebImageCompat.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDWebImageCompat.m; path = SDWebImage/SDWebImageCompat.m; sourceTree = ""; }; - 20C1566CF6ACC33C01D5FD71 /* QuartzCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS7.1.sdk/System/Library/Frameworks/QuartzCore.framework; sourceTree = DEVELOPER_DIR; }; - 20D928D2843510C0E5CBFF97 /* UIActivityIndicatorView+AFNetworking.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIActivityIndicatorView+AFNetworking.m"; path = "UIKit+AFNetworking/UIActivityIndicatorView+AFNetworking.m"; sourceTree = ""; }; - 218C23F30E34325AF887D15E /* Pods-DTFoundation.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-DTFoundation.xcconfig"; sourceTree = ""; }; - 22AC81C0620BA21E6E75DE8B /* Pods-MBProgressHUD-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-MBProgressHUD-prefix.pch"; sourceTree = ""; }; - 22DC7F7C26F943CC883DABEC /* Pods-SDWebImage-Private.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-SDWebImage-Private.xcconfig"; sourceTree = ""; }; - 23308DE32C980BD290D12A4B /* NSMutableString+HTML.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSMutableString+HTML.m"; path = "Core/Source/NSMutableString+HTML.m"; sourceTree = ""; }; - 234F1B433F201823EDFA1E6E /* NSString+CSS.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSString+CSS.m"; path = "Core/Source/NSString+CSS.m"; sourceTree = ""; }; - 243AFC2DD859405081EB0853 /* Pods-SBJson-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-SBJson-prefix.pch"; sourceTree = ""; }; - 24549194CFAFFDC9DDED662B /* DTAttributedTextContentView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DTAttributedTextContentView.h; path = Core/Source/DTAttributedTextContentView.h; sourceTree = ""; }; - 26C9F48A9F0BC01C9500E750 /* UIImageView+HighlightedWebCache.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIImageView+HighlightedWebCache.h"; path = "SDWebImage/UIImageView+HighlightedWebCache.h"; sourceTree = ""; }; - 272D39690151F2016FF485C2 /* NSDictionary+MTLManipulationAdditions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSDictionary+MTLManipulationAdditions.h"; path = "Mantle/NSDictionary+MTLManipulationAdditions.h"; sourceTree = ""; }; - 27C0477001CA531D8F675E00 /* Pods-Mantle-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-Mantle-prefix.pch"; sourceTree = ""; }; - 27C436A1B9330F8576D3D27E /* libPods-Godzippa.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-Godzippa.a"; sourceTree = BUILT_PRODUCTS_DIR; }; - 28542C81679EC1F5BE13B85D /* MBProgressHUD.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = MBProgressHUD.m; sourceTree = ""; }; - 286208A4C4A2A5532D103394 /* metamacros.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = metamacros.h; path = Mantle/extobjc/metamacros.h; sourceTree = ""; }; - 2931671231F2BF356C7EAEAC /* SDWebImageCompat.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDWebImageCompat.h; path = SDWebImage/SDWebImageCompat.h; sourceTree = ""; }; - 2ADF5358C353032A4C980480 /* NSFileWrapper+DTCopying.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSFileWrapper+DTCopying.h"; path = "Core/Source/NSFileWrapper+DTCopying.h"; sourceTree = ""; }; - 2AEE9E5C80C90AF637A41B1D /* EXTRuntimeExtensions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = EXTRuntimeExtensions.h; path = Mantle/extobjc/EXTRuntimeExtensions.h; sourceTree = ""; }; - 2B66DC6C098625298FDCAD16 /* UIView+DTFoundation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIView+DTFoundation.h"; path = "Core/Source/iOS/UIView+DTFoundation.h"; sourceTree = ""; }; - 2C66CCE611914E181AD7F1F5 /* STableViewController.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = STableViewController.h; path = STableViewController/STableViewController.h; sourceTree = ""; }; - 2CF9B41C27A9903229B4D678 /* NSURL+DTComparing.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSURL+DTComparing.h"; path = "Core/Source/NSURL+DTComparing.h"; sourceTree = ""; }; - 2CFB20E08EB3F41ABA5F07D0 /* Pods-Reachability-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-Reachability-dummy.m"; sourceTree = ""; }; - 2E48888E05ABEED31745F4E6 /* libPods-EGOCache.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-EGOCache.a"; sourceTree = BUILT_PRODUCTS_DIR; }; - 2EC05C5B2AC470186E038E3F /* DTAsyncFileDeleter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DTAsyncFileDeleter.h; path = Core/Source/DTAsyncFileDeleter.h; sourceTree = ""; }; - 2F6688E0FD46351AE98ED8E7 /* NSDictionary+DTError.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSDictionary+DTError.h"; path = "Core/Source/NSDictionary+DTError.h"; sourceTree = ""; }; - 2FBF0F645D702F931F268E9E /* EXTScope.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = EXTScope.m; path = Mantle/extobjc/EXTScope.m; sourceTree = ""; }; - 306DD73F546D8F8A8EABA570 /* DTBreakHTMLElement.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DTBreakHTMLElement.h; path = Core/Source/DTBreakHTMLElement.h; sourceTree = ""; }; - 30EF123E79EC9F1A86F2FB80 /* MJRefreshGifHeader.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MJRefreshGifHeader.m; path = MJRefreshExample/MJRefreshExample/MJRefresh/MJRefreshGifHeader.m; sourceTree = ""; }; - 30F3F9E01B43C34729A44800 /* AFSecurityPolicy.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = AFSecurityPolicy.h; path = AFNetworking/AFSecurityPolicy.h; sourceTree = ""; }; - 319687905BA188E79179D100 /* DTHTMLAttributedStringBuilder.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DTHTMLAttributedStringBuilder.m; path = Core/Source/DTHTMLAttributedStringBuilder.m; sourceTree = ""; }; - 320C4B3C2C920938601B4305 /* SBJson4StreamTokeniser.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SBJson4StreamTokeniser.m; path = src/main/objc/SBJson4StreamTokeniser.m; sourceTree = ""; }; - 337FFFD4E19E5FEE3B22903C /* AFURLRequestSerialization.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = AFURLRequestSerialization.m; path = AFNetworking/AFURLRequestSerialization.m; sourceTree = ""; }; - 34D8B3FF86517D1908DF722D /* UIImage+MultiFormat.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIImage+MultiFormat.m"; path = "SDWebImage/UIImage+MultiFormat.m"; sourceTree = ""; }; - 34E2230D1DF25D9C76EEE3BA /* DTBase64Coding.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DTBase64Coding.h; path = Core/Source/DTBase64Coding.h; sourceTree = ""; }; - 365283556A4FFE038B8368A7 /* UIKit+AFNetworking.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIKit+AFNetworking.h"; path = "UIKit+AFNetworking/UIKit+AFNetworking.h"; sourceTree = ""; }; - 3670C7769C590549B0C44E1D /* DTObjectTextAttachment.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DTObjectTextAttachment.h; path = Core/Source/DTObjectTextAttachment.h; sourceTree = ""; }; - 3696ED74324B48504AA37EDC /* DTCSSStylesheet.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DTCSSStylesheet.h; path = Core/Source/DTCSSStylesheet.h; sourceTree = ""; }; - 36F28FF07FEBCD953A6BF6AF /* UIView+DTFoundation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIView+DTFoundation.m"; path = "Core/Source/iOS/UIView+DTFoundation.m"; sourceTree = ""; }; - 37533697C6A34D1B83B33C24 /* DTHTMLElement.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DTHTMLElement.m; path = Core/Source/DTHTMLElement.m; sourceTree = ""; }; - 37CAD4D7A0AEA3B3C94B73BE /* DTLazyImageView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DTLazyImageView.m; path = Core/Source/DTLazyImageView.m; sourceTree = ""; }; - 38824C80AA03F622FF5609CD /* NSMutableArray+DTMoving.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSMutableArray+DTMoving.h"; path = "Core/Source/NSMutableArray+DTMoving.h"; sourceTree = ""; }; - 39293F16EE02408BB628602B /* SDWebImageDownloaderOperation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDWebImageDownloaderOperation.h; path = SDWebImage/SDWebImageDownloaderOperation.h; sourceTree = ""; }; - 39A1C34F923602E69F92BFDE /* UIFont+DTCoreText.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIFont+DTCoreText.h"; path = "Core/Source/UIFont+DTCoreText.h"; sourceTree = ""; }; - 39E350355D4CDA7345039AA1 /* NSString+Paragraphs.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSString+Paragraphs.h"; path = "Core/Source/NSString+Paragraphs.h"; sourceTree = ""; }; - 3CB8ABE55CC35E6B1DD6EB1B /* NSAttributedString+DTDebug.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSAttributedString+DTDebug.m"; path = "Core/Source/NSAttributedString+DTDebug.m"; sourceTree = ""; }; - 3D8E2AA6030AF427437E83FD /* Pods-Reachability-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-Reachability-prefix.pch"; sourceTree = ""; }; - 3E978A5700527A930D7D1B6C /* DTStylesheetHTMLElement.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DTStylesheetHTMLElement.m; path = Core/Source/DTStylesheetHTMLElement.m; sourceTree = ""; }; - 3E9CAEF7849C7310918D8E32 /* NSError+MTLModelException.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSError+MTLModelException.m"; path = "Mantle/NSError+MTLModelException.m"; sourceTree = ""; }; - 3EDF560E4F5DC163CFD3BCD3 /* NSScanner+HTML.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSScanner+HTML.m"; path = "Core/Source/NSScanner+HTML.m"; sourceTree = ""; }; - 3F710767E010692A479E81A8 /* UIWebView+DTFoundation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIWebView+DTFoundation.h"; path = "Core/Source/iOS/UIWebView+DTFoundation.h"; sourceTree = ""; }; - 3F785BCBA9B7F64378E76278 /* MJRefreshLegendFooter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MJRefreshLegendFooter.h; path = MJRefreshExample/MJRefreshExample/MJRefresh/MJRefreshLegendFooter.h; sourceTree = ""; }; - 4207141FCF781427DE11D23B /* NSData+ImageContentType.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSData+ImageContentType.m"; path = "SDWebImage/NSData+ImageContentType.m"; sourceTree = ""; }; - 425566B984B0A4BCA253D006 /* DTCoreText.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DTCoreText.h; path = Core/Source/DTCoreText.h; sourceTree = ""; }; - 42A2C07608DCFE0ADD03E8BD /* DTDictationPlaceholderView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DTDictationPlaceholderView.m; path = Core/Source/DTDictationPlaceholderView.m; sourceTree = ""; }; - 42F04B328F71757BD504E292 /* DTIframeTextAttachment.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DTIframeTextAttachment.m; path = Core/Source/DTIframeTextAttachment.m; sourceTree = ""; }; - 43E49596A789FBF422F82CB3 /* UIWebView+AFNetworking.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIWebView+AFNetworking.h"; path = "UIKit+AFNetworking/UIWebView+AFNetworking.h"; sourceTree = ""; }; - 44FA4F56DE2750802DDF3E7D /* NSAttributedString+DTDebug.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSAttributedString+DTDebug.h"; path = "Core/Source/NSAttributedString+DTDebug.h"; sourceTree = ""; }; - 4675B125EF5ADBB90CEA3374 /* DTCoreTextLayouter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DTCoreTextLayouter.m; path = Core/Source/DTCoreTextLayouter.m; sourceTree = ""; }; - 4675BAADC653074EB3762AB3 /* libPods-SBJson.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-SBJson.a"; sourceTree = BUILT_PRODUCTS_DIR; }; - 46BBD8CD798A9C6A959B2F9C /* AFHTTPRequestOperationManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = AFHTTPRequestOperationManager.h; path = AFNetworking/AFHTTPRequestOperationManager.h; sourceTree = ""; }; - 46FB8C8725057434D48E2858 /* AFNetworkReachabilityManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = AFNetworkReachabilityManager.m; path = AFNetworking/AFNetworkReachabilityManager.m; sourceTree = ""; }; - 4750630460C4BF10955C50F5 /* SBJson4Parser.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SBJson4Parser.h; path = src/main/objc/SBJson4Parser.h; sourceTree = ""; }; - 4800D6896DDF29D0676A963A /* libPods-Reachability.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-Reachability.a"; sourceTree = BUILT_PRODUCTS_DIR; }; - 4847BB93AAE212547B53AC4C /* NSString+DTUtilities.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSString+DTUtilities.h"; path = "Core/Source/NSString+DTUtilities.h"; sourceTree = ""; }; - 4970587FBCB99927707153C7 /* SDWebImageDecoder.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDWebImageDecoder.m; path = SDWebImage/SDWebImageDecoder.m; sourceTree = ""; }; - 49732D6B3FAC6FA975BA8B57 /* NSURL+DTAppLinks.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSURL+DTAppLinks.h"; path = "Core/Source/iOS/NSURL+DTAppLinks.h"; sourceTree = ""; }; - 499918F35DCBA4F2298533F3 /* AFURLResponseSerialization.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = AFURLResponseSerialization.h; path = AFNetworking/AFURLResponseSerialization.h; sourceTree = ""; }; - 49AB829E61E71E2B8119ABA5 /* DTAsyncFileDeleter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DTAsyncFileDeleter.m; path = Core/Source/DTAsyncFileDeleter.m; sourceTree = ""; }; - 4A2144565633C90B3C594FED /* DTCSSStylesheet.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DTCSSStylesheet.m; path = Core/Source/DTCSSStylesheet.m; sourceTree = ""; }; - 4AC683F0D93BD0059752887D /* DTCoreTextFunctions.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DTCoreTextFunctions.m; path = Core/Source/DTCoreTextFunctions.m; sourceTree = ""; }; - 4B1D5C4891F77D6629DCD612 /* Pods-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-acknowledgements.plist"; sourceTree = ""; }; - 4DBFAFDF68A673A50270352B /* MTLValueTransformer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MTLValueTransformer.h; path = Mantle/MTLValueTransformer.h; sourceTree = ""; }; - 4EB3E403669E23800E28A5B7 /* DTAccessibilityElement.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DTAccessibilityElement.h; path = Core/Source/DTAccessibilityElement.h; sourceTree = ""; }; - 4ED3BBB64F7701D817161278 /* DTImageTextAttachment.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DTImageTextAttachment.m; path = Core/Source/DTImageTextAttachment.m; sourceTree = ""; }; - 4F2DF4152986932E452C878E /* Pods-AFNetworking-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-AFNetworking-prefix.pch"; sourceTree = ""; }; - 4F2E55C6466ED5FD349BC1A9 /* Pods-SDWebImage-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-SDWebImage-dummy.m"; sourceTree = ""; }; - 4F71A29574E0B380FE804D63 /* Pods-SecureUDID-Private.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-SecureUDID-Private.xcconfig"; sourceTree = ""; }; - 4F72F40D140F09B394AAEE86 /* NSString+DTPaths.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSString+DTPaths.h"; path = "Core/Source/NSString+DTPaths.h"; sourceTree = ""; }; - 4F7C8832258AE8D64AD6EB22 /* AFHTTPSessionManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = AFHTTPSessionManager.h; path = AFNetworking/AFHTTPSessionManager.h; sourceTree = ""; }; - 503A291995410E5B5A763B2D /* Pods-Godzippa-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-Godzippa-dummy.m"; sourceTree = ""; }; - 51DA841889AC7CDBDC4EEC6E /* UIScrollView+MJRefresh.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIScrollView+MJRefresh.m"; path = "MJRefreshExample/MJRefreshExample/MJRefresh/UIScrollView+MJRefresh.m"; sourceTree = ""; }; - 51EC2D065396A6C2D8A571D6 /* NSDictionary+DTCoreText.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSDictionary+DTCoreText.m"; path = "Core/Source/NSDictionary+DTCoreText.m"; sourceTree = ""; }; - 51F816C7B2A3D31378A7677E /* Pods-MBProgressHUD-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-MBProgressHUD-dummy.m"; sourceTree = ""; }; - 52247F1042D0F039DD844309 /* Pods-DTFoundation-Private.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-DTFoundation-Private.xcconfig"; sourceTree = ""; }; - 533693CAE3A5D5A92C7CA2B7 /* NSAttributedString+DTCoreText.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSAttributedString+DTCoreText.m"; path = "Core/Source/NSAttributedString+DTCoreText.m"; sourceTree = ""; }; - 53816A84E2AE1459E9514BC5 /* UIImage+GIF.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIImage+GIF.m"; path = "SDWebImage/UIImage+GIF.m"; sourceTree = ""; }; - 539798AD51FB8DC0BD6B0E2A /* DTTextAttachment.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DTTextAttachment.h; path = Core/Source/DTTextAttachment.h; sourceTree = ""; }; - 540C1ACAE6662D1616D6CC6D /* Pods-MJRefresh-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-MJRefresh-prefix.pch"; sourceTree = ""; }; - 54154F8BD9FC16F347D72760 /* DTHTMLParser.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DTHTMLParser.m; path = Core/Source/DTHTMLParser/DTHTMLParser.m; sourceTree = ""; }; - 55E04A8B77AF2CE09FB706A1 /* Security.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Security.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS7.1.sdk/System/Library/Frameworks/Security.framework; sourceTree = DEVELOPER_DIR; }; - 56D14654DC8077D93D2A1E02 /* Pods-SecureUDID.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-SecureUDID.xcconfig"; sourceTree = ""; }; - 576D95F49662885C9F88275D /* Pods-EGOCache-Private.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-EGOCache-Private.xcconfig"; sourceTree = ""; }; - 577229D8F9639E6E12F3384D /* Pods-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-acknowledgements.markdown"; sourceTree = ""; }; - 57CBAECC87D95F8EDCB43392 /* Pods-SecureUDID-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-SecureUDID-dummy.m"; sourceTree = ""; }; - 57E5F26122F2FB06F884C15A /* DTCoreGraphicsUtils.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DTCoreGraphicsUtils.h; path = Core/Source/DTCoreGraphicsUtils.h; sourceTree = ""; }; - 58AB7EDBD11A4580DE48181E /* DTAttributedTextContentView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DTAttributedTextContentView.m; path = Core/Source/DTAttributedTextContentView.m; sourceTree = ""; }; - 59658FE86151B90EC9F3BE27 /* DTIframeTextAttachment.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DTIframeTextAttachment.h; path = Core/Source/DTIframeTextAttachment.h; sourceTree = ""; }; - 596D48C47A75A30F8F476EF7 /* DTTiledLayerWithoutFade.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DTTiledLayerWithoutFade.h; path = Core/Source/iOS/DTTiledLayerWithoutFade.h; sourceTree = ""; }; - 5A049A3C50CE466C4E012A2E /* AFHTTPRequestOperationManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = AFHTTPRequestOperationManager.m; path = AFNetworking/AFHTTPRequestOperationManager.m; sourceTree = ""; }; - 5A0F5FB33E256EFCE938303C /* DTColor+Compatibility.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "DTColor+Compatibility.h"; path = "Core/Source/DTColor+Compatibility.h"; sourceTree = ""; }; - 5A1335E83B09E0425099AB9E /* DTLog.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DTLog.m; path = Core/Source/DTLog.m; sourceTree = ""; }; - 5A9EFA1E9B05357190D9172E /* UIWebView+AFNetworking.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIWebView+AFNetworking.m"; path = "UIKit+AFNetworking/UIWebView+AFNetworking.m"; sourceTree = ""; }; - 5AC655EBA4D1C6760F814C3F /* NSFileWrapper+DTCopying.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSFileWrapper+DTCopying.m"; path = "Core/Source/NSFileWrapper+DTCopying.m"; sourceTree = ""; }; - 5B6AF433338EC4AC033A9181 /* DTVersion.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DTVersion.m; path = Core/Source/DTVersion.m; sourceTree = ""; }; - 5BFCE43BFE1BE917E23BA9CE /* NSData+ImageContentType.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSData+ImageContentType.h"; path = "SDWebImage/NSData+ImageContentType.h"; sourceTree = ""; }; - 5C9CE7FF98D4D9258B432D6A /* SDWebImagePrefetcher.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDWebImagePrefetcher.m; path = SDWebImage/SDWebImagePrefetcher.m; sourceTree = ""; }; - 5CCC7AC0562537FEB44115A4 /* NSString+CSS.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSString+CSS.h"; path = "Core/Source/NSString+CSS.h"; sourceTree = ""; }; - 5E2A76CCC4F20D18844F698C /* NSString+HTML.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSString+HTML.m"; path = "Core/Source/NSString+HTML.m"; sourceTree = ""; }; - 5EA4D2B9D7DADFFFFBB8C962 /* Pods-SecureUDID-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-SecureUDID-prefix.pch"; sourceTree = ""; }; - 61383BAC381EA9F53764205F /* SecureUDID.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = SecureUDID.m; sourceTree = ""; }; - 622F4B3E7D7A4AECD2871F39 /* DTAttributedLabel.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DTAttributedLabel.m; path = Core/Source/DTAttributedLabel.m; sourceTree = ""; }; - 6242A9BEC50022E7229F5D08 /* NSAttributedString+HTML.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSAttributedString+HTML.h"; path = "Core/Source/NSAttributedString+HTML.h"; sourceTree = ""; }; - 62C8D3C5B2D9903F6B8D9DD2 /* Pods-Godzippa-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-Godzippa-prefix.pch"; sourceTree = ""; }; - 638F50533EF02B8CDCA92EDC /* Pods-EGOCache.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-EGOCache.xcconfig"; sourceTree = ""; }; - 64BD8CA15822F6A5D7114EE5 /* SDWebImageOperation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDWebImageOperation.h; path = SDWebImage/SDWebImageOperation.h; sourceTree = ""; }; - 663130FDE5B7DD0A2641EB9D /* DTBlockFunctions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DTBlockFunctions.h; path = Core/Source/DTBlockFunctions.h; sourceTree = ""; }; - 69A1F0BE372389DA46197303 /* MJRefreshLegendHeader.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MJRefreshLegendHeader.m; path = MJRefreshExample/MJRefreshExample/MJRefresh/MJRefreshLegendHeader.m; sourceTree = ""; }; - 6C0F24BC2B49183DD4CDCD44 /* Pods-AFNetworking-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-AFNetworking-dummy.m"; sourceTree = ""; }; - 6DED580510E29228D84B181C /* Pods.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = Pods.debug.xcconfig; sourceTree = ""; }; - 6EE3DD7AA93E5C3165EADD31 /* DTAttributedTextCell.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DTAttributedTextCell.m; path = Core/Source/DTAttributedTextCell.m; sourceTree = ""; }; - 6F4E8F22347EFC734538CC8B /* DTAccessibilityViewProxy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DTAccessibilityViewProxy.m; path = Core/Source/DTAccessibilityViewProxy.m; sourceTree = ""; }; - 6F6BBE8AF6052FBE8F7598DD /* SBJson4StreamTokeniser.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SBJson4StreamTokeniser.h; path = src/main/objc/SBJson4StreamTokeniser.h; sourceTree = ""; }; - 6FCD29A7ED59ACB691B908DD /* DTCoreTextLayoutLine.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DTCoreTextLayoutLine.m; path = Core/Source/DTCoreTextLayoutLine.m; sourceTree = ""; }; - 70BE3A9C24806ADF38059D79 /* SDWebImageManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDWebImageManager.m; path = SDWebImage/SDWebImageManager.m; sourceTree = ""; }; - 7177B72C59C85460D5052B06 /* NSDictionary+DTError.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSDictionary+DTError.m"; path = "Core/Source/NSDictionary+DTError.m"; sourceTree = ""; }; - 73327572566D7640FD245B2A /* DTPieProgressIndicator.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DTPieProgressIndicator.m; path = Core/Source/iOS/DTPieProgressIndicator.m; sourceTree = ""; }; - 735C2D06848839B5B1750A09 /* NSMutableAttributedString+HTML.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSMutableAttributedString+HTML.m"; path = "Core/Source/NSMutableAttributedString+HTML.m"; sourceTree = ""; }; - 73CEA0FB979ED40EC2A6B6BC /* MJRefreshComponent.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MJRefreshComponent.h; path = MJRefreshExample/MJRefreshExample/MJRefresh/MJRefreshComponent.h; sourceTree = ""; }; - 74503AAA593FD430ACC0474E /* AFURLConnectionOperation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = AFURLConnectionOperation.h; path = AFNetworking/AFURLConnectionOperation.h; sourceTree = ""; }; - 74AC06D02C0D9C5BA41A0675 /* DTFolderMonitor.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DTFolderMonitor.m; path = Core/Source/DTFolderMonitor.m; sourceTree = ""; }; - 75148258B54D8B8313FE17F3 /* AFHTTPSessionManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = AFHTTPSessionManager.m; path = AFNetworking/AFHTTPSessionManager.m; sourceTree = ""; }; - 755D62429655E5D59DD7F71D /* NSFileManager+Godzippa.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSFileManager+Godzippa.m"; path = "Godzippa/NSFileManager+Godzippa.m"; sourceTree = ""; }; - 756716097FFEF7DF57ABDADA /* DTAnimatedGIF.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DTAnimatedGIF.m; path = Core/Source/iOS/DTAnimatedGIF/DTAnimatedGIF.m; sourceTree = ""; }; - 75CADB59E864B3C4B66EE1C2 /* ImageIO.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = ImageIO.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS7.1.sdk/System/Library/Frameworks/ImageIO.framework; sourceTree = DEVELOPER_DIR; }; - 773442E765A1C63F2FE4C7A7 /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS7.1.sdk/System/Library/Frameworks/CoreGraphics.framework; sourceTree = DEVELOPER_DIR; }; - 7759495D676C2716B5C752A2 /* DTListItemHTMLElement.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DTListItemHTMLElement.h; path = Core/Source/DTListItemHTMLElement.h; sourceTree = ""; }; - 7769048F02C4CA9F2EDF56FB /* EXTScope.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = EXTScope.h; path = Mantle/extobjc/EXTScope.h; sourceTree = ""; }; - 78733D989F9F73E37027C410 /* NSValueTransformer+MTLPredefinedTransformerAdditions.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSValueTransformer+MTLPredefinedTransformerAdditions.m"; path = "Mantle/NSValueTransformer+MTLPredefinedTransformerAdditions.m"; sourceTree = ""; }; - 787874207266EB6FAABD051A /* DTCoreTextLayoutFrame.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DTCoreTextLayoutFrame.h; path = Core/Source/DTCoreTextLayoutFrame.h; sourceTree = ""; }; - 799A3F011EE9572BE76485F5 /* UIButton+AFNetworking.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIButton+AFNetworking.h"; path = "UIKit+AFNetworking/UIButton+AFNetworking.h"; sourceTree = ""; }; - 7AA0FD965C5FBB1287C48E48 /* DTExtendedFileAttributes.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DTExtendedFileAttributes.h; path = Core/Source/DTExtendedFileAttributes.h; sourceTree = ""; }; - 7B4E1FCB0CDB86A8C3132D2B /* MBProgressHUD.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = MBProgressHUD.h; sourceTree = ""; }; - 7BBF2A6202CA507D30D3476A /* NSURL+DTUnshorten.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSURL+DTUnshorten.h"; path = "Core/Source/NSURL+DTUnshorten.h"; sourceTree = ""; }; - 7BC113614F7136493658DF3D /* MTLReflection.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MTLReflection.h; path = Mantle/MTLReflection.h; sourceTree = ""; }; - 7C0CF15C9EC35C2E7049DE73 /* AFURLSessionManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = AFURLSessionManager.h; path = AFNetworking/AFURLSessionManager.h; sourceTree = ""; }; - 7CB88CB32F99B23A91737376 /* DTCoreTextLayouter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DTCoreTextLayouter.h; path = Core/Source/DTCoreTextLayouter.h; sourceTree = ""; }; - 7EF4F9B8E1DE4E5EC5ADEADA /* UIImageView+AFNetworking.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIImageView+AFNetworking.m"; path = "UIKit+AFNetworking/UIImageView+AFNetworking.m"; sourceTree = ""; }; - 7FA2010E282D8967EE2214B2 /* DTWebVideoView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DTWebVideoView.h; path = Core/Source/DTWebVideoView.h; sourceTree = ""; }; - 80F2C8CC2597851350219120 /* DTAccessibilityViewProxy.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DTAccessibilityViewProxy.h; path = Core/Source/DTAccessibilityViewProxy.h; sourceTree = ""; }; - 811C72238540E10D821E509F /* DTBlockFunctions.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DTBlockFunctions.m; path = Core/Source/DTBlockFunctions.m; sourceTree = ""; }; - 824F3205D3AFC48DF86294BD /* DTHTMLWriter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DTHTMLWriter.m; path = Core/Source/DTHTMLWriter.m; sourceTree = ""; }; - 82CC48C7AD519486AEE6522C /* MobileCoreServices.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = MobileCoreServices.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS7.1.sdk/System/Library/Frameworks/MobileCoreServices.framework; sourceTree = DEVELOPER_DIR; }; - 8312AECB034C2BC0914BFAAF /* NSObject+MTLComparisonAdditions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSObject+MTLComparisonAdditions.h"; path = "Mantle/NSObject+MTLComparisonAdditions.h"; sourceTree = ""; }; - 836D171FF07483A75E6861A1 /* DTCoreTextLayoutFrame+Cursor.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "DTCoreTextLayoutFrame+Cursor.h"; path = "Core/Source/DTCoreTextLayoutFrame+Cursor.h"; sourceTree = ""; }; - 843417D7C9BE78F634ED964E /* DTLinkButton.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DTLinkButton.h; path = Core/Source/DTLinkButton.h; sourceTree = ""; }; - 853BA32A4A24F1EE925CEB3E /* Pods-SDWebImage-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-SDWebImage-prefix.pch"; sourceTree = ""; }; - 8548215E6816926EBD286077 /* AFHTTPRequestOperation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = AFHTTPRequestOperation.m; path = AFNetworking/AFHTTPRequestOperation.m; sourceTree = ""; }; - 85EDAE7F553BE9B9025A5BBE /* NSAttributedString+SmallCaps.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSAttributedString+SmallCaps.h"; path = "Core/Source/NSAttributedString+SmallCaps.h"; sourceTree = ""; }; - 8603AA1F5FB93FC0461DE390 /* DTCustomColoredAccessory.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DTCustomColoredAccessory.m; path = Core/Source/iOS/DTCustomColoredAccessory.m; sourceTree = ""; }; - 862B69EC37D1700792222296 /* Pods-Reachability-Private.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-Reachability-Private.xcconfig"; sourceTree = ""; }; - 87F422B2E0D48E37DAC11B50 /* MJRefreshGifFooter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MJRefreshGifFooter.m; path = MJRefreshExample/MJRefreshExample/MJRefresh/MJRefreshGifFooter.m; sourceTree = ""; }; - 8831276CD46A5B60D74C2BAC /* MTLModel.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MTLModel.h; path = Mantle/MTLModel.h; sourceTree = ""; }; - 88996DCFB9C20647C811521A /* MJRefreshConst.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MJRefreshConst.m; path = MJRefreshExample/MJRefreshExample/MJRefresh/MJRefreshConst.m; sourceTree = ""; }; - 88E74D6057B5692DADC10F93 /* Pods-SBJson-Private.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-SBJson-Private.xcconfig"; sourceTree = ""; }; - 8B2778A2CBCC22A5EBAD6A04 /* DTHorizontalRuleHTMLElement.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DTHorizontalRuleHTMLElement.h; path = Core/Source/DTHorizontalRuleHTMLElement.h; sourceTree = ""; }; - 8B7C124E5CCC2A6FF542A2DD /* Podfile */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; name = Podfile; path = ../Podfile; sourceTree = SOURCE_ROOT; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; - 8BA13D397123DD418D9A5557 /* AFSecurityPolicy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = AFSecurityPolicy.m; path = AFNetworking/AFSecurityPolicy.m; sourceTree = ""; }; - 8BB919BCAFB78FEB1758A4DC /* DTCoreTextLayoutFrame.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DTCoreTextLayoutFrame.m; path = Core/Source/DTCoreTextLayoutFrame.m; sourceTree = ""; }; - 8BDFB7E4C0AAC71A08B0A6CC /* DTCoreTextParagraphStyle.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DTCoreTextParagraphStyle.m; path = Core/Source/DTCoreTextParagraphStyle.m; sourceTree = ""; }; - 8D7624987F033F98039FBAA9 /* NSString+DTUtilities.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSString+DTUtilities.m"; path = "Core/Source/NSString+DTUtilities.m"; sourceTree = ""; }; - 8DB836771DC16F4553F6187C /* Pods-SBJson-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-SBJson-dummy.m"; sourceTree = ""; }; - 8E7C41887C23810EB51DD0A0 /* Pods-STableViewController-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-STableViewController-dummy.m"; sourceTree = ""; }; - 90370D6EA53E520AF4DD96ED /* Pods-MJRefresh-Private.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-MJRefresh-Private.xcconfig"; sourceTree = ""; }; - 905830A7C598494CA2F91F4C /* MJRefreshGifFooter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MJRefreshGifFooter.h; path = MJRefreshExample/MJRefreshExample/MJRefresh/MJRefreshGifFooter.h; sourceTree = ""; }; - 910112F4F3EB875F4AA0D908 /* DTCSSListStyle.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DTCSSListStyle.m; path = Core/Source/DTCSSListStyle.m; sourceTree = ""; }; - 9268DFFDA72C1B913AEBDAC9 /* DTHorizontalRuleHTMLElement.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DTHorizontalRuleHTMLElement.m; path = Core/Source/DTHorizontalRuleHTMLElement.m; sourceTree = ""; }; - 92DD137860918A2914D09FBE /* SDWebImageDownloaderOperation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDWebImageDownloaderOperation.m; path = SDWebImage/SDWebImageDownloaderOperation.m; sourceTree = ""; }; - 930A0AB4C8E7F92D743F8FB7 /* UIAlertView+AFNetworking.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIAlertView+AFNetworking.h"; path = "UIKit+AFNetworking/UIAlertView+AFNetworking.h"; sourceTree = ""; }; - 9363BC239F7CCC502F0109FD /* NSURL+DTComparing.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSURL+DTComparing.m"; path = "Core/Source/NSURL+DTComparing.m"; sourceTree = ""; }; - 9447CAF1045E27BEEDA3F476 /* UIScrollView+MJExtension.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIScrollView+MJExtension.m"; path = "MJRefreshExample/MJRefreshExample/MJRefresh/UIScrollView+MJExtension.m"; sourceTree = ""; }; - 9520C2A2987FE0DFD1CC4197 /* DTVersion.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DTVersion.h; path = Core/Source/DTVersion.h; sourceTree = ""; }; - 96B8523A07E3B9C83A16BC62 /* DTCoreTextFontCollection.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DTCoreTextFontCollection.m; path = Core/Source/DTCoreTextFontCollection.m; sourceTree = ""; }; - 976E8ED367ED5D8851AFBD7F /* Pods-Mantle-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-Mantle-dummy.m"; sourceTree = ""; }; - 97B8EB9DDB15EC1FE96AD6FC /* SDWebImageDownloader.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDWebImageDownloader.m; path = SDWebImage/SDWebImageDownloader.m; sourceTree = ""; }; - 98A1A4FA156A15C63ED19D69 /* DTActivityTitleView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DTActivityTitleView.h; path = Core/Source/iOS/DTActivityTitleView.h; sourceTree = ""; }; - 9930956F5D90FA1EBCBB3A48 /* NSMutableAttributedString+HTML.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSMutableAttributedString+HTML.h"; path = "Core/Source/NSMutableAttributedString+HTML.h"; sourceTree = ""; }; - 99BB5CAD5850C8794A82F246 /* DTTiledLayerWithoutFade.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DTTiledLayerWithoutFade.m; path = Core/Source/iOS/DTTiledLayerWithoutFade.m; sourceTree = ""; }; - 9A0DCAD1855DE063C4F9EC83 /* UIRefreshControl+AFNetworking.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIRefreshControl+AFNetworking.m"; path = "UIKit+AFNetworking/UIRefreshControl+AFNetworking.m"; sourceTree = ""; }; - 9A64DFA72DEB806D609C599D /* NSDictionary+MTLManipulationAdditions.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSDictionary+MTLManipulationAdditions.m"; path = "Mantle/NSDictionary+MTLManipulationAdditions.m"; sourceTree = ""; }; - 9AB972B15EDB9900880A5BD4 /* Pods-Mantle.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-Mantle.xcconfig"; sourceTree = ""; }; - 9AC757925F47F6FF993302F2 /* UIImageView+HighlightedWebCache.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIImageView+HighlightedWebCache.m"; path = "SDWebImage/UIImageView+HighlightedWebCache.m"; sourceTree = ""; }; - 9AF4EEBE22CA0773738FC4D0 /* EGOCache.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = EGOCache.h; sourceTree = ""; }; - 9CDF2BBFC944D7EC9ED7E876 /* SystemConfiguration.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SystemConfiguration.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS7.1.sdk/System/Library/Frameworks/SystemConfiguration.framework; sourceTree = DEVELOPER_DIR; }; - 9DD9C5A817433D789365FBBE /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS7.1.sdk/System/Library/Frameworks/Foundation.framework; sourceTree = DEVELOPER_DIR; }; - 9EAF55F3F29A2DC5F6D0D400 /* UIAlertView+AFNetworking.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIAlertView+AFNetworking.m"; path = "UIKit+AFNetworking/UIAlertView+AFNetworking.m"; sourceTree = ""; }; - 9F12284C6293A7179D9BBF6A /* DTTextAttachmentHTMLElement.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DTTextAttachmentHTMLElement.h; path = Core/Source/DTTextAttachmentHTMLElement.h; sourceTree = ""; }; - 9F42516FEA63D4DC3288C7DE /* NSArray+DTError.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSArray+DTError.h"; path = "Core/Source/NSArray+DTError.h"; sourceTree = ""; }; - 9F5D12453238D4D645F3419B /* Pods.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = Pods.release.xcconfig; sourceTree = ""; }; - A0F6431993B81C62063DA281 /* DTCSSListStyle.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DTCSSListStyle.h; path = Core/Source/DTCSSListStyle.h; sourceTree = ""; }; - A1934AD2A92C4DDA7871D006 /* DTHTMLParserNode.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DTHTMLParserNode.h; path = Core/Source/DTHTMLParserNode.h; sourceTree = ""; }; - A1B9DA4F4DB2E5878765292A /* AFNetworkActivityIndicatorManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = AFNetworkActivityIndicatorManager.h; path = "UIKit+AFNetworking/AFNetworkActivityIndicatorManager.h"; sourceTree = ""; }; - A2B2B182EBB052C8D1A75726 /* libPods-Mantle.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-Mantle.a"; sourceTree = BUILT_PRODUCTS_DIR; }; - A3A3790BFF503435831271AC /* MJRefreshComponent.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MJRefreshComponent.m; path = MJRefreshExample/MJRefreshExample/MJRefresh/MJRefreshComponent.m; sourceTree = ""; }; - A3D50189B84CAFA22502AA88 /* libPods-AFNetworking.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-AFNetworking.a"; sourceTree = BUILT_PRODUCTS_DIR; }; - A4297449CDDF54794845DE0B /* SDWebImageDownloader.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDWebImageDownloader.h; path = SDWebImage/SDWebImageDownloader.h; sourceTree = ""; }; - A4476FAA3F466E24375C066C /* UIApplication+DTNetworkActivity.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIApplication+DTNetworkActivity.h"; path = "Core/Source/iOS/UIApplication+DTNetworkActivity.h"; sourceTree = ""; }; - A4E0118791F34CD014CF9579 /* Pods-MJRefresh-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-MJRefresh-dummy.m"; sourceTree = ""; }; - A5204F4E2CF3C362FF72EF76 /* Reachability.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = Reachability.m; sourceTree = ""; }; - A5DC4DE3B2C1EA11EA2068EE /* NSString+DTURLEncoding.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSString+DTURLEncoding.m"; path = "Core/Source/NSString+DTURLEncoding.m"; sourceTree = ""; }; - A652D0BB9B4989A790D1C56C /* SBJson4StreamWriter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SBJson4StreamWriter.m; path = src/main/objc/SBJson4StreamWriter.m; sourceTree = ""; }; - A7DD0CD7ACA9C39AC1571612 /* NSMutableString+HTML.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSMutableString+HTML.h"; path = "Core/Source/NSMutableString+HTML.h"; sourceTree = ""; }; - A8F04169908591C458261427 /* AFURLRequestSerialization.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = AFURLRequestSerialization.h; path = AFNetworking/AFURLRequestSerialization.h; sourceTree = ""; }; - A97975ECB669CF8B1BD1619F /* DTBreakHTMLElement.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DTBreakHTMLElement.m; path = Core/Source/DTBreakHTMLElement.m; sourceTree = ""; }; - AB0C595492DC29BD26231AFF /* DTAnchorHTMLElement.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DTAnchorHTMLElement.h; path = Core/Source/DTAnchorHTMLElement.h; sourceTree = ""; }; - AB2F60F681150993334D0AF7 /* NSAttributedStringRunDelegates.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = NSAttributedStringRunDelegates.h; path = Core/Source/NSAttributedStringRunDelegates.h; sourceTree = ""; }; - AC5D6F872F7F6A7FEBA2E5A2 /* DTTextBlock.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DTTextBlock.m; path = Core/Source/DTTextBlock.m; sourceTree = ""; }; - AC65D72031F0470A4D32818C /* NSArray+MTLManipulationAdditions.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSArray+MTLManipulationAdditions.m"; path = "Mantle/NSArray+MTLManipulationAdditions.m"; sourceTree = ""; }; - ACA554A92D0F17480F387916 /* DTCoreTextMacros.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DTCoreTextMacros.h; path = Core/Source/DTCoreTextMacros.h; sourceTree = ""; }; - ACBD88BFCFCB486595242A16 /* AFHTTPRequestOperation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = AFHTTPRequestOperation.h; path = AFNetworking/AFHTTPRequestOperation.h; sourceTree = ""; }; - ACDAAD9655E2C1AC4DAA7447 /* DTCoreTextLayoutLine.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DTCoreTextLayoutLine.h; path = Core/Source/DTCoreTextLayoutLine.h; sourceTree = ""; }; - ACDC97D0468852D958D8D8E8 /* SBJson4StreamWriter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SBJson4StreamWriter.h; path = src/main/objc/SBJson4StreamWriter.h; sourceTree = ""; }; - AD7C7DDA0AE1AFD4F00970DA /* DTStylesheetHTMLElement.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DTStylesheetHTMLElement.h; path = Core/Source/DTStylesheetHTMLElement.h; sourceTree = ""; }; - AE00973AB256DF3A0D0BA60F /* UIApplication+DTNetworkActivity.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIApplication+DTNetworkActivity.m"; path = "Core/Source/iOS/UIApplication+DTNetworkActivity.m"; sourceTree = ""; }; - AE4D8F0FE101726A21C7916D /* UIScrollView+MJExtension.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIScrollView+MJExtension.h"; path = "MJRefreshExample/MJRefreshExample/MJRefresh/UIScrollView+MJExtension.h"; sourceTree = ""; }; - AE53AD511CE0BA44B4752FEA /* MTLModel+NSCoding.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "MTLModel+NSCoding.h"; path = "Mantle/MTLModel+NSCoding.h"; sourceTree = ""; }; - AEDF710B3D9BBB4B3530BDB4 /* Pods-STableViewController-Private.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-STableViewController-Private.xcconfig"; sourceTree = ""; }; - AEE0406A9A825584A0F6B860 /* NSURL+DTAppLinks.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSURL+DTAppLinks.m"; path = "Core/Source/iOS/NSURL+DTAppLinks.m"; sourceTree = ""; }; - AF028E837C5BC33FDC893180 /* DTVideoTextAttachment.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DTVideoTextAttachment.h; path = Core/Source/DTVideoTextAttachment.h; sourceTree = ""; }; - AF34AB79D5153D4F27D6D084 /* DTDictationPlaceholderTextAttachment.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DTDictationPlaceholderTextAttachment.h; path = Core/Source/DTDictationPlaceholderTextAttachment.h; sourceTree = ""; }; - AF6FAB1F9B36456C522A1AE0 /* DTDictationPlaceholderTextAttachment.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DTDictationPlaceholderTextAttachment.m; path = Core/Source/DTDictationPlaceholderTextAttachment.m; sourceTree = ""; }; - AF72C372F5483D431A4FF1A7 /* DTWebVideoView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DTWebVideoView.m; path = Core/Source/DTWebVideoView.m; sourceTree = ""; }; - AFFE47C69E2CCB6543DD7528 /* UIView+WebCacheOperation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIView+WebCacheOperation.m"; path = "SDWebImage/UIView+WebCacheOperation.m"; sourceTree = ""; }; - B001B4A5AB7E920F7C68C0BF /* libPods-SecureUDID.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-SecureUDID.a"; sourceTree = BUILT_PRODUCTS_DIR; }; - B0A3460A7A2FDD3392A03A11 /* UIWebView+DTFoundation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIWebView+DTFoundation.m"; path = "Core/Source/iOS/UIWebView+DTFoundation.m"; sourceTree = ""; }; - B26EF2E1F5791671372428C1 /* UIImageView+WebCache.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIImageView+WebCache.h"; path = "SDWebImage/UIImageView+WebCache.h"; sourceTree = ""; }; - B2BE44C2BD5CFBD496BADAF2 /* UIImageView+AFNetworking.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIImageView+AFNetworking.h"; path = "UIKit+AFNetworking/UIImageView+AFNetworking.h"; sourceTree = ""; }; - B30451B8E4FDB09C257558C5 /* libPods-STableViewController.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-STableViewController.a"; sourceTree = BUILT_PRODUCTS_DIR; }; - B4DD78557F2221312508EA29 /* MediaPlayer.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = MediaPlayer.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS7.1.sdk/System/Library/Frameworks/MediaPlayer.framework; sourceTree = DEVELOPER_DIR; }; - B4E0100EC49E294FB3E6DD7A /* DTImage+HTML.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "DTImage+HTML.h"; path = "Core/Source/DTImage+HTML.h"; sourceTree = ""; }; - B500ECF7DB98EE0B317600B7 /* DTBase64Coding.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DTBase64Coding.m; path = Core/Source/DTBase64Coding.m; sourceTree = ""; }; - B62216477414878B1B856598 /* libPods-DTFoundation.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-DTFoundation.a"; sourceTree = BUILT_PRODUCTS_DIR; }; - B75F71FC4D5A158E5CBAAE4A /* Pods-Mantle-Private.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-Mantle-Private.xcconfig"; sourceTree = ""; }; - B7C1F9E6ED53CEE2B5E2C968 /* Pods-SDWebImage.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-SDWebImage.xcconfig"; sourceTree = ""; }; - B84601644BABDDB5EF4E1742 /* UIImageView+WebCache.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIImageView+WebCache.m"; path = "SDWebImage/UIImageView+WebCache.m"; sourceTree = ""; }; - B93673E4E9B9583E3B0A0B12 /* DTAttributedTextCell.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DTAttributedTextCell.h; path = Core/Source/DTAttributedTextCell.h; sourceTree = ""; }; - B9DF7E684875D2D0F3F9E90E /* DTAttributedLabel.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DTAttributedLabel.h; path = Core/Source/DTAttributedLabel.h; sourceTree = ""; }; - BAD193C4FADB5899C6C15C32 /* AFNetworkActivityIndicatorManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = AFNetworkActivityIndicatorManager.m; path = "UIKit+AFNetworking/AFNetworkActivityIndicatorManager.m"; sourceTree = ""; }; - BB4F7C51E8746A317D228300 /* DTColor+Compatibility.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "DTColor+Compatibility.m"; path = "Core/Source/DTColor+Compatibility.m"; sourceTree = ""; }; - BB7CD6D48CF336B4A54D21F1 /* AFURLConnectionOperation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = AFURLConnectionOperation.m; path = AFNetworking/AFURLConnectionOperation.m; sourceTree = ""; }; - BBAB2C0DE7B01A6D434F48BD /* DTCoreTextFontDescriptor.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DTCoreTextFontDescriptor.h; path = Core/Source/DTCoreTextFontDescriptor.h; sourceTree = ""; }; - BC02B7E0A617A2C3EE555756 /* MJRefreshFooter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MJRefreshFooter.h; path = MJRefreshExample/MJRefreshExample/MJRefresh/MJRefreshFooter.h; sourceTree = ""; }; - BD4CC0F4A206E3387EB23FC7 /* UIRefreshControl+AFNetworking.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIRefreshControl+AFNetworking.h"; path = "UIKit+AFNetworking/UIRefreshControl+AFNetworking.h"; sourceTree = ""; }; - BDBB5D463CB84DB5FCE7F69C /* DTAnchorHTMLElement.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DTAnchorHTMLElement.m; path = Core/Source/DTAnchorHTMLElement.m; sourceTree = ""; }; - BFADDF1EED8DBE2B4E2421F9 /* DTCoreTextLayoutFrameAccessibilityElementGenerator.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DTCoreTextLayoutFrameAccessibilityElementGenerator.m; path = Core/Source/DTCoreTextLayoutFrameAccessibilityElementGenerator.m; sourceTree = ""; }; - C0130EFECC56B2652B94F81E /* AFNetworking.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = AFNetworking.h; path = AFNetworking/AFNetworking.h; sourceTree = ""; }; - C072F31E804C6721B44E54F2 /* SecureUDID.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = SecureUDID.h; sourceTree = ""; }; - C09B4C9B31BECE0AAEBA4764 /* Pods-DTCoreText-Private.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-DTCoreText-Private.xcconfig"; sourceTree = ""; }; - C1A3480ED022780B4482E351 /* SBJson4StreamParserState.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SBJson4StreamParserState.h; path = src/main/objc/SBJson4StreamParserState.h; sourceTree = ""; }; - C3CACD01ECAC658FCCD298EC /* DTCustomColoredAccessory.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DTCustomColoredAccessory.h; path = Core/Source/iOS/DTCustomColoredAccessory.h; sourceTree = ""; }; - C4236B98DE95D458253A2E28 /* SDWebImageManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDWebImageManager.h; path = SDWebImage/SDWebImageManager.h; sourceTree = ""; }; - C55CF69840949A3B9DB21983 /* UIImage+DTFoundation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIImage+DTFoundation.h"; path = "Core/Source/iOS/UIImage+DTFoundation.h"; sourceTree = ""; }; - C62B8A8A0CCDC8D045217737 /* Pods-resources.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-resources.sh"; sourceTree = ""; }; - C65AC3C56199B42EA9136A83 /* STableViewController.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = STableViewController.m; path = STableViewController/STableViewController.m; sourceTree = ""; }; - C69239397978F1E0635D29A1 /* SDImageCache.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDImageCache.h; path = SDWebImage/SDImageCache.h; sourceTree = ""; }; - C7F5D47434A5342B76894D9E /* Pods-MBProgressHUD.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-MBProgressHUD.xcconfig"; sourceTree = ""; }; - C81BB5A80B9CDD86C332157A /* UIButton+AFNetworking.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIButton+AFNetworking.m"; path = "UIKit+AFNetworking/UIButton+AFNetworking.m"; sourceTree = ""; }; - C988330BF193EC2D1790D01E /* DTPieProgressIndicator.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DTPieProgressIndicator.h; path = Core/Source/iOS/DTPieProgressIndicator.h; sourceTree = ""; }; - C99E56F7134A39AC6037E2E3 /* Reachability.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = Reachability.h; sourceTree = ""; }; - C9CEC52E2C906AE8F6B24AF0 /* DTSmartPagingScrollView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DTSmartPagingScrollView.m; path = Core/Source/iOS/DTSmartPagingScrollView.m; sourceTree = ""; }; - C9D08CD6B532365139DA1407 /* MJRefreshFooter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MJRefreshFooter.m; path = MJRefreshExample/MJRefreshExample/MJRefresh/MJRefreshFooter.m; sourceTree = ""; }; - C9D338DCF7BBE8E416037CF6 /* MTLModel.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MTLModel.m; path = Mantle/MTLModel.m; sourceTree = ""; }; - CA3FD3F948E17C33EBE4FEEA /* NSCharacterSet+HTML.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSCharacterSet+HTML.m"; path = "Core/Source/NSCharacterSet+HTML.m"; sourceTree = ""; }; - CAB0A45839DC7DB4DE3ED48D /* NSObject+MTLComparisonAdditions.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSObject+MTLComparisonAdditions.m"; path = "Mantle/NSObject+MTLComparisonAdditions.m"; sourceTree = ""; }; - CB44F38D8EB7A12F257CF13C /* DTVideoTextAttachment.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DTVideoTextAttachment.m; path = Core/Source/DTVideoTextAttachment.m; sourceTree = ""; }; - CB8B44F2AD738EA16716C5FE /* MJRefresh.bundle */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = "wrapper.plug-in"; name = MJRefresh.bundle; path = MJRefreshExample/MJRefreshExample/MJRefresh/MJRefresh.bundle; sourceTree = ""; }; - CBC0B7619CE8715C3E8F9F05 /* Pods-AFNetworking-Private.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-AFNetworking-Private.xcconfig"; sourceTree = ""; }; - CBE26A822B9113D7AEE87DA3 /* libPods-DTCoreText.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-DTCoreText.a"; sourceTree = BUILT_PRODUCTS_DIR; }; - CC9008DF746F6AE684082BCB /* NSString+HTML.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSString+HTML.h"; path = "Core/Source/NSString+HTML.h"; sourceTree = ""; }; - CD097ED93E1C276A7FA9430E /* DTCoreTextConstants.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DTCoreTextConstants.h; path = Core/Source/DTCoreTextConstants.h; sourceTree = ""; }; - CD2AE4C4FECECC3D80428448 /* Pods-DTFoundation-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-DTFoundation-dummy.m"; sourceTree = ""; }; - CD3E2723A996F6F8BF044B77 /* DTCoreTextConstants.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DTCoreTextConstants.m; path = Core/Source/DTCoreTextConstants.m; sourceTree = ""; }; - CD5024FC7D47DD48B5ED9D8D /* NSFileManager+Godzippa.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSFileManager+Godzippa.h"; path = "Godzippa/NSFileManager+Godzippa.h"; sourceTree = ""; }; - CE8D89294248FA6062C49829 /* MTLManagedObjectAdapter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MTLManagedObjectAdapter.h; path = Mantle/MTLManagedObjectAdapter.h; sourceTree = ""; }; - CFFCBAA6E08FE2EC737991CC /* DTImageTextAttachment.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DTImageTextAttachment.h; path = Core/Source/DTImageTextAttachment.h; sourceTree = ""; }; - D0113E9980E365E7C47DF37E /* CoreText.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreText.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS7.1.sdk/System/Library/Frameworks/CoreText.framework; sourceTree = DEVELOPER_DIR; }; - D086CB92C6BD593F773E96CE /* DTWeakSupport.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DTWeakSupport.h; path = Core/Source/DTWeakSupport.h; sourceTree = ""; }; - D200097579CFD9EDF1B9A1B3 /* DTHTMLParserTextNode.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DTHTMLParserTextNode.h; path = Core/Source/DTHTMLParserTextNode.h; sourceTree = ""; }; - D204A5D144A99453E91B207B /* Pods-DTCoreText-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-DTCoreText-prefix.pch"; sourceTree = ""; }; - D2E92F7A6612F4A24E6F20D7 /* DTColorFunctions.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DTColorFunctions.m; path = Core/Source/DTColorFunctions.m; sourceTree = ""; }; - D3C8C061C4FFE31551220FA8 /* Pods-MJRefresh.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-MJRefresh.xcconfig"; sourceTree = ""; }; - D5C54EE1B30EC338D3303861 /* UIActivityIndicatorView+AFNetworking.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIActivityIndicatorView+AFNetworking.h"; path = "UIKit+AFNetworking/UIActivityIndicatorView+AFNetworking.h"; sourceTree = ""; }; - D5EA61467C60003133DD0D39 /* NSData+DTCrypto.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSData+DTCrypto.m"; path = "Core/Source/NSData+DTCrypto.m"; sourceTree = ""; }; - D78D447FDC3C650ACDBF8768 /* NSCoder+DTCompatibility.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSCoder+DTCompatibility.h"; path = "Core/Source/NSCoder+DTCompatibility.h"; sourceTree = ""; }; - D7D7A0CB50404353CCE42F15 /* DTSmartPagingScrollView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DTSmartPagingScrollView.h; path = Core/Source/iOS/DTSmartPagingScrollView.h; sourceTree = ""; }; - D82372A59C0AC80663B90CED /* NSArray+MTLManipulationAdditions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSArray+MTLManipulationAdditions.h"; path = "Mantle/NSArray+MTLManipulationAdditions.h"; sourceTree = ""; }; - D905170C724FC07A087DA177 /* MTLReflection.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MTLReflection.m; path = Mantle/MTLReflection.m; sourceTree = ""; }; - D938F08000DB650B2F491850 /* NSError+MTLModelException.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSError+MTLModelException.h"; path = "Mantle/NSError+MTLModelException.h"; sourceTree = ""; }; - D982A5993F423F2602770DD7 /* NSAttributedString+SmallCaps.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSAttributedString+SmallCaps.m"; path = "Core/Source/NSAttributedString+SmallCaps.m"; sourceTree = ""; }; - D9832217CABFF0E976E49A8F /* DTTextHTMLElement.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DTTextHTMLElement.h; path = Core/Source/DTTextHTMLElement.h; sourceTree = ""; }; - D9A3FE59729AC5FB74AF9D67 /* SBJson4StreamParserState.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SBJson4StreamParserState.m; path = src/main/objc/SBJson4StreamParserState.m; sourceTree = ""; }; - DB9901403DB337D702874EE5 /* NSDictionary+DTCoreText.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSDictionary+DTCoreText.h"; path = "Core/Source/NSDictionary+DTCoreText.h"; sourceTree = ""; }; - DBBDECA0E031AACA6A6FD77E /* DTExtendedFileAttributes.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DTExtendedFileAttributes.m; path = Core/Source/DTExtendedFileAttributes.m; sourceTree = ""; }; - DD16954F60332ADFD07CC6DD /* Pods-MBProgressHUD-Private.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-MBProgressHUD-Private.xcconfig"; sourceTree = ""; }; - DD2E4AF02D89954634EFF8C5 /* NSData+Godzippa.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSData+Godzippa.h"; path = "Godzippa/NSData+Godzippa.h"; sourceTree = ""; }; - DD6A78B0D9A58DFC5680AEF5 /* DTFoundationConstants.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DTFoundationConstants.h; path = Core/Source/DTFoundationConstants.h; sourceTree = ""; }; - DDB5573320075200698C87D5 /* DTCoreTextFunctions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DTCoreTextFunctions.h; path = Core/Source/DTCoreTextFunctions.h; sourceTree = ""; }; - DF3A183ACE7AA9CF9B0D51C3 /* UIImage+MultiFormat.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIImage+MultiFormat.h"; path = "SDWebImage/UIImage+MultiFormat.h"; sourceTree = ""; }; - DF93B9175E450858873DDAA6 /* NSURL+DTUnshorten.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSURL+DTUnshorten.m"; path = "Core/Source/NSURL+DTUnshorten.m"; sourceTree = ""; }; - DFE070D59D98460D7859BE1A /* Pods-Godzippa.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-Godzippa.xcconfig"; sourceTree = ""; }; - E03546E55068EB6FC56539AA /* NSAttributedStringRunDelegates.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = NSAttributedStringRunDelegates.m; path = Core/Source/NSAttributedStringRunDelegates.m; sourceTree = ""; }; - E06A0E4811BBE705C4CCACAB /* DTHTMLParser.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DTHTMLParser.h; path = Core/Source/DTHTMLParser/DTHTMLParser.h; sourceTree = ""; }; - E0CDB2B40E60145C0DD591F1 /* Pods-AFNetworking.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-AFNetworking.xcconfig"; sourceTree = ""; }; - E12A9F77537BE752605BE4FB /* NSString+DTURLEncoding.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSString+DTURLEncoding.h"; path = "Core/Source/NSString+DTURLEncoding.h"; sourceTree = ""; }; - E185C3A63D33EA5B221AC913 /* NSValueTransformer+MTLInversionAdditions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSValueTransformer+MTLInversionAdditions.h"; path = "Mantle/NSValueTransformer+MTLInversionAdditions.h"; sourceTree = ""; }; - E2047543F1590232A94322E0 /* NSCharacterSet+HTML.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSCharacterSet+HTML.h"; path = "Core/Source/NSCharacterSet+HTML.h"; sourceTree = ""; }; - E285C11FC8A0EDC3C050F5BA /* DTAnimatedGIF.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DTAnimatedGIF.h; path = Core/Source/iOS/DTAnimatedGIF/DTAnimatedGIF.h; sourceTree = ""; }; - E2E58C3EBFFE680BA8B27886 /* Godzippa.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = Godzippa.h; path = Godzippa/Godzippa.h; sourceTree = ""; }; - E30D75C853F99F1A5BB9BD3B /* EGOCache.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = EGOCache.m; sourceTree = ""; }; - E318B19F03E9DE62C674966F /* MJRefreshConst.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MJRefreshConst.h; path = MJRefreshExample/MJRefreshExample/MJRefresh/MJRefreshConst.h; sourceTree = ""; }; - E395C8947ADEF664E5DAA682 /* Pods-Reachability.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-Reachability.xcconfig"; sourceTree = ""; }; - E3CA9A0D1022C0680DD14622 /* NSString+DTFormatNumbers.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSString+DTFormatNumbers.m"; path = "Core/Source/NSString+DTFormatNumbers.m"; sourceTree = ""; }; - E423E5459EDC690BEBD6A3A4 /* NSData+DTCrypto.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSData+DTCrypto.h"; path = "Core/Source/NSData+DTCrypto.h"; sourceTree = ""; }; - E5A4E4DF071DF4FCF2C16428 /* UIFont+DTCoreText.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIFont+DTCoreText.m"; path = "Core/Source/UIFont+DTCoreText.m"; sourceTree = ""; }; - E682227BB5148A457619A3B8 /* EXTKeyPathCoding.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = EXTKeyPathCoding.h; path = Mantle/extobjc/EXTKeyPathCoding.h; sourceTree = ""; }; - E70B4D3E26344AF290F4C98E /* AFURLSessionManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = AFURLSessionManager.m; path = AFNetworking/AFURLSessionManager.m; sourceTree = ""; }; - E76ADADDF8D8EED738777D61 /* NSCoder+DTCompatibility.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSCoder+DTCompatibility.m"; path = "Core/Source/NSCoder+DTCompatibility.m"; sourceTree = ""; }; - E8A843E0157B0F0CB285E87E /* DTObjectTextAttachment.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DTObjectTextAttachment.m; path = Core/Source/DTObjectTextAttachment.m; sourceTree = ""; }; - E90048AC25846309934924ED /* DTHTMLParserNode.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DTHTMLParserNode.m; path = Core/Source/DTHTMLParserNode.m; sourceTree = ""; }; - E9073FA1B8DD32D6490E136E /* NSString+Paragraphs.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSString+Paragraphs.m"; path = "Core/Source/NSString+Paragraphs.m"; sourceTree = ""; }; - E985496411C338BFFF72DC59 /* DTDictationPlaceholderView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DTDictationPlaceholderView.h; path = Core/Source/DTDictationPlaceholderView.h; sourceTree = ""; }; - E9ACB5A0A0AB3C727CEFEE7D /* DTLinkButton.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DTLinkButton.m; path = Core/Source/DTLinkButton.m; sourceTree = ""; }; - EB1FFA98D7F41E49D4A1FC80 /* MJRefreshLegendFooter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MJRefreshLegendFooter.m; path = MJRefreshExample/MJRefreshExample/MJRefresh/MJRefreshLegendFooter.m; sourceTree = ""; }; - EB72821D64E431973F02A38F /* MJRefreshLegendHeader.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MJRefreshLegendHeader.h; path = MJRefreshExample/MJRefreshExample/MJRefresh/MJRefreshLegendHeader.h; sourceTree = ""; }; - EBC22545F6D32A951618D5CE /* DTTextAttachment.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DTTextAttachment.m; path = Core/Source/DTTextAttachment.m; sourceTree = ""; }; - EC01E94AC6E9783C2C51CA03 /* NSAttributedString+DTCoreText.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSAttributedString+DTCoreText.h"; path = "Core/Source/NSAttributedString+DTCoreText.h"; sourceTree = ""; }; - ECBCCCD797D5A2DC1FEF0C9E /* DTCoreGraphicsUtils.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DTCoreGraphicsUtils.m; path = Core/Source/DTCoreGraphicsUtils.m; sourceTree = ""; }; - EDE030D85B22A8F05A718A4C /* DTColorFunctions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DTColorFunctions.h; path = Core/Source/DTColorFunctions.h; sourceTree = ""; }; - EDF8FB7A99E6A32E06931FC8 /* DTTextHTMLElement.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DTTextHTMLElement.m; path = Core/Source/DTTextHTMLElement.m; sourceTree = ""; }; - EE8565A6AA74E73D16AA06A7 /* AFURLResponseSerialization.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = AFURLResponseSerialization.m; path = AFNetworking/AFURLResponseSerialization.m; sourceTree = ""; }; - EEBAAD0C74D269B0751069C8 /* DTImage+HTML.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "DTImage+HTML.m"; path = "Core/Source/DTImage+HTML.m"; sourceTree = ""; }; - EF130C5383314A1B1F7BBC18 /* Pods-DTCoreText.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-DTCoreText.xcconfig"; sourceTree = ""; }; - F090452F16DD6E56998D85F1 /* DTCoreTextGlyphRun.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DTCoreTextGlyphRun.m; path = Core/Source/DTCoreTextGlyphRun.m; sourceTree = ""; }; - F0CC372E47C461FBE2EB7486 /* DTAttributedTextView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DTAttributedTextView.m; path = Core/Source/DTAttributedTextView.m; sourceTree = ""; }; - F0D499BD4214ECB217034F23 /* DTHTMLWriter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DTHTMLWriter.h; path = Core/Source/DTHTMLWriter.h; sourceTree = ""; }; - F114083C13D15B1EB627A350 /* Pods-DTCoreText-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-DTCoreText-dummy.m"; sourceTree = ""; }; - F168A911AA440D4C151F9C1D /* DTHTMLElement.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DTHTMLElement.h; path = Core/Source/DTHTMLElement.h; sourceTree = ""; }; - F1A74F2A196FE771945EA0BB /* Pods-SBJson.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-SBJson.xcconfig"; sourceTree = ""; }; - F2258CC4EF49C712074144BF /* Pods-environment.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-environment.h"; sourceTree = ""; }; - F2551C1ACF348C6C30F3CD19 /* MJRefresh.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MJRefresh.h; path = MJRefreshExample/MJRefreshExample/MJRefresh/MJRefresh.h; sourceTree = ""; }; - F27265DD7AC462708EDB1231 /* SBJson4StreamParser.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SBJson4StreamParser.m; path = src/main/objc/SBJson4StreamParser.m; sourceTree = ""; }; - F2A3D38884C41197378682EC /* SBJson4.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SBJson4.h; path = src/main/objc/SBJson4.h; sourceTree = ""; }; - F3298950D38367B5B0B857B9 /* UIView+MJExtension.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIView+MJExtension.m"; path = "MJRefreshExample/MJRefreshExample/MJRefresh/UIView+MJExtension.m"; sourceTree = ""; }; - F3AFBC2A7345283D309D433A /* SBJson4Writer.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SBJson4Writer.m; path = src/main/objc/SBJson4Writer.m; sourceTree = ""; }; - F48BD34D52AB4DDAFF22F360 /* MJRefreshHeader.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MJRefreshHeader.h; path = MJRefreshExample/MJRefreshExample/MJRefresh/MJRefreshHeader.h; sourceTree = ""; }; - F50BE35C5313CE948435A1BE /* DTTextAttachmentHTMLElement.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DTTextAttachmentHTMLElement.m; path = Core/Source/DTTextAttachmentHTMLElement.m; sourceTree = ""; }; - F582FC8D28A00099572FBB6E /* NSValueTransformer+MTLPredefinedTransformerAdditions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSValueTransformer+MTLPredefinedTransformerAdditions.h"; path = "Mantle/NSValueTransformer+MTLPredefinedTransformerAdditions.h"; sourceTree = ""; }; - F64AF8C879E7300CB2CB9C16 /* UIScrollView+MJRefresh.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIScrollView+MJRefresh.h"; path = "MJRefreshExample/MJRefreshExample/MJRefresh/UIScrollView+MJRefresh.h"; sourceTree = ""; }; - F657B550373040E1E6477D64 /* DTCoreTextParagraphStyle.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DTCoreTextParagraphStyle.h; path = Core/Source/DTCoreTextParagraphStyle.h; sourceTree = ""; }; - F69B519C120CB30E30FF66B2 /* DTLazyImageView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DTLazyImageView.h; path = Core/Source/DTLazyImageView.h; sourceTree = ""; }; - F6A6D3AA20DAA77868C1D091 /* SDWebImageDecoder.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDWebImageDecoder.h; path = SDWebImage/SDWebImageDecoder.h; sourceTree = ""; }; - F8D82090CD2D00F85300B351 /* Pods-STableViewController.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-STableViewController.xcconfig"; sourceTree = ""; }; - F9F7F21660EEA731250022FB /* NSString+DTFormatNumbers.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSString+DTFormatNumbers.h"; path = "Core/Source/NSString+DTFormatNumbers.h"; sourceTree = ""; }; - FA171C7D85D5C1A68B9F4FF4 /* MJRefreshGifHeader.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MJRefreshGifHeader.h; path = MJRefreshExample/MJRefreshExample/MJRefresh/MJRefreshGifHeader.h; sourceTree = ""; }; - FBF4D2435D4D21F020CB5127 /* NSArray+DTError.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSArray+DTError.m"; path = "Core/Source/NSArray+DTError.m"; sourceTree = ""; }; - FC33FC69327B72065A6A6850 /* SDImageCache.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDImageCache.m; path = SDWebImage/SDImageCache.m; sourceTree = ""; }; - FCFD752A2ADB6A2F75E062F9 /* AFNetworkReachabilityManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = AFNetworkReachabilityManager.h; path = AFNetworking/AFNetworkReachabilityManager.h; sourceTree = ""; }; - FD5081DE159AF8A6D580542B /* MTLModel+NSCoding.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "MTLModel+NSCoding.m"; path = "Mantle/MTLModel+NSCoding.m"; sourceTree = ""; }; - FD994BF3AB940E759259C133 /* libPods-MBProgressHUD.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-MBProgressHUD.a"; sourceTree = BUILT_PRODUCTS_DIR; }; - FEC31545FD989A646944ADE6 /* NSAttributedString+HTML.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSAttributedString+HTML.m"; path = "Core/Source/NSAttributedString+HTML.m"; sourceTree = ""; }; + 003D03619950FB54423249CA /* NSScanner+HTML.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSScanner+HTML.m"; path = "Core/Source/NSScanner+HTML.m"; sourceTree = ""; }; + 00A1C64C5E2ACEA1D852C0D3 /* NSDictionary+DTError.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSDictionary+DTError.m"; path = "Core/Source/NSDictionary+DTError.m"; sourceTree = ""; }; + 02019007E705E56F85FB6310 /* DTTextHTMLElement.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DTTextHTMLElement.h; path = Core/Source/DTTextHTMLElement.h; sourceTree = ""; }; + 021F539DD58B45CE79A628FC /* NSValueTransformer+MTLInversionAdditions.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSValueTransformer+MTLInversionAdditions.m"; path = "Mantle/NSValueTransformer+MTLInversionAdditions.m"; sourceTree = ""; }; + 0260A32C9F82314300062B7E /* EXTScope.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = EXTScope.m; path = Mantle/extobjc/EXTScope.m; sourceTree = ""; }; + 03400F44B514737FC576D22D /* DTExtendedFileAttributes.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DTExtendedFileAttributes.m; path = Core/Source/DTExtendedFileAttributes.m; sourceTree = ""; }; + 03E30B9B3AC56019DD0402E7 /* DTAnchorHTMLElement.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DTAnchorHTMLElement.m; path = Core/Source/DTAnchorHTMLElement.m; sourceTree = ""; }; + 03F90A77DCEDB83871C3FCDE /* Pods-SBJson-Private.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-SBJson-Private.xcconfig"; sourceTree = ""; }; + 04229EA39468FD5D89C9F83C /* UIImage+GIF.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIImage+GIF.h"; path = "SDWebImage/UIImage+GIF.h"; sourceTree = ""; }; + 04608BD81CB1D6FD7BB13DC6 /* SBJson4StreamWriterState.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SBJson4StreamWriterState.h; path = src/main/objc/SBJson4StreamWriterState.h; sourceTree = ""; }; + 07F049280D9C381907648E09 /* DTCoreTextFontCollection.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DTCoreTextFontCollection.h; path = Core/Source/DTCoreTextFontCollection.h; sourceTree = ""; }; + 07FD0086FFE5BFDC1FF91E21 /* DTPieProgressIndicator.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DTPieProgressIndicator.m; path = Core/Source/iOS/DTPieProgressIndicator.m; sourceTree = ""; }; + 082FA3B0705A0298918991C5 /* DTBreakHTMLElement.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DTBreakHTMLElement.m; path = Core/Source/DTBreakHTMLElement.m; sourceTree = ""; }; + 088CAD50985EA7FBB7C2BA07 /* DTLinkButton.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DTLinkButton.m; path = Core/Source/DTLinkButton.m; sourceTree = ""; }; + 091210310FE167D9C6269D59 /* DTCoreTextLayoutLine.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DTCoreTextLayoutLine.h; path = Core/Source/DTCoreTextLayoutLine.h; sourceTree = ""; }; + 09430B88F175AF3535814D9B /* AFHTTPRequestOperation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = AFHTTPRequestOperation.m; path = AFNetworking/AFHTTPRequestOperation.m; sourceTree = ""; }; + 099DAB73D0E32ED005F070D2 /* Pods-STableViewController-Private.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-STableViewController-Private.xcconfig"; sourceTree = ""; }; + 0A37EC30CC4572FEC61203E7 /* MWPhotoBrowser.bundle */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = "wrapper.plug-in"; name = MWPhotoBrowser.bundle; path = MWPhotoBrowser/MWPhotoBrowser.bundle; sourceTree = ""; }; + 0A4DE42725555C4AE2176AAC /* DTHorizontalRuleHTMLElement.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DTHorizontalRuleHTMLElement.h; path = Core/Source/DTHorizontalRuleHTMLElement.h; sourceTree = ""; }; + 0AB85644C22A7EA0EB2F4ED0 /* DTTextAttachment.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DTTextAttachment.m; path = Core/Source/DTTextAttachment.m; sourceTree = ""; }; + 0B423F37971208738F727BC3 /* libPods-AFNetworking.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-AFNetworking.a"; sourceTree = BUILT_PRODUCTS_DIR; }; + 0C1488D43582FF33CC631E20 /* Podfile */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; name = Podfile; path = ../Podfile; sourceTree = SOURCE_ROOT; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; + 0C21ADE502662C9474628A52 /* DTSmartPagingScrollView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DTSmartPagingScrollView.h; path = Core/Source/iOS/DTSmartPagingScrollView.h; sourceTree = ""; }; + 0D10A5C0E88F1E5712BD90D3 /* DTTiledLayerWithoutFade.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DTTiledLayerWithoutFade.m; path = Core/Source/iOS/DTTiledLayerWithoutFade.m; sourceTree = ""; }; + 0DC61F188173825DED2D2F9D /* SBJson4StreamWriter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SBJson4StreamWriter.h; path = src/main/objc/SBJson4StreamWriter.h; sourceTree = ""; }; + 0E78310FE33EEFE36F471255 /* NSString+HTML.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSString+HTML.h"; path = "Core/Source/NSString+HTML.h"; sourceTree = ""; }; + 0F28E723636C615F9CD3E0EC /* SBJson4StreamParserState.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SBJson4StreamParserState.h; path = src/main/objc/SBJson4StreamParserState.h; sourceTree = ""; }; + 0F368EBCC297CD54BA371764 /* Pods-SDWebImage-Private.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-SDWebImage-Private.xcconfig"; sourceTree = ""; }; + 10724403D3A0ADA6095E7F64 /* AFSecurityPolicy.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = AFSecurityPolicy.h; path = AFNetworking/AFSecurityPolicy.h; sourceTree = ""; }; + 10F6C2912E12899952817331 /* MTLManagedObjectAdapter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MTLManagedObjectAdapter.m; path = Mantle/MTLManagedObjectAdapter.m; sourceTree = ""; }; + 1410D4C4D6F51DF135522C7E /* DACircularProgressView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DACircularProgressView.h; path = DACircularProgress/DACircularProgressView.h; sourceTree = ""; }; + 14D3263619D19707B51CFF0C /* MWGridViewController.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MWGridViewController.h; path = MWPhotoBrowser/Classes/MWGridViewController.h; sourceTree = ""; }; + 1539845BC83391CEB1DDB5A9 /* UIImage+GIF.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIImage+GIF.m"; path = "SDWebImage/UIImage+GIF.m"; sourceTree = ""; }; + 164DCDD2B2EA6DBD3953BE66 /* UIView+MJExtension.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIView+MJExtension.m"; path = "MJRefreshExample/MJRefreshExample/MJRefresh/UIView+MJExtension.m"; sourceTree = ""; }; + 16F6885C6B188F295317CB7C /* MJRefreshLegendFooter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MJRefreshLegendFooter.m; path = MJRefreshExample/MJRefreshExample/MJRefresh/MJRefreshLegendFooter.m; sourceTree = ""; }; + 16FF291C006A900385DB96EA /* Pods-Reachability-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-Reachability-dummy.m"; sourceTree = ""; }; + 1811CB7FBBF725B277131843 /* CoreText.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreText.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS7.1.sdk/System/Library/Frameworks/CoreText.framework; sourceTree = DEVELOPER_DIR; }; + 18D367094EC0AF9D94EADD89 /* PSTCollectionView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = PSTCollectionView.h; path = PSTCollectionView/PSTCollectionView.h; sourceTree = ""; }; + 19C21F30C322ED33490255DE /* NSString+Paragraphs.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSString+Paragraphs.h"; path = "Core/Source/NSString+Paragraphs.h"; sourceTree = ""; }; + 19D812DDE49E62CF0091341E /* NSDictionary+DTError.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSDictionary+DTError.h"; path = "Core/Source/NSDictionary+DTError.h"; sourceTree = ""; }; + 1A991EA211E146D0D56FEAC7 /* DTVideoTextAttachment.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DTVideoTextAttachment.h; path = Core/Source/DTVideoTextAttachment.h; sourceTree = ""; }; + 1AB03E8DB12A67211E7F4822 /* DTCoreTextGlyphRun.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DTCoreTextGlyphRun.h; path = Core/Source/DTCoreTextGlyphRun.h; sourceTree = ""; }; + 1E1722DD1BFF10C18945FF61 /* DTAttributedTextCell.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DTAttributedTextCell.h; path = Core/Source/DTAttributedTextCell.h; sourceTree = ""; }; + 1E381E4EBAF2F1EF0CE4A7F4 /* PSTGridLayoutInfo.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = PSTGridLayoutInfo.h; path = PSTCollectionView/PSTGridLayoutInfo.h; sourceTree = ""; }; + 1E97809E14A070272AF13164 /* MTLReflection.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MTLReflection.m; path = Mantle/MTLReflection.m; sourceTree = ""; }; + 1ECD5EDC3483D2B63C2D7B30 /* Pods-SDWebImage-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-SDWebImage-dummy.m"; sourceTree = ""; }; + 2036F60042DE2157C9D6E705 /* UIButton+AFNetworking.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIButton+AFNetworking.m"; path = "UIKit+AFNetworking/UIButton+AFNetworking.m"; sourceTree = ""; }; + 2090085022483B35C9205497 /* MapKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = MapKit.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS7.1.sdk/System/Library/Frameworks/MapKit.framework; sourceTree = DEVELOPER_DIR; }; + 210B178945CD55AFC51EBE3F /* DTCompatibility.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DTCompatibility.h; path = Core/Source/DTCompatibility.h; sourceTree = ""; }; + 218789BFC7D3CEDA7C2DC855 /* UIImageView+HighlightedWebCache.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIImageView+HighlightedWebCache.h"; path = "SDWebImage/UIImageView+HighlightedWebCache.h"; sourceTree = ""; }; + 22102AF11B8BE9029948F197 /* NSData+Godzippa.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSData+Godzippa.m"; path = "Godzippa/NSData+Godzippa.m"; sourceTree = ""; }; + 22684D09C62326704CFA6B3B /* Pods-DTCoreText.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-DTCoreText.xcconfig"; sourceTree = ""; }; + 228D62A84D1F2314138CB6BE /* SystemConfiguration.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SystemConfiguration.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS7.1.sdk/System/Library/Frameworks/SystemConfiguration.framework; sourceTree = DEVELOPER_DIR; }; + 22D12AF5F6823D3192CBCCA6 /* MWTapDetectingView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MWTapDetectingView.h; path = MWPhotoBrowser/Classes/MWTapDetectingView.h; sourceTree = ""; }; + 234606703661525CCAFA494E /* NSAttributedString+DTCoreText.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSAttributedString+DTCoreText.m"; path = "Core/Source/NSAttributedString+DTCoreText.m"; sourceTree = ""; }; + 23C455522543942330F76B21 /* MJRefreshLegendHeader.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MJRefreshLegendHeader.m; path = MJRefreshExample/MJRefreshExample/MJRefresh/MJRefreshLegendHeader.m; sourceTree = ""; }; + 23D4AAB2C2B27F6EE8C8DE10 /* UIImage+MultiFormat.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIImage+MultiFormat.h"; path = "SDWebImage/UIImage+MultiFormat.h"; sourceTree = ""; }; + 249452CB1BAA300A469E0853 /* NSMutableArray+DTMoving.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSMutableArray+DTMoving.m"; path = "Core/Source/NSMutableArray+DTMoving.m"; sourceTree = ""; }; + 2527254E1C9A4D37868A4B20 /* DTHTMLAttributedStringBuilder.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DTHTMLAttributedStringBuilder.m; path = Core/Source/DTHTMLAttributedStringBuilder.m; sourceTree = ""; }; + 257C4422B6FFED6E7467D398 /* PSTCollectionViewLayout.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = PSTCollectionViewLayout.h; path = PSTCollectionView/PSTCollectionViewLayout.h; sourceTree = ""; }; + 25DCF52C496FAF18970506A5 /* DTTextAttachmentHTMLElement.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DTTextAttachmentHTMLElement.m; path = Core/Source/DTTextAttachmentHTMLElement.m; sourceTree = ""; }; + 25FF3DD0EE462D4D3D703271 /* DTStylesheetHTMLElement.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DTStylesheetHTMLElement.m; path = Core/Source/DTStylesheetHTMLElement.m; sourceTree = ""; }; + 26FDF7AFD41C9CB0129EB7A6 /* UIView+MJExtension.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIView+MJExtension.h"; path = "MJRefreshExample/MJRefreshExample/MJRefresh/UIView+MJExtension.h"; sourceTree = ""; }; + 277DAE9556EE45ED443AA4C6 /* MJRefreshConst.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MJRefreshConst.h; path = MJRefreshExample/MJRefreshExample/MJRefresh/MJRefreshConst.h; sourceTree = ""; }; + 27947216BA9B57A7FDD371ED /* DTPieProgressIndicator.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DTPieProgressIndicator.h; path = Core/Source/iOS/DTPieProgressIndicator.h; sourceTree = ""; }; + 283567AF2362532C2FC1A25F /* MWGridViewController.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MWGridViewController.m; path = MWPhotoBrowser/Classes/MWGridViewController.m; sourceTree = ""; }; + 284F4DCB2777C6DD6FFBAB85 /* SDWebImageDownloader.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDWebImageDownloader.h; path = SDWebImage/SDWebImageDownloader.h; sourceTree = ""; }; + 28996023C44AEDBF2DF289F3 /* QuartzCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS7.1.sdk/System/Library/Frameworks/QuartzCore.framework; sourceTree = DEVELOPER_DIR; }; + 29047B27A222EE428F21AEC6 /* SBJson4.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SBJson4.h; path = src/main/objc/SBJson4.h; sourceTree = ""; }; + 293204770E373A792966B177 /* Pods-DTCoreText-Private.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-DTCoreText-Private.xcconfig"; sourceTree = ""; }; + 29BDFECB9C814B652C55CAE3 /* DTCoreTextFontDescriptor.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DTCoreTextFontDescriptor.h; path = Core/Source/DTCoreTextFontDescriptor.h; sourceTree = ""; }; + 2A143E7284F7872D2256EF3F /* PSTCollectionViewFlowLayout.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = PSTCollectionViewFlowLayout.m; path = PSTCollectionView/PSTCollectionViewFlowLayout.m; sourceTree = ""; }; + 2A28A0F8FAE772BA5101C496 /* EGOCache.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = EGOCache.h; sourceTree = ""; }; + 2AC64D336BCA6D2EE4072DB9 /* MessageUI.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = MessageUI.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS7.1.sdk/System/Library/Frameworks/MessageUI.framework; sourceTree = DEVELOPER_DIR; }; + 2B0E7FC40F6CF49A47D7C2D5 /* DTTextAttachment.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DTTextAttachment.h; path = Core/Source/DTTextAttachment.h; sourceTree = ""; }; + 2B49D6D7D6F56CF4DDCDC91A /* MJRefreshHeader.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MJRefreshHeader.h; path = MJRefreshExample/MJRefreshExample/MJRefresh/MJRefreshHeader.h; sourceTree = ""; }; + 2BB4618BE9D5E6F640E04F26 /* MBProgressHUD.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = MBProgressHUD.h; sourceTree = ""; }; + 2C11A54574B7474FFD6613F5 /* DTTextBlock.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DTTextBlock.m; path = Core/Source/DTTextBlock.m; sourceTree = ""; }; + 2D513C462883FAD3225F3995 /* Pods-SDWebImage-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-SDWebImage-prefix.pch"; sourceTree = ""; }; + 2D97DDA2AE1A703999D28F28 /* AFURLResponseSerialization.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = AFURLResponseSerialization.h; path = AFNetworking/AFURLResponseSerialization.h; sourceTree = ""; }; + 2F761BB7FC4AC9993DD40D23 /* UIProgressView+AFNetworking.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIProgressView+AFNetworking.m"; path = "UIKit+AFNetworking/UIProgressView+AFNetworking.m"; sourceTree = ""; }; + 2FDFF225A72C6E222476AB25 /* DTCoreGraphicsUtils.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DTCoreGraphicsUtils.h; path = Core/Source/DTCoreGraphicsUtils.h; sourceTree = ""; }; + 2FF7783093473DCAD324F216 /* Pods-EGOCache-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-EGOCache-prefix.pch"; sourceTree = ""; }; + 30010FF6484107A7FF4E4FD3 /* DTAttributedTextContentView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DTAttributedTextContentView.m; path = Core/Source/DTAttributedTextContentView.m; sourceTree = ""; }; + 30959A156623D25B15A2E98E /* UIWebView+DTFoundation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIWebView+DTFoundation.m"; path = "Core/Source/iOS/UIWebView+DTFoundation.m"; sourceTree = ""; }; + 3197E5592324794A1AA77E34 /* libPods-SecureUDID.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-SecureUDID.a"; sourceTree = BUILT_PRODUCTS_DIR; }; + 31DD4A6490B6AB93A5D50467 /* DTIframeTextAttachment.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DTIframeTextAttachment.h; path = Core/Source/DTIframeTextAttachment.h; sourceTree = ""; }; + 32521B8EA32E7084137BA8B3 /* MWPhotoBrowser.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MWPhotoBrowser.h; path = MWPhotoBrowser/Classes/MWPhotoBrowser.h; sourceTree = ""; }; + 329B3787F338AB03C9263C97 /* DTAsyncFileDeleter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DTAsyncFileDeleter.m; path = Core/Source/DTAsyncFileDeleter.m; sourceTree = ""; }; + 32A1231256BA62B79A52AFD8 /* DTCoreTextLayoutFrame+Cursor.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "DTCoreTextLayoutFrame+Cursor.m"; path = "Core/Source/DTCoreTextLayoutFrame+Cursor.m"; sourceTree = ""; }; + 33338BEB65192CAEE2311367 /* Pods-SBJson-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-SBJson-dummy.m"; sourceTree = ""; }; + 333A8AD31C9FAE379090F4F5 /* NSAttributedString+DTCoreText.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSAttributedString+DTCoreText.h"; path = "Core/Source/NSAttributedString+DTCoreText.h"; sourceTree = ""; }; + 33A11E53D63743EE686A0252 /* DTFoundationConstants.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DTFoundationConstants.m; path = Core/Source/DTFoundationConstants.m; sourceTree = ""; }; + 3411EAFA4DF123421B67F671 /* MJRefresh.bundle */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = "wrapper.plug-in"; name = MJRefresh.bundle; path = MJRefreshExample/MJRefreshExample/MJRefresh/MJRefresh.bundle; sourceTree = ""; }; + 34ABA48F54F3E0BDEC396D5E /* NSMutableString+HTML.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSMutableString+HTML.h"; path = "Core/Source/NSMutableString+HTML.h"; sourceTree = ""; }; + 34EB5CFA65095FE3625330BF /* Pods-EGOCache-Private.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-EGOCache-Private.xcconfig"; sourceTree = ""; }; + 35A12005320196DE1C3B9402 /* DTCoreTextConstants.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DTCoreTextConstants.h; path = Core/Source/DTCoreTextConstants.h; sourceTree = ""; }; + 35B800EA30F95E80296E5A0B /* SBJson4StreamTokeniser.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SBJson4StreamTokeniser.m; path = src/main/objc/SBJson4StreamTokeniser.m; sourceTree = ""; }; + 36A25141DD8730D4A34E9232 /* DTAttributedTextContentView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DTAttributedTextContentView.h; path = Core/Source/DTAttributedTextContentView.h; sourceTree = ""; }; + 3792EECD13D0158D73F5745D /* Mantle.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = Mantle.h; path = Mantle/Mantle.h; sourceTree = ""; }; + 38082914F433A1A357A44704 /* libPods-SDWebImage.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-SDWebImage.a"; sourceTree = BUILT_PRODUCTS_DIR; }; + 380E27AAAD32D37E6DAA6ACC /* Pods-STableViewController-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-STableViewController-dummy.m"; sourceTree = ""; }; + 3A430325C1F6A5F87C55A13A /* Pods-EGOCache-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-EGOCache-dummy.m"; sourceTree = ""; }; + 3AA6D4D429B68E48A625DE02 /* Pods-MJRefresh-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-MJRefresh-prefix.pch"; sourceTree = ""; }; + 3AB7DDEE8FED0807B47459FE /* Pods-Mantle-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-Mantle-prefix.pch"; sourceTree = ""; }; + 3B55122264A08E723B1D3514 /* SBJson4StreamParserState.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SBJson4StreamParserState.m; path = src/main/objc/SBJson4StreamParserState.m; sourceTree = ""; }; + 3C9C56059AD8164D322E9F7A /* AFURLSessionManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = AFURLSessionManager.m; path = AFNetworking/AFURLSessionManager.m; sourceTree = ""; }; + 3D339B0E71A8442181019636 /* SDWebImageCompat.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDWebImageCompat.m; path = SDWebImage/SDWebImageCompat.m; sourceTree = ""; }; + 3D72BA953085FF2B243A0C40 /* DTCustomColoredAccessory.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DTCustomColoredAccessory.h; path = Core/Source/iOS/DTCustomColoredAccessory.h; sourceTree = ""; }; + 3EA344384CB75CED3FCCD1A1 /* NSAttributedStringRunDelegates.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = NSAttributedStringRunDelegates.h; path = Core/Source/NSAttributedStringRunDelegates.h; sourceTree = ""; }; + 3EC1610BB2FF4BAE704B2B40 /* Pods-environment.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-environment.h"; sourceTree = ""; }; + 3ED6E9AEE4A17BE9828F96B4 /* NSAttributedString+SmallCaps.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSAttributedString+SmallCaps.m"; path = "Core/Source/NSAttributedString+SmallCaps.m"; sourceTree = ""; }; + 3F631D09C0546512F381FA93 /* DTObjectTextAttachment.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DTObjectTextAttachment.h; path = Core/Source/DTObjectTextAttachment.h; sourceTree = ""; }; + 3FB0005B313D61EF6BDE0A77 /* UIView+DTFoundation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIView+DTFoundation.h"; path = "Core/Source/iOS/UIView+DTFoundation.h"; sourceTree = ""; }; + 40D4A15DEB9FF4E9FCE78583 /* NSIndexPath+PSTCollectionViewAdditions.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSIndexPath+PSTCollectionViewAdditions.m"; path = "PSTCollectionView/NSIndexPath+PSTCollectionViewAdditions.m"; sourceTree = ""; }; + 412DCA2E7BDED0F2C9151D8F /* NSObject+MTLComparisonAdditions.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSObject+MTLComparisonAdditions.m"; path = "Mantle/NSObject+MTLComparisonAdditions.m"; sourceTree = ""; }; + 416F649BA565B2F50342C740 /* DTCoreTextFontDescriptor.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DTCoreTextFontDescriptor.m; path = Core/Source/DTCoreTextFontDescriptor.m; sourceTree = ""; }; + 4201F582F07CDDD8765540D2 /* DTHTMLParser.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DTHTMLParser.h; path = Core/Source/DTHTMLParser/DTHTMLParser.h; sourceTree = ""; }; + 42BBEEDA82B1C171B33C9853 /* DTLazyImageView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DTLazyImageView.m; path = Core/Source/DTLazyImageView.m; sourceTree = ""; }; + 438BCA86F07872AFA75E215D /* NSData+ImageContentType.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSData+ImageContentType.h"; path = "SDWebImage/NSData+ImageContentType.h"; sourceTree = ""; }; + 43CA4D66E63AB7D3FAED0A05 /* UIImage+DTFoundation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIImage+DTFoundation.m"; path = "Core/Source/iOS/UIImage+DTFoundation.m"; sourceTree = ""; }; + 43D65AF3542A6052DC298230 /* DTHTMLAttributedStringBuilder.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DTHTMLAttributedStringBuilder.h; path = Core/Source/DTHTMLAttributedStringBuilder.h; sourceTree = ""; }; + 441D7091AAFF6307AA12C55E /* NSArray+MTLManipulationAdditions.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSArray+MTLManipulationAdditions.m"; path = "Mantle/NSArray+MTLManipulationAdditions.m"; sourceTree = ""; }; + 4440EB50C7A57D67D7BA503A /* libPods.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libPods.a; sourceTree = BUILT_PRODUCTS_DIR; }; + 44CB702EDFA9BE9DBDF1AEC4 /* NSFileWrapper+DTCopying.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSFileWrapper+DTCopying.m"; path = "Core/Source/NSFileWrapper+DTCopying.m"; sourceTree = ""; }; + 452A1A47C8214D431886E257 /* Pods-AFNetworking-Private.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-AFNetworking-Private.xcconfig"; sourceTree = ""; }; + 45B927D2775EA6D39AF9350B /* DTTextAttachmentHTMLElement.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DTTextAttachmentHTMLElement.h; path = Core/Source/DTTextAttachmentHTMLElement.h; sourceTree = ""; }; + 46006A8C612F4ECCB62CCC24 /* NSMutableArray+DTMoving.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSMutableArray+DTMoving.h"; path = "Core/Source/NSMutableArray+DTMoving.h"; sourceTree = ""; }; + 465746F81489445C1D904820 /* AFSecurityPolicy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = AFSecurityPolicy.m; path = AFNetworking/AFSecurityPolicy.m; sourceTree = ""; }; + 467D4950128F1A0DEDA83F6E /* DTListItemHTMLElement.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DTListItemHTMLElement.h; path = Core/Source/DTListItemHTMLElement.h; sourceTree = ""; }; + 47007B1E20B8AA8677B79FFD /* PSTCollectionViewItemKey.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = PSTCollectionViewItemKey.m; path = PSTCollectionView/PSTCollectionViewItemKey.m; sourceTree = ""; }; + 4857A7FC3C7758328BEF273B /* SDWebImageDownloaderOperation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDWebImageDownloaderOperation.m; path = SDWebImage/SDWebImageDownloaderOperation.m; sourceTree = ""; }; + 492B9114041D1B8B0F0A5ABC /* NSURL+DTUnshorten.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSURL+DTUnshorten.h"; path = "Core/Source/NSURL+DTUnshorten.h"; sourceTree = ""; }; + 4995FFF64F2BA9FC55BA8D2D /* UIWebView+DTFoundation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIWebView+DTFoundation.h"; path = "Core/Source/iOS/UIWebView+DTFoundation.h"; sourceTree = ""; }; + 499D8236889B69EE1C0C0E81 /* DTLazyImageView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DTLazyImageView.h; path = Core/Source/DTLazyImageView.h; sourceTree = ""; }; + 49C9B7C9423FB5594ED26A00 /* Pods-PSTCollectionView-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-PSTCollectionView-dummy.m"; sourceTree = ""; }; + 4B63EC260A05DFC4D399F1AB /* UIApplication+DTNetworkActivity.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIApplication+DTNetworkActivity.m"; path = "Core/Source/iOS/UIApplication+DTNetworkActivity.m"; sourceTree = ""; }; + 4B77CE440F23DD24AD099D7B /* SBJson4StreamParser.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SBJson4StreamParser.m; path = src/main/objc/SBJson4StreamParser.m; sourceTree = ""; }; + 4BCF9A47FE188CA09F42CA3D /* DTImage+HTML.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "DTImage+HTML.m"; path = "Core/Source/DTImage+HTML.m"; sourceTree = ""; }; + 4BFDDC0BB55AB123F180A783 /* DTVersion.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DTVersion.h; path = Core/Source/DTVersion.h; sourceTree = ""; }; + 4C9757B7405F81BAB2643615 /* SDWebImageDownloader.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDWebImageDownloader.m; path = SDWebImage/SDWebImageDownloader.m; sourceTree = ""; }; + 4CA085565AF29A6635D7524A /* PSTCollectionViewCommon.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = PSTCollectionViewCommon.h; path = PSTCollectionView/PSTCollectionViewCommon.h; sourceTree = ""; }; + 4CAFE90654F06AC8EC0C0E25 /* DTHTMLParserTextNode.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DTHTMLParserTextNode.m; path = Core/Source/DTHTMLParserTextNode.m; sourceTree = ""; }; + 4D3969EE686560B8820C4B79 /* UIRefreshControl+AFNetworking.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIRefreshControl+AFNetworking.m"; path = "UIKit+AFNetworking/UIRefreshControl+AFNetworking.m"; sourceTree = ""; }; + 4DF3DFE61F66277DF46A9CD2 /* DTHTMLParser.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DTHTMLParser.m; path = Core/Source/DTHTMLParser/DTHTMLParser.m; sourceTree = ""; }; + 4E69F46466E5C8712B86C1CC /* MTLJSONAdapter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MTLJSONAdapter.m; path = Mantle/MTLJSONAdapter.m; sourceTree = ""; }; + 4EA0C00FA6239BF1CC9C697D /* Pods-DTFoundation.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-DTFoundation.xcconfig"; sourceTree = ""; }; + 4F6EC8AA0855744BAD97006B /* EXTScope.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = EXTScope.h; path = Mantle/extobjc/EXTScope.h; sourceTree = ""; }; + 4F887A0C195BDB5417C29BB6 /* MWZoomingScrollView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MWZoomingScrollView.m; path = MWPhotoBrowser/Classes/MWZoomingScrollView.m; sourceTree = ""; }; + 4F8A3039F69ECD3AA6E95213 /* Pods-DACircularProgress.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-DACircularProgress.xcconfig"; sourceTree = ""; }; + 505697ACD3B10F00A03279E6 /* Pods-SecureUDID.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-SecureUDID.xcconfig"; sourceTree = ""; }; + 5056C21F217DC2E921D52E91 /* DTVideoTextAttachment.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DTVideoTextAttachment.m; path = Core/Source/DTVideoTextAttachment.m; sourceTree = ""; }; + 517889B83DF0B0BBBD20A600 /* DTAccessibilityViewProxy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DTAccessibilityViewProxy.m; path = Core/Source/DTAccessibilityViewProxy.m; sourceTree = ""; }; + 522E3EFD08D48EE01F1FB914 /* DTColorFunctions.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DTColorFunctions.m; path = Core/Source/DTColorFunctions.m; sourceTree = ""; }; + 52616B17F0988C8F1B599A79 /* DTCoreTextLayouter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DTCoreTextLayouter.m; path = Core/Source/DTCoreTextLayouter.m; sourceTree = ""; }; + 53423FE9852A6B82179DD40B /* DTHorizontalRuleHTMLElement.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DTHorizontalRuleHTMLElement.m; path = Core/Source/DTHorizontalRuleHTMLElement.m; sourceTree = ""; }; + 5441E8F2C876ED71D85FA524 /* NSString+DTPaths.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSString+DTPaths.h"; path = "Core/Source/NSString+DTPaths.h"; sourceTree = ""; }; + 544EF65D5565B80B8EEF9586 /* UIWebView+AFNetworking.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIWebView+AFNetworking.h"; path = "UIKit+AFNetworking/UIWebView+AFNetworking.h"; sourceTree = ""; }; + 5555D987AA26F52561F87E76 /* UIButton+WebCache.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIButton+WebCache.m"; path = "SDWebImage/UIButton+WebCache.m"; sourceTree = ""; }; + 55650CADF266B3B168F77673 /* DTCoreTextConstants.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DTCoreTextConstants.m; path = Core/Source/DTCoreTextConstants.m; sourceTree = ""; }; + 556EBFCC32200088DE214AD1 /* DTWebVideoView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DTWebVideoView.h; path = Core/Source/DTWebVideoView.h; sourceTree = ""; }; + 56D007D6FA5D8914B9E0B5D6 /* NSCharacterSet+HTML.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSCharacterSet+HTML.m"; path = "Core/Source/NSCharacterSet+HTML.m"; sourceTree = ""; }; + 57075E9FBD51E50A8FA7D702 /* SBJson4StreamTokeniser.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SBJson4StreamTokeniser.h; path = src/main/objc/SBJson4StreamTokeniser.h; sourceTree = ""; }; + 57948CE2AB2E4F39E5909787 /* UIScrollView+MJExtension.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIScrollView+MJExtension.h"; path = "MJRefreshExample/MJRefreshExample/MJRefresh/UIScrollView+MJExtension.h"; sourceTree = ""; }; + 579575BAE0137A4DEB08CDFC /* Pods-Godzippa-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-Godzippa-dummy.m"; sourceTree = ""; }; + 57E1FBA24CDF1C671195DD9A /* PSTGridLayoutItem.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = PSTGridLayoutItem.m; path = PSTCollectionView/PSTGridLayoutItem.m; sourceTree = ""; }; + 5830771528ACD8F6A1D09785 /* UIScrollView+MJExtension.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIScrollView+MJExtension.m"; path = "MJRefreshExample/MJRefreshExample/MJRefresh/UIScrollView+MJExtension.m"; sourceTree = ""; }; + 586E461C500145AB1E597DEB /* UIView+WebCacheOperation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIView+WebCacheOperation.m"; path = "SDWebImage/UIView+WebCacheOperation.m"; sourceTree = ""; }; + 5918F14BB8CC1E9208F49E4E /* MobileCoreServices.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = MobileCoreServices.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS7.1.sdk/System/Library/Frameworks/MobileCoreServices.framework; sourceTree = DEVELOPER_DIR; }; + 596F49A483D7487072F54FB5 /* MTLModel+NSCoding.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "MTLModel+NSCoding.h"; path = "Mantle/MTLModel+NSCoding.h"; sourceTree = ""; }; + 597EBA17A2FF6498E38965AC /* DTAsyncFileDeleter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DTAsyncFileDeleter.h; path = Core/Source/DTAsyncFileDeleter.h; sourceTree = ""; }; + 598AE8E325AADA09622B35AB /* Pods-Mantle.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-Mantle.xcconfig"; sourceTree = ""; }; + 59B3B20C1FA6BAC13D780551 /* UIActivityIndicatorView+AFNetworking.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIActivityIndicatorView+AFNetworking.m"; path = "UIKit+AFNetworking/UIActivityIndicatorView+AFNetworking.m"; sourceTree = ""; }; + 5A65DE7D5F8F6CD991923C93 /* AFHTTPRequestOperation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = AFHTTPRequestOperation.h; path = AFNetworking/AFHTTPRequestOperation.h; sourceTree = ""; }; + 5BE65C02EB14BDDB6079BAE4 /* NSString+DTURLEncoding.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSString+DTURLEncoding.h"; path = "Core/Source/NSString+DTURLEncoding.h"; sourceTree = ""; }; + 5C4ACAE9DB7A14E8B488A859 /* NSAttributedString+SmallCaps.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSAttributedString+SmallCaps.h"; path = "Core/Source/NSAttributedString+SmallCaps.h"; sourceTree = ""; }; + 5C6BC136D1A9CE914936B571 /* UIButton+AFNetworking.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIButton+AFNetworking.h"; path = "UIKit+AFNetworking/UIButton+AFNetworking.h"; sourceTree = ""; }; + 5C848095DAF973175665F472 /* DTAttributedLabel.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DTAttributedLabel.m; path = Core/Source/DTAttributedLabel.m; sourceTree = ""; }; + 5C872F8537C439C2B94CB9A0 /* PSTCollectionViewUpdateItem.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = PSTCollectionViewUpdateItem.m; path = PSTCollectionView/PSTCollectionViewUpdateItem.m; sourceTree = ""; }; + 5E9F7BF5A1EBDA36FB3724C7 /* AFNetworkActivityIndicatorManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = AFNetworkActivityIndicatorManager.h; path = "UIKit+AFNetworking/AFNetworkActivityIndicatorManager.h"; sourceTree = ""; }; + 5E9FC5A7CD88C4EB4D7BD65C /* SDWebImageDecoder.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDWebImageDecoder.h; path = SDWebImage/SDWebImageDecoder.h; sourceTree = ""; }; + 5EB74211A6BD53D098537EFB /* DTCSSListStyle.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DTCSSListStyle.h; path = Core/Source/DTCSSListStyle.h; sourceTree = ""; }; + 5F8636DA14445D8908BCA45F /* UIImageView+AFNetworking.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIImageView+AFNetworking.h"; path = "UIKit+AFNetworking/UIImageView+AFNetworking.h"; sourceTree = ""; }; + 5F96DC2B68861D8F7451EEBA /* AFURLResponseSerialization.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = AFURLResponseSerialization.m; path = AFNetworking/AFURLResponseSerialization.m; sourceTree = ""; }; + 5FCCFCCAEB95294F41FCF0D1 /* MJRefresh.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MJRefresh.h; path = MJRefreshExample/MJRefreshExample/MJRefresh/MJRefresh.h; sourceTree = ""; }; + 602423FD27B311C6DA0FB7D3 /* NSString+DTURLEncoding.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSString+DTURLEncoding.m"; path = "Core/Source/NSString+DTURLEncoding.m"; sourceTree = ""; }; + 602462EA1C18EE59FBA4BA70 /* STableViewController.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = STableViewController.h; path = STableViewController/STableViewController.h; sourceTree = ""; }; + 607B2E6EBF9B5F89C356BCA9 /* SDWebImageCompat.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDWebImageCompat.h; path = SDWebImage/SDWebImageCompat.h; sourceTree = ""; }; + 60B89B85631410B65C3439EC /* DTSmartPagingScrollView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DTSmartPagingScrollView.m; path = Core/Source/iOS/DTSmartPagingScrollView.m; sourceTree = ""; }; + 61275FA8416613DCE16C5A59 /* NSURL+DTComparing.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSURL+DTComparing.h"; path = "Core/Source/NSURL+DTComparing.h"; sourceTree = ""; }; + 61863E911A8FE703FBB01B1A /* MWTapDetectingView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MWTapDetectingView.m; path = MWPhotoBrowser/Classes/MWTapDetectingView.m; sourceTree = ""; }; + 62892682D0C45CAB93E0BFB5 /* Pods-MBProgressHUD-Private.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-MBProgressHUD-Private.xcconfig"; sourceTree = ""; }; + 62A191863839321A1EFDBDDD /* NSFileManager+Godzippa.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSFileManager+Godzippa.m"; path = "Godzippa/NSFileManager+Godzippa.m"; sourceTree = ""; }; + 62BAE3ABCDBB11CB587E952E /* DTHTMLParserNode.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DTHTMLParserNode.h; path = Core/Source/DTHTMLParserNode.h; sourceTree = ""; }; + 636911C6F949B6B3DE96508C /* DTImage+HTML.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "DTImage+HTML.h"; path = "Core/Source/DTImage+HTML.h"; sourceTree = ""; }; + 636FB9759C07282A157DA86E /* SBJson4StreamWriter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SBJson4StreamWriter.m; path = src/main/objc/SBJson4StreamWriter.m; sourceTree = ""; }; + 63BA6C0FBC50E6C41B9BF1A5 /* libPods-MBProgressHUD.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-MBProgressHUD.a"; sourceTree = BUILT_PRODUCTS_DIR; }; + 63CE8E03989FF75DE3D76AB4 /* DTCoreTextLayoutFrameAccessibilityElementGenerator.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DTCoreTextLayoutFrameAccessibilityElementGenerator.h; path = Core/Source/DTCoreTextLayoutFrameAccessibilityElementGenerator.h; sourceTree = ""; }; + 6437E78CDE35412016E0EF8D /* UIImageView+WebCache.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIImageView+WebCache.m"; path = "SDWebImage/UIImageView+WebCache.m"; sourceTree = ""; }; + 644B67330549C104D231EDFD /* Pods.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = Pods.release.xcconfig; sourceTree = ""; }; + 64BED7D77D473EFFCF0B1C6C /* DTCoreGraphicsUtils.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DTCoreGraphicsUtils.m; path = Core/Source/DTCoreGraphicsUtils.m; sourceTree = ""; }; + 652C5F033E0EAAC5B4106B15 /* PSTCollectionViewFlowLayout.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = PSTCollectionViewFlowLayout.h; path = PSTCollectionView/PSTCollectionViewFlowLayout.h; sourceTree = ""; }; + 658942C397C29DF978BA5B53 /* MBProgressHUD.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = MBProgressHUD.m; sourceTree = ""; }; + 65C582EB9B0BD38FAA343C86 /* DTCoreTextGlyphRun.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DTCoreTextGlyphRun.m; path = Core/Source/DTCoreTextGlyphRun.m; sourceTree = ""; }; + 66146F1960A7F4477AC482DE /* Pods-MWPhotoBrowser.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-MWPhotoBrowser.xcconfig"; sourceTree = ""; }; + 66D3C19760A87AB7C86D1386 /* EXTRuntimeExtensions.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = EXTRuntimeExtensions.m; path = Mantle/extobjc/EXTRuntimeExtensions.m; sourceTree = ""; }; + 67048FBA5C94CC914BF183E7 /* PSTCollectionViewItemKey.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = PSTCollectionViewItemKey.h; path = PSTCollectionView/PSTCollectionViewItemKey.h; sourceTree = ""; }; + 672232F579EBAD24A042C9DB /* AFHTTPSessionManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = AFHTTPSessionManager.h; path = AFNetworking/AFHTTPSessionManager.h; sourceTree = ""; }; + 67AEF5088E2F78B9E820F1F6 /* PSTCollectionView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = PSTCollectionView.m; path = PSTCollectionView/PSTCollectionView.m; sourceTree = ""; }; + 68E34E9C4EE7D4107528EDF5 /* AFHTTPRequestOperationManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = AFHTTPRequestOperationManager.m; path = AFNetworking/AFHTTPRequestOperationManager.m; sourceTree = ""; }; + 698ED35BEB9EA9845836C0C9 /* DTWeakSupport.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DTWeakSupport.h; path = Core/Source/DTWeakSupport.h; sourceTree = ""; }; + 6B120CD05D881BD7E2795568 /* DTHTMLParserTextNode.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DTHTMLParserTextNode.h; path = Core/Source/DTHTMLParserTextNode.h; sourceTree = ""; }; + 6B68E96D2A286CBC679C6DBC /* DTImageTextAttachment.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DTImageTextAttachment.h; path = Core/Source/DTImageTextAttachment.h; sourceTree = ""; }; + 6BA8E2892CC77726234BCC8C /* DTActivityTitleView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DTActivityTitleView.h; path = Core/Source/iOS/DTActivityTitleView.h; sourceTree = ""; }; + 6BBFC4565B0C47B89673EA6A /* DTImageTextAttachment.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DTImageTextAttachment.m; path = Core/Source/DTImageTextAttachment.m; sourceTree = ""; }; + 6BEE063E8ED7E4937C04DA32 /* DTColorFunctions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DTColorFunctions.h; path = Core/Source/DTColorFunctions.h; sourceTree = ""; }; + 6C57EADB16C6B35C76ABF58C /* PSTCollectionViewLayout.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = PSTCollectionViewLayout.m; path = PSTCollectionView/PSTCollectionViewLayout.m; sourceTree = ""; }; + 6D51E8B360081879FDF75D63 /* NSArray+DTError.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSArray+DTError.h"; path = "Core/Source/NSArray+DTError.h"; sourceTree = ""; }; + 6E1CCB18B19516DE1847483C /* MJRefreshFooter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MJRefreshFooter.m; path = MJRefreshExample/MJRefreshExample/MJRefresh/MJRefreshFooter.m; sourceTree = ""; }; + 6EA98190477EF68C9C7B7C22 /* UIView+DTFoundation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIView+DTFoundation.m"; path = "Core/Source/iOS/UIView+DTFoundation.m"; sourceTree = ""; }; + 6EE16C676DF6AB64910157AA /* DTAnchorHTMLElement.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DTAnchorHTMLElement.h; path = Core/Source/DTAnchorHTMLElement.h; sourceTree = ""; }; + 6F1477D59E6D185CD58EE79D /* Pods-Reachability.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-Reachability.xcconfig"; sourceTree = ""; }; + 704D3FE1DE425498627C6A10 /* PSTCollectionViewUpdateItem.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = PSTCollectionViewUpdateItem.h; path = PSTCollectionView/PSTCollectionViewUpdateItem.h; sourceTree = ""; }; + 70C116CCDF229CB6FC7C6E37 /* NSArray+DTError.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSArray+DTError.m"; path = "Core/Source/NSArray+DTError.m"; sourceTree = ""; }; + 7150CDD7AA008C112339F701 /* DTDictationPlaceholderView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DTDictationPlaceholderView.m; path = Core/Source/DTDictationPlaceholderView.m; sourceTree = ""; }; + 71878F2A53389B8142A10DAD /* Pods-SDWebImage.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-SDWebImage.xcconfig"; sourceTree = ""; }; + 72024D8E3DEE77E874263345 /* NSAttributedString+HTML.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSAttributedString+HTML.h"; path = "Core/Source/NSAttributedString+HTML.h"; sourceTree = ""; }; + 73CD638F6F148C7304D1FD32 /* DTWebVideoView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DTWebVideoView.m; path = Core/Source/DTWebVideoView.m; sourceTree = ""; }; + 73DDAAE42102D09B42DB488F /* MWCaptionView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MWCaptionView.h; path = MWPhotoBrowser/Classes/MWCaptionView.h; sourceTree = ""; }; + 74AFD7083CB157C9C0670585 /* NSData+Godzippa.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSData+Godzippa.h"; path = "Godzippa/NSData+Godzippa.h"; sourceTree = ""; }; + 75AE8E7ADBE583B35549CD6E /* DTCoreTextFunctions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DTCoreTextFunctions.h; path = Core/Source/DTCoreTextFunctions.h; sourceTree = ""; }; + 767887B1D509CC220D5D2AC1 /* NSError+MTLModelException.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSError+MTLModelException.h"; path = "Mantle/NSError+MTLModelException.h"; sourceTree = ""; }; + 789D4D4345E05931576418FC /* NSString+DTPaths.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSString+DTPaths.m"; path = "Core/Source/NSString+DTPaths.m"; sourceTree = ""; }; + 78E1C3F894C314421EF1C439 /* DTIframeTextAttachment.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DTIframeTextAttachment.m; path = Core/Source/DTIframeTextAttachment.m; sourceTree = ""; }; + 794588D8BF675C45520C5FC6 /* DTFolderMonitor.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DTFolderMonitor.h; path = Core/Source/DTFolderMonitor.h; sourceTree = ""; }; + 7947AFE3FC05070B9F5BCFB5 /* NSMutableString+HTML.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSMutableString+HTML.m"; path = "Core/Source/NSMutableString+HTML.m"; sourceTree = ""; }; + 79522B1EB371CCE62B5A83FD /* Pods-DACircularProgress-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-DACircularProgress-prefix.pch"; sourceTree = ""; }; + 7AA780EC70408D63F4D5BF61 /* UIScrollView+MJRefresh.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIScrollView+MJRefresh.m"; path = "MJRefreshExample/MJRefreshExample/MJRefresh/UIScrollView+MJRefresh.m"; sourceTree = ""; }; + 7BCC506622D2F6D2BF2E2FC0 /* metamacros.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = metamacros.h; path = Mantle/extobjc/metamacros.h; sourceTree = ""; }; + 7C4E67D6FDAC4663924A7125 /* SBJson4Parser.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SBJson4Parser.h; path = src/main/objc/SBJson4Parser.h; sourceTree = ""; }; + 7C51359051D614CD33B33EDD /* DTAnimatedGIF.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DTAnimatedGIF.h; path = Core/Source/iOS/DTAnimatedGIF/DTAnimatedGIF.h; sourceTree = ""; }; + 7D6373224D691308BD41AFC9 /* DTCoreTextMacros.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DTCoreTextMacros.h; path = Core/Source/DTCoreTextMacros.h; sourceTree = ""; }; + 7DBB1D81A4C2805D2C7FCE14 /* UIFont+DTCoreText.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIFont+DTCoreText.m"; path = "Core/Source/UIFont+DTCoreText.m"; sourceTree = ""; }; + 7E3C92143AFCC365356FD6C4 /* Pods-PSTCollectionView.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-PSTCollectionView.xcconfig"; sourceTree = ""; }; + 7FB3A23241022EEB4236AE8F /* MJRefreshGifHeader.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MJRefreshGifHeader.m; path = MJRefreshExample/MJRefreshExample/MJRefresh/MJRefreshGifHeader.m; sourceTree = ""; }; + 804D22BA9FC3EF1F3C79EB25 /* NSData+DTCrypto.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSData+DTCrypto.m"; path = "Core/Source/NSData+DTCrypto.m"; sourceTree = ""; }; + 8162493DD977034E3B7B64B8 /* PSTCollectionViewCell.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = PSTCollectionViewCell.m; path = PSTCollectionView/PSTCollectionViewCell.m; sourceTree = ""; }; + 829BBAE85BD1BAE3D031802F /* DTLinkButton.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DTLinkButton.h; path = Core/Source/DTLinkButton.h; sourceTree = ""; }; + 82DC2A4AFF377431721FEB92 /* Pods-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-dummy.m"; sourceTree = ""; }; + 830E54BCAD2FCF61971141D0 /* DTTextBlock.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DTTextBlock.h; path = Core/Source/DTTextBlock.h; sourceTree = ""; }; + 83849EF3412B1319AFD7BED0 /* DTBase64Coding.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DTBase64Coding.h; path = Core/Source/DTBase64Coding.h; sourceTree = ""; }; + 840DB8F5749C3CF76AC9D137 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS7.1.sdk/System/Library/Frameworks/Foundation.framework; sourceTree = DEVELOPER_DIR; }; + 842DFF80188A2DC326CE5CB6 /* DTColor+Compatibility.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "DTColor+Compatibility.m"; path = "Core/Source/DTColor+Compatibility.m"; sourceTree = ""; }; + 8439C84DAB4F2CE7CF4FBAF2 /* SDWebImageManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDWebImageManager.h; path = SDWebImage/SDWebImageManager.h; sourceTree = ""; }; + 84BD7BF6AC8F0BCF104B2026 /* Pods-MWPhotoBrowser-Private.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-MWPhotoBrowser-Private.xcconfig"; sourceTree = ""; }; + 85832FDFBE9A505650D93711 /* MWPhotoProtocol.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MWPhotoProtocol.h; path = MWPhotoBrowser/Classes/MWPhotoProtocol.h; sourceTree = ""; }; + 870F336C096333F8B63528A8 /* UIActivityIndicatorView+AFNetworking.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIActivityIndicatorView+AFNetworking.h"; path = "UIKit+AFNetworking/UIActivityIndicatorView+AFNetworking.h"; sourceTree = ""; }; + 87E0C9F5D6C764726AF7F7AA /* UIImageView+HighlightedWebCache.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIImageView+HighlightedWebCache.m"; path = "SDWebImage/UIImageView+HighlightedWebCache.m"; sourceTree = ""; }; + 88369D802AB4264DE7AA7627 /* NSError+MTLModelException.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSError+MTLModelException.m"; path = "Mantle/NSError+MTLModelException.m"; sourceTree = ""; }; + 8844F78283A5A799306146AE /* DTListItemHTMLElement.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DTListItemHTMLElement.m; path = Core/Source/DTListItemHTMLElement.m; sourceTree = ""; }; + 893F618070C2E6E210C9AED9 /* MTLModel.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MTLModel.m; path = Mantle/MTLModel.m; sourceTree = ""; }; + 89A4DAE02361602398EDAE02 /* MJRefreshComponent.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MJRefreshComponent.h; path = MJRefreshExample/MJRefreshExample/MJRefresh/MJRefreshComponent.h; sourceTree = ""; }; + 89B62ED7E52987209DC04932 /* UIApplication+DTNetworkActivity.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIApplication+DTNetworkActivity.h"; path = "Core/Source/iOS/UIApplication+DTNetworkActivity.h"; sourceTree = ""; }; + 8AAB2896D7863775D7DDA728 /* Pods-AFNetworking-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-AFNetworking-dummy.m"; sourceTree = ""; }; + 8AC723CBF533799C5A183A66 /* NSValueTransformer+MTLPredefinedTransformerAdditions.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSValueTransformer+MTLPredefinedTransformerAdditions.m"; path = "Mantle/NSValueTransformer+MTLPredefinedTransformerAdditions.m"; sourceTree = ""; }; + 8AD6581BF6D2C7D8542BEAA2 /* PSTCollectionViewController.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = PSTCollectionViewController.m; path = PSTCollectionView/PSTCollectionViewController.m; sourceTree = ""; }; + 8AF00765DC7A8DB1A4E4E572 /* MWCommon.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MWCommon.h; path = MWPhotoBrowser/Classes/MWCommon.h; sourceTree = ""; }; + 8AFBE41C33B9F6D9CA6AA17B /* MJRefreshLegendHeader.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MJRefreshLegendHeader.h; path = MJRefreshExample/MJRefreshExample/MJRefresh/MJRefreshLegendHeader.h; sourceTree = ""; }; + 8B2D13120B27AAA66C834386 /* MWGridCell.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MWGridCell.h; path = MWPhotoBrowser/Classes/MWGridCell.h; sourceTree = ""; }; + 8B544391DA6AD2E0429113D2 /* SDWebImageOperation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDWebImageOperation.h; path = SDWebImage/SDWebImageOperation.h; sourceTree = ""; }; + 8C2FBD33609D25944EE9ED5D /* AFNetworkActivityIndicatorManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = AFNetworkActivityIndicatorManager.m; path = "UIKit+AFNetworking/AFNetworkActivityIndicatorManager.m"; sourceTree = ""; }; + 8C83144F42F9F5593EDAC0F2 /* Pods-DACircularProgress-Private.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-DACircularProgress-Private.xcconfig"; sourceTree = ""; }; + 8CFC987D05DA0349BC818797 /* NSFileWrapper+DTCopying.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSFileWrapper+DTCopying.h"; path = "Core/Source/NSFileWrapper+DTCopying.h"; sourceTree = ""; }; + 8DD9C09340C5B517DF373D50 /* DTFoundationConstants.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DTFoundationConstants.h; path = Core/Source/DTFoundationConstants.h; sourceTree = ""; }; + 8E853B1B4C8751C80812E0EA /* MJRefreshHeader.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MJRefreshHeader.m; path = MJRefreshExample/MJRefreshExample/MJRefresh/MJRefreshHeader.m; sourceTree = ""; }; + 8F37484C6AC75527380FCF75 /* DTCoreTextParagraphStyle.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DTCoreTextParagraphStyle.m; path = Core/Source/DTCoreTextParagraphStyle.m; sourceTree = ""; }; + 8F49DC29AE1663866C0639E5 /* ImageIO.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = ImageIO.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS7.1.sdk/System/Library/Frameworks/ImageIO.framework; sourceTree = DEVELOPER_DIR; }; + 8F7FB18D19AB4F7E14E62258 /* DTActivityTitleView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DTActivityTitleView.m; path = Core/Source/iOS/DTActivityTitleView.m; sourceTree = ""; }; + 8FA8B2705A4B097C2B1166AB /* Pods-EGOCache.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-EGOCache.xcconfig"; sourceTree = ""; }; + 90313691E9CFB036F66A2D80 /* Pods-PSTCollectionView-Private.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-PSTCollectionView-Private.xcconfig"; sourceTree = ""; }; + 91935CD096E885F5D4516338 /* DTCoreTextLayoutFrame+Cursor.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "DTCoreTextLayoutFrame+Cursor.h"; path = "Core/Source/DTCoreTextLayoutFrame+Cursor.h"; sourceTree = ""; }; + 91C321E14CE1501F45E1A3E3 /* NSArray+MTLManipulationAdditions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSArray+MTLManipulationAdditions.h"; path = "Mantle/NSArray+MTLManipulationAdditions.h"; sourceTree = ""; }; + 92155185E5912BF89731A502 /* STableViewController.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = STableViewController.m; path = STableViewController/STableViewController.m; sourceTree = ""; }; + 929DFA5A6498F25C08720FF2 /* DTStylesheetHTMLElement.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DTStylesheetHTMLElement.h; path = Core/Source/DTStylesheetHTMLElement.h; sourceTree = ""; }; + 92BE37CE160321EBFD9E2A87 /* DTAnimatedGIF.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DTAnimatedGIF.m; path = Core/Source/iOS/DTAnimatedGIF/DTAnimatedGIF.m; sourceTree = ""; }; + 92FAE51DA85633D98A202C7A /* SecureUDID.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = SecureUDID.m; sourceTree = ""; }; + 93600AC86EBA3DCE89CA875B /* Pods-AFNetworking.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-AFNetworking.xcconfig"; sourceTree = ""; }; + 9389DEF66191A2AD3AA1C057 /* EXTKeyPathCoding.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = EXTKeyPathCoding.h; path = Mantle/extobjc/EXTKeyPathCoding.h; sourceTree = ""; }; + 94152ABDBF6BB8B5C1D40A09 /* DTCoreTextFunctions.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DTCoreTextFunctions.m; path = Core/Source/DTCoreTextFunctions.m; sourceTree = ""; }; + 94B0C075DFA12336A0866A1A /* MTLModel+NSCoding.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "MTLModel+NSCoding.m"; path = "Mantle/MTLModel+NSCoding.m"; sourceTree = ""; }; + 953EFA7E65537962B0AD185C /* NSMutableAttributedString+HTML.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSMutableAttributedString+HTML.m"; path = "Core/Source/NSMutableAttributedString+HTML.m"; sourceTree = ""; }; + 95626418E4ADD29C0CAEB7B1 /* DTAttributedLabel.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DTAttributedLabel.h; path = Core/Source/DTAttributedLabel.h; sourceTree = ""; }; + 962F46F02DB263BC3B638EB4 /* NSDictionary+MTLManipulationAdditions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSDictionary+MTLManipulationAdditions.h"; path = "Mantle/NSDictionary+MTLManipulationAdditions.h"; sourceTree = ""; }; + 96D077240E63D1AE6CE735A1 /* MWPhotoBrowser.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MWPhotoBrowser.m; path = MWPhotoBrowser/Classes/MWPhotoBrowser.m; sourceTree = ""; }; + 9717F44CED3997C5FF1DE5D8 /* NSString+DTFormatNumbers.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSString+DTFormatNumbers.m"; path = "Core/Source/NSString+DTFormatNumbers.m"; sourceTree = ""; }; + 97DC47CAD23715AFA2B41B12 /* UIRefreshControl+AFNetworking.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIRefreshControl+AFNetworking.h"; path = "UIKit+AFNetworking/UIRefreshControl+AFNetworking.h"; sourceTree = ""; }; + 98355F8523C217A4BC3F7804 /* NSIndexPath+PSTCollectionViewAdditions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSIndexPath+PSTCollectionViewAdditions.h"; path = "PSTCollectionView/NSIndexPath+PSTCollectionViewAdditions.h"; sourceTree = ""; }; + 988CBFD68948730F70CC8659 /* Pods-Mantle-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-Mantle-dummy.m"; sourceTree = ""; }; + 98B8348A779C72171CC418FE /* Pods-STableViewController-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-STableViewController-prefix.pch"; sourceTree = ""; }; + 98E301C14830416131DC9223 /* DTTextHTMLElement.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DTTextHTMLElement.m; path = Core/Source/DTTextHTMLElement.m; sourceTree = ""; }; + 9920B4011029C225917B09D4 /* AFNetworking.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = AFNetworking.h; path = AFNetworking/AFNetworking.h; sourceTree = ""; }; + 99B22C9FD33D7B3435DA6C4E /* NSMutableAttributedString+HTML.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSMutableAttributedString+HTML.h"; path = "Core/Source/NSMutableAttributedString+HTML.h"; sourceTree = ""; }; + 9A5AFE9E1832C2B511126D27 /* NSCoder+DTCompatibility.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSCoder+DTCompatibility.m"; path = "Core/Source/NSCoder+DTCompatibility.m"; sourceTree = ""; }; + 9AA0FE8679FBE21A4E246E19 /* PSTCollectionViewController.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = PSTCollectionViewController.h; path = PSTCollectionView/PSTCollectionViewController.h; sourceTree = ""; }; + 9AF1C183602CE8203DDC86ED /* default.css.c */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.c; name = default.css.c; path = Core/Source/default.css.c; sourceTree = ""; }; + 9B777F150C2789558A36C305 /* MWTapDetectingImageView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MWTapDetectingImageView.h; path = MWPhotoBrowser/Classes/MWTapDetectingImageView.h; sourceTree = ""; }; + 9BBC57F896F66747AF345112 /* AFURLSessionManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = AFURLSessionManager.h; path = AFNetworking/AFURLSessionManager.h; sourceTree = ""; }; + 9BDC782A1D3B9D8B7F4B2B4A /* DTAccessibilityElement.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DTAccessibilityElement.m; path = Core/Source/DTAccessibilityElement.m; sourceTree = ""; }; + 9C0E898AF9E481B0FCE83812 /* PSTGridLayoutRow.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = PSTGridLayoutRow.h; path = PSTCollectionView/PSTGridLayoutRow.h; sourceTree = ""; }; + 9C2B6BEF48A174D9FB39C7F9 /* Pods-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-acknowledgements.plist"; sourceTree = ""; }; + 9DBEACC772CDCFCF19E23E0E /* DTVersion.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DTVersion.m; path = Core/Source/DTVersion.m; sourceTree = ""; }; + 9EAD1264E97732BEC44196AF /* NSURL+DTComparing.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSURL+DTComparing.m"; path = "Core/Source/NSURL+DTComparing.m"; sourceTree = ""; }; + 9F7808BFDB77E9E05617421C /* AFNetworkReachabilityManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = AFNetworkReachabilityManager.h; path = AFNetworking/AFNetworkReachabilityManager.h; sourceTree = ""; }; + A02D1EB9B1EE55417F5C18E9 /* DTCSSStylesheet.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DTCSSStylesheet.m; path = Core/Source/DTCSSStylesheet.m; sourceTree = ""; }; + A049E1099EAB22F63E7F289B /* Pods-SecureUDID-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-SecureUDID-prefix.pch"; sourceTree = ""; }; + A0A8126604C69EE32594D6EF /* Pods-Godzippa-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-Godzippa-prefix.pch"; sourceTree = ""; }; + A0BD4A49D66B37F47D0D0787 /* Pods-DTFoundation-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-DTFoundation-prefix.pch"; sourceTree = ""; }; + A0C581C1D4F3B407471F6989 /* DTHTMLParserNode.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DTHTMLParserNode.m; path = Core/Source/DTHTMLParserNode.m; sourceTree = ""; }; + A0DD3F36356FE8CC74AA8E20 /* MWPhotoBrowserPrivate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MWPhotoBrowserPrivate.h; path = MWPhotoBrowser/Classes/MWPhotoBrowserPrivate.h; sourceTree = ""; }; + A10F2C28E66C7A24064FA92D /* DTHTMLElement.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DTHTMLElement.m; path = Core/Source/DTHTMLElement.m; sourceTree = ""; }; + A13AAF3FCC06D3FF552C9F3C /* MJRefreshGifFooter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MJRefreshGifFooter.h; path = MJRefreshExample/MJRefreshExample/MJRefresh/MJRefreshGifFooter.h; sourceTree = ""; }; + A232491FFB5AC420BF0A80A2 /* UIImageView+WebCache.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIImageView+WebCache.h"; path = "SDWebImage/UIImageView+WebCache.h"; sourceTree = ""; }; + A3A56978D466B5A33634A9A9 /* MTLValueTransformer.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MTLValueTransformer.m; path = Mantle/MTLValueTransformer.m; sourceTree = ""; }; + A429381C19E346AA1E414E3C /* libPods-Reachability.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-Reachability.a"; sourceTree = BUILT_PRODUCTS_DIR; }; + A481E249FAFBED5D1A496EC6 /* Pods-MWPhotoBrowser-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-MWPhotoBrowser-dummy.m"; sourceTree = ""; }; + A585E20FF3DFFBFC5E28D101 /* SBJson4Writer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SBJson4Writer.h; path = src/main/objc/SBJson4Writer.h; sourceTree = ""; }; + A5B0153F85EF27C708CECEF5 /* DTLog.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DTLog.m; path = Core/Source/DTLog.m; sourceTree = ""; }; + A5B1F2A62FC25726911E6378 /* NSString+CSS.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSString+CSS.m"; path = "Core/Source/NSString+CSS.m"; sourceTree = ""; }; + A71A8BF280D4B3F177A77BC6 /* NSCoder+DTCompatibility.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSCoder+DTCompatibility.h"; path = "Core/Source/NSCoder+DTCompatibility.h"; sourceTree = ""; }; + A72E4F1DB377186E56A73E7B /* PSTCollectionViewLayout+Internals.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "PSTCollectionViewLayout+Internals.h"; path = "PSTCollectionView/PSTCollectionViewLayout+Internals.h"; sourceTree = ""; }; + A869636141A06C161FABDB94 /* Pods-SBJson-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-SBJson-prefix.pch"; sourceTree = ""; }; + A9132D17445264B64274F066 /* DTCoreTextLayoutLine.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DTCoreTextLayoutLine.m; path = Core/Source/DTCoreTextLayoutLine.m; sourceTree = ""; }; + AA758ABFB27D4AC27007C32F /* EGOCache.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = EGOCache.m; sourceTree = ""; }; + AABCA08422CD0E72F6196C5F /* libPods-DACircularProgress.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-DACircularProgress.a"; sourceTree = BUILT_PRODUCTS_DIR; }; + AB0CE0CF97F7CFED31A721A8 /* NSFileManager+Godzippa.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSFileManager+Godzippa.h"; path = "Godzippa/NSFileManager+Godzippa.h"; sourceTree = ""; }; + AB4B3D24CBA78B8F6EA9A4E4 /* NSString+Paragraphs.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSString+Paragraphs.m"; path = "Core/Source/NSString+Paragraphs.m"; sourceTree = ""; }; + ABF3F2199A44767678BCEB8F /* libPods-Godzippa.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-Godzippa.a"; sourceTree = BUILT_PRODUCTS_DIR; }; + ABFC82F7816830BD765CE888 /* UIFont+DTCoreText.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIFont+DTCoreText.h"; path = "Core/Source/UIFont+DTCoreText.h"; sourceTree = ""; }; + ACA2F4636D4D4742DF7C56AD /* PSTGridLayoutInfo.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = PSTGridLayoutInfo.m; path = PSTCollectionView/PSTGridLayoutInfo.m; sourceTree = ""; }; + ACAA8D9E50D3C2BB866CE515 /* libPods-MJRefresh.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-MJRefresh.a"; sourceTree = BUILT_PRODUCTS_DIR; }; + ACCACE86EF932D9A74602506 /* DTTiledLayerWithoutFade.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DTTiledLayerWithoutFade.h; path = Core/Source/iOS/DTTiledLayerWithoutFade.h; sourceTree = ""; }; + AEAAEE2D5A265598325D0F2C /* DTCustomColoredAccessory.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DTCustomColoredAccessory.m; path = Core/Source/iOS/DTCustomColoredAccessory.m; sourceTree = ""; }; + AEEA3AA239E2FB8B9B74BD59 /* Pods-DTFoundation-Private.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-DTFoundation-Private.xcconfig"; sourceTree = ""; }; + AF12A3600080609A16C7C8C3 /* AFHTTPSessionManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = AFHTTPSessionManager.m; path = AFNetworking/AFHTTPSessionManager.m; sourceTree = ""; }; + AF38302B46AF2F3E8A10B5DB /* DTCoreText.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DTCoreText.h; path = Core/Source/DTCoreText.h; sourceTree = ""; }; + B0D64C1E93E5B320DB304BC9 /* UIView+WebCacheOperation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIView+WebCacheOperation.h"; path = "SDWebImage/UIView+WebCacheOperation.h"; sourceTree = ""; }; + B108A559127F13D4528977A7 /* Pods-MWPhotoBrowser-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-MWPhotoBrowser-prefix.pch"; sourceTree = ""; }; + B1B0243AB8B0E62E62896EE1 /* DTObjectTextAttachment.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DTObjectTextAttachment.m; path = Core/Source/DTObjectTextAttachment.m; sourceTree = ""; }; + B1D5F99191F63391339A819F /* SDWebImageDecoder.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDWebImageDecoder.m; path = SDWebImage/SDWebImageDecoder.m; sourceTree = ""; }; + B231DFB5AE9AE94A5A311E77 /* AFURLConnectionOperation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = AFURLConnectionOperation.h; path = AFNetworking/AFURLConnectionOperation.h; sourceTree = ""; }; + B23EE0E23E50982654CCF67F /* Pods-MJRefresh-Private.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-MJRefresh-Private.xcconfig"; sourceTree = ""; }; + B338B7FA2D94D51A0629A3A7 /* SBJson4Writer.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SBJson4Writer.m; path = src/main/objc/SBJson4Writer.m; sourceTree = ""; }; + B48A3233AEB13D95AFBE68FD /* NSValueTransformer+MTLInversionAdditions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSValueTransformer+MTLInversionAdditions.h"; path = "Mantle/NSValueTransformer+MTLInversionAdditions.h"; sourceTree = ""; }; + B49F9531730EB589BA4DF321 /* MJRefreshConst.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MJRefreshConst.m; path = MJRefreshExample/MJRefreshExample/MJRefresh/MJRefreshConst.m; sourceTree = ""; }; + B51540394898DCFE005F7606 /* Pods-MBProgressHUD.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-MBProgressHUD.xcconfig"; sourceTree = ""; }; + B55AB127F8C0DFC9BE150FAA /* libPods-Mantle.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-Mantle.a"; sourceTree = BUILT_PRODUCTS_DIR; }; + B56EAA98B74308B005C2A9F1 /* MWGridCell.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MWGridCell.m; path = MWPhotoBrowser/Classes/MWGridCell.m; sourceTree = ""; }; + B600CF4281A0482986B93737 /* NSURL+DTAppLinks.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSURL+DTAppLinks.h"; path = "Core/Source/iOS/NSURL+DTAppLinks.h"; sourceTree = ""; }; + B60F1667C28C9301AEC32891 /* Pods-MJRefresh.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-MJRefresh.xcconfig"; sourceTree = ""; }; + B613A4BF661F83988EC75EE5 /* Pods-MBProgressHUD-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-MBProgressHUD-dummy.m"; sourceTree = ""; }; + B65AE780350C25F0228C69E3 /* Pods-SecureUDID-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-SecureUDID-dummy.m"; sourceTree = ""; }; + B66713DB154632D2152CA299 /* NSAttributedString+DTDebug.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSAttributedString+DTDebug.h"; path = "Core/Source/NSAttributedString+DTDebug.h"; sourceTree = ""; }; + B717092C91BAABF3FE631B87 /* UIKit+AFNetworking.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIKit+AFNetworking.h"; path = "UIKit+AFNetworking/UIKit+AFNetworking.h"; sourceTree = ""; }; + B7BFA0E9F89C9A4DECE41A0F /* Pods-resources.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-resources.sh"; sourceTree = ""; }; + B84B240F0823531A031C41C7 /* NSScanner+HTML.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSScanner+HTML.h"; path = "Core/Source/NSScanner+HTML.h"; sourceTree = ""; }; + B8E794A68C4D79D76021DF88 /* SBJson4StreamParser.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SBJson4StreamParser.h; path = src/main/objc/SBJson4StreamParser.h; sourceTree = ""; }; + B9B0B85F571949646551402B /* SDImageCache.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDImageCache.m; path = SDWebImage/SDImageCache.m; sourceTree = ""; }; + BAA9EE4B4F5CD99F90C855AE /* MJRefreshFooter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MJRefreshFooter.h; path = MJRefreshExample/MJRefreshExample/MJRefresh/MJRefreshFooter.h; sourceTree = ""; }; + BB189CE4214B6C133422E700 /* SDWebImageManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDWebImageManager.m; path = SDWebImage/SDWebImageManager.m; sourceTree = ""; }; + BC233462DD17D9E6C3E7150D /* AFURLConnectionOperation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = AFURLConnectionOperation.m; path = AFNetworking/AFURLConnectionOperation.m; sourceTree = ""; }; + BC34D16392969478DD635E71 /* MJRefreshGifHeader.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MJRefreshGifHeader.h; path = MJRefreshExample/MJRefreshExample/MJRefresh/MJRefreshGifHeader.h; sourceTree = ""; }; + BC37EB48F000A15B3D5BD665 /* DTDictationPlaceholderView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DTDictationPlaceholderView.h; path = Core/Source/DTDictationPlaceholderView.h; sourceTree = ""; }; + BC3CE7DA59F1959BB87CCE29 /* AFNetworkReachabilityManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = AFNetworkReachabilityManager.m; path = AFNetworking/AFNetworkReachabilityManager.m; sourceTree = ""; }; + BCD47136278F91DFBFC7AE99 /* PSTGridLayoutRow.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = PSTGridLayoutRow.m; path = PSTCollectionView/PSTGridLayoutRow.m; sourceTree = ""; }; + BCDD491476207334EBE058F4 /* PSTGridLayoutSection.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = PSTGridLayoutSection.m; path = PSTCollectionView/PSTGridLayoutSection.m; sourceTree = ""; }; + BDBBE799E7BF683373026C9A /* SDWebImageDownloaderOperation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDWebImageDownloaderOperation.h; path = SDWebImage/SDWebImageDownloaderOperation.h; sourceTree = ""; }; + BE0BBA851FFD8C10601F459E /* NSValueTransformer+MTLPredefinedTransformerAdditions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSValueTransformer+MTLPredefinedTransformerAdditions.h"; path = "Mantle/NSValueTransformer+MTLPredefinedTransformerAdditions.h"; sourceTree = ""; }; + BE46A85CDCF92DC9378F035F /* EXTRuntimeExtensions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = EXTRuntimeExtensions.h; path = Mantle/extobjc/EXTRuntimeExtensions.h; sourceTree = ""; }; + BEB8B9553B457AF656C5AEAF /* AFURLRequestSerialization.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = AFURLRequestSerialization.m; path = AFNetworking/AFURLRequestSerialization.m; sourceTree = ""; }; + BEEF6F71F87F033602F3E11D /* DTAttributedTextView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DTAttributedTextView.m; path = Core/Source/DTAttributedTextView.m; sourceTree = ""; }; + BF050061EC71DCA803FB2EE6 /* Pods-STableViewController.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-STableViewController.xcconfig"; sourceTree = ""; }; + BF812550555E55AD5601D7AE /* Pods-Reachability-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-Reachability-prefix.pch"; sourceTree = ""; }; + C06E0283B6A8E5B652E3612A /* Pods-DTFoundation-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-DTFoundation-dummy.m"; sourceTree = ""; }; + C1455DDDD97A23A091782898 /* Pods-DACircularProgress-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-DACircularProgress-dummy.m"; sourceTree = ""; }; + C1C20FF9BFBC1A57C8291F86 /* DTHTMLWriter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DTHTMLWriter.h; path = Core/Source/DTHTMLWriter.h; sourceTree = ""; }; + C22459C1C0218D404E1D2B02 /* DTBlockFunctions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DTBlockFunctions.h; path = Core/Source/DTBlockFunctions.h; sourceTree = ""; }; + C2F1439F52961691B236204D /* NSString+DTFormatNumbers.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSString+DTFormatNumbers.h"; path = "Core/Source/NSString+DTFormatNumbers.h"; sourceTree = ""; }; + C34AE8F0F62BEEE4F3F5992B /* DTBase64Coding.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DTBase64Coding.m; path = Core/Source/DTBase64Coding.m; sourceTree = ""; }; + C3BD6A5C6D38732547673349 /* Pods-Godzippa.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-Godzippa.xcconfig"; sourceTree = ""; }; + C4D6C6EAA66A48B7803C9B59 /* PSTCollectionViewData.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = PSTCollectionViewData.h; path = PSTCollectionView/PSTCollectionViewData.h; sourceTree = ""; }; + C52AE3AF76FB0127CB9675DA /* PSTCollectionViewCell.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = PSTCollectionViewCell.h; path = PSTCollectionView/PSTCollectionViewCell.h; sourceTree = ""; }; + C579478F132C2344A651FF04 /* Pods-PSTCollectionView-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-PSTCollectionView-prefix.pch"; sourceTree = ""; }; + C5884F10654896A69DB4485D /* NSString+CSS.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSString+CSS.h"; path = "Core/Source/NSString+CSS.h"; sourceTree = ""; }; + C5A0870AB9989B2BBEC561ED /* Pods.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = Pods.debug.xcconfig; sourceTree = ""; }; + C5DB47713C18D5514CE31E59 /* UIImageView+AFNetworking.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIImageView+AFNetworking.m"; path = "UIKit+AFNetworking/UIImageView+AFNetworking.m"; sourceTree = ""; }; + C70121602CECC22892E5EC76 /* SDImageCache.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDImageCache.h; path = SDWebImage/SDImageCache.h; sourceTree = ""; }; + C710346A77C3D428A08DBCB0 /* AFURLRequestSerialization.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = AFURLRequestSerialization.h; path = AFNetworking/AFURLRequestSerialization.h; sourceTree = ""; }; + C7B04C01F1A02B0E2D91D6AA /* Pods-MJRefresh-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-MJRefresh-dummy.m"; sourceTree = ""; }; + C80738193F3FFA54B568F18D /* NSAttributedString+DTDebug.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSAttributedString+DTDebug.m"; path = "Core/Source/NSAttributedString+DTDebug.m"; sourceTree = ""; }; + C815B7D91F2C17B7233636B7 /* UIButton+WebCache.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIButton+WebCache.h"; path = "SDWebImage/UIButton+WebCache.h"; sourceTree = ""; }; + C85954153EA6FA2252687A5E /* UIImage+MultiFormat.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIImage+MultiFormat.m"; path = "SDWebImage/UIImage+MultiFormat.m"; sourceTree = ""; }; + C8E2A2D7719824C56D23A3D2 /* DTCoreTextFontCollection.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DTCoreTextFontCollection.m; path = Core/Source/DTCoreTextFontCollection.m; sourceTree = ""; }; + C96CFE97D97E5980A46013FE /* NSCharacterSet+HTML.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSCharacterSet+HTML.h"; path = "Core/Source/NSCharacterSet+HTML.h"; sourceTree = ""; }; + C9A24640323933637F95A837 /* UIAlertView+AFNetworking.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIAlertView+AFNetworking.h"; path = "UIKit+AFNetworking/UIAlertView+AFNetworking.h"; sourceTree = ""; }; + C9F44AD76AB8A3A90FD1D49E /* MWPhoto.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MWPhoto.m; path = MWPhotoBrowser/Classes/MWPhoto.m; sourceTree = ""; }; + CAEB71EF71AE6C94B9B7F50B /* PSTGridLayoutSection.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = PSTGridLayoutSection.h; path = PSTCollectionView/PSTGridLayoutSection.h; sourceTree = ""; }; + CB5C37C31875EAA0FBA33135 /* NSAttributedString+HTML.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSAttributedString+HTML.m"; path = "Core/Source/NSAttributedString+HTML.m"; sourceTree = ""; }; + CBBE591F96CD63234E3FC49B /* UIWebView+AFNetworking.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIWebView+AFNetworking.m"; path = "UIKit+AFNetworking/UIWebView+AFNetworking.m"; sourceTree = ""; }; + CBD66FD79CCA50D1F2FDE4F9 /* libPods-MWPhotoBrowser.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-MWPhotoBrowser.a"; sourceTree = BUILT_PRODUCTS_DIR; }; + CC10F0A51919623D07F245E4 /* SDWebImagePrefetcher.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SDWebImagePrefetcher.h; path = SDWebImage/SDWebImagePrefetcher.h; sourceTree = ""; }; + CC502E3D07422A6FE697A3BF /* Reachability.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = Reachability.m; sourceTree = ""; }; + CD5D32FF02B0A8154D1C07FE /* SecureUDID.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = SecureUDID.h; sourceTree = ""; }; + CDE753A2DDE3C94568833AF3 /* MWPhoto.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MWPhoto.h; path = MWPhotoBrowser/Classes/MWPhoto.h; sourceTree = ""; }; + CE30CCBD39C072F15976D44B /* DTAccessibilityElement.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DTAccessibilityElement.h; path = Core/Source/DTAccessibilityElement.h; sourceTree = ""; }; + CE5235F0D0AB5CA21E93323B /* Pods-SBJson.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-SBJson.xcconfig"; sourceTree = ""; }; + D0D86AF96BCD338F5705C8D9 /* SDWebImagePrefetcher.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SDWebImagePrefetcher.m; path = SDWebImage/SDWebImagePrefetcher.m; sourceTree = ""; }; + D143C3BA7EE6142F6FDC9AF6 /* DTCSSListStyle.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DTCSSListStyle.m; path = Core/Source/DTCSSListStyle.m; sourceTree = ""; }; + D1548899F0E058E2CC964DF0 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS7.1.sdk/System/Library/Frameworks/UIKit.framework; sourceTree = DEVELOPER_DIR; }; + D2834C993837078BFF56AB66 /* Reachability.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = Reachability.h; sourceTree = ""; }; + D32ADA3B1609B2422C9CD05B /* MTLReflection.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MTLReflection.h; path = Mantle/MTLReflection.h; sourceTree = ""; }; + D3E64E73DE3C91606151E6B1 /* DTCoreTextLayouter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DTCoreTextLayouter.h; path = Core/Source/DTCoreTextLayouter.h; sourceTree = ""; }; + D5408DE225597265AB7B8425 /* DTBreakHTMLElement.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DTBreakHTMLElement.h; path = Core/Source/DTBreakHTMLElement.h; sourceTree = ""; }; + D59228AC3B6D04487E7ABD16 /* UIAlertView+AFNetworking.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIAlertView+AFNetworking.m"; path = "UIKit+AFNetworking/UIAlertView+AFNetworking.m"; sourceTree = ""; }; + D59425FD7D3C1B5D55F23E3C /* DTCoreTextLayoutFrameAccessibilityElementGenerator.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DTCoreTextLayoutFrameAccessibilityElementGenerator.m; path = Core/Source/DTCoreTextLayoutFrameAccessibilityElementGenerator.m; sourceTree = ""; }; + D5F7442CC240F7F50B735528 /* DTFolderMonitor.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DTFolderMonitor.m; path = Core/Source/DTFolderMonitor.m; sourceTree = ""; }; + D8FA086F2301731653032E64 /* SBJson4Parser.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SBJson4Parser.m; path = src/main/objc/SBJson4Parser.m; sourceTree = ""; }; + D9C88418B4E8322410425733 /* NSData+DTCrypto.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSData+DTCrypto.h"; path = "Core/Source/NSData+DTCrypto.h"; sourceTree = ""; }; + DB7007692C14889674AFB1C2 /* PSTCollectionViewData.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = PSTCollectionViewData.m; path = PSTCollectionView/PSTCollectionViewData.m; sourceTree = ""; }; + DBAE137A22ABA7FCA5A4AB3E /* NSDictionary+MTLManipulationAdditions.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSDictionary+MTLManipulationAdditions.m"; path = "Mantle/NSDictionary+MTLManipulationAdditions.m"; sourceTree = ""; }; + DCDA7743525DD3A1AE972A76 /* NSURL+DTUnshorten.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSURL+DTUnshorten.m"; path = "Core/Source/NSURL+DTUnshorten.m"; sourceTree = ""; }; + DE695A4BFE20BD8ABFB9B9B8 /* Pods-Mantle-Private.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-Mantle-Private.xcconfig"; sourceTree = ""; }; + E08C66EEC87BE9BE8CB5A16B /* libPods-DTFoundation.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-DTFoundation.a"; sourceTree = BUILT_PRODUCTS_DIR; }; + E0E181ED02699A1599A0A5AA /* Pods-MBProgressHUD-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-MBProgressHUD-prefix.pch"; sourceTree = ""; }; + E0EA5134749A5A4D8FB5482E /* UIProgressView+AFNetworking.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIProgressView+AFNetworking.h"; path = "UIKit+AFNetworking/UIProgressView+AFNetworking.h"; sourceTree = ""; }; + E1EA6EF1EF58BC1BCFC46590 /* DTLog.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DTLog.h; path = Core/Source/DTLog.h; sourceTree = ""; }; + E2A08D1AB142C95BDA533612 /* libPods-DTCoreText.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-DTCoreText.a"; sourceTree = BUILT_PRODUCTS_DIR; }; + E3006A904DC8E2EA96940F9D /* NSObject+MTLComparisonAdditions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSObject+MTLComparisonAdditions.h"; path = "Mantle/NSObject+MTLComparisonAdditions.h"; sourceTree = ""; }; + E39A7456EAC5CB42420C85E6 /* Pods-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-acknowledgements.markdown"; sourceTree = ""; }; + E3A0AD85C1449025FD7B5207 /* NSString+DTUtilities.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSString+DTUtilities.m"; path = "Core/Source/NSString+DTUtilities.m"; sourceTree = ""; }; + E3D5B29091B13DA0F6B8C1A1 /* NSData+ImageContentType.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSData+ImageContentType.m"; path = "SDWebImage/NSData+ImageContentType.m"; sourceTree = ""; }; + E4FBE9216473C11D6B61D947 /* MJRefreshLegendFooter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MJRefreshLegendFooter.h; path = MJRefreshExample/MJRefreshExample/MJRefresh/MJRefreshLegendFooter.h; sourceTree = ""; }; + E5D412FF2D36AABC06E965C4 /* NSURL+DTAppLinks.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSURL+DTAppLinks.m"; path = "Core/Source/iOS/NSURL+DTAppLinks.m"; sourceTree = ""; }; + E748BB16CA6FD38DF4DE75B2 /* NSDictionary+DTCoreText.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSDictionary+DTCoreText.m"; path = "Core/Source/NSDictionary+DTCoreText.m"; sourceTree = ""; }; + E82534A386E5A087ED826968 /* NSString+DTUtilities.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSString+DTUtilities.h"; path = "Core/Source/NSString+DTUtilities.h"; sourceTree = ""; }; + E89E478BB8D8087563FC258D /* Pods-Godzippa-Private.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-Godzippa-Private.xcconfig"; sourceTree = ""; }; + E9AF28BEF82C19A06809727F /* Pods-DTCoreText-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-DTCoreText-prefix.pch"; sourceTree = ""; }; + EA265AE97FB5394FC75AF033 /* NSDictionary+DTCoreText.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSDictionary+DTCoreText.h"; path = "Core/Source/NSDictionary+DTCoreText.h"; sourceTree = ""; }; + EA71121BF1D7E29FEF425210 /* MJRefreshGifFooter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MJRefreshGifFooter.m; path = MJRefreshExample/MJRefreshExample/MJRefresh/MJRefreshGifFooter.m; sourceTree = ""; }; + EAEC32D466FD74E5211E7C0B /* Godzippa.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = Godzippa.h; path = Godzippa/Godzippa.h; sourceTree = ""; }; + EB5E96D395A883CEB6B79051 /* MWZoomingScrollView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MWZoomingScrollView.h; path = MWPhotoBrowser/Classes/MWZoomingScrollView.h; sourceTree = ""; }; + ECB3F29659C350CEBD3ADB41 /* UIScrollView+MJRefresh.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIScrollView+MJRefresh.h"; path = "MJRefreshExample/MJRefreshExample/MJRefresh/UIScrollView+MJRefresh.h"; sourceTree = ""; }; + ED6AFCDC2A503DB45153A947 /* DTDictationPlaceholderTextAttachment.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DTDictationPlaceholderTextAttachment.h; path = Core/Source/DTDictationPlaceholderTextAttachment.h; sourceTree = ""; }; + ED8AA524D60B4DCBD6856A7B /* DTColor+Compatibility.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "DTColor+Compatibility.h"; path = "Core/Source/DTColor+Compatibility.h"; sourceTree = ""; }; + EDC4BB95D1C3D0E5B736D1A7 /* NSString+HTML.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSString+HTML.m"; path = "Core/Source/NSString+HTML.m"; sourceTree = ""; }; + EF15C58E886F11F5B30D4C67 /* MWCaptionView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MWCaptionView.m; path = MWPhotoBrowser/Classes/MWCaptionView.m; sourceTree = ""; }; + EF72252CCE5C540114ABB165 /* DTCoreTextLayoutFrame.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DTCoreTextLayoutFrame.h; path = Core/Source/DTCoreTextLayoutFrame.h; sourceTree = ""; }; + EFC0B81C368300CC151FDC53 /* PSTGridLayoutItem.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = PSTGridLayoutItem.h; path = PSTCollectionView/PSTGridLayoutItem.h; sourceTree = ""; }; + F05B23F310F80B1AA0D6A139 /* libPods-EGOCache.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-EGOCache.a"; sourceTree = BUILT_PRODUCTS_DIR; }; + F0CAF4393D8072037ACF7FF3 /* DTAttributedTextCell.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DTAttributedTextCell.m; path = Core/Source/DTAttributedTextCell.m; sourceTree = ""; }; + F21965578047393389F88764 /* DTHTMLWriter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DTHTMLWriter.m; path = Core/Source/DTHTMLWriter.m; sourceTree = ""; }; + F21DD059C7F32076B0D5A8E2 /* MWTapDetectingImageView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MWTapDetectingImageView.m; path = MWPhotoBrowser/Classes/MWTapDetectingImageView.m; sourceTree = ""; }; + F24BAB4B074FBFF651E8F6CC /* Pods-Reachability-Private.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-Reachability-Private.xcconfig"; sourceTree = ""; }; + F282E0EE63732D24E5EAB564 /* DTBlockFunctions.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DTBlockFunctions.m; path = Core/Source/DTBlockFunctions.m; sourceTree = ""; }; + F28A68EBEA1FF22A1ED6BCCD /* MTLJSONAdapter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MTLJSONAdapter.h; path = Mantle/MTLJSONAdapter.h; sourceTree = ""; }; + F2E56CA9D39A915548A7DA5A /* MTLModel.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MTLModel.h; path = Mantle/MTLModel.h; sourceTree = ""; }; + F3DF9A726280BC12EC3DB192 /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS7.1.sdk/System/Library/Frameworks/CoreGraphics.framework; sourceTree = DEVELOPER_DIR; }; + F4C9A5D56D30BB7ABC1D1455 /* AssetsLibrary.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AssetsLibrary.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS7.1.sdk/System/Library/Frameworks/AssetsLibrary.framework; sourceTree = DEVELOPER_DIR; }; + F57E6762D14F3812CE0711D3 /* UIImage+DTFoundation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIImage+DTFoundation.h"; path = "Core/Source/iOS/UIImage+DTFoundation.h"; sourceTree = ""; }; + F78D42CCB4242594ED456535 /* Pods-DTCoreText-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-DTCoreText-dummy.m"; sourceTree = ""; }; + F7C1D8428536D3EE9F8331A1 /* DTCoreTextParagraphStyle.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DTCoreTextParagraphStyle.h; path = Core/Source/DTCoreTextParagraphStyle.h; sourceTree = ""; }; + F81A603925A5CCDE79B391E9 /* DTHTMLElement.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DTHTMLElement.h; path = Core/Source/DTHTMLElement.h; sourceTree = ""; }; + F83E1690B6A5E94228448B70 /* libPods-SBJson.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-SBJson.a"; sourceTree = BUILT_PRODUCTS_DIR; }; + F8CA60251D4E7A87A805293E /* Security.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Security.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS7.1.sdk/System/Library/Frameworks/Security.framework; sourceTree = DEVELOPER_DIR; }; + F901CA49C117ED24E29DE70B /* DTAccessibilityViewProxy.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DTAccessibilityViewProxy.h; path = Core/Source/DTAccessibilityViewProxy.h; sourceTree = ""; }; + F921A28DCABA42CA363E9ADD /* AFHTTPRequestOperationManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = AFHTTPRequestOperationManager.h; path = AFNetworking/AFHTTPRequestOperationManager.h; sourceTree = ""; }; + F972322C028021FB0AF95B7F /* DACircularProgressView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DACircularProgressView.m; path = DACircularProgress/DACircularProgressView.m; sourceTree = ""; }; + FA46450EBB4EAC69FCB91718 /* DTExtendedFileAttributes.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DTExtendedFileAttributes.h; path = Core/Source/DTExtendedFileAttributes.h; sourceTree = ""; }; + FA4C7837106A8EABD827772E /* MediaPlayer.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = MediaPlayer.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS7.1.sdk/System/Library/Frameworks/MediaPlayer.framework; sourceTree = DEVELOPER_DIR; }; + FB53F65CA41D37CE6BC1BBD4 /* NSAttributedStringRunDelegates.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = NSAttributedStringRunDelegates.m; path = Core/Source/NSAttributedStringRunDelegates.m; sourceTree = ""; }; + FB72F57F29F26E4B3E4F774E /* libPods-STableViewController.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-STableViewController.a"; sourceTree = BUILT_PRODUCTS_DIR; }; + FBA5CE78D030DFA3169DF5AC /* DTCoreTextLayoutFrame.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DTCoreTextLayoutFrame.m; path = Core/Source/DTCoreTextLayoutFrame.m; sourceTree = ""; }; + FBC3FFA76EDD721D64A45116 /* MTLValueTransformer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MTLValueTransformer.h; path = Mantle/MTLValueTransformer.h; sourceTree = ""; }; + FC50C6BD4037623093EF39C3 /* libPods-PSTCollectionView.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-PSTCollectionView.a"; sourceTree = BUILT_PRODUCTS_DIR; }; + FC66DAEA97E0828FDC2EE204 /* SBJson4StreamWriterState.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SBJson4StreamWriterState.m; path = src/main/objc/SBJson4StreamWriterState.m; sourceTree = ""; }; + FD517D5C5BB5C7F212D64D17 /* DTDictationPlaceholderTextAttachment.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DTDictationPlaceholderTextAttachment.m; path = Core/Source/DTDictationPlaceholderTextAttachment.m; sourceTree = ""; }; + FDEFAEE759D48781EFFE20F5 /* MJRefreshComponent.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MJRefreshComponent.m; path = MJRefreshExample/MJRefreshExample/MJRefresh/MJRefreshComponent.m; sourceTree = ""; }; + FE43A93322F264CF5FBC4BBE /* DTCSSStylesheet.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DTCSSStylesheet.h; path = Core/Source/DTCSSStylesheet.h; sourceTree = ""; }; + FE63F00F5690CCE4F938A292 /* MTLManagedObjectAdapter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MTLManagedObjectAdapter.h; path = Mantle/MTLManagedObjectAdapter.h; sourceTree = ""; }; + FEE19E4B6AD394551F002582 /* Pods-SecureUDID-Private.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-SecureUDID-Private.xcconfig"; sourceTree = ""; }; + FF665164CB2A393D1CDBF170 /* Pods-AFNetworking-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-AFNetworking-prefix.pch"; sourceTree = ""; }; + FFC96955EADCDF5BCEF7D7A0 /* DTAttributedTextView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DTAttributedTextView.h; path = Core/Source/DTAttributedTextView.h; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ - 19828D821192B0AD8BA64DBB /* Frameworks */ = { + 05AA70D29D7427C57EC6DE94 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 42A53897D5B4C170C8BA5A2D /* Foundation.framework in Frameworks */, + F1640BAFF50FB98090A5ECD0 /* Foundation.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; - 19D4E7F6FF342095B8492AC8 /* Frameworks */ = { + 0861E5BF2605F13F1BD08746 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - E22A0D18EFBF2CF39F5B261F /* Foundation.framework in Frameworks */, + 9AB638140A05E53E1AD70C01 /* Foundation.framework in Frameworks */, + 867DCB1D3D89337C01713F9C /* QuartzCore.framework in Frameworks */, + 535849DDFD3563AD4834CEF9 /* UIKit.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; - 1D25D30E73586166225CE29E /* Frameworks */ = { + 3C2A9EAE0E03110A0C1F5880 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - E074600F4370E1104CD8D06F /* Foundation.framework in Frameworks */, - A4FCDA6E8A73132DE1697C8C /* SystemConfiguration.framework in Frameworks */, + 7BA1F6A516E7A057D6222597 /* AssetsLibrary.framework in Frameworks */, + 48FF8DE7E8D775ABAC2DDED4 /* Foundation.framework in Frameworks */, + E5FE8915E43B22C459A758AE /* ImageIO.framework in Frameworks */, + 7DD540C8823E74405E512436 /* MapKit.framework in Frameworks */, + 3870F7E9B91AF7C8A6958B25 /* MessageUI.framework in Frameworks */, + EF554DED532CC6AF38899469 /* QuartzCore.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; - 2A1AE755DFA0B59CC7729650 /* Frameworks */ = { + 438A7A497438B3A7BB1F489B /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 28B28847D5910CBE3459691C /* Foundation.framework in Frameworks */, + DAE87F12210AD930A7FA1E34 /* Foundation.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; - 2C840C92980331FD61DAE553 /* Frameworks */ = { + 4E0F99A0620E84D82A7B11D6 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - D9AA4784C032E0D998543045 /* Foundation.framework in Frameworks */, - E67300C88742A4B681315996 /* ImageIO.framework in Frameworks */, - C6223C9399648AFB82BE760E /* QuartzCore.framework in Frameworks */, + B0EF49690609550E7D246B62 /* Foundation.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; - 485C496FBA72B48C8F36CA4D /* Frameworks */ = { + 598CF36FA5C1425DC44C92A2 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 86EE283DDB3EF027EBBEF98D /* Foundation.framework in Frameworks */, + B69FC0987DB66D7711ECB98C /* Foundation.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; - 50951BBF8A9D3CA05D6D89B8 /* Frameworks */ = { + 66A664B8BA2A24C264347B60 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 995D2ACC6676C7A21A9785A1 /* Foundation.framework in Frameworks */, + FBE01FC1D8B429B74FAE9F01 /* Foundation.framework in Frameworks */, + 0CE16C7FF17EF4CBA8F02E3D /* QuartzCore.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; - 787C5DE8DE63A5BCEBD5AEE0 /* Frameworks */ = { + 6E124F76A4D1190CE22E218D /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 1A8BC21DA14BFA5949E50016 /* CoreGraphics.framework in Frameworks */, - 9C0D830AA8DCB895AFEDD1C6 /* CoreText.framework in Frameworks */, - 1A81AFCE6AD8D0FD89CC236C /* Foundation.framework in Frameworks */, - D0E72496EE93035611EE166A /* ImageIO.framework in Frameworks */, - A878E4C6E4373E80F5D13660 /* MediaPlayer.framework in Frameworks */, - CB679A67581D7F5E8E844983 /* QuartzCore.framework in Frameworks */, + 90EBB8EEBA09A98D6E53AB54 /* CoreGraphics.framework in Frameworks */, + CE7DEE18038241E3C6D42334 /* CoreText.framework in Frameworks */, + D3425BBCABE4B9B1A40D566C /* Foundation.framework in Frameworks */, + 1EFAC081435B9BEE9EA28C89 /* ImageIO.framework in Frameworks */, + 4E3F48BEC0DD378B7B72F3F8 /* MediaPlayer.framework in Frameworks */, + 385D44DC7FCD44F257A489CE /* QuartzCore.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; - 7B956EF253BFF061E3C16E58 /* Frameworks */ = { + 89CC1C520CAD1B5DB0E405EC /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 0AC8372303BEDD826B295C92 /* CoreGraphics.framework in Frameworks */, - F541704588D0C5A8F61476F5 /* Foundation.framework in Frameworks */, - 63152F7711EC5D68D37865E6 /* MobileCoreServices.framework in Frameworks */, - D9B241CC9D4C1902E629A74C /* Security.framework in Frameworks */, - 4A84D4DF3953FEE67A8BDAC4 /* SystemConfiguration.framework in Frameworks */, + 67A88DBB1E308F5E8781BF7A /* Foundation.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; - 935D1B47FC2BDDCD60EC14DA /* Frameworks */ = { + 9002F8E20B7A7CC22019D887 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 95E1EDEF69C715F30E73EEC8 /* Foundation.framework in Frameworks */, + 75BB5A8D8208BE8D2DEBE5EF /* Foundation.framework in Frameworks */, + 6B2FC452A2039DB670CE46A9 /* ImageIO.framework in Frameworks */, + 43FA999692F97346CFB015BF /* QuartzCore.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; - CD2433D494CCBAA22BB04EC1 /* Frameworks */ = { + B316CEC6AD2AEFDF30E11A07 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - D38EB84DF2438FE89F1DDE05 /* Foundation.framework in Frameworks */, + FEF961A74296FEEE40D892BB /* Foundation.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; - D022507B2B9B65DE44C2621C /* Frameworks */ = { + BE434D2B87FC0CF9FCF02BEF /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 29DE3615E251CDE95E6E5BFC /* CoreGraphics.framework in Frameworks */, - E8A28A4DFDA1422FD74336B6 /* Foundation.framework in Frameworks */, + D91A9A16D801614BA6842D72 /* Foundation.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; - EFEAE41152B284070046DA32 /* Frameworks */ = { + BED6CD4EAA734FF5DE7FB854 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 9022D1E464FFC78664C3FDA0 /* Foundation.framework in Frameworks */, + D7714136C0C0BE53839B6131 /* Foundation.framework in Frameworks */, + E3DB1FFDC510CB3EEC2EDD4E /* SystemConfiguration.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; - F9EB0F9BB143E1672B6627EA /* Frameworks */ = { + CDF82687C60C260D42520228 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 6C5C29A4193C3E3380BDA42F /* Foundation.framework in Frameworks */, - A813C4B472CD834C8826EC9D /* ImageIO.framework in Frameworks */, + 9E8D61AC3B26F7941B5594DC /* CoreGraphics.framework in Frameworks */, + 6DCBC2E89AF1584D371BA06D /* Foundation.framework in Frameworks */, + AE83E9C71B301B3C41F9974C /* MobileCoreServices.framework in Frameworks */, + FD28D007836F8B070A492A3E /* Security.framework in Frameworks */, + 7A2CBCC96C1DD96892881528 /* SystemConfiguration.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + DEEAA7D8346405448FD17FC5 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 327D915F4012BA77A8F1C7E4 /* Foundation.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + EFF07809B187B5171B0807F7 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 7B9C4AF4A4F77EDF6FCC3CF3 /* Foundation.framework in Frameworks */, + E4BABCC08BA028D9F2A3F931 /* ImageIO.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + F6CF5F931CC50BA30BE82A97 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 1BDF972078061DBD06D71ECF /* CoreGraphics.framework in Frameworks */, + 5E6F4571EB5664048572B83B /* Foundation.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ - 02FA3959F9CACA09C384A778 /* DTFoundation */ = { + 048E7105F45EA73EB0D614A3 = { isa = PBXGroup; children = ( - 3DF3FC1DE07DDC29A6FCF9B2 /* Core */, - CFAA8C38836DF38CFFD0510E /* DTAnimatedGIF */, - 257223D4D69012254C26FB70 /* DTHTMLParser */, - 71288CA0E3EB5EAD8C16A98B /* Support Files */, - 657BA9EA5FE9DB4946EBCCBB /* UIKit */, - ); - path = DTFoundation; - sourceTree = ""; - }; - 098FBF79125E912984348A58 /* Support Files */ = { - isa = PBXGroup; - children = ( - F1A74F2A196FE771945EA0BB /* Pods-SBJson.xcconfig */, - 88E74D6057B5692DADC10F93 /* Pods-SBJson-Private.xcconfig */, - 8DB836771DC16F4553F6187C /* Pods-SBJson-dummy.m */, - 243AFC2DD859405081EB0853 /* Pods-SBJson-prefix.pch */, - ); - name = "Support Files"; - path = "../Target Support Files/Pods-SBJson"; - sourceTree = ""; - }; - 0B78C3D8446DA96DD304D706 /* Pods */ = { - isa = PBXGroup; - children = ( - 577229D8F9639E6E12F3384D /* Pods-acknowledgements.markdown */, - 4B1D5C4891F77D6629DCD612 /* Pods-acknowledgements.plist */, - 070F3F5B859156F2E1935C36 /* Pods-dummy.m */, - F2258CC4EF49C712074144BF /* Pods-environment.h */, - C62B8A8A0CCDC8D045217737 /* Pods-resources.sh */, - 6DED580510E29228D84B181C /* Pods.debug.xcconfig */, - 9F5D12453238D4D645F3419B /* Pods.release.xcconfig */, - ); - name = Pods; - path = "Target Support Files/Pods"; - sourceTree = ""; - }; - 1427F1C804B3D592BC5236CC /* Security */ = { - isa = PBXGroup; - children = ( - 30F3F9E01B43C34729A44800 /* AFSecurityPolicy.h */, - 8BA13D397123DD418D9A5557 /* AFSecurityPolicy.m */, - ); - name = Security; - sourceTree = ""; - }; - 1C7C8810C4C92E27EF896C53 = { - isa = PBXGroup; - children = ( - 8B7C124E5CCC2A6FF542A2DD /* Podfile */, - 74498EA379806177A76B704F /* Frameworks */, - B14D2A223A51A15D1D58710A /* Pods */, - A52776769F46F28B2F3F4E48 /* Products */, - 8034BFDEB38D8AE445026C40 /* Targets Support Files */, + 0C1488D43582FF33CC631E20 /* Podfile */, + DCCBCF2161CD283E4C740FEB /* Frameworks */, + C4A2D596BA6842EFA8E12AD4 /* Pods */, + D963B9A378F1B7233D8847A7 /* Products */, + A7B82A8E8628DEB94DBF9FCF /* Targets Support Files */, ); sourceTree = ""; }; - 1E1CCB09C08C1CB47B5024BE /* iOS */ = { + 0DEC2D8E95E43374BC4A7FCD /* Support Files */ = { isa = PBXGroup; children = ( - 773442E765A1C63F2FE4C7A7 /* CoreGraphics.framework */, - D0113E9980E365E7C47DF37E /* CoreText.framework */, - 9DD9C5A817433D789365FBBE /* Foundation.framework */, - 75CADB59E864B3C4B66EE1C2 /* ImageIO.framework */, - B4DD78557F2221312508EA29 /* MediaPlayer.framework */, - 82CC48C7AD519486AEE6522C /* MobileCoreServices.framework */, - 20C1566CF6ACC33C01D5FD71 /* QuartzCore.framework */, - 55E04A8B77AF2CE09FB706A1 /* Security.framework */, - 9CDF2BBFC944D7EC9ED7E876 /* SystemConfiguration.framework */, - ); - name = iOS; - sourceTree = ""; - }; - 24FD9540574FA5304DB42E9A /* EGOCache */ = { - isa = PBXGroup; - children = ( - 9AF4EEBE22CA0773738FC4D0 /* EGOCache.h */, - E30D75C853F99F1A5BB9BD3B /* EGOCache.m */, - EA72CDCF8B6C509DA7BB7B38 /* Support Files */, - ); - path = EGOCache; - sourceTree = ""; - }; - 257223D4D69012254C26FB70 /* DTHTMLParser */ = { - isa = PBXGroup; - children = ( - E06A0E4811BBE705C4CCACAB /* DTHTMLParser.h */, - 54154F8BD9FC16F347D72760 /* DTHTMLParser.m */, - ); - name = DTHTMLParser; - sourceTree = ""; - }; - 26D71C1BD95AE5034CCF0451 /* extobjc */ = { - isa = PBXGroup; - children = ( - E682227BB5148A457619A3B8 /* EXTKeyPathCoding.h */, - 2AEE9E5C80C90AF637A41B1D /* EXTRuntimeExtensions.h */, - 0338FF159AEAE4FBAB5EA8DE /* EXTRuntimeExtensions.m */, - 7769048F02C4CA9F2EDF56FB /* EXTScope.h */, - 2FBF0F645D702F931F268E9E /* EXTScope.m */, - 286208A4C4A2A5532D103394 /* metamacros.h */, - ); - name = extobjc; - sourceTree = ""; - }; - 32915A5FA3E8EE9AD0939608 /* MJRefresh */ = { - isa = PBXGroup; - children = ( - F2551C1ACF348C6C30F3CD19 /* MJRefresh.h */, - 73CEA0FB979ED40EC2A6B6BC /* MJRefreshComponent.h */, - A3A3790BFF503435831271AC /* MJRefreshComponent.m */, - E318B19F03E9DE62C674966F /* MJRefreshConst.h */, - 88996DCFB9C20647C811521A /* MJRefreshConst.m */, - BC02B7E0A617A2C3EE555756 /* MJRefreshFooter.h */, - C9D08CD6B532365139DA1407 /* MJRefreshFooter.m */, - 905830A7C598494CA2F91F4C /* MJRefreshGifFooter.h */, - 87F422B2E0D48E37DAC11B50 /* MJRefreshGifFooter.m */, - FA171C7D85D5C1A68B9F4FF4 /* MJRefreshGifHeader.h */, - 30EF123E79EC9F1A86F2FB80 /* MJRefreshGifHeader.m */, - F48BD34D52AB4DDAFF22F360 /* MJRefreshHeader.h */, - 1D67FE333691046E4CB8302C /* MJRefreshHeader.m */, - 3F785BCBA9B7F64378E76278 /* MJRefreshLegendFooter.h */, - EB1FFA98D7F41E49D4A1FC80 /* MJRefreshLegendFooter.m */, - EB72821D64E431973F02A38F /* MJRefreshLegendHeader.h */, - 69A1F0BE372389DA46197303 /* MJRefreshLegendHeader.m */, - AE4D8F0FE101726A21C7916D /* UIScrollView+MJExtension.h */, - 9447CAF1045E27BEEDA3F476 /* UIScrollView+MJExtension.m */, - F64AF8C879E7300CB2CB9C16 /* UIScrollView+MJRefresh.h */, - 51DA841889AC7CDBDC4EEC6E /* UIScrollView+MJRefresh.m */, - 1803F7DA4A6EF54918CD8DAB /* UIView+MJExtension.h */, - F3298950D38367B5B0B857B9 /* UIView+MJExtension.m */, - BE6DD9DD3A2C58FC4D6A319F /* Resources */, - 6AAE7E0A24D8A6E53F99455F /* Support Files */, - ); - path = MJRefresh; - sourceTree = ""; - }; - 35435CBB3BF878B0E5621735 /* Support Files */ = { - isa = PBXGroup; - children = ( - C7F5D47434A5342B76894D9E /* Pods-MBProgressHUD.xcconfig */, - DD16954F60332ADFD07CC6DD /* Pods-MBProgressHUD-Private.xcconfig */, - 51F816C7B2A3D31378A7677E /* Pods-MBProgressHUD-dummy.m */, - 22AC81C0620BA21E6E75DE8B /* Pods-MBProgressHUD-prefix.pch */, - ); - name = "Support Files"; - path = "../Target Support Files/Pods-MBProgressHUD"; - sourceTree = ""; - }; - 3DF3FC1DE07DDC29A6FCF9B2 /* Core */ = { - isa = PBXGroup; - children = ( - 2EC05C5B2AC470186E038E3F /* DTAsyncFileDeleter.h */, - 49AB829E61E71E2B8119ABA5 /* DTAsyncFileDeleter.m */, - 34E2230D1DF25D9C76EEE3BA /* DTBase64Coding.h */, - B500ECF7DB98EE0B317600B7 /* DTBase64Coding.m */, - 663130FDE5B7DD0A2641EB9D /* DTBlockFunctions.h */, - 811C72238540E10D821E509F /* DTBlockFunctions.m */, - 57E5F26122F2FB06F884C15A /* DTCoreGraphicsUtils.h */, - ECBCCCD797D5A2DC1FEF0C9E /* DTCoreGraphicsUtils.m */, - 7AA0FD965C5FBB1287C48E48 /* DTExtendedFileAttributes.h */, - DBBDECA0E031AACA6A6FD77E /* DTExtendedFileAttributes.m */, - 0CD381B22C0C351795FA961B /* DTFolderMonitor.h */, - 74AC06D02C0D9C5BA41A0675 /* DTFolderMonitor.m */, - DD6A78B0D9A58DFC5680AEF5 /* DTFoundationConstants.h */, - 1B6C1077FF5B5CE830E38ED8 /* DTFoundationConstants.m */, - 155778E11B2A513DDDAEF986 /* DTLog.h */, - 5A1335E83B09E0425099AB9E /* DTLog.m */, - 9520C2A2987FE0DFD1CC4197 /* DTVersion.h */, - 5B6AF433338EC4AC033A9181 /* DTVersion.m */, - D086CB92C6BD593F773E96CE /* DTWeakSupport.h */, - 9F42516FEA63D4DC3288C7DE /* NSArray+DTError.h */, - FBF4D2435D4D21F020CB5127 /* NSArray+DTError.m */, - E423E5459EDC690BEBD6A3A4 /* NSData+DTCrypto.h */, - D5EA61467C60003133DD0D39 /* NSData+DTCrypto.m */, - 2F6688E0FD46351AE98ED8E7 /* NSDictionary+DTError.h */, - 7177B72C59C85460D5052B06 /* NSDictionary+DTError.m */, - 2ADF5358C353032A4C980480 /* NSFileWrapper+DTCopying.h */, - 5AC655EBA4D1C6760F814C3F /* NSFileWrapper+DTCopying.m */, - 38824C80AA03F622FF5609CD /* NSMutableArray+DTMoving.h */, - 0FFDB42E147E3F4AC3BD515A /* NSMutableArray+DTMoving.m */, - F9F7F21660EEA731250022FB /* NSString+DTFormatNumbers.h */, - E3CA9A0D1022C0680DD14622 /* NSString+DTFormatNumbers.m */, - 4F72F40D140F09B394AAEE86 /* NSString+DTPaths.h */, - 0546F3C3A3284709F421382A /* NSString+DTPaths.m */, - E12A9F77537BE752605BE4FB /* NSString+DTURLEncoding.h */, - A5DC4DE3B2C1EA11EA2068EE /* NSString+DTURLEncoding.m */, - 4847BB93AAE212547B53AC4C /* NSString+DTUtilities.h */, - 8D7624987F033F98039FBAA9 /* NSString+DTUtilities.m */, - 2CF9B41C27A9903229B4D678 /* NSURL+DTComparing.h */, - 9363BC239F7CCC502F0109FD /* NSURL+DTComparing.m */, - 7BBF2A6202CA507D30D3476A /* NSURL+DTUnshorten.h */, - DF93B9175E450858873DDAA6 /* NSURL+DTUnshorten.m */, - ); - name = Core; - sourceTree = ""; - }; - 4099F847395F33999CACE38E /* Support Files */ = { - isa = PBXGroup; - children = ( - B7C1F9E6ED53CEE2B5E2C968 /* Pods-SDWebImage.xcconfig */, - 22DC7F7C26F943CC883DABEC /* Pods-SDWebImage-Private.xcconfig */, - 4F2E55C6466ED5FD349BC1A9 /* Pods-SDWebImage-dummy.m */, - 853BA32A4A24F1EE925CEB3E /* Pods-SDWebImage-prefix.pch */, - ); - name = "Support Files"; - path = "../Target Support Files/Pods-SDWebImage"; - sourceTree = ""; - }; - 45F7C249D2B64178C6F57BFA /* UIKit */ = { - isa = PBXGroup; - children = ( - A1B9DA4F4DB2E5878765292A /* AFNetworkActivityIndicatorManager.h */, - BAD193C4FADB5899C6C15C32 /* AFNetworkActivityIndicatorManager.m */, - D5C54EE1B30EC338D3303861 /* UIActivityIndicatorView+AFNetworking.h */, - 20D928D2843510C0E5CBFF97 /* UIActivityIndicatorView+AFNetworking.m */, - 930A0AB4C8E7F92D743F8FB7 /* UIAlertView+AFNetworking.h */, - 9EAF55F3F29A2DC5F6D0D400 /* UIAlertView+AFNetworking.m */, - 799A3F011EE9572BE76485F5 /* UIButton+AFNetworking.h */, - C81BB5A80B9CDD86C332157A /* UIButton+AFNetworking.m */, - B2BE44C2BD5CFBD496BADAF2 /* UIImageView+AFNetworking.h */, - 7EF4F9B8E1DE4E5EC5ADEADA /* UIImageView+AFNetworking.m */, - 365283556A4FFE038B8368A7 /* UIKit+AFNetworking.h */, - 11123DE0038FC1BD0EB81C7B /* UIProgressView+AFNetworking.h */, - 1FAA7411D6D971B73B99F6D3 /* UIProgressView+AFNetworking.m */, - BD4CC0F4A206E3387EB23FC7 /* UIRefreshControl+AFNetworking.h */, - 9A0DCAD1855DE063C4F9EC83 /* UIRefreshControl+AFNetworking.m */, - 43E49596A789FBF422F82CB3 /* UIWebView+AFNetworking.h */, - 5A9EFA1E9B05357190D9172E /* UIWebView+AFNetworking.m */, - ); - name = UIKit; - sourceTree = ""; - }; - 4A640C92F90FA75C70C6CDA0 /* MBProgressHUD */ = { - isa = PBXGroup; - children = ( - 7B4E1FCB0CDB86A8C3132D2B /* MBProgressHUD.h */, - 28542C81679EC1F5BE13B85D /* MBProgressHUD.m */, - 35435CBB3BF878B0E5621735 /* Support Files */, - ); - path = MBProgressHUD; - sourceTree = ""; - }; - 565F3D0C6438286E8959044E /* Core */ = { - isa = PBXGroup; - children = ( - 5BFCE43BFE1BE917E23BA9CE /* NSData+ImageContentType.h */, - 4207141FCF781427DE11D23B /* NSData+ImageContentType.m */, - C69239397978F1E0635D29A1 /* SDImageCache.h */, - FC33FC69327B72065A6A6850 /* SDImageCache.m */, - 2931671231F2BF356C7EAEAC /* SDWebImageCompat.h */, - 2089825488BA852B53109B98 /* SDWebImageCompat.m */, - F6A6D3AA20DAA77868C1D091 /* SDWebImageDecoder.h */, - 4970587FBCB99927707153C7 /* SDWebImageDecoder.m */, - A4297449CDDF54794845DE0B /* SDWebImageDownloader.h */, - 97B8EB9DDB15EC1FE96AD6FC /* SDWebImageDownloader.m */, - 39293F16EE02408BB628602B /* SDWebImageDownloaderOperation.h */, - 92DD137860918A2914D09FBE /* SDWebImageDownloaderOperation.m */, - C4236B98DE95D458253A2E28 /* SDWebImageManager.h */, - 70BE3A9C24806ADF38059D79 /* SDWebImageManager.m */, - 64BD8CA15822F6A5D7114EE5 /* SDWebImageOperation.h */, - 0FE4C73D317A76FA9C7AE4B2 /* SDWebImagePrefetcher.h */, - 5C9CE7FF98D4D9258B432D6A /* SDWebImagePrefetcher.m */, - 02567E2AFA2ABD2F2C933C40 /* UIButton+WebCache.h */, - 0C1064303DF3B737DA725814 /* UIButton+WebCache.m */, - 000C7C8E20F34124E0809DB3 /* UIImage+GIF.h */, - 53816A84E2AE1459E9514BC5 /* UIImage+GIF.m */, - DF3A183ACE7AA9CF9B0D51C3 /* UIImage+MultiFormat.h */, - 34D8B3FF86517D1908DF722D /* UIImage+MultiFormat.m */, - 26C9F48A9F0BC01C9500E750 /* UIImageView+HighlightedWebCache.h */, - 9AC757925F47F6FF993302F2 /* UIImageView+HighlightedWebCache.m */, - B26EF2E1F5791671372428C1 /* UIImageView+WebCache.h */, - B84601644BABDDB5EF4E1742 /* UIImageView+WebCache.m */, - 12CAC97CA7D7C1588D4A140F /* UIView+WebCacheOperation.h */, - AFFE47C69E2CCB6543DD7528 /* UIView+WebCacheOperation.m */, - ); - name = Core; - sourceTree = ""; - }; - 617D87F1C98D8799E32D3317 /* AFNetworking */ = { - isa = PBXGroup; - children = ( - C0130EFECC56B2652B94F81E /* AFNetworking.h */, - CD15B04DC899B539C4854E4E /* NSURLConnection */, - F7D2983AF2ED174CFA046104 /* NSURLSession */, - E838453A945BF81964DFD856 /* Reachability */, - 1427F1C804B3D592BC5236CC /* Security */, - CFF3BDE017F92278D168BB35 /* Serialization */, - D042DBD861BC220311E28DCC /* Support Files */, - 45F7C249D2B64178C6F57BFA /* UIKit */, - ); - path = AFNetworking; - sourceTree = ""; - }; - 657BA9EA5FE9DB4946EBCCBB /* UIKit */ = { - isa = PBXGroup; - children = ( - 98A1A4FA156A15C63ED19D69 /* DTActivityTitleView.h */, - 02297CC15BF3E306414B69BD /* DTActivityTitleView.m */, - C3CACD01ECAC658FCCD298EC /* DTCustomColoredAccessory.h */, - 8603AA1F5FB93FC0461DE390 /* DTCustomColoredAccessory.m */, - C988330BF193EC2D1790D01E /* DTPieProgressIndicator.h */, - 73327572566D7640FD245B2A /* DTPieProgressIndicator.m */, - D7D7A0CB50404353CCE42F15 /* DTSmartPagingScrollView.h */, - C9CEC52E2C906AE8F6B24AF0 /* DTSmartPagingScrollView.m */, - 596D48C47A75A30F8F476EF7 /* DTTiledLayerWithoutFade.h */, - 99BB5CAD5850C8794A82F246 /* DTTiledLayerWithoutFade.m */, - 49732D6B3FAC6FA975BA8B57 /* NSURL+DTAppLinks.h */, - AEE0406A9A825584A0F6B860 /* NSURL+DTAppLinks.m */, - A4476FAA3F466E24375C066C /* UIApplication+DTNetworkActivity.h */, - AE00973AB256DF3A0D0BA60F /* UIApplication+DTNetworkActivity.m */, - C55CF69840949A3B9DB21983 /* UIImage+DTFoundation.h */, - 016554F1D5DBD110C0A9FAF8 /* UIImage+DTFoundation.m */, - 2B66DC6C098625298FDCAD16 /* UIView+DTFoundation.h */, - 36F28FF07FEBCD953A6BF6AF /* UIView+DTFoundation.m */, - 3F710767E010692A479E81A8 /* UIWebView+DTFoundation.h */, - B0A3460A7A2FDD3392A03A11 /* UIWebView+DTFoundation.m */, - ); - name = UIKit; - sourceTree = ""; - }; - 6AAE7E0A24D8A6E53F99455F /* Support Files */ = { - isa = PBXGroup; - children = ( - D3C8C061C4FFE31551220FA8 /* Pods-MJRefresh.xcconfig */, - 90370D6EA53E520AF4DD96ED /* Pods-MJRefresh-Private.xcconfig */, - A4E0118791F34CD014CF9579 /* Pods-MJRefresh-dummy.m */, - 540C1ACAE6662D1616D6CC6D /* Pods-MJRefresh-prefix.pch */, - ); - name = "Support Files"; - path = "../Target Support Files/Pods-MJRefresh"; - sourceTree = ""; - }; - 71288CA0E3EB5EAD8C16A98B /* Support Files */ = { - isa = PBXGroup; - children = ( - 218C23F30E34325AF887D15E /* Pods-DTFoundation.xcconfig */, - 52247F1042D0F039DD844309 /* Pods-DTFoundation-Private.xcconfig */, - CD2AE4C4FECECC3D80428448 /* Pods-DTFoundation-dummy.m */, - 0EE45DCFC5E46ECBA0783341 /* Pods-DTFoundation-prefix.pch */, - ); - name = "Support Files"; - path = "../Target Support Files/Pods-DTFoundation"; - sourceTree = ""; - }; - 74498EA379806177A76B704F /* Frameworks */ = { - isa = PBXGroup; - children = ( - 1E1CCB09C08C1CB47B5024BE /* iOS */, - ); - name = Frameworks; - sourceTree = ""; - }; - 79EEE589057B17968FCFC0D2 /* Reachability */ = { - isa = PBXGroup; - children = ( - C99E56F7134A39AC6037E2E3 /* Reachability.h */, - A5204F4E2CF3C362FF72EF76 /* Reachability.m */, - ACD048247F3E96A7DFF3B218 /* Support Files */, - ); - path = Reachability; - sourceTree = ""; - }; - 8034BFDEB38D8AE445026C40 /* Targets Support Files */ = { - isa = PBXGroup; - children = ( - 0B78C3D8446DA96DD304D706 /* Pods */, - ); - name = "Targets Support Files"; - sourceTree = ""; - }; - 822ADC966DFB778D5E7190B2 /* Support Files */ = { - isa = PBXGroup; - children = ( - 56D14654DC8077D93D2A1E02 /* Pods-SecureUDID.xcconfig */, - 4F71A29574E0B380FE804D63 /* Pods-SecureUDID-Private.xcconfig */, - 57CBAECC87D95F8EDCB43392 /* Pods-SecureUDID-dummy.m */, - 5EA4D2B9D7DADFFFFBB8C962 /* Pods-SecureUDID-prefix.pch */, - ); - name = "Support Files"; - path = "../Target Support Files/Pods-SecureUDID"; - sourceTree = ""; - }; - 885692F5D851BC67F5303C1D /* SDWebImage */ = { - isa = PBXGroup; - children = ( - 565F3D0C6438286E8959044E /* Core */, - 4099F847395F33999CACE38E /* Support Files */, - ); - path = SDWebImage; - sourceTree = ""; - }; - 93588BA60D412C3324FABD02 /* Support Files */ = { - isa = PBXGroup; - children = ( - EF130C5383314A1B1F7BBC18 /* Pods-DTCoreText.xcconfig */, - C09B4C9B31BECE0AAEBA4764 /* Pods-DTCoreText-Private.xcconfig */, - F114083C13D15B1EB627A350 /* Pods-DTCoreText-dummy.m */, - D204A5D144A99453E91B207B /* Pods-DTCoreText-prefix.pch */, - ); - name = "Support Files"; - path = "../Target Support Files/Pods-DTCoreText"; - sourceTree = ""; - }; - 96DA662D9BAF7EAF6B7C0D25 /* Mantle */ = { - isa = PBXGroup; - children = ( - 02267995D166E83411B7FA6E /* MTLJSONAdapter.h */, - 0DBF7BFED66DEA608EE98F79 /* MTLJSONAdapter.m */, - CE8D89294248FA6062C49829 /* MTLManagedObjectAdapter.h */, - 19360A8F7BDBEE56A4499368 /* MTLManagedObjectAdapter.m */, - 8831276CD46A5B60D74C2BAC /* MTLModel.h */, - C9D338DCF7BBE8E416037CF6 /* MTLModel.m */, - AE53AD511CE0BA44B4752FEA /* MTLModel+NSCoding.h */, - FD5081DE159AF8A6D580542B /* MTLModel+NSCoding.m */, - 7BC113614F7136493658DF3D /* MTLReflection.h */, - D905170C724FC07A087DA177 /* MTLReflection.m */, - 4DBFAFDF68A673A50270352B /* MTLValueTransformer.h */, - 1198240109E0FF9B776C4A37 /* MTLValueTransformer.m */, - 0CB61A9012F7783015E18B7B /* Mantle.h */, - D82372A59C0AC80663B90CED /* NSArray+MTLManipulationAdditions.h */, - AC65D72031F0470A4D32818C /* NSArray+MTLManipulationAdditions.m */, - 272D39690151F2016FF485C2 /* NSDictionary+MTLManipulationAdditions.h */, - 9A64DFA72DEB806D609C599D /* NSDictionary+MTLManipulationAdditions.m */, - D938F08000DB650B2F491850 /* NSError+MTLModelException.h */, - 3E9CAEF7849C7310918D8E32 /* NSError+MTLModelException.m */, - 8312AECB034C2BC0914BFAAF /* NSObject+MTLComparisonAdditions.h */, - CAB0A45839DC7DB4DE3ED48D /* NSObject+MTLComparisonAdditions.m */, - E185C3A63D33EA5B221AC913 /* NSValueTransformer+MTLInversionAdditions.h */, - 10E66F61731BC4E063DE4062 /* NSValueTransformer+MTLInversionAdditions.m */, - F582FC8D28A00099572FBB6E /* NSValueTransformer+MTLPredefinedTransformerAdditions.h */, - 78733D989F9F73E37027C410 /* NSValueTransformer+MTLPredefinedTransformerAdditions.m */, - 9BF0032683A4917FAB555AAE /* Support Files */, - 26D71C1BD95AE5034CCF0451 /* extobjc */, - ); - path = Mantle; - sourceTree = ""; - }; - 9BF0032683A4917FAB555AAE /* Support Files */ = { - isa = PBXGroup; - children = ( - 9AB972B15EDB9900880A5BD4 /* Pods-Mantle.xcconfig */, - B75F71FC4D5A158E5CBAAE4A /* Pods-Mantle-Private.xcconfig */, - 976E8ED367ED5D8851AFBD7F /* Pods-Mantle-dummy.m */, - 27C0477001CA531D8F675E00 /* Pods-Mantle-prefix.pch */, - ); - name = "Support Files"; - path = "../Target Support Files/Pods-Mantle"; - sourceTree = ""; - }; - 9D41155BE4CC4B51CB20817F /* Support Files */ = { - isa = PBXGroup; - children = ( - F8D82090CD2D00F85300B351 /* Pods-STableViewController.xcconfig */, - AEDF710B3D9BBB4B3530BDB4 /* Pods-STableViewController-Private.xcconfig */, - 8E7C41887C23810EB51DD0A0 /* Pods-STableViewController-dummy.m */, - 14B01793281B15823DA8AB70 /* Pods-STableViewController-prefix.pch */, - ); - name = "Support Files"; - path = "../Target Support Files/Pods-STableViewController"; - sourceTree = ""; - }; - 9D5410C18F4CDD38DD63F89C /* Godzippa */ = { - isa = PBXGroup; - children = ( - E2E58C3EBFFE680BA8B27886 /* Godzippa.h */, - DD2E4AF02D89954634EFF8C5 /* NSData+Godzippa.h */, - 14E0B24681D42846B0CD9A3B /* NSData+Godzippa.m */, - CD5024FC7D47DD48B5ED9D8D /* NSFileManager+Godzippa.h */, - 755D62429655E5D59DD7F71D /* NSFileManager+Godzippa.m */, - C311A51B9EC4B49AA7F516CD /* Support Files */, - ); - path = Godzippa; - sourceTree = ""; - }; - A52776769F46F28B2F3F4E48 /* Products */ = { - isa = PBXGroup; - children = ( - 0DFC802C0A6071810B82B253 /* libPods.a */, - A3D50189B84CAFA22502AA88 /* libPods-AFNetworking.a */, - CBE26A822B9113D7AEE87DA3 /* libPods-DTCoreText.a */, - B62216477414878B1B856598 /* libPods-DTFoundation.a */, - 2E48888E05ABEED31745F4E6 /* libPods-EGOCache.a */, - 27C436A1B9330F8576D3D27E /* libPods-Godzippa.a */, - FD994BF3AB940E759259C133 /* libPods-MBProgressHUD.a */, - 053E650D0FAE12D024D858D0 /* libPods-MJRefresh.a */, - A2B2B182EBB052C8D1A75726 /* libPods-Mantle.a */, - 4800D6896DDF29D0676A963A /* libPods-Reachability.a */, - 4675BAADC653074EB3762AB3 /* libPods-SBJson.a */, - 1C4485F4C42846C2279D9B3C /* libPods-SDWebImage.a */, - B30451B8E4FDB09C257558C5 /* libPods-STableViewController.a */, - B001B4A5AB7E920F7C68C0BF /* libPods-SecureUDID.a */, - ); - name = Products; - sourceTree = ""; - }; - ACD048247F3E96A7DFF3B218 /* Support Files */ = { - isa = PBXGroup; - children = ( - E395C8947ADEF664E5DAA682 /* Pods-Reachability.xcconfig */, - 862B69EC37D1700792222296 /* Pods-Reachability-Private.xcconfig */, - 2CFB20E08EB3F41ABA5F07D0 /* Pods-Reachability-dummy.m */, - 3D8E2AA6030AF427437E83FD /* Pods-Reachability-prefix.pch */, + 6F1477D59E6D185CD58EE79D /* Pods-Reachability.xcconfig */, + F24BAB4B074FBFF651E8F6CC /* Pods-Reachability-Private.xcconfig */, + 16FF291C006A900385DB96EA /* Pods-Reachability-dummy.m */, + BF812550555E55AD5601D7AE /* Pods-Reachability-prefix.pch */, ); name = "Support Files"; path = "../Target Support Files/Pods-Reachability"; sourceTree = ""; }; - B14D2A223A51A15D1D58710A /* Pods */ = { + 13BA6312B2F176D52C2CB259 /* Reachability */ = { isa = PBXGroup; children = ( - 617D87F1C98D8799E32D3317 /* AFNetworking */, - FB0401E282DEB9F5EF414A1D /* DTCoreText */, - 02FA3959F9CACA09C384A778 /* DTFoundation */, - 24FD9540574FA5304DB42E9A /* EGOCache */, - 9D5410C18F4CDD38DD63F89C /* Godzippa */, - 4A640C92F90FA75C70C6CDA0 /* MBProgressHUD */, - 32915A5FA3E8EE9AD0939608 /* MJRefresh */, - 96DA662D9BAF7EAF6B7C0D25 /* Mantle */, - 79EEE589057B17968FCFC0D2 /* Reachability */, - E33C4F58B0E8D1398D1B615F /* SBJson */, - 885692F5D851BC67F5303C1D /* SDWebImage */, - B4EAA255AD4BA977AF582710 /* STableViewController */, - B8451AA3EBE88B2160A7D6A8 /* SecureUDID */, + D2834C993837078BFF56AB66 /* Reachability.h */, + CC502E3D07422A6FE697A3BF /* Reachability.m */, + 0DEC2D8E95E43374BC4A7FCD /* Support Files */, ); - name = Pods; + path = Reachability; sourceTree = ""; }; - B4EAA255AD4BA977AF582710 /* STableViewController */ = { + 163A239834C7BD46E042258E /* Support Files */ = { isa = PBXGroup; children = ( - 2C66CCE611914E181AD7F1F5 /* STableViewController.h */, - C65AC3C56199B42EA9136A83 /* STableViewController.m */, - 9D41155BE4CC4B51CB20817F /* Support Files */, - ); - path = STableViewController; - sourceTree = ""; - }; - B8451AA3EBE88B2160A7D6A8 /* SecureUDID */ = { - isa = PBXGroup; - children = ( - C072F31E804C6721B44E54F2 /* SecureUDID.h */, - 61383BAC381EA9F53764205F /* SecureUDID.m */, - 822ADC966DFB778D5E7190B2 /* Support Files */, - ); - path = SecureUDID; - sourceTree = ""; - }; - BE6DD9DD3A2C58FC4D6A319F /* Resources */ = { - isa = PBXGroup; - children = ( - CB8B44F2AD738EA16716C5FE /* MJRefresh.bundle */, - ); - name = Resources; - sourceTree = ""; - }; - C311A51B9EC4B49AA7F516CD /* Support Files */ = { - isa = PBXGroup; - children = ( - DFE070D59D98460D7859BE1A /* Pods-Godzippa.xcconfig */, - 043D98647761B600A32F118F /* Pods-Godzippa-Private.xcconfig */, - 503A291995410E5B5A763B2D /* Pods-Godzippa-dummy.m */, - 62C8D3C5B2D9903F6B8D9DD2 /* Pods-Godzippa-prefix.pch */, + B60F1667C28C9301AEC32891 /* Pods-MJRefresh.xcconfig */, + B23EE0E23E50982654CCF67F /* Pods-MJRefresh-Private.xcconfig */, + C7B04C01F1A02B0E2D91D6AA /* Pods-MJRefresh-dummy.m */, + 3AA6D4D429B68E48A625DE02 /* Pods-MJRefresh-prefix.pch */, ); name = "Support Files"; - path = "../Target Support Files/Pods-Godzippa"; + path = "../Target Support Files/Pods-MJRefresh"; sourceTree = ""; }; - CD15B04DC899B539C4854E4E /* NSURLConnection */ = { + 16619A0E8E1AD839A99E4CF9 /* Support Files */ = { isa = PBXGroup; children = ( - ACBD88BFCFCB486595242A16 /* AFHTTPRequestOperation.h */, - 8548215E6816926EBD286077 /* AFHTTPRequestOperation.m */, - 46BBD8CD798A9C6A959B2F9C /* AFHTTPRequestOperationManager.h */, - 5A049A3C50CE466C4E012A2E /* AFHTTPRequestOperationManager.m */, - 74503AAA593FD430ACC0474E /* AFURLConnectionOperation.h */, - BB7CD6D48CF336B4A54D21F1 /* AFURLConnectionOperation.m */, + 4EA0C00FA6239BF1CC9C697D /* Pods-DTFoundation.xcconfig */, + AEEA3AA239E2FB8B9B74BD59 /* Pods-DTFoundation-Private.xcconfig */, + C06E0283B6A8E5B652E3612A /* Pods-DTFoundation-dummy.m */, + A0BD4A49D66B37F47D0D0787 /* Pods-DTFoundation-prefix.pch */, ); - name = NSURLConnection; + name = "Support Files"; + path = "../Target Support Files/Pods-DTFoundation"; sourceTree = ""; }; - CFAA8C38836DF38CFFD0510E /* DTAnimatedGIF */ = { + 1DB473A289A790C366012DC7 /* Support Files */ = { isa = PBXGroup; children = ( - E285C11FC8A0EDC3C050F5BA /* DTAnimatedGIF.h */, - 756716097FFEF7DF57ABDADA /* DTAnimatedGIF.m */, - ); - name = DTAnimatedGIF; - sourceTree = ""; - }; - CFF3BDE017F92278D168BB35 /* Serialization */ = { - isa = PBXGroup; - children = ( - A8F04169908591C458261427 /* AFURLRequestSerialization.h */, - 337FFFD4E19E5FEE3B22903C /* AFURLRequestSerialization.m */, - 499918F35DCBA4F2298533F3 /* AFURLResponseSerialization.h */, - EE8565A6AA74E73D16AA06A7 /* AFURLResponseSerialization.m */, - ); - name = Serialization; - sourceTree = ""; - }; - D042DBD861BC220311E28DCC /* Support Files */ = { - isa = PBXGroup; - children = ( - E0CDB2B40E60145C0DD591F1 /* Pods-AFNetworking.xcconfig */, - CBC0B7619CE8715C3E8F9F05 /* Pods-AFNetworking-Private.xcconfig */, - 6C0F24BC2B49183DD4CDCD44 /* Pods-AFNetworking-dummy.m */, - 4F2DF4152986932E452C878E /* Pods-AFNetworking-prefix.pch */, + 93600AC86EBA3DCE89CA875B /* Pods-AFNetworking.xcconfig */, + 452A1A47C8214D431886E257 /* Pods-AFNetworking-Private.xcconfig */, + 8AAB2896D7863775D7DDA728 /* Pods-AFNetworking-dummy.m */, + FF665164CB2A393D1CDBF170 /* Pods-AFNetworking-prefix.pch */, ); name = "Support Files"; path = "../Target Support Files/Pods-AFNetworking"; sourceTree = ""; }; - E33C4F58B0E8D1398D1B615F /* SBJson */ = { + 1EC56EE0449B36E6E38A8B53 /* Support Files */ = { isa = PBXGroup; children = ( - F2A3D38884C41197378682EC /* SBJson4.h */, - 4750630460C4BF10955C50F5 /* SBJson4Parser.h */, - 10FEB6C385D0B97A813899C3 /* SBJson4Parser.m */, - 09B84FF607C97FBFEA9CEE6F /* SBJson4StreamParser.h */, - F27265DD7AC462708EDB1231 /* SBJson4StreamParser.m */, - C1A3480ED022780B4482E351 /* SBJson4StreamParserState.h */, - D9A3FE59729AC5FB74AF9D67 /* SBJson4StreamParserState.m */, - 6F6BBE8AF6052FBE8F7598DD /* SBJson4StreamTokeniser.h */, - 320C4B3C2C920938601B4305 /* SBJson4StreamTokeniser.m */, - ACDC97D0468852D958D8D8E8 /* SBJson4StreamWriter.h */, - A652D0BB9B4989A790D1C56C /* SBJson4StreamWriter.m */, - 05BD0FA1310754768903BD03 /* SBJson4StreamWriterState.h */, - 09EAFDAD063EDC00096089DB /* SBJson4StreamWriterState.m */, - 10E13906FA92C4B9CF1CEA8B /* SBJson4Writer.h */, - F3AFBC2A7345283D309D433A /* SBJson4Writer.m */, - 098FBF79125E912984348A58 /* Support Files */, + 71878F2A53389B8142A10DAD /* Pods-SDWebImage.xcconfig */, + 0F368EBCC297CD54BA371764 /* Pods-SDWebImage-Private.xcconfig */, + 1ECD5EDC3483D2B63C2D7B30 /* Pods-SDWebImage-dummy.m */, + 2D513C462883FAD3225F3995 /* Pods-SDWebImage-prefix.pch */, ); - path = SBJson; + name = "Support Files"; + path = "../Target Support Files/Pods-SDWebImage"; sourceTree = ""; }; - E838453A945BF81964DFD856 /* Reachability */ = { + 235387CCC8606AB7B72BECC9 /* Support Files */ = { isa = PBXGroup; children = ( - FCFD752A2ADB6A2F75E062F9 /* AFNetworkReachabilityManager.h */, - 46FB8C8725057434D48E2858 /* AFNetworkReachabilityManager.m */, + BF050061EC71DCA803FB2EE6 /* Pods-STableViewController.xcconfig */, + 099DAB73D0E32ED005F070D2 /* Pods-STableViewController-Private.xcconfig */, + 380E27AAAD32D37E6DAA6ACC /* Pods-STableViewController-dummy.m */, + 98B8348A779C72171CC418FE /* Pods-STableViewController-prefix.pch */, ); - name = Reachability; + name = "Support Files"; + path = "../Target Support Files/Pods-STableViewController"; sourceTree = ""; }; - EA72CDCF8B6C509DA7BB7B38 /* Support Files */ = { + 244B3A912D871BC2439679B8 /* Support Files */ = { isa = PBXGroup; children = ( - 638F50533EF02B8CDCA92EDC /* Pods-EGOCache.xcconfig */, - 576D95F49662885C9F88275D /* Pods-EGOCache-Private.xcconfig */, - 10AD45869DE0C509621F9E38 /* Pods-EGOCache-dummy.m */, - 0F3FAAAEBB793D8BD8F6B7AB /* Pods-EGOCache-prefix.pch */, + 66146F1960A7F4477AC482DE /* Pods-MWPhotoBrowser.xcconfig */, + 84BD7BF6AC8F0BCF104B2026 /* Pods-MWPhotoBrowser-Private.xcconfig */, + A481E249FAFBED5D1A496EC6 /* Pods-MWPhotoBrowser-dummy.m */, + B108A559127F13D4528977A7 /* Pods-MWPhotoBrowser-prefix.pch */, + ); + name = "Support Files"; + path = "../Target Support Files/Pods-MWPhotoBrowser"; + sourceTree = ""; + }; + 298718A6F6F85EFA4A143118 /* SDWebImage */ = { + isa = PBXGroup; + children = ( + 50957D22E3C4685832359208 /* Core */, + 1EC56EE0449B36E6E38A8B53 /* Support Files */, + ); + path = SDWebImage; + sourceTree = ""; + }; + 2ED3D4A51DD547AFEDBF523D /* extobjc */ = { + isa = PBXGroup; + children = ( + 9389DEF66191A2AD3AA1C057 /* EXTKeyPathCoding.h */, + BE46A85CDCF92DC9378F035F /* EXTRuntimeExtensions.h */, + 66D3C19760A87AB7C86D1386 /* EXTRuntimeExtensions.m */, + 4F6EC8AA0855744BAD97006B /* EXTScope.h */, + 0260A32C9F82314300062B7E /* EXTScope.m */, + 7BCC506622D2F6D2BF2E2FC0 /* metamacros.h */, + ); + name = extobjc; + sourceTree = ""; + }; + 2F15B438939D50D832CAE322 /* DACircularProgress */ = { + isa = PBXGroup; + children = ( + 1410D4C4D6F51DF135522C7E /* DACircularProgressView.h */, + F972322C028021FB0AF95B7F /* DACircularProgressView.m */, + 938AA140E35273F2E7244380 /* Support Files */, + ); + path = DACircularProgress; + sourceTree = ""; + }; + 2F25F435F6C793995A5E2220 /* Support Files */ = { + isa = PBXGroup; + children = ( + B51540394898DCFE005F7606 /* Pods-MBProgressHUD.xcconfig */, + 62892682D0C45CAB93E0BFB5 /* Pods-MBProgressHUD-Private.xcconfig */, + B613A4BF661F83988EC75EE5 /* Pods-MBProgressHUD-dummy.m */, + E0E181ED02699A1599A0A5AA /* Pods-MBProgressHUD-prefix.pch */, + ); + name = "Support Files"; + path = "../Target Support Files/Pods-MBProgressHUD"; + sourceTree = ""; + }; + 2FCFCD84B21E8F13ECD7CC08 /* Godzippa */ = { + isa = PBXGroup; + children = ( + EAEC32D466FD74E5211E7C0B /* Godzippa.h */, + 74AFD7083CB157C9C0670585 /* NSData+Godzippa.h */, + 22102AF11B8BE9029948F197 /* NSData+Godzippa.m */, + AB0CE0CF97F7CFED31A721A8 /* NSFileManager+Godzippa.h */, + 62A191863839321A1EFDBDDD /* NSFileManager+Godzippa.m */, + 35F7DB7A3B8338C2F5BA0AB9 /* Support Files */, + ); + path = Godzippa; + sourceTree = ""; + }; + 35F7DB7A3B8338C2F5BA0AB9 /* Support Files */ = { + isa = PBXGroup; + children = ( + C3BD6A5C6D38732547673349 /* Pods-Godzippa.xcconfig */, + E89E478BB8D8087563FC258D /* Pods-Godzippa-Private.xcconfig */, + 579575BAE0137A4DEB08CDFC /* Pods-Godzippa-dummy.m */, + A0A8126604C69EE32594D6EF /* Pods-Godzippa-prefix.pch */, + ); + name = "Support Files"; + path = "../Target Support Files/Pods-Godzippa"; + sourceTree = ""; + }; + 3FDD6C985D884EBCF6DEE36B /* Pods */ = { + isa = PBXGroup; + children = ( + E39A7456EAC5CB42420C85E6 /* Pods-acknowledgements.markdown */, + 9C2B6BEF48A174D9FB39C7F9 /* Pods-acknowledgements.plist */, + 82DC2A4AFF377431721FEB92 /* Pods-dummy.m */, + 3EC1610BB2FF4BAE704B2B40 /* Pods-environment.h */, + B7BFA0E9F89C9A4DECE41A0F /* Pods-resources.sh */, + C5A0870AB9989B2BBEC561ED /* Pods.debug.xcconfig */, + 644B67330549C104D231EDFD /* Pods.release.xcconfig */, + ); + name = Pods; + path = "Target Support Files/Pods"; + sourceTree = ""; + }; + 401CD17DEF54E075760CD75B /* Support Files */ = { + isa = PBXGroup; + children = ( + 8FA8B2705A4B097C2B1166AB /* Pods-EGOCache.xcconfig */, + 34EB5CFA65095FE3625330BF /* Pods-EGOCache-Private.xcconfig */, + 3A430325C1F6A5F87C55A13A /* Pods-EGOCache-dummy.m */, + 2FF7783093473DCAD324F216 /* Pods-EGOCache-prefix.pch */, ); name = "Support Files"; path = "../Target Support Files/Pods-EGOCache"; sourceTree = ""; }; - F7D2983AF2ED174CFA046104 /* NSURLSession */ = { + 40A08B499ED696155B62FAB4 /* MWPhotoBrowser */ = { isa = PBXGroup; children = ( - 4F7C8832258AE8D64AD6EB22 /* AFHTTPSessionManager.h */, - 75148258B54D8B8313FE17F3 /* AFHTTPSessionManager.m */, - 7C0CF15C9EC35C2E7049DE73 /* AFURLSessionManager.h */, - E70B4D3E26344AF290F4C98E /* AFURLSessionManager.m */, + 73DDAAE42102D09B42DB488F /* MWCaptionView.h */, + EF15C58E886F11F5B30D4C67 /* MWCaptionView.m */, + 8AF00765DC7A8DB1A4E4E572 /* MWCommon.h */, + 8B2D13120B27AAA66C834386 /* MWGridCell.h */, + B56EAA98B74308B005C2A9F1 /* MWGridCell.m */, + 14D3263619D19707B51CFF0C /* MWGridViewController.h */, + 283567AF2362532C2FC1A25F /* MWGridViewController.m */, + CDE753A2DDE3C94568833AF3 /* MWPhoto.h */, + C9F44AD76AB8A3A90FD1D49E /* MWPhoto.m */, + 32521B8EA32E7084137BA8B3 /* MWPhotoBrowser.h */, + 96D077240E63D1AE6CE735A1 /* MWPhotoBrowser.m */, + A0DD3F36356FE8CC74AA8E20 /* MWPhotoBrowserPrivate.h */, + 85832FDFBE9A505650D93711 /* MWPhotoProtocol.h */, + 9B777F150C2789558A36C305 /* MWTapDetectingImageView.h */, + F21DD059C7F32076B0D5A8E2 /* MWTapDetectingImageView.m */, + 22D12AF5F6823D3192CBCCA6 /* MWTapDetectingView.h */, + 61863E911A8FE703FBB01B1A /* MWTapDetectingView.m */, + EB5E96D395A883CEB6B79051 /* MWZoomingScrollView.h */, + 4F887A0C195BDB5417C29BB6 /* MWZoomingScrollView.m */, + CC0FF98DB1FB410808C5C4B9 /* Resources */, + 244B3A912D871BC2439679B8 /* Support Files */, + ); + path = MWPhotoBrowser; + sourceTree = ""; + }; + 47D7C2D5640C6A054995BFD0 /* AFNetworking */ = { + isa = PBXGroup; + children = ( + 9920B4011029C225917B09D4 /* AFNetworking.h */, + 6E6C6A262162DDE2BB505F6C /* NSURLConnection */, + 5AFD653EBBF60BD0E7FA2B7D /* NSURLSession */, + 5E72E31198462CBCA6596BA1 /* Reachability */, + C4A80A7753BE53494261DAF0 /* Security */, + C3C5F3408E7B5B2BDCA3FC05 /* Serialization */, + 1DB473A289A790C366012DC7 /* Support Files */, + FAFEFEBEDC711B2FA84D8C66 /* UIKit */, + ); + path = AFNetworking; + sourceTree = ""; + }; + 50957D22E3C4685832359208 /* Core */ = { + isa = PBXGroup; + children = ( + 438BCA86F07872AFA75E215D /* NSData+ImageContentType.h */, + E3D5B29091B13DA0F6B8C1A1 /* NSData+ImageContentType.m */, + C70121602CECC22892E5EC76 /* SDImageCache.h */, + B9B0B85F571949646551402B /* SDImageCache.m */, + 607B2E6EBF9B5F89C356BCA9 /* SDWebImageCompat.h */, + 3D339B0E71A8442181019636 /* SDWebImageCompat.m */, + 5E9FC5A7CD88C4EB4D7BD65C /* SDWebImageDecoder.h */, + B1D5F99191F63391339A819F /* SDWebImageDecoder.m */, + 284F4DCB2777C6DD6FFBAB85 /* SDWebImageDownloader.h */, + 4C9757B7405F81BAB2643615 /* SDWebImageDownloader.m */, + BDBBE799E7BF683373026C9A /* SDWebImageDownloaderOperation.h */, + 4857A7FC3C7758328BEF273B /* SDWebImageDownloaderOperation.m */, + 8439C84DAB4F2CE7CF4FBAF2 /* SDWebImageManager.h */, + BB189CE4214B6C133422E700 /* SDWebImageManager.m */, + 8B544391DA6AD2E0429113D2 /* SDWebImageOperation.h */, + CC10F0A51919623D07F245E4 /* SDWebImagePrefetcher.h */, + D0D86AF96BCD338F5705C8D9 /* SDWebImagePrefetcher.m */, + C815B7D91F2C17B7233636B7 /* UIButton+WebCache.h */, + 5555D987AA26F52561F87E76 /* UIButton+WebCache.m */, + 04229EA39468FD5D89C9F83C /* UIImage+GIF.h */, + 1539845BC83391CEB1DDB5A9 /* UIImage+GIF.m */, + 23D4AAB2C2B27F6EE8C8DE10 /* UIImage+MultiFormat.h */, + C85954153EA6FA2252687A5E /* UIImage+MultiFormat.m */, + 218789BFC7D3CEDA7C2DC855 /* UIImageView+HighlightedWebCache.h */, + 87E0C9F5D6C764726AF7F7AA /* UIImageView+HighlightedWebCache.m */, + A232491FFB5AC420BF0A80A2 /* UIImageView+WebCache.h */, + 6437E78CDE35412016E0EF8D /* UIImageView+WebCache.m */, + B0D64C1E93E5B320DB304BC9 /* UIView+WebCacheOperation.h */, + 586E461C500145AB1E597DEB /* UIView+WebCacheOperation.m */, + ); + name = Core; + sourceTree = ""; + }; + 54292AF55E47B85A5693B813 /* DTHTMLParser */ = { + isa = PBXGroup; + children = ( + 4201F582F07CDDD8765540D2 /* DTHTMLParser.h */, + 4DF3DFE61F66277DF46A9CD2 /* DTHTMLParser.m */, + ); + name = DTHTMLParser; + sourceTree = ""; + }; + 5AFD653EBBF60BD0E7FA2B7D /* NSURLSession */ = { + isa = PBXGroup; + children = ( + 672232F579EBAD24A042C9DB /* AFHTTPSessionManager.h */, + AF12A3600080609A16C7C8C3 /* AFHTTPSessionManager.m */, + 9BBC57F896F66747AF345112 /* AFURLSessionManager.h */, + 3C9C56059AD8164D322E9F7A /* AFURLSessionManager.m */, ); name = NSURLSession; sourceTree = ""; }; - FB0401E282DEB9F5EF414A1D /* DTCoreText */ = { + 5C2CF87D9FB6F212BB1163CC /* PSTCollectionView */ = { isa = PBXGroup; children = ( - 4EB3E403669E23800E28A5B7 /* DTAccessibilityElement.h */, - 148DEBCC24AB506B6C316DCD /* DTAccessibilityElement.m */, - 80F2C8CC2597851350219120 /* DTAccessibilityViewProxy.h */, - 6F4E8F22347EFC734538CC8B /* DTAccessibilityViewProxy.m */, - AB0C595492DC29BD26231AFF /* DTAnchorHTMLElement.h */, - BDBB5D463CB84DB5FCE7F69C /* DTAnchorHTMLElement.m */, - B9DF7E684875D2D0F3F9E90E /* DTAttributedLabel.h */, - 622F4B3E7D7A4AECD2871F39 /* DTAttributedLabel.m */, - B93673E4E9B9583E3B0A0B12 /* DTAttributedTextCell.h */, - 6EE3DD7AA93E5C3165EADD31 /* DTAttributedTextCell.m */, - 24549194CFAFFDC9DDED662B /* DTAttributedTextContentView.h */, - 58AB7EDBD11A4580DE48181E /* DTAttributedTextContentView.m */, - 0111CBCAA13EC54A465F0746 /* DTAttributedTextView.h */, - F0CC372E47C461FBE2EB7486 /* DTAttributedTextView.m */, - 306DD73F546D8F8A8EABA570 /* DTBreakHTMLElement.h */, - A97975ECB669CF8B1BD1619F /* DTBreakHTMLElement.m */, - A0F6431993B81C62063DA281 /* DTCSSListStyle.h */, - 910112F4F3EB875F4AA0D908 /* DTCSSListStyle.m */, - 3696ED74324B48504AA37EDC /* DTCSSStylesheet.h */, - 4A2144565633C90B3C594FED /* DTCSSStylesheet.m */, - 5A0F5FB33E256EFCE938303C /* DTColor+Compatibility.h */, - BB4F7C51E8746A317D228300 /* DTColor+Compatibility.m */, - EDE030D85B22A8F05A718A4C /* DTColorFunctions.h */, - D2E92F7A6612F4A24E6F20D7 /* DTColorFunctions.m */, - 1E596786EA619668160B3663 /* DTCompatibility.h */, - 425566B984B0A4BCA253D006 /* DTCoreText.h */, - CD097ED93E1C276A7FA9430E /* DTCoreTextConstants.h */, - CD3E2723A996F6F8BF044B77 /* DTCoreTextConstants.m */, - 0A482D8F45EBE17D716551A2 /* DTCoreTextFontCollection.h */, - 96B8523A07E3B9C83A16BC62 /* DTCoreTextFontCollection.m */, - BBAB2C0DE7B01A6D434F48BD /* DTCoreTextFontDescriptor.h */, - 09E8DECB7BF75BA0244B2071 /* DTCoreTextFontDescriptor.m */, - DDB5573320075200698C87D5 /* DTCoreTextFunctions.h */, - 4AC683F0D93BD0059752887D /* DTCoreTextFunctions.m */, - 0ADDF9071F468C9B000996C8 /* DTCoreTextGlyphRun.h */, - F090452F16DD6E56998D85F1 /* DTCoreTextGlyphRun.m */, - 787874207266EB6FAABD051A /* DTCoreTextLayoutFrame.h */, - 8BB919BCAFB78FEB1758A4DC /* DTCoreTextLayoutFrame.m */, - 836D171FF07483A75E6861A1 /* DTCoreTextLayoutFrame+Cursor.h */, - 1569D676E63A0FD1BC54FB04 /* DTCoreTextLayoutFrame+Cursor.m */, - 0DEB70690586C98E99677DF6 /* DTCoreTextLayoutFrameAccessibilityElementGenerator.h */, - BFADDF1EED8DBE2B4E2421F9 /* DTCoreTextLayoutFrameAccessibilityElementGenerator.m */, - ACDAAD9655E2C1AC4DAA7447 /* DTCoreTextLayoutLine.h */, - 6FCD29A7ED59ACB691B908DD /* DTCoreTextLayoutLine.m */, - 7CB88CB32F99B23A91737376 /* DTCoreTextLayouter.h */, - 4675B125EF5ADBB90CEA3374 /* DTCoreTextLayouter.m */, - ACA554A92D0F17480F387916 /* DTCoreTextMacros.h */, - F657B550373040E1E6477D64 /* DTCoreTextParagraphStyle.h */, - 8BDFB7E4C0AAC71A08B0A6CC /* DTCoreTextParagraphStyle.m */, - AF34AB79D5153D4F27D6D084 /* DTDictationPlaceholderTextAttachment.h */, - AF6FAB1F9B36456C522A1AE0 /* DTDictationPlaceholderTextAttachment.m */, - E985496411C338BFFF72DC59 /* DTDictationPlaceholderView.h */, - 42A2C07608DCFE0ADD03E8BD /* DTDictationPlaceholderView.m */, - 02284A8207F847282436F7AD /* DTHTMLAttributedStringBuilder.h */, - 319687905BA188E79179D100 /* DTHTMLAttributedStringBuilder.m */, - F168A911AA440D4C151F9C1D /* DTHTMLElement.h */, - 37533697C6A34D1B83B33C24 /* DTHTMLElement.m */, - A1934AD2A92C4DDA7871D006 /* DTHTMLParserNode.h */, - E90048AC25846309934924ED /* DTHTMLParserNode.m */, - D200097579CFD9EDF1B9A1B3 /* DTHTMLParserTextNode.h */, - 05ED87CBC8DC6A907A84AD2A /* DTHTMLParserTextNode.m */, - F0D499BD4214ECB217034F23 /* DTHTMLWriter.h */, - 824F3205D3AFC48DF86294BD /* DTHTMLWriter.m */, - 8B2778A2CBCC22A5EBAD6A04 /* DTHorizontalRuleHTMLElement.h */, - 9268DFFDA72C1B913AEBDAC9 /* DTHorizontalRuleHTMLElement.m */, - 59658FE86151B90EC9F3BE27 /* DTIframeTextAttachment.h */, - 42F04B328F71757BD504E292 /* DTIframeTextAttachment.m */, - B4E0100EC49E294FB3E6DD7A /* DTImage+HTML.h */, - EEBAAD0C74D269B0751069C8 /* DTImage+HTML.m */, - CFFCBAA6E08FE2EC737991CC /* DTImageTextAttachment.h */, - 4ED3BBB64F7701D817161278 /* DTImageTextAttachment.m */, - F69B519C120CB30E30FF66B2 /* DTLazyImageView.h */, - 37CAD4D7A0AEA3B3C94B73BE /* DTLazyImageView.m */, - 843417D7C9BE78F634ED964E /* DTLinkButton.h */, - E9ACB5A0A0AB3C727CEFEE7D /* DTLinkButton.m */, - 7759495D676C2716B5C752A2 /* DTListItemHTMLElement.h */, - 0414DCA4C8A0D9FEFA8D0CB2 /* DTListItemHTMLElement.m */, - 3670C7769C590549B0C44E1D /* DTObjectTextAttachment.h */, - E8A843E0157B0F0CB285E87E /* DTObjectTextAttachment.m */, - AD7C7DDA0AE1AFD4F00970DA /* DTStylesheetHTMLElement.h */, - 3E978A5700527A930D7D1B6C /* DTStylesheetHTMLElement.m */, - 539798AD51FB8DC0BD6B0E2A /* DTTextAttachment.h */, - EBC22545F6D32A951618D5CE /* DTTextAttachment.m */, - 9F12284C6293A7179D9BBF6A /* DTTextAttachmentHTMLElement.h */, - F50BE35C5313CE948435A1BE /* DTTextAttachmentHTMLElement.m */, - 09E5FA8F17EC2E65ADAAADCF /* DTTextBlock.h */, - AC5D6F872F7F6A7FEBA2E5A2 /* DTTextBlock.m */, - D9832217CABFF0E976E49A8F /* DTTextHTMLElement.h */, - EDF8FB7A99E6A32E06931FC8 /* DTTextHTMLElement.m */, - AF028E837C5BC33FDC893180 /* DTVideoTextAttachment.h */, - CB44F38D8EB7A12F257CF13C /* DTVideoTextAttachment.m */, - 7FA2010E282D8967EE2214B2 /* DTWebVideoView.h */, - AF72C372F5483D431A4FF1A7 /* DTWebVideoView.m */, - EC01E94AC6E9783C2C51CA03 /* NSAttributedString+DTCoreText.h */, - 533693CAE3A5D5A92C7CA2B7 /* NSAttributedString+DTCoreText.m */, - 44FA4F56DE2750802DDF3E7D /* NSAttributedString+DTDebug.h */, - 3CB8ABE55CC35E6B1DD6EB1B /* NSAttributedString+DTDebug.m */, - 6242A9BEC50022E7229F5D08 /* NSAttributedString+HTML.h */, - FEC31545FD989A646944ADE6 /* NSAttributedString+HTML.m */, - 85EDAE7F553BE9B9025A5BBE /* NSAttributedString+SmallCaps.h */, - D982A5993F423F2602770DD7 /* NSAttributedString+SmallCaps.m */, - AB2F60F681150993334D0AF7 /* NSAttributedStringRunDelegates.h */, - E03546E55068EB6FC56539AA /* NSAttributedStringRunDelegates.m */, - E2047543F1590232A94322E0 /* NSCharacterSet+HTML.h */, - CA3FD3F948E17C33EBE4FEEA /* NSCharacterSet+HTML.m */, - D78D447FDC3C650ACDBF8768 /* NSCoder+DTCompatibility.h */, - E76ADADDF8D8EED738777D61 /* NSCoder+DTCompatibility.m */, - DB9901403DB337D702874EE5 /* NSDictionary+DTCoreText.h */, - 51EC2D065396A6C2D8A571D6 /* NSDictionary+DTCoreText.m */, - 9930956F5D90FA1EBCBB3A48 /* NSMutableAttributedString+HTML.h */, - 735C2D06848839B5B1750A09 /* NSMutableAttributedString+HTML.m */, - A7DD0CD7ACA9C39AC1571612 /* NSMutableString+HTML.h */, - 23308DE32C980BD290D12A4B /* NSMutableString+HTML.m */, - 044DC8C7F9205B47C61B7091 /* NSScanner+HTML.h */, - 3EDF560E4F5DC163CFD3BCD3 /* NSScanner+HTML.m */, - 5CCC7AC0562537FEB44115A4 /* NSString+CSS.h */, - 234F1B433F201823EDFA1E6E /* NSString+CSS.m */, - CC9008DF746F6AE684082BCB /* NSString+HTML.h */, - 5E2A76CCC4F20D18844F698C /* NSString+HTML.m */, - 39E350355D4CDA7345039AA1 /* NSString+Paragraphs.h */, - E9073FA1B8DD32D6490E136E /* NSString+Paragraphs.m */, - 39A1C34F923602E69F92BFDE /* UIFont+DTCoreText.h */, - E5A4E4DF071DF4FCF2C16428 /* UIFont+DTCoreText.m */, - 1B659E68785F55141EB11EE7 /* default.css.c */, - 93588BA60D412C3324FABD02 /* Support Files */, + 98355F8523C217A4BC3F7804 /* NSIndexPath+PSTCollectionViewAdditions.h */, + 40D4A15DEB9FF4E9FCE78583 /* NSIndexPath+PSTCollectionViewAdditions.m */, + 18D367094EC0AF9D94EADD89 /* PSTCollectionView.h */, + 67AEF5088E2F78B9E820F1F6 /* PSTCollectionView.m */, + C52AE3AF76FB0127CB9675DA /* PSTCollectionViewCell.h */, + 8162493DD977034E3B7B64B8 /* PSTCollectionViewCell.m */, + 4CA085565AF29A6635D7524A /* PSTCollectionViewCommon.h */, + 9AA0FE8679FBE21A4E246E19 /* PSTCollectionViewController.h */, + 8AD6581BF6D2C7D8542BEAA2 /* PSTCollectionViewController.m */, + C4D6C6EAA66A48B7803C9B59 /* PSTCollectionViewData.h */, + DB7007692C14889674AFB1C2 /* PSTCollectionViewData.m */, + 652C5F033E0EAAC5B4106B15 /* PSTCollectionViewFlowLayout.h */, + 2A143E7284F7872D2256EF3F /* PSTCollectionViewFlowLayout.m */, + 67048FBA5C94CC914BF183E7 /* PSTCollectionViewItemKey.h */, + 47007B1E20B8AA8677B79FFD /* PSTCollectionViewItemKey.m */, + 257C4422B6FFED6E7467D398 /* PSTCollectionViewLayout.h */, + 6C57EADB16C6B35C76ABF58C /* PSTCollectionViewLayout.m */, + A72E4F1DB377186E56A73E7B /* PSTCollectionViewLayout+Internals.h */, + 704D3FE1DE425498627C6A10 /* PSTCollectionViewUpdateItem.h */, + 5C872F8537C439C2B94CB9A0 /* PSTCollectionViewUpdateItem.m */, + 1E381E4EBAF2F1EF0CE4A7F4 /* PSTGridLayoutInfo.h */, + ACA2F4636D4D4742DF7C56AD /* PSTGridLayoutInfo.m */, + EFC0B81C368300CC151FDC53 /* PSTGridLayoutItem.h */, + 57E1FBA24CDF1C671195DD9A /* PSTGridLayoutItem.m */, + 9C0E898AF9E481B0FCE83812 /* PSTGridLayoutRow.h */, + BCD47136278F91DFBFC7AE99 /* PSTGridLayoutRow.m */, + CAEB71EF71AE6C94B9B7F50B /* PSTGridLayoutSection.h */, + BCDD491476207334EBE058F4 /* PSTGridLayoutSection.m */, + 669CD0FB324FA063EC6F9526 /* Support Files */, + ); + path = PSTCollectionView; + sourceTree = ""; + }; + 5E6786713DFD3393E0418DFC /* MJRefresh */ = { + isa = PBXGroup; + children = ( + 5FCCFCCAEB95294F41FCF0D1 /* MJRefresh.h */, + 89A4DAE02361602398EDAE02 /* MJRefreshComponent.h */, + FDEFAEE759D48781EFFE20F5 /* MJRefreshComponent.m */, + 277DAE9556EE45ED443AA4C6 /* MJRefreshConst.h */, + B49F9531730EB589BA4DF321 /* MJRefreshConst.m */, + BAA9EE4B4F5CD99F90C855AE /* MJRefreshFooter.h */, + 6E1CCB18B19516DE1847483C /* MJRefreshFooter.m */, + A13AAF3FCC06D3FF552C9F3C /* MJRefreshGifFooter.h */, + EA71121BF1D7E29FEF425210 /* MJRefreshGifFooter.m */, + BC34D16392969478DD635E71 /* MJRefreshGifHeader.h */, + 7FB3A23241022EEB4236AE8F /* MJRefreshGifHeader.m */, + 2B49D6D7D6F56CF4DDCDC91A /* MJRefreshHeader.h */, + 8E853B1B4C8751C80812E0EA /* MJRefreshHeader.m */, + E4FBE9216473C11D6B61D947 /* MJRefreshLegendFooter.h */, + 16F6885C6B188F295317CB7C /* MJRefreshLegendFooter.m */, + 8AFBE41C33B9F6D9CA6AA17B /* MJRefreshLegendHeader.h */, + 23C455522543942330F76B21 /* MJRefreshLegendHeader.m */, + 57948CE2AB2E4F39E5909787 /* UIScrollView+MJExtension.h */, + 5830771528ACD8F6A1D09785 /* UIScrollView+MJExtension.m */, + ECB3F29659C350CEBD3ADB41 /* UIScrollView+MJRefresh.h */, + 7AA780EC70408D63F4D5BF61 /* UIScrollView+MJRefresh.m */, + 26FDF7AFD41C9CB0129EB7A6 /* UIView+MJExtension.h */, + 164DCDD2B2EA6DBD3953BE66 /* UIView+MJExtension.m */, + 840637E7EB2F1FC21304F664 /* Resources */, + 163A239834C7BD46E042258E /* Support Files */, + ); + path = MJRefresh; + sourceTree = ""; + }; + 5E72E31198462CBCA6596BA1 /* Reachability */ = { + isa = PBXGroup; + children = ( + 9F7808BFDB77E9E05617421C /* AFNetworkReachabilityManager.h */, + BC3CE7DA59F1959BB87CCE29 /* AFNetworkReachabilityManager.m */, + ); + name = Reachability; + sourceTree = ""; + }; + 669CD0FB324FA063EC6F9526 /* Support Files */ = { + isa = PBXGroup; + children = ( + 7E3C92143AFCC365356FD6C4 /* Pods-PSTCollectionView.xcconfig */, + 90313691E9CFB036F66A2D80 /* Pods-PSTCollectionView-Private.xcconfig */, + 49C9B7C9423FB5594ED26A00 /* Pods-PSTCollectionView-dummy.m */, + C579478F132C2344A651FF04 /* Pods-PSTCollectionView-prefix.pch */, + ); + name = "Support Files"; + path = "../Target Support Files/Pods-PSTCollectionView"; + sourceTree = ""; + }; + 67CFEDB66DFE7DBAFD78CFAB /* Support Files */ = { + isa = PBXGroup; + children = ( + 505697ACD3B10F00A03279E6 /* Pods-SecureUDID.xcconfig */, + FEE19E4B6AD394551F002582 /* Pods-SecureUDID-Private.xcconfig */, + B65AE780350C25F0228C69E3 /* Pods-SecureUDID-dummy.m */, + A049E1099EAB22F63E7F289B /* Pods-SecureUDID-prefix.pch */, + ); + name = "Support Files"; + path = "../Target Support Files/Pods-SecureUDID"; + sourceTree = ""; + }; + 6E6C6A262162DDE2BB505F6C /* NSURLConnection */ = { + isa = PBXGroup; + children = ( + 5A65DE7D5F8F6CD991923C93 /* AFHTTPRequestOperation.h */, + 09430B88F175AF3535814D9B /* AFHTTPRequestOperation.m */, + F921A28DCABA42CA363E9ADD /* AFHTTPRequestOperationManager.h */, + 68E34E9C4EE7D4107528EDF5 /* AFHTTPRequestOperationManager.m */, + B231DFB5AE9AE94A5A311E77 /* AFURLConnectionOperation.h */, + BC233462DD17D9E6C3E7150D /* AFURLConnectionOperation.m */, + ); + name = NSURLConnection; + sourceTree = ""; + }; + 719107899354F802FECF2B6D /* DTFoundation */ = { + isa = PBXGroup; + children = ( + B83FEF4824EBB04A7FA6A22A /* Core */, + E0E0480723F2CDC128D5D53E /* DTAnimatedGIF */, + 54292AF55E47B85A5693B813 /* DTHTMLParser */, + 16619A0E8E1AD839A99E4CF9 /* Support Files */, + BCABC435B7D7CC4E87CE79BF /* UIKit */, + ); + path = DTFoundation; + sourceTree = ""; + }; + 725FC9C1820D23F03493B7E2 /* MBProgressHUD */ = { + isa = PBXGroup; + children = ( + 2BB4618BE9D5E6F640E04F26 /* MBProgressHUD.h */, + 658942C397C29DF978BA5B53 /* MBProgressHUD.m */, + 2F25F435F6C793995A5E2220 /* Support Files */, + ); + path = MBProgressHUD; + sourceTree = ""; + }; + 744CA92D2D472011F6E18607 /* SBJson */ = { + isa = PBXGroup; + children = ( + 29047B27A222EE428F21AEC6 /* SBJson4.h */, + 7C4E67D6FDAC4663924A7125 /* SBJson4Parser.h */, + D8FA086F2301731653032E64 /* SBJson4Parser.m */, + B8E794A68C4D79D76021DF88 /* SBJson4StreamParser.h */, + 4B77CE440F23DD24AD099D7B /* SBJson4StreamParser.m */, + 0F28E723636C615F9CD3E0EC /* SBJson4StreamParserState.h */, + 3B55122264A08E723B1D3514 /* SBJson4StreamParserState.m */, + 57075E9FBD51E50A8FA7D702 /* SBJson4StreamTokeniser.h */, + 35B800EA30F95E80296E5A0B /* SBJson4StreamTokeniser.m */, + 0DC61F188173825DED2D2F9D /* SBJson4StreamWriter.h */, + 636FB9759C07282A157DA86E /* SBJson4StreamWriter.m */, + 04608BD81CB1D6FD7BB13DC6 /* SBJson4StreamWriterState.h */, + FC66DAEA97E0828FDC2EE204 /* SBJson4StreamWriterState.m */, + A585E20FF3DFFBFC5E28D101 /* SBJson4Writer.h */, + B338B7FA2D94D51A0629A3A7 /* SBJson4Writer.m */, + AAB5DA1028312F4F84728A03 /* Support Files */, + ); + path = SBJson; + sourceTree = ""; + }; + 76A9D9E87CFC5DBF2CB356B3 /* DTCoreText */ = { + isa = PBXGroup; + children = ( + CE30CCBD39C072F15976D44B /* DTAccessibilityElement.h */, + 9BDC782A1D3B9D8B7F4B2B4A /* DTAccessibilityElement.m */, + F901CA49C117ED24E29DE70B /* DTAccessibilityViewProxy.h */, + 517889B83DF0B0BBBD20A600 /* DTAccessibilityViewProxy.m */, + 6EE16C676DF6AB64910157AA /* DTAnchorHTMLElement.h */, + 03E30B9B3AC56019DD0402E7 /* DTAnchorHTMLElement.m */, + 95626418E4ADD29C0CAEB7B1 /* DTAttributedLabel.h */, + 5C848095DAF973175665F472 /* DTAttributedLabel.m */, + 1E1722DD1BFF10C18945FF61 /* DTAttributedTextCell.h */, + F0CAF4393D8072037ACF7FF3 /* DTAttributedTextCell.m */, + 36A25141DD8730D4A34E9232 /* DTAttributedTextContentView.h */, + 30010FF6484107A7FF4E4FD3 /* DTAttributedTextContentView.m */, + FFC96955EADCDF5BCEF7D7A0 /* DTAttributedTextView.h */, + BEEF6F71F87F033602F3E11D /* DTAttributedTextView.m */, + D5408DE225597265AB7B8425 /* DTBreakHTMLElement.h */, + 082FA3B0705A0298918991C5 /* DTBreakHTMLElement.m */, + 5EB74211A6BD53D098537EFB /* DTCSSListStyle.h */, + D143C3BA7EE6142F6FDC9AF6 /* DTCSSListStyle.m */, + FE43A93322F264CF5FBC4BBE /* DTCSSStylesheet.h */, + A02D1EB9B1EE55417F5C18E9 /* DTCSSStylesheet.m */, + ED8AA524D60B4DCBD6856A7B /* DTColor+Compatibility.h */, + 842DFF80188A2DC326CE5CB6 /* DTColor+Compatibility.m */, + 6BEE063E8ED7E4937C04DA32 /* DTColorFunctions.h */, + 522E3EFD08D48EE01F1FB914 /* DTColorFunctions.m */, + 210B178945CD55AFC51EBE3F /* DTCompatibility.h */, + AF38302B46AF2F3E8A10B5DB /* DTCoreText.h */, + 35A12005320196DE1C3B9402 /* DTCoreTextConstants.h */, + 55650CADF266B3B168F77673 /* DTCoreTextConstants.m */, + 07F049280D9C381907648E09 /* DTCoreTextFontCollection.h */, + C8E2A2D7719824C56D23A3D2 /* DTCoreTextFontCollection.m */, + 29BDFECB9C814B652C55CAE3 /* DTCoreTextFontDescriptor.h */, + 416F649BA565B2F50342C740 /* DTCoreTextFontDescriptor.m */, + 75AE8E7ADBE583B35549CD6E /* DTCoreTextFunctions.h */, + 94152ABDBF6BB8B5C1D40A09 /* DTCoreTextFunctions.m */, + 1AB03E8DB12A67211E7F4822 /* DTCoreTextGlyphRun.h */, + 65C582EB9B0BD38FAA343C86 /* DTCoreTextGlyphRun.m */, + EF72252CCE5C540114ABB165 /* DTCoreTextLayoutFrame.h */, + FBA5CE78D030DFA3169DF5AC /* DTCoreTextLayoutFrame.m */, + 91935CD096E885F5D4516338 /* DTCoreTextLayoutFrame+Cursor.h */, + 32A1231256BA62B79A52AFD8 /* DTCoreTextLayoutFrame+Cursor.m */, + 63CE8E03989FF75DE3D76AB4 /* DTCoreTextLayoutFrameAccessibilityElementGenerator.h */, + D59425FD7D3C1B5D55F23E3C /* DTCoreTextLayoutFrameAccessibilityElementGenerator.m */, + 091210310FE167D9C6269D59 /* DTCoreTextLayoutLine.h */, + A9132D17445264B64274F066 /* DTCoreTextLayoutLine.m */, + D3E64E73DE3C91606151E6B1 /* DTCoreTextLayouter.h */, + 52616B17F0988C8F1B599A79 /* DTCoreTextLayouter.m */, + 7D6373224D691308BD41AFC9 /* DTCoreTextMacros.h */, + F7C1D8428536D3EE9F8331A1 /* DTCoreTextParagraphStyle.h */, + 8F37484C6AC75527380FCF75 /* DTCoreTextParagraphStyle.m */, + ED6AFCDC2A503DB45153A947 /* DTDictationPlaceholderTextAttachment.h */, + FD517D5C5BB5C7F212D64D17 /* DTDictationPlaceholderTextAttachment.m */, + BC37EB48F000A15B3D5BD665 /* DTDictationPlaceholderView.h */, + 7150CDD7AA008C112339F701 /* DTDictationPlaceholderView.m */, + 43D65AF3542A6052DC298230 /* DTHTMLAttributedStringBuilder.h */, + 2527254E1C9A4D37868A4B20 /* DTHTMLAttributedStringBuilder.m */, + F81A603925A5CCDE79B391E9 /* DTHTMLElement.h */, + A10F2C28E66C7A24064FA92D /* DTHTMLElement.m */, + 62BAE3ABCDBB11CB587E952E /* DTHTMLParserNode.h */, + A0C581C1D4F3B407471F6989 /* DTHTMLParserNode.m */, + 6B120CD05D881BD7E2795568 /* DTHTMLParserTextNode.h */, + 4CAFE90654F06AC8EC0C0E25 /* DTHTMLParserTextNode.m */, + C1C20FF9BFBC1A57C8291F86 /* DTHTMLWriter.h */, + F21965578047393389F88764 /* DTHTMLWriter.m */, + 0A4DE42725555C4AE2176AAC /* DTHorizontalRuleHTMLElement.h */, + 53423FE9852A6B82179DD40B /* DTHorizontalRuleHTMLElement.m */, + 31DD4A6490B6AB93A5D50467 /* DTIframeTextAttachment.h */, + 78E1C3F894C314421EF1C439 /* DTIframeTextAttachment.m */, + 636911C6F949B6B3DE96508C /* DTImage+HTML.h */, + 4BCF9A47FE188CA09F42CA3D /* DTImage+HTML.m */, + 6B68E96D2A286CBC679C6DBC /* DTImageTextAttachment.h */, + 6BBFC4565B0C47B89673EA6A /* DTImageTextAttachment.m */, + 499D8236889B69EE1C0C0E81 /* DTLazyImageView.h */, + 42BBEEDA82B1C171B33C9853 /* DTLazyImageView.m */, + 829BBAE85BD1BAE3D031802F /* DTLinkButton.h */, + 088CAD50985EA7FBB7C2BA07 /* DTLinkButton.m */, + 467D4950128F1A0DEDA83F6E /* DTListItemHTMLElement.h */, + 8844F78283A5A799306146AE /* DTListItemHTMLElement.m */, + 3F631D09C0546512F381FA93 /* DTObjectTextAttachment.h */, + B1B0243AB8B0E62E62896EE1 /* DTObjectTextAttachment.m */, + 929DFA5A6498F25C08720FF2 /* DTStylesheetHTMLElement.h */, + 25FF3DD0EE462D4D3D703271 /* DTStylesheetHTMLElement.m */, + 2B0E7FC40F6CF49A47D7C2D5 /* DTTextAttachment.h */, + 0AB85644C22A7EA0EB2F4ED0 /* DTTextAttachment.m */, + 45B927D2775EA6D39AF9350B /* DTTextAttachmentHTMLElement.h */, + 25DCF52C496FAF18970506A5 /* DTTextAttachmentHTMLElement.m */, + 830E54BCAD2FCF61971141D0 /* DTTextBlock.h */, + 2C11A54574B7474FFD6613F5 /* DTTextBlock.m */, + 02019007E705E56F85FB6310 /* DTTextHTMLElement.h */, + 98E301C14830416131DC9223 /* DTTextHTMLElement.m */, + 1A991EA211E146D0D56FEAC7 /* DTVideoTextAttachment.h */, + 5056C21F217DC2E921D52E91 /* DTVideoTextAttachment.m */, + 556EBFCC32200088DE214AD1 /* DTWebVideoView.h */, + 73CD638F6F148C7304D1FD32 /* DTWebVideoView.m */, + 333A8AD31C9FAE379090F4F5 /* NSAttributedString+DTCoreText.h */, + 234606703661525CCAFA494E /* NSAttributedString+DTCoreText.m */, + B66713DB154632D2152CA299 /* NSAttributedString+DTDebug.h */, + C80738193F3FFA54B568F18D /* NSAttributedString+DTDebug.m */, + 72024D8E3DEE77E874263345 /* NSAttributedString+HTML.h */, + CB5C37C31875EAA0FBA33135 /* NSAttributedString+HTML.m */, + 5C4ACAE9DB7A14E8B488A859 /* NSAttributedString+SmallCaps.h */, + 3ED6E9AEE4A17BE9828F96B4 /* NSAttributedString+SmallCaps.m */, + 3EA344384CB75CED3FCCD1A1 /* NSAttributedStringRunDelegates.h */, + FB53F65CA41D37CE6BC1BBD4 /* NSAttributedStringRunDelegates.m */, + C96CFE97D97E5980A46013FE /* NSCharacterSet+HTML.h */, + 56D007D6FA5D8914B9E0B5D6 /* NSCharacterSet+HTML.m */, + A71A8BF280D4B3F177A77BC6 /* NSCoder+DTCompatibility.h */, + 9A5AFE9E1832C2B511126D27 /* NSCoder+DTCompatibility.m */, + EA265AE97FB5394FC75AF033 /* NSDictionary+DTCoreText.h */, + E748BB16CA6FD38DF4DE75B2 /* NSDictionary+DTCoreText.m */, + 99B22C9FD33D7B3435DA6C4E /* NSMutableAttributedString+HTML.h */, + 953EFA7E65537962B0AD185C /* NSMutableAttributedString+HTML.m */, + 34ABA48F54F3E0BDEC396D5E /* NSMutableString+HTML.h */, + 7947AFE3FC05070B9F5BCFB5 /* NSMutableString+HTML.m */, + B84B240F0823531A031C41C7 /* NSScanner+HTML.h */, + 003D03619950FB54423249CA /* NSScanner+HTML.m */, + C5884F10654896A69DB4485D /* NSString+CSS.h */, + A5B1F2A62FC25726911E6378 /* NSString+CSS.m */, + 0E78310FE33EEFE36F471255 /* NSString+HTML.h */, + EDC4BB95D1C3D0E5B736D1A7 /* NSString+HTML.m */, + 19C21F30C322ED33490255DE /* NSString+Paragraphs.h */, + AB4B3D24CBA78B8F6EA9A4E4 /* NSString+Paragraphs.m */, + ABFC82F7816830BD765CE888 /* UIFont+DTCoreText.h */, + 7DBB1D81A4C2805D2C7FCE14 /* UIFont+DTCoreText.m */, + 9AF1C183602CE8203DDC86ED /* default.css.c */, + C56962F872DA33ECDEC8FD52 /* Support Files */, ); path = DTCoreText; sourceTree = ""; }; + 840637E7EB2F1FC21304F664 /* Resources */ = { + isa = PBXGroup; + children = ( + 3411EAFA4DF123421B67F671 /* MJRefresh.bundle */, + ); + name = Resources; + sourceTree = ""; + }; + 938AA140E35273F2E7244380 /* Support Files */ = { + isa = PBXGroup; + children = ( + 4F8A3039F69ECD3AA6E95213 /* Pods-DACircularProgress.xcconfig */, + 8C83144F42F9F5593EDAC0F2 /* Pods-DACircularProgress-Private.xcconfig */, + C1455DDDD97A23A091782898 /* Pods-DACircularProgress-dummy.m */, + 79522B1EB371CCE62B5A83FD /* Pods-DACircularProgress-prefix.pch */, + ); + name = "Support Files"; + path = "../Target Support Files/Pods-DACircularProgress"; + sourceTree = ""; + }; + 96DDD438529C585A576F4E21 /* Mantle */ = { + isa = PBXGroup; + children = ( + F28A68EBEA1FF22A1ED6BCCD /* MTLJSONAdapter.h */, + 4E69F46466E5C8712B86C1CC /* MTLJSONAdapter.m */, + FE63F00F5690CCE4F938A292 /* MTLManagedObjectAdapter.h */, + 10F6C2912E12899952817331 /* MTLManagedObjectAdapter.m */, + F2E56CA9D39A915548A7DA5A /* MTLModel.h */, + 893F618070C2E6E210C9AED9 /* MTLModel.m */, + 596F49A483D7487072F54FB5 /* MTLModel+NSCoding.h */, + 94B0C075DFA12336A0866A1A /* MTLModel+NSCoding.m */, + D32ADA3B1609B2422C9CD05B /* MTLReflection.h */, + 1E97809E14A070272AF13164 /* MTLReflection.m */, + FBC3FFA76EDD721D64A45116 /* MTLValueTransformer.h */, + A3A56978D466B5A33634A9A9 /* MTLValueTransformer.m */, + 3792EECD13D0158D73F5745D /* Mantle.h */, + 91C321E14CE1501F45E1A3E3 /* NSArray+MTLManipulationAdditions.h */, + 441D7091AAFF6307AA12C55E /* NSArray+MTLManipulationAdditions.m */, + 962F46F02DB263BC3B638EB4 /* NSDictionary+MTLManipulationAdditions.h */, + DBAE137A22ABA7FCA5A4AB3E /* NSDictionary+MTLManipulationAdditions.m */, + 767887B1D509CC220D5D2AC1 /* NSError+MTLModelException.h */, + 88369D802AB4264DE7AA7627 /* NSError+MTLModelException.m */, + E3006A904DC8E2EA96940F9D /* NSObject+MTLComparisonAdditions.h */, + 412DCA2E7BDED0F2C9151D8F /* NSObject+MTLComparisonAdditions.m */, + B48A3233AEB13D95AFBE68FD /* NSValueTransformer+MTLInversionAdditions.h */, + 021F539DD58B45CE79A628FC /* NSValueTransformer+MTLInversionAdditions.m */, + BE0BBA851FFD8C10601F459E /* NSValueTransformer+MTLPredefinedTransformerAdditions.h */, + 8AC723CBF533799C5A183A66 /* NSValueTransformer+MTLPredefinedTransformerAdditions.m */, + 9AE68926129975BAA3DD7C3A /* Support Files */, + 2ED3D4A51DD547AFEDBF523D /* extobjc */, + ); + path = Mantle; + sourceTree = ""; + }; + 9AE68926129975BAA3DD7C3A /* Support Files */ = { + isa = PBXGroup; + children = ( + 598AE8E325AADA09622B35AB /* Pods-Mantle.xcconfig */, + DE695A4BFE20BD8ABFB9B9B8 /* Pods-Mantle-Private.xcconfig */, + 988CBFD68948730F70CC8659 /* Pods-Mantle-dummy.m */, + 3AB7DDEE8FED0807B47459FE /* Pods-Mantle-prefix.pch */, + ); + name = "Support Files"; + path = "../Target Support Files/Pods-Mantle"; + sourceTree = ""; + }; + A7B82A8E8628DEB94DBF9FCF /* Targets Support Files */ = { + isa = PBXGroup; + children = ( + 3FDD6C985D884EBCF6DEE36B /* Pods */, + ); + name = "Targets Support Files"; + sourceTree = ""; + }; + AAB5DA1028312F4F84728A03 /* Support Files */ = { + isa = PBXGroup; + children = ( + CE5235F0D0AB5CA21E93323B /* Pods-SBJson.xcconfig */, + 03F90A77DCEDB83871C3FCDE /* Pods-SBJson-Private.xcconfig */, + 33338BEB65192CAEE2311367 /* Pods-SBJson-dummy.m */, + A869636141A06C161FABDB94 /* Pods-SBJson-prefix.pch */, + ); + name = "Support Files"; + path = "../Target Support Files/Pods-SBJson"; + sourceTree = ""; + }; + B21CE9C7B5AF70FB000CFFA5 /* SecureUDID */ = { + isa = PBXGroup; + children = ( + CD5D32FF02B0A8154D1C07FE /* SecureUDID.h */, + 92FAE51DA85633D98A202C7A /* SecureUDID.m */, + 67CFEDB66DFE7DBAFD78CFAB /* Support Files */, + ); + path = SecureUDID; + sourceTree = ""; + }; + B83FEF4824EBB04A7FA6A22A /* Core */ = { + isa = PBXGroup; + children = ( + 597EBA17A2FF6498E38965AC /* DTAsyncFileDeleter.h */, + 329B3787F338AB03C9263C97 /* DTAsyncFileDeleter.m */, + 83849EF3412B1319AFD7BED0 /* DTBase64Coding.h */, + C34AE8F0F62BEEE4F3F5992B /* DTBase64Coding.m */, + C22459C1C0218D404E1D2B02 /* DTBlockFunctions.h */, + F282E0EE63732D24E5EAB564 /* DTBlockFunctions.m */, + 2FDFF225A72C6E222476AB25 /* DTCoreGraphicsUtils.h */, + 64BED7D77D473EFFCF0B1C6C /* DTCoreGraphicsUtils.m */, + FA46450EBB4EAC69FCB91718 /* DTExtendedFileAttributes.h */, + 03400F44B514737FC576D22D /* DTExtendedFileAttributes.m */, + 794588D8BF675C45520C5FC6 /* DTFolderMonitor.h */, + D5F7442CC240F7F50B735528 /* DTFolderMonitor.m */, + 8DD9C09340C5B517DF373D50 /* DTFoundationConstants.h */, + 33A11E53D63743EE686A0252 /* DTFoundationConstants.m */, + E1EA6EF1EF58BC1BCFC46590 /* DTLog.h */, + A5B0153F85EF27C708CECEF5 /* DTLog.m */, + 4BFDDC0BB55AB123F180A783 /* DTVersion.h */, + 9DBEACC772CDCFCF19E23E0E /* DTVersion.m */, + 698ED35BEB9EA9845836C0C9 /* DTWeakSupport.h */, + 6D51E8B360081879FDF75D63 /* NSArray+DTError.h */, + 70C116CCDF229CB6FC7C6E37 /* NSArray+DTError.m */, + D9C88418B4E8322410425733 /* NSData+DTCrypto.h */, + 804D22BA9FC3EF1F3C79EB25 /* NSData+DTCrypto.m */, + 19D812DDE49E62CF0091341E /* NSDictionary+DTError.h */, + 00A1C64C5E2ACEA1D852C0D3 /* NSDictionary+DTError.m */, + 8CFC987D05DA0349BC818797 /* NSFileWrapper+DTCopying.h */, + 44CB702EDFA9BE9DBDF1AEC4 /* NSFileWrapper+DTCopying.m */, + 46006A8C612F4ECCB62CCC24 /* NSMutableArray+DTMoving.h */, + 249452CB1BAA300A469E0853 /* NSMutableArray+DTMoving.m */, + C2F1439F52961691B236204D /* NSString+DTFormatNumbers.h */, + 9717F44CED3997C5FF1DE5D8 /* NSString+DTFormatNumbers.m */, + 5441E8F2C876ED71D85FA524 /* NSString+DTPaths.h */, + 789D4D4345E05931576418FC /* NSString+DTPaths.m */, + 5BE65C02EB14BDDB6079BAE4 /* NSString+DTURLEncoding.h */, + 602423FD27B311C6DA0FB7D3 /* NSString+DTURLEncoding.m */, + E82534A386E5A087ED826968 /* NSString+DTUtilities.h */, + E3A0AD85C1449025FD7B5207 /* NSString+DTUtilities.m */, + 61275FA8416613DCE16C5A59 /* NSURL+DTComparing.h */, + 9EAD1264E97732BEC44196AF /* NSURL+DTComparing.m */, + 492B9114041D1B8B0F0A5ABC /* NSURL+DTUnshorten.h */, + DCDA7743525DD3A1AE972A76 /* NSURL+DTUnshorten.m */, + ); + name = Core; + sourceTree = ""; + }; + BCABC435B7D7CC4E87CE79BF /* UIKit */ = { + isa = PBXGroup; + children = ( + 6BA8E2892CC77726234BCC8C /* DTActivityTitleView.h */, + 8F7FB18D19AB4F7E14E62258 /* DTActivityTitleView.m */, + 3D72BA953085FF2B243A0C40 /* DTCustomColoredAccessory.h */, + AEAAEE2D5A265598325D0F2C /* DTCustomColoredAccessory.m */, + 27947216BA9B57A7FDD371ED /* DTPieProgressIndicator.h */, + 07FD0086FFE5BFDC1FF91E21 /* DTPieProgressIndicator.m */, + 0C21ADE502662C9474628A52 /* DTSmartPagingScrollView.h */, + 60B89B85631410B65C3439EC /* DTSmartPagingScrollView.m */, + ACCACE86EF932D9A74602506 /* DTTiledLayerWithoutFade.h */, + 0D10A5C0E88F1E5712BD90D3 /* DTTiledLayerWithoutFade.m */, + B600CF4281A0482986B93737 /* NSURL+DTAppLinks.h */, + E5D412FF2D36AABC06E965C4 /* NSURL+DTAppLinks.m */, + 89B62ED7E52987209DC04932 /* UIApplication+DTNetworkActivity.h */, + 4B63EC260A05DFC4D399F1AB /* UIApplication+DTNetworkActivity.m */, + F57E6762D14F3812CE0711D3 /* UIImage+DTFoundation.h */, + 43CA4D66E63AB7D3FAED0A05 /* UIImage+DTFoundation.m */, + 3FB0005B313D61EF6BDE0A77 /* UIView+DTFoundation.h */, + 6EA98190477EF68C9C7B7C22 /* UIView+DTFoundation.m */, + 4995FFF64F2BA9FC55BA8D2D /* UIWebView+DTFoundation.h */, + 30959A156623D25B15A2E98E /* UIWebView+DTFoundation.m */, + ); + name = UIKit; + sourceTree = ""; + }; + BED7C73DA25CDB481104C1C3 /* STableViewController */ = { + isa = PBXGroup; + children = ( + 602462EA1C18EE59FBA4BA70 /* STableViewController.h */, + 92155185E5912BF89731A502 /* STableViewController.m */, + 235387CCC8606AB7B72BECC9 /* Support Files */, + ); + path = STableViewController; + sourceTree = ""; + }; + C3C5F3408E7B5B2BDCA3FC05 /* Serialization */ = { + isa = PBXGroup; + children = ( + C710346A77C3D428A08DBCB0 /* AFURLRequestSerialization.h */, + BEB8B9553B457AF656C5AEAF /* AFURLRequestSerialization.m */, + 2D97DDA2AE1A703999D28F28 /* AFURLResponseSerialization.h */, + 5F96DC2B68861D8F7451EEBA /* AFURLResponseSerialization.m */, + ); + name = Serialization; + sourceTree = ""; + }; + C4A2D596BA6842EFA8E12AD4 /* Pods */ = { + isa = PBXGroup; + children = ( + 47D7C2D5640C6A054995BFD0 /* AFNetworking */, + 2F15B438939D50D832CAE322 /* DACircularProgress */, + 76A9D9E87CFC5DBF2CB356B3 /* DTCoreText */, + 719107899354F802FECF2B6D /* DTFoundation */, + E40D956E2B58A0A26AB78ED0 /* EGOCache */, + 2FCFCD84B21E8F13ECD7CC08 /* Godzippa */, + 725FC9C1820D23F03493B7E2 /* MBProgressHUD */, + 5E6786713DFD3393E0418DFC /* MJRefresh */, + 40A08B499ED696155B62FAB4 /* MWPhotoBrowser */, + 96DDD438529C585A576F4E21 /* Mantle */, + 5C2CF87D9FB6F212BB1163CC /* PSTCollectionView */, + 13BA6312B2F176D52C2CB259 /* Reachability */, + 744CA92D2D472011F6E18607 /* SBJson */, + 298718A6F6F85EFA4A143118 /* SDWebImage */, + BED7C73DA25CDB481104C1C3 /* STableViewController */, + B21CE9C7B5AF70FB000CFFA5 /* SecureUDID */, + ); + name = Pods; + sourceTree = ""; + }; + C4A80A7753BE53494261DAF0 /* Security */ = { + isa = PBXGroup; + children = ( + 10724403D3A0ADA6095E7F64 /* AFSecurityPolicy.h */, + 465746F81489445C1D904820 /* AFSecurityPolicy.m */, + ); + name = Security; + sourceTree = ""; + }; + C56962F872DA33ECDEC8FD52 /* Support Files */ = { + isa = PBXGroup; + children = ( + 22684D09C62326704CFA6B3B /* Pods-DTCoreText.xcconfig */, + 293204770E373A792966B177 /* Pods-DTCoreText-Private.xcconfig */, + F78D42CCB4242594ED456535 /* Pods-DTCoreText-dummy.m */, + E9AF28BEF82C19A06809727F /* Pods-DTCoreText-prefix.pch */, + ); + name = "Support Files"; + path = "../Target Support Files/Pods-DTCoreText"; + sourceTree = ""; + }; + CC0FF98DB1FB410808C5C4B9 /* Resources */ = { + isa = PBXGroup; + children = ( + 0A37EC30CC4572FEC61203E7 /* MWPhotoBrowser.bundle */, + ); + name = Resources; + sourceTree = ""; + }; + D963B9A378F1B7233D8847A7 /* Products */ = { + isa = PBXGroup; + children = ( + 4440EB50C7A57D67D7BA503A /* libPods.a */, + 0B423F37971208738F727BC3 /* libPods-AFNetworking.a */, + AABCA08422CD0E72F6196C5F /* libPods-DACircularProgress.a */, + E2A08D1AB142C95BDA533612 /* libPods-DTCoreText.a */, + E08C66EEC87BE9BE8CB5A16B /* libPods-DTFoundation.a */, + F05B23F310F80B1AA0D6A139 /* libPods-EGOCache.a */, + ABF3F2199A44767678BCEB8F /* libPods-Godzippa.a */, + 63BA6C0FBC50E6C41B9BF1A5 /* libPods-MBProgressHUD.a */, + ACAA8D9E50D3C2BB866CE515 /* libPods-MJRefresh.a */, + CBD66FD79CCA50D1F2FDE4F9 /* libPods-MWPhotoBrowser.a */, + B55AB127F8C0DFC9BE150FAA /* libPods-Mantle.a */, + FC50C6BD4037623093EF39C3 /* libPods-PSTCollectionView.a */, + A429381C19E346AA1E414E3C /* libPods-Reachability.a */, + F83E1690B6A5E94228448B70 /* libPods-SBJson.a */, + 38082914F433A1A357A44704 /* libPods-SDWebImage.a */, + FB72F57F29F26E4B3E4F774E /* libPods-STableViewController.a */, + 3197E5592324794A1AA77E34 /* libPods-SecureUDID.a */, + ); + name = Products; + sourceTree = ""; + }; + DA05CBB20906D742C98BA0F1 /* iOS */ = { + isa = PBXGroup; + children = ( + F4C9A5D56D30BB7ABC1D1455 /* AssetsLibrary.framework */, + F3DF9A726280BC12EC3DB192 /* CoreGraphics.framework */, + 1811CB7FBBF725B277131843 /* CoreText.framework */, + 840DB8F5749C3CF76AC9D137 /* Foundation.framework */, + 8F49DC29AE1663866C0639E5 /* ImageIO.framework */, + 2090085022483B35C9205497 /* MapKit.framework */, + FA4C7837106A8EABD827772E /* MediaPlayer.framework */, + 2AC64D336BCA6D2EE4072DB9 /* MessageUI.framework */, + 5918F14BB8CC1E9208F49E4E /* MobileCoreServices.framework */, + 28996023C44AEDBF2DF289F3 /* QuartzCore.framework */, + F8CA60251D4E7A87A805293E /* Security.framework */, + 228D62A84D1F2314138CB6BE /* SystemConfiguration.framework */, + D1548899F0E058E2CC964DF0 /* UIKit.framework */, + ); + name = iOS; + sourceTree = ""; + }; + DCCBCF2161CD283E4C740FEB /* Frameworks */ = { + isa = PBXGroup; + children = ( + DA05CBB20906D742C98BA0F1 /* iOS */, + ); + name = Frameworks; + sourceTree = ""; + }; + E0E0480723F2CDC128D5D53E /* DTAnimatedGIF */ = { + isa = PBXGroup; + children = ( + 7C51359051D614CD33B33EDD /* DTAnimatedGIF.h */, + 92BE37CE160321EBFD9E2A87 /* DTAnimatedGIF.m */, + ); + name = DTAnimatedGIF; + sourceTree = ""; + }; + E40D956E2B58A0A26AB78ED0 /* EGOCache */ = { + isa = PBXGroup; + children = ( + 2A28A0F8FAE772BA5101C496 /* EGOCache.h */, + AA758ABFB27D4AC27007C32F /* EGOCache.m */, + 401CD17DEF54E075760CD75B /* Support Files */, + ); + path = EGOCache; + sourceTree = ""; + }; + FAFEFEBEDC711B2FA84D8C66 /* UIKit */ = { + isa = PBXGroup; + children = ( + 5E9F7BF5A1EBDA36FB3724C7 /* AFNetworkActivityIndicatorManager.h */, + 8C2FBD33609D25944EE9ED5D /* AFNetworkActivityIndicatorManager.m */, + 870F336C096333F8B63528A8 /* UIActivityIndicatorView+AFNetworking.h */, + 59B3B20C1FA6BAC13D780551 /* UIActivityIndicatorView+AFNetworking.m */, + C9A24640323933637F95A837 /* UIAlertView+AFNetworking.h */, + D59228AC3B6D04487E7ABD16 /* UIAlertView+AFNetworking.m */, + 5C6BC136D1A9CE914936B571 /* UIButton+AFNetworking.h */, + 2036F60042DE2157C9D6E705 /* UIButton+AFNetworking.m */, + 5F8636DA14445D8908BCA45F /* UIImageView+AFNetworking.h */, + C5DB47713C18D5514CE31E59 /* UIImageView+AFNetworking.m */, + B717092C91BAABF3FE631B87 /* UIKit+AFNetworking.h */, + E0EA5134749A5A4D8FB5482E /* UIProgressView+AFNetworking.h */, + 2F761BB7FC4AC9993DD40D23 /* UIProgressView+AFNetworking.m */, + 97DC47CAD23715AFA2B41B12 /* UIRefreshControl+AFNetworking.h */, + 4D3969EE686560B8820C4B79 /* UIRefreshControl+AFNetworking.m */, + 544EF65D5565B80B8EEF9586 /* UIWebView+AFNetworking.h */, + CBBE591F96CD63234E3FC49B /* UIWebView+AFNetworking.m */, + ); + name = UIKit; + sourceTree = ""; + }; /* End PBXGroup section */ /* Begin PBXHeadersBuildPhase section */ - 1613FE62016399916B0E6172 /* Headers */ = { + 1241B40BE8A4B480F0B87FD3 /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - A77FFAB16B99174E3A942137 /* Reachability.h in Headers */, + 221BF983B711320BE1149FBB /* AFHTTPRequestOperation.h in Headers */, + 62BE91A24115CDA97656AD35 /* AFHTTPRequestOperationManager.h in Headers */, + 115BDFFDF665D9FC70598E63 /* AFHTTPSessionManager.h in Headers */, + ADA1B2227AF8CB7EE0D54D33 /* AFNetworkActivityIndicatorManager.h in Headers */, + 3EF1D06F6DE76BD90762632D /* AFNetworkReachabilityManager.h in Headers */, + BCB586CD336285548FA6B8B3 /* AFNetworking.h in Headers */, + 8007F13536B188BA351E55D8 /* AFSecurityPolicy.h in Headers */, + 54C0DD6F1066936ACC42CC4D /* AFURLConnectionOperation.h in Headers */, + 329584B8F7139EA8570A8249 /* AFURLRequestSerialization.h in Headers */, + DB1938604D718852F01F4DE3 /* AFURLResponseSerialization.h in Headers */, + 0A0E83B9D48E088A6DB1D31B /* AFURLSessionManager.h in Headers */, + 9C00E01AB1E4D5683834A8D1 /* UIActivityIndicatorView+AFNetworking.h in Headers */, + 5FEB4F298BDD80A7321E93C9 /* UIAlertView+AFNetworking.h in Headers */, + 7193C9AD602E16353368759F /* UIButton+AFNetworking.h in Headers */, + 1D633B94612385CA216115E7 /* UIImageView+AFNetworking.h in Headers */, + 90B46A06F916E9C100328347 /* UIKit+AFNetworking.h in Headers */, + 117595C18DFB393F5658D609 /* UIProgressView+AFNetworking.h in Headers */, + 5EA0F70E4ACFEDBC4520D249 /* UIRefreshControl+AFNetworking.h in Headers */, + 9FA9BA94B5D5C4012D5B0F1C /* UIWebView+AFNetworking.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; - 34A3A6650169190A1DEE7096 /* Headers */ = { + 16A6D77DEDF72824EA9D1B1F /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - 4CC40D4013DBF1B0E277E3AF /* MBProgressHUD.h in Headers */, + 31CD40198A986D2E9C0B35EE /* EGOCache.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; - 5B46A645248E81DACF3E6A34 /* Headers */ = { + 1F9326A1424D0E441897D106 /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - 9D98773DFC27852056B73E3A /* SecureUDID.h in Headers */, + 4FB74AB80AF049E43996FD68 /* Reachability.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; - 623C42686ED4E09BFC0A3DF3 /* Headers */ = { + 4B74976556DD9D38EA54EDDB /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - 67F735E54B44DB40A8261D3B /* Godzippa.h in Headers */, - 10C70F53FD8C8952216F80BC /* NSData+Godzippa.h in Headers */, - 96E08C7FF522874F7BC99D16 /* NSFileManager+Godzippa.h in Headers */, + 820D0ABA7C2B1AB03CFF929E /* SecureUDID.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; - 67F2A71D2934694E9500B7C1 /* Headers */ = { + 5D9E05E289A621AD51F51665 /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - 5C675D64694AF44C794E298D /* DTAccessibilityElement.h in Headers */, - 5C5BFC53F089F1892CE28BCE /* DTAccessibilityViewProxy.h in Headers */, - C0596E0610B32053A42E3BCD /* DTAnchorHTMLElement.h in Headers */, - 66BF2FC248E1EF98DC3FE975 /* DTAttributedLabel.h in Headers */, - A0B8C20FD2206CA9A59B5010 /* DTAttributedTextCell.h in Headers */, - 94B3F003C98A7E89F27C14BF /* DTAttributedTextContentView.h in Headers */, - BE11DC3A17A6DFC45300239C /* DTAttributedTextView.h in Headers */, - B9AFBA8CD2AB1E9C44D38193 /* DTBreakHTMLElement.h in Headers */, - 3D9DE2FAF1FDDF8C25A57A35 /* DTCSSListStyle.h in Headers */, - 09F24AED39819E1AABBE030D /* DTCSSStylesheet.h in Headers */, - E41FB029EF2930643C3DD2F5 /* DTColor+Compatibility.h in Headers */, - 2A1611C1112D3B4127B318A0 /* DTColorFunctions.h in Headers */, - 58C065258DA29A4B7228293B /* DTCompatibility.h in Headers */, - 33130592D42A6A1ECAD801F3 /* DTCoreText.h in Headers */, - 8916EC3A47FE50159DAC7D6E /* DTCoreTextConstants.h in Headers */, - D0C42B5BF5A6FA191E4C5E9A /* DTCoreTextFontCollection.h in Headers */, - 8DFDD3ECF2CC01CC5BDCEE9D /* DTCoreTextFontDescriptor.h in Headers */, - F48F5AC8407EDE9DDB80D39D /* DTCoreTextFunctions.h in Headers */, - B2A8559D66257E3A2975F635 /* DTCoreTextGlyphRun.h in Headers */, - 0F853548CDF9FB2256F7E61D /* DTCoreTextLayoutFrame+Cursor.h in Headers */, - D8BF1DF7C130E466A3D81125 /* DTCoreTextLayoutFrame.h in Headers */, - 781C990028B2EBDF93F75AD7 /* DTCoreTextLayoutFrameAccessibilityElementGenerator.h in Headers */, - 1FF57ED960C0D6CC6FEEE7B1 /* DTCoreTextLayoutLine.h in Headers */, - 22C576C9448921EFF3D709CA /* DTCoreTextLayouter.h in Headers */, - B370B3BE0B0230D96361A967 /* DTCoreTextMacros.h in Headers */, - B242B3A45F719245D03D7C39 /* DTCoreTextParagraphStyle.h in Headers */, - 8F75C6859C046A3212ED3F4D /* DTDictationPlaceholderTextAttachment.h in Headers */, - A0C69FEB13FEBF23970F0426 /* DTDictationPlaceholderView.h in Headers */, - 7E61F86C0DF0B103B9EDFABF /* DTHTMLAttributedStringBuilder.h in Headers */, - 36E06283E2A8B178FCEA10F8 /* DTHTMLElement.h in Headers */, - A3CA2D7609359CBBD2DE525F /* DTHTMLParserNode.h in Headers */, - F434831BC75495A6AFF126D7 /* DTHTMLParserTextNode.h in Headers */, - 9174116757AEC26D0E6CF78C /* DTHTMLWriter.h in Headers */, - 23572C332549731F35868C27 /* DTHorizontalRuleHTMLElement.h in Headers */, - 157F0C0C9BE20C20E2FDB47D /* DTIframeTextAttachment.h in Headers */, - 8DC366B059E33BABA6099AE2 /* DTImage+HTML.h in Headers */, - 74A6D03D803FA63BDC52419B /* DTImageTextAttachment.h in Headers */, - B4FB5B03E656C8109381638D /* DTLazyImageView.h in Headers */, - F6E1E04DED7418AC39859D77 /* DTLinkButton.h in Headers */, - DAB2571C793D060D2245BA6D /* DTListItemHTMLElement.h in Headers */, - 013467F6755569661F39AF4B /* DTObjectTextAttachment.h in Headers */, - BA5A2568F1D20CD7514550A7 /* DTStylesheetHTMLElement.h in Headers */, - 426686586767BC3E0A121DD8 /* DTTextAttachment.h in Headers */, - 9FDAFAA00821E2363F415822 /* DTTextAttachmentHTMLElement.h in Headers */, - 11AC09BAEB0E1B2D525AA41C /* DTTextBlock.h in Headers */, - 290912F2E086545784B86935 /* DTTextHTMLElement.h in Headers */, - 387F89C6691C6631954FAE74 /* DTVideoTextAttachment.h in Headers */, - 457F86F0E38CA9DCD7CE1695 /* DTWebVideoView.h in Headers */, - 9C8515C72E37C7405E0E9028 /* NSAttributedString+DTCoreText.h in Headers */, - 3F5AF18A621A4141626E0CD5 /* NSAttributedString+DTDebug.h in Headers */, - 5BE033B73E0CC0E509D10181 /* NSAttributedString+HTML.h in Headers */, - 67A2862A89CFDBF643CE13AE /* NSAttributedString+SmallCaps.h in Headers */, - BDF22929F9D18A2FCC0E80A0 /* NSAttributedStringRunDelegates.h in Headers */, - 5867806F774A920DE6FBBA4F /* NSCharacterSet+HTML.h in Headers */, - C85DA5C7C81D45D0D891C657 /* NSCoder+DTCompatibility.h in Headers */, - 0EED913B03DF39227F72F553 /* NSDictionary+DTCoreText.h in Headers */, - 848E6515BC358ABCB0B89350 /* NSMutableAttributedString+HTML.h in Headers */, - CBD0AA6E6D10C4235B9AE15C /* NSMutableString+HTML.h in Headers */, - 408435DD7CF9179692B3B6AD /* NSScanner+HTML.h in Headers */, - 58BC9D84FAD6E995FA149EF2 /* NSString+CSS.h in Headers */, - D1513F5C50DC7A175A2469CE /* NSString+HTML.h in Headers */, - 6B9E38201BDE3E9D77525C4E /* NSString+Paragraphs.h in Headers */, - 129137FB275A32B0ADC82CE2 /* UIFont+DTCoreText.h in Headers */, + AAEAD818552F32BB8A7397C0 /* DTAccessibilityElement.h in Headers */, + 6BF88BADF28D789A8294ED2D /* DTAccessibilityViewProxy.h in Headers */, + E9B94625AEB9A87A8A59CCE5 /* DTAnchorHTMLElement.h in Headers */, + FD641A9CE11094F55D1C8F37 /* DTAttributedLabel.h in Headers */, + EE1B9F47759BA12D1B7E3DB3 /* DTAttributedTextCell.h in Headers */, + 36B69AE44698E683119C9629 /* DTAttributedTextContentView.h in Headers */, + F1ADD11943162476465836CA /* DTAttributedTextView.h in Headers */, + BA5681802543FEA498CB8818 /* DTBreakHTMLElement.h in Headers */, + F6937EA84C96410322EA81AE /* DTCSSListStyle.h in Headers */, + D3924E23984C89331A0E1CF1 /* DTCSSStylesheet.h in Headers */, + 2548220F0E58350AE44B1A8D /* DTColor+Compatibility.h in Headers */, + 3571D5D3C3062F029A65BF71 /* DTColorFunctions.h in Headers */, + 4F7BEE5A9DBBCDEFDFE2BC99 /* DTCompatibility.h in Headers */, + 39BDC7AC099AA98A5F00517B /* DTCoreText.h in Headers */, + E1B00E6F31E9C3B378811377 /* DTCoreTextConstants.h in Headers */, + 6D5D13BDA42136813178655A /* DTCoreTextFontCollection.h in Headers */, + 1F942C2D96714E9C6A4688EB /* DTCoreTextFontDescriptor.h in Headers */, + CA97D353CE054765DA1F3A82 /* DTCoreTextFunctions.h in Headers */, + 78202E57709EE3B10D54818D /* DTCoreTextGlyphRun.h in Headers */, + D3465A8A3559B9D7D7F1ADF7 /* DTCoreTextLayoutFrame+Cursor.h in Headers */, + EC955B8CACADEFF67E84AABB /* DTCoreTextLayoutFrame.h in Headers */, + 3ED4E22EF2DDBDBBDF41C7A4 /* DTCoreTextLayoutFrameAccessibilityElementGenerator.h in Headers */, + AAC16EA793698120EB0E8A99 /* DTCoreTextLayoutLine.h in Headers */, + DEC870606AEB28A80157A739 /* DTCoreTextLayouter.h in Headers */, + 439E5F7BF56E3E7A94E6D070 /* DTCoreTextMacros.h in Headers */, + EB699F95380961B38A45EDA1 /* DTCoreTextParagraphStyle.h in Headers */, + F3B2FC6A1055F6C63105B77A /* DTDictationPlaceholderTextAttachment.h in Headers */, + C11DF7524AE0087307054333 /* DTDictationPlaceholderView.h in Headers */, + FB92BC461DDC64E42135B50B /* DTHTMLAttributedStringBuilder.h in Headers */, + 69BB3E4F8A9A3EF505089FDB /* DTHTMLElement.h in Headers */, + 76B6279571B5BAB3D01AADA5 /* DTHTMLParserNode.h in Headers */, + 196601985F509E15C4E5E3B1 /* DTHTMLParserTextNode.h in Headers */, + 8A7D7F3225854F174E0321DC /* DTHTMLWriter.h in Headers */, + ADAF0C325037F7B4D4ABD919 /* DTHorizontalRuleHTMLElement.h in Headers */, + 31D252B556F818FDCEEF1938 /* DTIframeTextAttachment.h in Headers */, + B0F9D9CAEF7CC158E5C12C4B /* DTImage+HTML.h in Headers */, + 2C8693F1862CA229708FD099 /* DTImageTextAttachment.h in Headers */, + 920CFA99227A2C3A4E42302A /* DTLazyImageView.h in Headers */, + 05D6942AE8DEB8366FDB3DC1 /* DTLinkButton.h in Headers */, + 6ABCEC0D9F0BA9B3A1D0B0B0 /* DTListItemHTMLElement.h in Headers */, + 2AA464468AAE2A9BD54402B0 /* DTObjectTextAttachment.h in Headers */, + 7A157B0CFE887734A8657E4A /* DTStylesheetHTMLElement.h in Headers */, + 3BCE9CB5579AE5A2BAFB6A11 /* DTTextAttachment.h in Headers */, + DE97DC87515A5597616910A2 /* DTTextAttachmentHTMLElement.h in Headers */, + 60DBD1AD533428D2DC001971 /* DTTextBlock.h in Headers */, + 44F429C26571B1F9FEC9B83E /* DTTextHTMLElement.h in Headers */, + 25C8A5BD5BEB360C1D1F28BB /* DTVideoTextAttachment.h in Headers */, + 5A8447C992621323AF0B6C3B /* DTWebVideoView.h in Headers */, + 5166F7BBC3306B91BE64BFB5 /* NSAttributedString+DTCoreText.h in Headers */, + F0BEE50E2AA88E734B1C1D63 /* NSAttributedString+DTDebug.h in Headers */, + 9C5B4AEA50A5BA117BC59C36 /* NSAttributedString+HTML.h in Headers */, + 7F08855B9E148A475B59DDD1 /* NSAttributedString+SmallCaps.h in Headers */, + 7EF36CFD99CBC35FEFD1EA27 /* NSAttributedStringRunDelegates.h in Headers */, + E3EF848246C9FCFB44F91A21 /* NSCharacterSet+HTML.h in Headers */, + 9818379A0D43A35EDA25F703 /* NSCoder+DTCompatibility.h in Headers */, + B8B83DA7F188F413728D56E2 /* NSDictionary+DTCoreText.h in Headers */, + 81DDB2BBEBBB7ACF04279681 /* NSMutableAttributedString+HTML.h in Headers */, + 2DE45D43096FA45BA08B0181 /* NSMutableString+HTML.h in Headers */, + 5C144E8A0023F600FBFA421A /* NSScanner+HTML.h in Headers */, + 780A368BE10558004A419A2A /* NSString+CSS.h in Headers */, + 3FE97CD8B494BFE2B7D7C170 /* NSString+HTML.h in Headers */, + 36BDDB90F0FFA80F14910F9A /* NSString+Paragraphs.h in Headers */, + D0C5C4B2719AE0B5D1F76A21 /* UIFont+DTCoreText.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; - 6FEB327AAC56F2CC36B4EE17 /* Headers */ = { + 69833FCD159B6F8848BB36DF /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - EF6A510848C75360AF7E2C2E /* EXTKeyPathCoding.h in Headers */, - DC4D77D8D89DD39056EDF450 /* EXTRuntimeExtensions.h in Headers */, - 7C3CB77A3ECF1A4BC6059E79 /* EXTScope.h in Headers */, - C3880D9F121CBB124377A26C /* MTLJSONAdapter.h in Headers */, - 66831CEE444CB67898D15B84 /* MTLManagedObjectAdapter.h in Headers */, - 62C7A6CCED2206B30F54EE83 /* MTLModel+NSCoding.h in Headers */, - AF803D64E061565CAF4E16A1 /* MTLModel.h in Headers */, - 24D229DD078766D957CCF1BD /* MTLReflection.h in Headers */, - 30AAEE8481CF871BBD3F3632 /* MTLValueTransformer.h in Headers */, - A0CB67B24A241A2D279DDF5C /* Mantle.h in Headers */, - FAEF7FA14CA99039F2C19349 /* NSArray+MTLManipulationAdditions.h in Headers */, - 8A5510C98A8314548E449EA7 /* NSDictionary+MTLManipulationAdditions.h in Headers */, - 41D4ACE03A4D78DD7594743C /* NSError+MTLModelException.h in Headers */, - E118C1A6B57D45A3566D2579 /* NSObject+MTLComparisonAdditions.h in Headers */, - 49287364D76BF68CD71F0059 /* NSValueTransformer+MTLInversionAdditions.h in Headers */, - 6F14BCD3CD08AA94874A79D5 /* NSValueTransformer+MTLPredefinedTransformerAdditions.h in Headers */, - F0CA0C18E7FB5C661C72F124 /* metamacros.h in Headers */, + 0B193E45A26A874B0AB7AF67 /* NSIndexPath+PSTCollectionViewAdditions.h in Headers */, + 5A1B7168F6A2D6ED806E87F2 /* PSTCollectionView.h in Headers */, + 6FB4CEFD980BCB90A2CA7B9C /* PSTCollectionViewCell.h in Headers */, + 27D5FC0B12FC19C3F9A88C37 /* PSTCollectionViewCommon.h in Headers */, + BD96441F435C1CBF1410B41B /* PSTCollectionViewController.h in Headers */, + 14B9161397C7EAD4D81AE21A /* PSTCollectionViewData.h in Headers */, + 1D4D7C99B4DE272DC10354CD /* PSTCollectionViewFlowLayout.h in Headers */, + 2AE9C7CFBC4C6E6791059DBD /* PSTCollectionViewItemKey.h in Headers */, + C38F80427408C76A0522903D /* PSTCollectionViewLayout+Internals.h in Headers */, + BA2747B9C401441C8862ADE1 /* PSTCollectionViewLayout.h in Headers */, + 8122B21198EE1C929FD1C043 /* PSTCollectionViewUpdateItem.h in Headers */, + E3CE1A22981272694D8F37FD /* PSTGridLayoutInfo.h in Headers */, + 56B4B236D3884B063FD8CFC2 /* PSTGridLayoutItem.h in Headers */, + E9E75E40D4BFE04187F1B0A4 /* PSTGridLayoutRow.h in Headers */, + 371E9B99642B10F8F471E044 /* PSTGridLayoutSection.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; - 7ACB8384E2B9A768599E0A8A /* Headers */ = { + 7CDB4B1F77F9714A5C33D5EE /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - 8D3424918AC53F8CB0290DC1 /* MJRefresh.h in Headers */, - 56702CE0370CD7591056FE21 /* MJRefreshComponent.h in Headers */, - 6022AE41B46C9B7FDE781425 /* MJRefreshConst.h in Headers */, - 80B421C7C030F68C530E30CB /* MJRefreshFooter.h in Headers */, - A4A0304CC5B6B2198E42C817 /* MJRefreshGifFooter.h in Headers */, - FC7E0A71D43D6741387A9C00 /* MJRefreshGifHeader.h in Headers */, - 96F2B34DECCF317CDCD62D0F /* MJRefreshHeader.h in Headers */, - F2A0662D1C975B86473CABD8 /* MJRefreshLegendFooter.h in Headers */, - 889D550F5F71A9830B7E8390 /* MJRefreshLegendHeader.h in Headers */, - 4C63FDE40B392A78CAE77305 /* UIScrollView+MJExtension.h in Headers */, - 586BFFC03A65CB210F74D722 /* UIScrollView+MJRefresh.h in Headers */, - B19980DFE118C678022EE1B4 /* UIView+MJExtension.h in Headers */, + 826301BE0F53480BDC5F9575 /* MJRefresh.h in Headers */, + 36FBA2CEB43753E25C93C3DB /* MJRefreshComponent.h in Headers */, + B4054375246268088CF9E621 /* MJRefreshConst.h in Headers */, + 92F7AFFDB76C7DD7CCD12B22 /* MJRefreshFooter.h in Headers */, + 05601DEC5254D53357DE039F /* MJRefreshGifFooter.h in Headers */, + 246FE24B97BBCD790592D6E9 /* MJRefreshGifHeader.h in Headers */, + D279A9D2867BE88C34FE555D /* MJRefreshHeader.h in Headers */, + F06B54CD714129E0037DD35C /* MJRefreshLegendFooter.h in Headers */, + CF11625F925FA5283C57C25F /* MJRefreshLegendHeader.h in Headers */, + 923AD7139E1342FAFADEE098 /* UIScrollView+MJExtension.h in Headers */, + DB4A61FE229216B88047F82E /* UIScrollView+MJRefresh.h in Headers */, + E0FED45500F27BC341AAFAFF /* UIView+MJExtension.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; - 7DD42D2B3E3D2B0FD39DEFEB /* Headers */ = { + 8701A0BADF9CCA192325AC63 /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - B415B86319633DFAB02E2298 /* STableViewController.h in Headers */, + F1D425692E182FA43436CC17 /* DTActivityTitleView.h in Headers */, + 4087FA6F9B663446F8A96125 /* DTAnimatedGIF.h in Headers */, + 7A9C809D1EF232B2C479D19F /* DTAsyncFileDeleter.h in Headers */, + 4D9DEF6A14F240A57E170FE4 /* DTBase64Coding.h in Headers */, + F7CBE197A77D5806486A6C78 /* DTBlockFunctions.h in Headers */, + E2B689280C37F53820AC2264 /* DTCoreGraphicsUtils.h in Headers */, + A3C12D2E82E4B31C43FEF7B3 /* DTCustomColoredAccessory.h in Headers */, + 5F54D221A335C0158FB04FE1 /* DTExtendedFileAttributes.h in Headers */, + 794123F699D3E3301620A928 /* DTFolderMonitor.h in Headers */, + B0B2D99A392BE53BF81153DD /* DTFoundationConstants.h in Headers */, + 866A4EE76BCD168C9D75E6BE /* DTHTMLParser.h in Headers */, + B4F4CD25E8C81512480DC1DC /* DTLog.h in Headers */, + 5B91650A9D1B41326E3AD805 /* DTPieProgressIndicator.h in Headers */, + 3862C6BB36B33DF39687C1D7 /* DTSmartPagingScrollView.h in Headers */, + D6A46969E83A58CCA90F0614 /* DTTiledLayerWithoutFade.h in Headers */, + DEBEE8BA7F9CBA69700B7115 /* DTVersion.h in Headers */, + DA53435142485F4D73AB4FEF /* DTWeakSupport.h in Headers */, + 9C7DF1FD8BFF2AAFEA2150A5 /* NSArray+DTError.h in Headers */, + BB24A5B947AB043C38D17FF2 /* NSData+DTCrypto.h in Headers */, + 1AA44C0FBF0825A67FBDC6A1 /* NSDictionary+DTError.h in Headers */, + 5E38BADE95190BBAD6E0D902 /* NSFileWrapper+DTCopying.h in Headers */, + 8BEA85740BA37043CA92A72F /* NSMutableArray+DTMoving.h in Headers */, + 1D59F52CFE5B411469FE6F0B /* NSString+DTFormatNumbers.h in Headers */, + 93CD5E89427C02B9D5624491 /* NSString+DTPaths.h in Headers */, + 2DD0850ECE920581061E1BE7 /* NSString+DTURLEncoding.h in Headers */, + A01BAF3B3EA1C5CBEFC92037 /* NSString+DTUtilities.h in Headers */, + 8E2DD341D47F6D4A85505723 /* NSURL+DTAppLinks.h in Headers */, + 4CCEF4FF6F8F4EF74004B7CD /* NSURL+DTComparing.h in Headers */, + 756360186438ED363CD1A269 /* NSURL+DTUnshorten.h in Headers */, + DC45A60A13C3E916CEF0F9F5 /* UIApplication+DTNetworkActivity.h in Headers */, + 7C763BF831A69384D86A0F6D /* UIImage+DTFoundation.h in Headers */, + 764409012C4D37E7B7DF2DF8 /* UIView+DTFoundation.h in Headers */, + 0A3BA305E0CC51463BCAE107 /* UIWebView+DTFoundation.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; - 889F0855848F7F3D0089B17E /* Headers */ = { + 9B07189D39E943CE90B5CFD6 /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - EA09C1BD4F83E0CFE02B214C /* DTActivityTitleView.h in Headers */, - 65C3DC46F7BF23D8216E7D73 /* DTAnimatedGIF.h in Headers */, - BE0CBC7BE3C7FE02DE8C3DC7 /* DTAsyncFileDeleter.h in Headers */, - BBC629713AEAD9C359329092 /* DTBase64Coding.h in Headers */, - 635F190AD6CEECBB54365F03 /* DTBlockFunctions.h in Headers */, - 4ACCE6B6945543B1B0C7E3D8 /* DTCoreGraphicsUtils.h in Headers */, - 5281FE4438B836460AAF08AA /* DTCustomColoredAccessory.h in Headers */, - 365D687F479329B69DC21B1F /* DTExtendedFileAttributes.h in Headers */, - 8181C1F6C24D1FCF7528E66B /* DTFolderMonitor.h in Headers */, - C1C69BE3D60B1A2AE6C5718C /* DTFoundationConstants.h in Headers */, - ADD401B6FB058141AA765121 /* DTHTMLParser.h in Headers */, - A88E1FB837D2987A7D105B1A /* DTLog.h in Headers */, - 93CF95030A57C4D95B906FD8 /* DTPieProgressIndicator.h in Headers */, - 8AD1D251EA2B8F7410EEBB3F /* DTSmartPagingScrollView.h in Headers */, - B63584FC9C032F8408AE5C78 /* DTTiledLayerWithoutFade.h in Headers */, - B09E10479A8A43F7EE0CF8FF /* DTVersion.h in Headers */, - 0D7CE15921BEF9485FFB70EC /* DTWeakSupport.h in Headers */, - 713D0BE35B2F72D703DB903A /* NSArray+DTError.h in Headers */, - 4311CCE77CCC6D844976EAFA /* NSData+DTCrypto.h in Headers */, - A9AA44A38FC6A113DBFC01C7 /* NSDictionary+DTError.h in Headers */, - 2C8EC9E0E48E4E51F2E26FBD /* NSFileWrapper+DTCopying.h in Headers */, - D67BEA5E08AF4AD5987737D4 /* NSMutableArray+DTMoving.h in Headers */, - E708A811779C19D6AAA55A8E /* NSString+DTFormatNumbers.h in Headers */, - B5E86D0F95798788DC35F949 /* NSString+DTPaths.h in Headers */, - 9C17C9964E4DC070FD248AB2 /* NSString+DTURLEncoding.h in Headers */, - 4D0482135D8BD6F38AC8E82F /* NSString+DTUtilities.h in Headers */, - AAD748AA4CF2E3319D3D082D /* NSURL+DTAppLinks.h in Headers */, - C8EC2777DAF6CBD59342E191 /* NSURL+DTComparing.h in Headers */, - 4E882AE138DA4FB231C758E1 /* NSURL+DTUnshorten.h in Headers */, - E731054ECE70017FBA55AA43 /* UIApplication+DTNetworkActivity.h in Headers */, - 7E63FB57AFE221521DBC1166 /* UIImage+DTFoundation.h in Headers */, - 11D7AE61ACE8E5EF584A2334 /* UIView+DTFoundation.h in Headers */, - FB0C39EACA7A7231B83897E1 /* UIWebView+DTFoundation.h in Headers */, + AD7CC4837F92FB686B66F92F /* EXTKeyPathCoding.h in Headers */, + ACE90D9ECE33BCD3AB03630E /* EXTRuntimeExtensions.h in Headers */, + 613103028F1EDB4895BFE65B /* EXTScope.h in Headers */, + 03E37CE5760F9939D36E28AB /* MTLJSONAdapter.h in Headers */, + 8B2090488F5FB774A6B93400 /* MTLManagedObjectAdapter.h in Headers */, + BAAE375D2B6843A72DEB3CD3 /* MTLModel+NSCoding.h in Headers */, + DB66382B86A898E67E91634A /* MTLModel.h in Headers */, + C87B35578817A74BA41EE08D /* MTLReflection.h in Headers */, + 41ACD9C96E5AF726F7CF3550 /* MTLValueTransformer.h in Headers */, + 85645FDFA30B0CBD22709E5B /* Mantle.h in Headers */, + D852F0435C0480DF6AA01B60 /* NSArray+MTLManipulationAdditions.h in Headers */, + 58865EBF19AD550D1B6A6C19 /* NSDictionary+MTLManipulationAdditions.h in Headers */, + 6B444B64C726803F3AE4FD7B /* NSError+MTLModelException.h in Headers */, + AEBC9D15B03F0DBB92B8033D /* NSObject+MTLComparisonAdditions.h in Headers */, + F0984FEA8C211A422FA7000C /* NSValueTransformer+MTLInversionAdditions.h in Headers */, + B5244F5AEFAF4723BD7755DE /* NSValueTransformer+MTLPredefinedTransformerAdditions.h in Headers */, + 7B3F776FEA47C09DC24BA764 /* metamacros.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; - 8C924C1CC8279044E723C3A8 /* Headers */ = { + A36BBE3C2B2A498ECA7E121D /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - FC3A73111B3A0E2F3FD1DEB7 /* NSData+ImageContentType.h in Headers */, - 3ED3617D49C9292442C8C8EB /* SDImageCache.h in Headers */, - 6D3C077CE557A5159838A720 /* SDWebImageCompat.h in Headers */, - 4EA70A8BB0A35B6C33B7C140 /* SDWebImageDecoder.h in Headers */, - 99EC58284F82D2E9157DABD2 /* SDWebImageDownloader.h in Headers */, - F56A55B38E7F033348C55957 /* SDWebImageDownloaderOperation.h in Headers */, - 4B58DE5823C889AA7BCE5AF8 /* SDWebImageManager.h in Headers */, - CD9837AE41A628CDF013036D /* SDWebImageOperation.h in Headers */, - C7012A0C970F247FA61DAB11 /* SDWebImagePrefetcher.h in Headers */, - 522B27D45468F4BB65EAFAA3 /* UIButton+WebCache.h in Headers */, - 31071C73FFA23AD720191706 /* UIImage+GIF.h in Headers */, - C2D87BDA5A4BE1128FED5388 /* UIImage+MultiFormat.h in Headers */, - D03BF1D90B0CF2294761BE2E /* UIImageView+HighlightedWebCache.h in Headers */, - 7FD058B6B5B638759C5FE085 /* UIImageView+WebCache.h in Headers */, - 2AA1FE64199A6BD55C88E843 /* UIView+WebCacheOperation.h in Headers */, + C301BACE4EC44F141974EE81 /* DACircularProgressView.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; - 95A744E12E25BA9892107DF1 /* Headers */ = { + C812007553B3663AC992C05A /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - 2E2A225E09AA1776237DA0A3 /* EGOCache.h in Headers */, + 002EBA8BE55F2A8CDA444C67 /* Godzippa.h in Headers */, + 6C2BC4CA309CB96A0EE4DCF7 /* NSData+Godzippa.h in Headers */, + 4F4DDC4D45419451B2A12C2E /* NSFileManager+Godzippa.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; - D72DFCE34325BA598D00CBE0 /* Headers */ = { + CE207F1AB7C7328AB4597C4D /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - A92C33E5C970F02348C70FDA /* SBJson4.h in Headers */, - 759B24C40B042D2318608AC4 /* SBJson4Parser.h in Headers */, - A9D7A4E61D9132A38B88240A /* SBJson4StreamParser.h in Headers */, - 6FB17487DBD6EBEC72C5147B /* SBJson4StreamParserState.h in Headers */, - E1EF224D6F3F7C9ECD7A0354 /* SBJson4StreamTokeniser.h in Headers */, - 0A67893342424A28B89B671F /* SBJson4StreamWriter.h in Headers */, - AC27ED2936703D4B82F70D64 /* SBJson4StreamWriterState.h in Headers */, - FFB6EEBAEACCD9DC9896A0DC /* SBJson4Writer.h in Headers */, + D4406E3CE39E67B58D4122BC /* SBJson4.h in Headers */, + E32F9AA5A68F674DDFFE6654 /* SBJson4Parser.h in Headers */, + 33A25CE2AC0B58A949874B20 /* SBJson4StreamParser.h in Headers */, + 5C3A47305D7D239B4D431529 /* SBJson4StreamParserState.h in Headers */, + 0286EA170A7F9A2EE1543958 /* SBJson4StreamTokeniser.h in Headers */, + 3FE35D8C92B0185318724E07 /* SBJson4StreamWriter.h in Headers */, + 918DFC38A6390D78D42B0C37 /* SBJson4StreamWriterState.h in Headers */, + F80CE6CF55AA3D220371E7DC /* SBJson4Writer.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; - E2CC50351B83C1626FE8426C /* Headers */ = { + D4B97E6ADB038B928197815C /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - 8A44333E6C1AD1939F353AFF /* AFHTTPRequestOperation.h in Headers */, - F85CE8E45976C128A2058567 /* AFHTTPRequestOperationManager.h in Headers */, - C8101DF5EB0D1F6C7CB8E527 /* AFHTTPSessionManager.h in Headers */, - C49951E6B3BEE0D50DE44200 /* AFNetworkActivityIndicatorManager.h in Headers */, - ED1F77755C992D872C44378A /* AFNetworkReachabilityManager.h in Headers */, - 4A53FD937B8D71DC6EEFA258 /* AFNetworking.h in Headers */, - 36E611C63BFDA916CBCD6895 /* AFSecurityPolicy.h in Headers */, - 62E2DD56976312E5C92C1895 /* AFURLConnectionOperation.h in Headers */, - FD8F1DFEE9A6D874F7BA6AB6 /* AFURLRequestSerialization.h in Headers */, - 611A97144BA4643E8F4C1C23 /* AFURLResponseSerialization.h in Headers */, - D2ED567FF654C0C51AF05599 /* AFURLSessionManager.h in Headers */, - C2CC62434A97B8C789A52755 /* UIActivityIndicatorView+AFNetworking.h in Headers */, - 1C071DB1CEBE4A97470A88CB /* UIAlertView+AFNetworking.h in Headers */, - CBBBBF0C2A6E70025BEC8C04 /* UIButton+AFNetworking.h in Headers */, - 874457D74458E84DA62E07FD /* UIImageView+AFNetworking.h in Headers */, - D5F1C7ECCF73943D6CA58CD6 /* UIKit+AFNetworking.h in Headers */, - D4A103D081F2189CBCC9AA77 /* UIProgressView+AFNetworking.h in Headers */, - 2E0A61731F92585F5F6409A1 /* UIRefreshControl+AFNetworking.h in Headers */, - B4490C1535367E6529BCA8E0 /* UIWebView+AFNetworking.h in Headers */, + EB7DEB4051000BB7B29D6F91 /* MBProgressHUD.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + E47D1567C1B0178D50B4B670 /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + 36B512BA30566DFA2140A879 /* NSData+ImageContentType.h in Headers */, + A6E35F95AFDF3789624A21F9 /* SDImageCache.h in Headers */, + 9C19B8D36472C810B33A7FC9 /* SDWebImageCompat.h in Headers */, + 6A33AD68D2B098E6A0178FC9 /* SDWebImageDecoder.h in Headers */, + 29193E42B675EEF08E0D9588 /* SDWebImageDownloader.h in Headers */, + 817D485A1F586D4A42CD9DF2 /* SDWebImageDownloaderOperation.h in Headers */, + 0B571141D6B9AE9909E523A5 /* SDWebImageManager.h in Headers */, + 777EF53E21C6A7AEC2069F39 /* SDWebImageOperation.h in Headers */, + 896DAB87D38325E3F0BEAE91 /* SDWebImagePrefetcher.h in Headers */, + E81D951E31B3CA8DBCDAEB43 /* UIButton+WebCache.h in Headers */, + CB6B73315222590178305455 /* UIImage+GIF.h in Headers */, + 091E99A9CF9B281934600FEC /* UIImage+MultiFormat.h in Headers */, + C5B172A75AC56AFB9A2861EB /* UIImageView+HighlightedWebCache.h in Headers */, + 45901E36BE9EF58EC6D2A98E /* UIImageView+WebCache.h in Headers */, + 3CBA729F30727B2D818966C4 /* UIView+WebCacheOperation.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + E877E77CF85D4C0CED72B4DE /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + C8BC99BD1A1BAAB923C71558 /* STableViewController.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + FAC53D5EAE438AC298C6B50B /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + 121AC94E9DD4713ED397D70D /* MWCaptionView.h in Headers */, + D645D837B16D291B2D97102E /* MWCommon.h in Headers */, + EC52C357C2DB594DAB5F4568 /* MWGridCell.h in Headers */, + 2690EE58BC558C6DADB6270B /* MWGridViewController.h in Headers */, + 6458142C7D5CA10B21E2D5B0 /* MWPhoto.h in Headers */, + D315D5BCC31D4F5A24A22C1C /* MWPhotoBrowser.h in Headers */, + D929FBA4464E13A399611C85 /* MWPhotoBrowserPrivate.h in Headers */, + 3A563A0EA615BA1CBF1B5F26 /* MWPhotoProtocol.h in Headers */, + B6409A2E86906EE690E93A8E /* MWTapDetectingImageView.h in Headers */, + 3660C01AD8D67A4377942AFE /* MWTapDetectingView.h in Headers */, + 13D3FC66D1B07302C01CD753 /* MWZoomingScrollView.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXHeadersBuildPhase section */ /* Begin PBXNativeTarget section */ - 14D13089E11DA69B9989B5D7 /* Pods */ = { + 082A9C1460279150C0A6B992 /* Pods-DTCoreText */ = { isa = PBXNativeTarget; - buildConfigurationList = DC81AD117F48A5D8D26DFB2F /* Build configuration list for PBXNativeTarget "Pods" */; + buildConfigurationList = ABEE8D8DB32907874C098E3F /* Build configuration list for PBXNativeTarget "Pods-DTCoreText" */; buildPhases = ( - 271BA0642B2F27DA3F11220A /* Sources */, - 935D1B47FC2BDDCD60EC14DA /* Frameworks */, + E112906F1331203FBFF73887 /* Sources */, + 6E124F76A4D1190CE22E218D /* Frameworks */, + 5D9E05E289A621AD51F51665 /* Headers */, ); buildRules = ( ); dependencies = ( - FE39A11FC6BA60A53AD1C0CA /* PBXTargetDependency */, - C90B979B0763E58C1ECB1C8C /* PBXTargetDependency */, - 3F8A1F3D4F9BFD03625482CB /* PBXTargetDependency */, - 7128B2D8BBDDCBAE3EAA17F2 /* PBXTargetDependency */, - D965D94F70BD2ACB62A36195 /* PBXTargetDependency */, - E711A3109557099B3AF43935 /* PBXTargetDependency */, - 8F55CBBE44981043A059015D /* PBXTargetDependency */, - 9BFF5EB87C6C233A097553C6 /* PBXTargetDependency */, - DBC36892FC0F6C2C976F8D13 /* PBXTargetDependency */, - 252845096E59F9EB7428AE4F /* PBXTargetDependency */, - 154A418E45CE656728ED4824 /* PBXTargetDependency */, - 8431BE6D7108C8BA8D2647AA /* PBXTargetDependency */, - B060BD778F628281C4729922 /* PBXTargetDependency */, + 5BC97F894CF1D0988C835A08 /* PBXTargetDependency */, ); - name = Pods; - productName = Pods; - productReference = 0DFC802C0A6071810B82B253 /* libPods.a */; + name = "Pods-DTCoreText"; + productName = "Pods-DTCoreText"; + productReference = E2A08D1AB142C95BDA533612 /* libPods-DTCoreText.a */; productType = "com.apple.product-type.library.static"; }; - 1C099AB0A914FF873E22025E /* Pods-SecureUDID */ = { + 0965509D6FC49C811309F372 /* Pods-MWPhotoBrowser */ = { isa = PBXNativeTarget; - buildConfigurationList = C0B3FEA2AA18227702AE86D0 /* Build configuration list for PBXNativeTarget "Pods-SecureUDID" */; + buildConfigurationList = 245AA4CEEF178E602218A6BF /* Build configuration list for PBXNativeTarget "Pods-MWPhotoBrowser" */; buildPhases = ( - AE295086C1653AEF242065A9 /* Sources */, - EFEAE41152B284070046DA32 /* Frameworks */, - 5B46A645248E81DACF3E6A34 /* Headers */, + 48A53E7BE89381738F9E39B0 /* Sources */, + 3C2A9EAE0E03110A0C1F5880 /* Frameworks */, + FAC53D5EAE438AC298C6B50B /* Headers */, ); buildRules = ( ); dependencies = ( + E3FE47800E16C98F55A7ECC9 /* PBXTargetDependency */, + 910A039972E83280D1A067D7 /* PBXTargetDependency */, + 14FC2D2DFAC9A3AB3D5ED28F /* PBXTargetDependency */, + 521C68F4C0A943697BB27F7E /* PBXTargetDependency */, ); - name = "Pods-SecureUDID"; - productName = "Pods-SecureUDID"; - productReference = B001B4A5AB7E920F7C68C0BF /* libPods-SecureUDID.a */; + name = "Pods-MWPhotoBrowser"; + productName = "Pods-MWPhotoBrowser"; + productReference = CBD66FD79CCA50D1F2FDE4F9 /* libPods-MWPhotoBrowser.a */; productType = "com.apple.product-type.library.static"; }; - 246007DB8F862E25EDD87EC3 /* Pods-SDWebImage */ = { + 12D6EACA73735A1B258DC584 /* Pods-DTFoundation */ = { isa = PBXNativeTarget; - buildConfigurationList = 0224B1896EF6A709F9E14C24 /* Build configuration list for PBXNativeTarget "Pods-SDWebImage" */; + buildConfigurationList = DE931276C36EA5CDE4C46E12 /* Build configuration list for PBXNativeTarget "Pods-DTFoundation" */; buildPhases = ( - AC92C9C59762CE5201D3E4FA /* Sources */, - F9EB0F9BB143E1672B6627EA /* Frameworks */, - 8C924C1CC8279044E723C3A8 /* Headers */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = "Pods-SDWebImage"; - productName = "Pods-SDWebImage"; - productReference = 1C4485F4C42846C2279D9B3C /* libPods-SDWebImage.a */; - productType = "com.apple.product-type.library.static"; - }; - 3407AC2ADE0234D6024C3225 /* Pods-MJRefresh */ = { - isa = PBXNativeTarget; - buildConfigurationList = CD5B0112664C365774FBF164 /* Build configuration list for PBXNativeTarget "Pods-MJRefresh" */; - buildPhases = ( - DED9F731FC6B56D2234A4F13 /* Sources */, - 19828D821192B0AD8BA64DBB /* Frameworks */, - 7ACB8384E2B9A768599E0A8A /* Headers */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = "Pods-MJRefresh"; - productName = "Pods-MJRefresh"; - productReference = 053E650D0FAE12D024D858D0 /* libPods-MJRefresh.a */; - productType = "com.apple.product-type.library.static"; - }; - 5516FCAE39C9ADCE88363669 /* Pods-EGOCache */ = { - isa = PBXNativeTarget; - buildConfigurationList = 41C18C3F490300E87F7137C7 /* Build configuration list for PBXNativeTarget "Pods-EGOCache" */; - buildPhases = ( - C10FD15D7A796A7F96C0556E /* Sources */, - CD2433D494CCBAA22BB04EC1 /* Frameworks */, - 95A744E12E25BA9892107DF1 /* Headers */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = "Pods-EGOCache"; - productName = "Pods-EGOCache"; - productReference = 2E48888E05ABEED31745F4E6 /* libPods-EGOCache.a */; - productType = "com.apple.product-type.library.static"; - }; - 5CE1CEB18F375654764E6BEE /* Pods-Mantle */ = { - isa = PBXNativeTarget; - buildConfigurationList = 0899F51A4DFAE9EA982785B0 /* Build configuration list for PBXNativeTarget "Pods-Mantle" */; - buildPhases = ( - 3871007EE923E49BC0C7C189 /* Sources */, - 19D4E7F6FF342095B8492AC8 /* Frameworks */, - 6FEB327AAC56F2CC36B4EE17 /* Headers */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = "Pods-Mantle"; - productName = "Pods-Mantle"; - productReference = A2B2B182EBB052C8D1A75726 /* libPods-Mantle.a */; - productType = "com.apple.product-type.library.static"; - }; - 71A4FA4DD2C39B010FEF1F64 /* Pods-STableViewController */ = { - isa = PBXNativeTarget; - buildConfigurationList = 1F5B8925DF3847EB18FB26EB /* Build configuration list for PBXNativeTarget "Pods-STableViewController" */; - buildPhases = ( - F56D9DC8F77D39164C09E72B /* Sources */, - 485C496FBA72B48C8F36CA4D /* Frameworks */, - 7DD42D2B3E3D2B0FD39DEFEB /* Headers */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = "Pods-STableViewController"; - productName = "Pods-STableViewController"; - productReference = B30451B8E4FDB09C257558C5 /* libPods-STableViewController.a */; - productType = "com.apple.product-type.library.static"; - }; - 7AAD259F4548BFB4D392BCE8 /* Pods-DTFoundation */ = { - isa = PBXNativeTarget; - buildConfigurationList = 2197E30DCF1893EFFB50C950 /* Build configuration list for PBXNativeTarget "Pods-DTFoundation" */; - buildPhases = ( - 9B01D4DF00F7DE882F64335C /* Sources */, - 2C840C92980331FD61DAE553 /* Frameworks */, - 889F0855848F7F3D0089B17E /* Headers */, + FF0A0CCB4C94210040E2E5A6 /* Sources */, + 9002F8E20B7A7CC22019D887 /* Frameworks */, + 8701A0BADF9CCA192325AC63 /* Headers */, ); buildRules = ( ); @@ -2264,84 +2561,16 @@ ); name = "Pods-DTFoundation"; productName = "Pods-DTFoundation"; - productReference = B62216477414878B1B856598 /* libPods-DTFoundation.a */; + productReference = E08C66EEC87BE9BE8CB5A16B /* libPods-DTFoundation.a */; productType = "com.apple.product-type.library.static"; }; - D4CB5066DD4B9FA1102C148C /* Pods-SBJson */ = { + 2ADE72A514F2B9DCC6AA9078 /* Pods-Reachability */ = { isa = PBXNativeTarget; - buildConfigurationList = BFB9722C75FA0D33477152AA /* Build configuration list for PBXNativeTarget "Pods-SBJson" */; + buildConfigurationList = 8948877EA0191D365876833C /* Build configuration list for PBXNativeTarget "Pods-Reachability" */; buildPhases = ( - 9053894A398DC237175612F6 /* Sources */, - 2A1AE755DFA0B59CC7729650 /* Frameworks */, - D72DFCE34325BA598D00CBE0 /* Headers */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = "Pods-SBJson"; - productName = "Pods-SBJson"; - productReference = 4675BAADC653074EB3762AB3 /* libPods-SBJson.a */; - productType = "com.apple.product-type.library.static"; - }; - E4CE1DC0A990D7D49C2F3706 /* Pods-MBProgressHUD */ = { - isa = PBXNativeTarget; - buildConfigurationList = E0312F5DB5390546EC07C28D /* Build configuration list for PBXNativeTarget "Pods-MBProgressHUD" */; - buildPhases = ( - C3D75EC5880A07C7FFE4B77F /* Sources */, - D022507B2B9B65DE44C2621C /* Frameworks */, - 34A3A6650169190A1DEE7096 /* Headers */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = "Pods-MBProgressHUD"; - productName = "Pods-MBProgressHUD"; - productReference = FD994BF3AB940E759259C133 /* libPods-MBProgressHUD.a */; - productType = "com.apple.product-type.library.static"; - }; - EDBB7D54D3DBA6D222E66ACC /* Pods-AFNetworking */ = { - isa = PBXNativeTarget; - buildConfigurationList = CA3E6F2226233EF570586D0B /* Build configuration list for PBXNativeTarget "Pods-AFNetworking" */; - buildPhases = ( - 5DB31C8B187018C4C20B90B4 /* Sources */, - 7B956EF253BFF061E3C16E58 /* Frameworks */, - E2CC50351B83C1626FE8426C /* Headers */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = "Pods-AFNetworking"; - productName = "Pods-AFNetworking"; - productReference = A3D50189B84CAFA22502AA88 /* libPods-AFNetworking.a */; - productType = "com.apple.product-type.library.static"; - }; - F564FE7FF3C0FFC99E487782 /* Pods-Godzippa */ = { - isa = PBXNativeTarget; - buildConfigurationList = A4A57808D4240107C25A4D8C /* Build configuration list for PBXNativeTarget "Pods-Godzippa" */; - buildPhases = ( - 8D29B19E38F029F6C7915BD3 /* Sources */, - 50951BBF8A9D3CA05D6D89B8 /* Frameworks */, - 623C42686ED4E09BFC0A3DF3 /* Headers */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = "Pods-Godzippa"; - productName = "Pods-Godzippa"; - productReference = 27C436A1B9330F8576D3D27E /* libPods-Godzippa.a */; - productType = "com.apple.product-type.library.static"; - }; - F71420DF9662B503D8ACFF36 /* Pods-Reachability */ = { - isa = PBXNativeTarget; - buildConfigurationList = CEA819D71063BA6A3869EF7E /* Build configuration list for PBXNativeTarget "Pods-Reachability" */; - buildPhases = ( - 920C70FABBB472096CFA871F /* Sources */, - 1D25D30E73586166225CE29E /* Frameworks */, - 1613FE62016399916B0E6172 /* Headers */, + 4A7B46417FA226F8C062EBFB /* Sources */, + BED6CD4EAA734FF5DE7FB854 /* Frameworks */, + 1F9326A1424D0E441897D106 /* Headers */, ); buildRules = ( ); @@ -2349,466 +2578,743 @@ ); name = "Pods-Reachability"; productName = "Pods-Reachability"; - productReference = 4800D6896DDF29D0676A963A /* libPods-Reachability.a */; + productReference = A429381C19E346AA1E414E3C /* libPods-Reachability.a */; productType = "com.apple.product-type.library.static"; }; - F923B086C24D15CF9BD1F307 /* Pods-DTCoreText */ = { + 436E0A2F78024613E0497B57 /* Pods-EGOCache */ = { isa = PBXNativeTarget; - buildConfigurationList = BCDA08264FAD178F9E7902E4 /* Build configuration list for PBXNativeTarget "Pods-DTCoreText" */; + buildConfigurationList = FD951D8DA3456F7CD97F9256 /* Build configuration list for PBXNativeTarget "Pods-EGOCache" */; buildPhases = ( - 58E496AEAEEBBD79F2E5FFE5 /* Sources */, - 787C5DE8DE63A5BCEBD5AEE0 /* Frameworks */, - 67F2A71D2934694E9500B7C1 /* Headers */, + 53D70EE5EA0688E5D89825DD /* Sources */, + DEEAA7D8346405448FD17FC5 /* Frameworks */, + 16A6D77DEDF72824EA9D1B1F /* Headers */, ); buildRules = ( ); dependencies = ( - 90E0C2F76215FE886E6B8B11 /* PBXTargetDependency */, ); - name = "Pods-DTCoreText"; - productName = "Pods-DTCoreText"; - productReference = CBE26A822B9113D7AEE87DA3 /* libPods-DTCoreText.a */; + name = "Pods-EGOCache"; + productName = "Pods-EGOCache"; + productReference = F05B23F310F80B1AA0D6A139 /* libPods-EGOCache.a */; + productType = "com.apple.product-type.library.static"; + }; + 4BD013E38F08B8A236F2377D /* Pods-PSTCollectionView */ = { + isa = PBXNativeTarget; + buildConfigurationList = B0C82DFAEAD06161DBF83CC8 /* Build configuration list for PBXNativeTarget "Pods-PSTCollectionView" */; + buildPhases = ( + 0DE02F7D2505DECBCC4D1760 /* Sources */, + 0861E5BF2605F13F1BD08746 /* Frameworks */, + 69833FCD159B6F8848BB36DF /* Headers */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = "Pods-PSTCollectionView"; + productName = "Pods-PSTCollectionView"; + productReference = FC50C6BD4037623093EF39C3 /* libPods-PSTCollectionView.a */; + productType = "com.apple.product-type.library.static"; + }; + 4D420C6AEDF459FE9E5FC522 /* Pods */ = { + isa = PBXNativeTarget; + buildConfigurationList = C72F14705D5402C9E28B8604 /* Build configuration list for PBXNativeTarget "Pods" */; + buildPhases = ( + 9003FEFA4B5821553B804229 /* Sources */, + 89CC1C520CAD1B5DB0E405EC /* Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + 090A692A3EC783DC65C5C4E3 /* PBXTargetDependency */, + 963B89A3D101B3E423F8D4DC /* PBXTargetDependency */, + D770AA89BC1A6FD3F9D43A6C /* PBXTargetDependency */, + A4AB6FE0B407BED0ED73CE26 /* PBXTargetDependency */, + BBAE5290DF47ED0D4212F2B3 /* PBXTargetDependency */, + 39FE6CAE98B0618CD0185486 /* PBXTargetDependency */, + C1DD85958381EF1F08A2A012 /* PBXTargetDependency */, + F278240B1CB4C3DB34162D83 /* PBXTargetDependency */, + BF9295FDF54B5E75D0846B1D /* PBXTargetDependency */, + FCAB09B66B418F07ED804E01 /* PBXTargetDependency */, + F719C1A8D8D417DAD6B0112D /* PBXTargetDependency */, + 823489026E773E24982461FE /* PBXTargetDependency */, + 42FBEBF0CFA2760FC751A34F /* PBXTargetDependency */, + 366A157581CC6EACDF882097 /* PBXTargetDependency */, + DE7D0A24905CE995E5EFCBE3 /* PBXTargetDependency */, + 3BD1DF923FC280E1AE7A6B62 /* PBXTargetDependency */, + ); + name = Pods; + productName = Pods; + productReference = 4440EB50C7A57D67D7BA503A /* libPods.a */; + productType = "com.apple.product-type.library.static"; + }; + 5E581170A93903727961FF04 /* Pods-Mantle */ = { + isa = PBXNativeTarget; + buildConfigurationList = 4CE48F0FB8630375A6A7A1CC /* Build configuration list for PBXNativeTarget "Pods-Mantle" */; + buildPhases = ( + C6D5F78DF262E3C62507786D /* Sources */, + B316CEC6AD2AEFDF30E11A07 /* Frameworks */, + 9B07189D39E943CE90B5CFD6 /* Headers */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = "Pods-Mantle"; + productName = "Pods-Mantle"; + productReference = B55AB127F8C0DFC9BE150FAA /* libPods-Mantle.a */; + productType = "com.apple.product-type.library.static"; + }; + 744BBE6A2B6DB06A58643241 /* Pods-MJRefresh */ = { + isa = PBXNativeTarget; + buildConfigurationList = 41D4A0C3998BA319D8ADEB97 /* Build configuration list for PBXNativeTarget "Pods-MJRefresh" */; + buildPhases = ( + B067C5F9BCEBF9FB0E9FA557 /* Sources */, + BE434D2B87FC0CF9FCF02BEF /* Frameworks */, + 7CDB4B1F77F9714A5C33D5EE /* Headers */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = "Pods-MJRefresh"; + productName = "Pods-MJRefresh"; + productReference = ACAA8D9E50D3C2BB866CE515 /* libPods-MJRefresh.a */; + productType = "com.apple.product-type.library.static"; + }; + 7E0C326C21065451AF915068 /* Pods-SDWebImage */ = { + isa = PBXNativeTarget; + buildConfigurationList = D2EEE339A3B160BBB693A38A /* Build configuration list for PBXNativeTarget "Pods-SDWebImage" */; + buildPhases = ( + 92DD02A36479667E02F2AE78 /* Sources */, + EFF07809B187B5171B0807F7 /* Frameworks */, + E47D1567C1B0178D50B4B670 /* Headers */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = "Pods-SDWebImage"; + productName = "Pods-SDWebImage"; + productReference = 38082914F433A1A357A44704 /* libPods-SDWebImage.a */; + productType = "com.apple.product-type.library.static"; + }; + 9094841566C2C953FA59B13F /* Pods-SecureUDID */ = { + isa = PBXNativeTarget; + buildConfigurationList = B620F5A21FF881D23ABC2281 /* Build configuration list for PBXNativeTarget "Pods-SecureUDID" */; + buildPhases = ( + 5C3E4C7386E5D2FCF922DABD /* Sources */, + 05AA70D29D7427C57EC6DE94 /* Frameworks */, + 4B74976556DD9D38EA54EDDB /* Headers */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = "Pods-SecureUDID"; + productName = "Pods-SecureUDID"; + productReference = 3197E5592324794A1AA77E34 /* libPods-SecureUDID.a */; + productType = "com.apple.product-type.library.static"; + }; + B2366AF3542637503A71E0A9 /* Pods-MBProgressHUD */ = { + isa = PBXNativeTarget; + buildConfigurationList = 6C2AA5D08BDC75A50C6DCE43 /* Build configuration list for PBXNativeTarget "Pods-MBProgressHUD" */; + buildPhases = ( + 6EA5833E99D510CDBD51772A /* Sources */, + F6CF5F931CC50BA30BE82A97 /* Frameworks */, + D4B97E6ADB038B928197815C /* Headers */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = "Pods-MBProgressHUD"; + productName = "Pods-MBProgressHUD"; + productReference = 63BA6C0FBC50E6C41B9BF1A5 /* libPods-MBProgressHUD.a */; + productType = "com.apple.product-type.library.static"; + }; + B37E6E1C3E8E3B523811465A /* Pods-AFNetworking */ = { + isa = PBXNativeTarget; + buildConfigurationList = 7AEF12EFFF94781BF964AD6E /* Build configuration list for PBXNativeTarget "Pods-AFNetworking" */; + buildPhases = ( + E0FB6AAF1C170545B2DB415A /* Sources */, + CDF82687C60C260D42520228 /* Frameworks */, + 1241B40BE8A4B480F0B87FD3 /* Headers */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = "Pods-AFNetworking"; + productName = "Pods-AFNetworking"; + productReference = 0B423F37971208738F727BC3 /* libPods-AFNetworking.a */; + productType = "com.apple.product-type.library.static"; + }; + C37FD853CB072143A5870EDB /* Pods-DACircularProgress */ = { + isa = PBXNativeTarget; + buildConfigurationList = 61C9EB8B547237F87CA71BCC /* Build configuration list for PBXNativeTarget "Pods-DACircularProgress" */; + buildPhases = ( + A73FEA6295ACB31BEC3AE2B4 /* Sources */, + 66A664B8BA2A24C264347B60 /* Frameworks */, + A36BBE3C2B2A498ECA7E121D /* Headers */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = "Pods-DACircularProgress"; + productName = "Pods-DACircularProgress"; + productReference = AABCA08422CD0E72F6196C5F /* libPods-DACircularProgress.a */; + productType = "com.apple.product-type.library.static"; + }; + CE6309E0EE9C415DCA1D6900 /* Pods-Godzippa */ = { + isa = PBXNativeTarget; + buildConfigurationList = B1BD329BF383556E952E70A9 /* Build configuration list for PBXNativeTarget "Pods-Godzippa" */; + buildPhases = ( + 78D0B8A83329D479577E1525 /* Sources */, + 4E0F99A0620E84D82A7B11D6 /* Frameworks */, + C812007553B3663AC992C05A /* Headers */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = "Pods-Godzippa"; + productName = "Pods-Godzippa"; + productReference = ABF3F2199A44767678BCEB8F /* libPods-Godzippa.a */; + productType = "com.apple.product-type.library.static"; + }; + EA0106004E80381BF40BA4E8 /* Pods-SBJson */ = { + isa = PBXNativeTarget; + buildConfigurationList = DB4FA151E97D78A797DF64BD /* Build configuration list for PBXNativeTarget "Pods-SBJson" */; + buildPhases = ( + 8CECE964E796E73116DC475D /* Sources */, + 438A7A497438B3A7BB1F489B /* Frameworks */, + CE207F1AB7C7328AB4597C4D /* Headers */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = "Pods-SBJson"; + productName = "Pods-SBJson"; + productReference = F83E1690B6A5E94228448B70 /* libPods-SBJson.a */; + productType = "com.apple.product-type.library.static"; + }; + F957CDF7C0878193FD3EDB48 /* Pods-STableViewController */ = { + isa = PBXNativeTarget; + buildConfigurationList = 2CB98FDCF80DE595805BCF00 /* Build configuration list for PBXNativeTarget "Pods-STableViewController" */; + buildPhases = ( + 146B74F88FFD03C3F1E5E49A /* Sources */, + 598CF36FA5C1425DC44C92A2 /* Frameworks */, + E877E77CF85D4C0CED72B4DE /* Headers */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = "Pods-STableViewController"; + productName = "Pods-STableViewController"; + productReference = FB72F57F29F26E4B3E4F774E /* libPods-STableViewController.a */; productType = "com.apple.product-type.library.static"; }; /* End PBXNativeTarget section */ /* Begin PBXProject section */ - 90BC916F6B727ED9575295CB /* Project object */ = { + 1BD8303C8D8D44595ADAF4F8 /* Project object */ = { isa = PBXProject; attributes = { LastUpgradeCheck = 0510; }; - buildConfigurationList = C84CA766F0B00CABD15454A1 /* Build configuration list for PBXProject "Pods" */; + buildConfigurationList = 2612CD391CC7BE9A95F7E20D /* Build configuration list for PBXProject "Pods" */; compatibilityVersion = "Xcode 3.2"; developmentRegion = English; hasScannedForEncodings = 0; knownRegions = ( en, ); - mainGroup = 1C7C8810C4C92E27EF896C53; - productRefGroup = A52776769F46F28B2F3F4E48 /* Products */; + mainGroup = 048E7105F45EA73EB0D614A3; + productRefGroup = D963B9A378F1B7233D8847A7 /* Products */; projectDirPath = ""; projectRoot = ""; targets = ( - 14D13089E11DA69B9989B5D7 /* Pods */, - EDBB7D54D3DBA6D222E66ACC /* Pods-AFNetworking */, - F923B086C24D15CF9BD1F307 /* Pods-DTCoreText */, - 7AAD259F4548BFB4D392BCE8 /* Pods-DTFoundation */, - 5516FCAE39C9ADCE88363669 /* Pods-EGOCache */, - F564FE7FF3C0FFC99E487782 /* Pods-Godzippa */, - E4CE1DC0A990D7D49C2F3706 /* Pods-MBProgressHUD */, - 3407AC2ADE0234D6024C3225 /* Pods-MJRefresh */, - 5CE1CEB18F375654764E6BEE /* Pods-Mantle */, - F71420DF9662B503D8ACFF36 /* Pods-Reachability */, - D4CB5066DD4B9FA1102C148C /* Pods-SBJson */, - 246007DB8F862E25EDD87EC3 /* Pods-SDWebImage */, - 71A4FA4DD2C39B010FEF1F64 /* Pods-STableViewController */, - 1C099AB0A914FF873E22025E /* Pods-SecureUDID */, + 4D420C6AEDF459FE9E5FC522 /* Pods */, + B37E6E1C3E8E3B523811465A /* Pods-AFNetworking */, + C37FD853CB072143A5870EDB /* Pods-DACircularProgress */, + 082A9C1460279150C0A6B992 /* Pods-DTCoreText */, + 12D6EACA73735A1B258DC584 /* Pods-DTFoundation */, + 436E0A2F78024613E0497B57 /* Pods-EGOCache */, + CE6309E0EE9C415DCA1D6900 /* Pods-Godzippa */, + B2366AF3542637503A71E0A9 /* Pods-MBProgressHUD */, + 744BBE6A2B6DB06A58643241 /* Pods-MJRefresh */, + 0965509D6FC49C811309F372 /* Pods-MWPhotoBrowser */, + 5E581170A93903727961FF04 /* Pods-Mantle */, + 4BD013E38F08B8A236F2377D /* Pods-PSTCollectionView */, + 2ADE72A514F2B9DCC6AA9078 /* Pods-Reachability */, + EA0106004E80381BF40BA4E8 /* Pods-SBJson */, + 7E0C326C21065451AF915068 /* Pods-SDWebImage */, + F957CDF7C0878193FD3EDB48 /* Pods-STableViewController */, + 9094841566C2C953FA59B13F /* Pods-SecureUDID */, ); }; /* End PBXProject section */ /* Begin PBXSourcesBuildPhase section */ - 271BA0642B2F27DA3F11220A /* Sources */ = { + 0DE02F7D2505DECBCC4D1760 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - C33777998D03C1943CA5729F /* Pods-dummy.m in Sources */, + AFCBF4A05F497687F34AD888 /* NSIndexPath+PSTCollectionViewAdditions.m in Sources */, + CCF3D2A545BBDAFD1C4CACEB /* PSTCollectionView.m in Sources */, + 6AC2D31041F4EE413C9F4E45 /* PSTCollectionViewCell.m in Sources */, + E13870153338A9807A8878BA /* PSTCollectionViewController.m in Sources */, + DCDE6D0DFBCC10C1205A644A /* PSTCollectionViewData.m in Sources */, + E9111E9E95CE096CABAE1BA2 /* PSTCollectionViewFlowLayout.m in Sources */, + 33DC6DA7F54F8F7DF3225553 /* PSTCollectionViewItemKey.m in Sources */, + 5A218ED1AB25CC56FBC1CF66 /* PSTCollectionViewLayout.m in Sources */, + F6BC8B6DD9B149902E463D8D /* PSTCollectionViewUpdateItem.m in Sources */, + AB31D5125FAE4C250318E4B1 /* PSTGridLayoutInfo.m in Sources */, + 88EA4FB582B3164C4AEB354E /* PSTGridLayoutItem.m in Sources */, + CFFCA8E37D7F262FBA7A8365 /* PSTGridLayoutRow.m in Sources */, + 842AFD3C09E75E1F02193537 /* PSTGridLayoutSection.m in Sources */, + E72F57C31A7A4102ED53458B /* Pods-PSTCollectionView-dummy.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; - 3871007EE923E49BC0C7C189 /* Sources */ = { + 146B74F88FFD03C3F1E5E49A /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - F7A4BFA846605A22CB40F48A /* EXTRuntimeExtensions.m in Sources */, - 48E611DCB028272820C85F25 /* EXTScope.m in Sources */, - 74ACEBE8FC6D5F215150EAEB /* MTLJSONAdapter.m in Sources */, - F9D9AFBB20E3D04BA9F40590 /* MTLManagedObjectAdapter.m in Sources */, - F6060AD3D3D289C8F5E2E1E1 /* MTLModel+NSCoding.m in Sources */, - 982F61ACA8240D98559EF20C /* MTLModel.m in Sources */, - 28C947BC1C877387DA779D3E /* MTLReflection.m in Sources */, - 8AFFF954971550F4B9A3C48E /* MTLValueTransformer.m in Sources */, - FCC315EC9B022BB58231B39D /* NSArray+MTLManipulationAdditions.m in Sources */, - 56325DA5C191FA7D75ADCC94 /* NSDictionary+MTLManipulationAdditions.m in Sources */, - D1B7A9D9D013845DDDE157AF /* NSError+MTLModelException.m in Sources */, - 9C6D4BFC5E92F7CEFD61F772 /* NSObject+MTLComparisonAdditions.m in Sources */, - 17C8DB4DB8A058C8E99C7756 /* NSValueTransformer+MTLInversionAdditions.m in Sources */, - 1498E1CE4D319EC01BFFAB10 /* NSValueTransformer+MTLPredefinedTransformerAdditions.m in Sources */, - A561A3BE1A8675BF0FFF7668 /* Pods-Mantle-dummy.m in Sources */, + A7FB2E356B454013526BB9DD /* Pods-STableViewController-dummy.m in Sources */, + 15C2EB4A5493E74E34D469C6 /* STableViewController.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; - 58E496AEAEEBBD79F2E5FFE5 /* Sources */ = { + 48A53E7BE89381738F9E39B0 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 57EEF7C5E70A9BB7C4B0FADB /* DTAccessibilityElement.m in Sources */, - 468589F666ABDDD9A6FA07F4 /* DTAccessibilityViewProxy.m in Sources */, - 6823457F8E43FB5C9C7554F8 /* DTAnchorHTMLElement.m in Sources */, - 93784C2C01C15630CFC61D83 /* DTAttributedLabel.m in Sources */, - 7CA5F3C41A1F4A4AD8BC1FBC /* DTAttributedTextCell.m in Sources */, - 86AF24B70739E2E410382A24 /* DTAttributedTextContentView.m in Sources */, - 8189EAE9B094C139F07B5E31 /* DTAttributedTextView.m in Sources */, - F8931DEA95BB8BC72F432430 /* DTBreakHTMLElement.m in Sources */, - EF0B1DCEC8F2C6569C9E2793 /* DTCSSListStyle.m in Sources */, - 6EDBF0DABB6635A9974D4707 /* DTCSSStylesheet.m in Sources */, - 8737D39FC757F48505E97ADC /* DTColor+Compatibility.m in Sources */, - 3F2F8A5FD546EFB18686E1D1 /* DTColorFunctions.m in Sources */, - 4190B3AE187ED49E37EA4E3B /* DTCoreTextConstants.m in Sources */, - ADED2C0F4CC498E8BAFDF335 /* DTCoreTextFontCollection.m in Sources */, - DE1BFFAE508A2E2B26A7BE09 /* DTCoreTextFontDescriptor.m in Sources */, - C3666EC3988C0685E339F926 /* DTCoreTextFunctions.m in Sources */, - C628730FA336FA7325BB0E9C /* DTCoreTextGlyphRun.m in Sources */, - B5AB8DB17846A2138A288704 /* DTCoreTextLayoutFrame+Cursor.m in Sources */, - 2A29E5880992E50A2340F226 /* DTCoreTextLayoutFrame.m in Sources */, - FB997B55BB092421A61123C2 /* DTCoreTextLayoutFrameAccessibilityElementGenerator.m in Sources */, - EDB4EAEA8C8CA7582BE6524F /* DTCoreTextLayoutLine.m in Sources */, - C235636402245C5EE9811447 /* DTCoreTextLayouter.m in Sources */, - 7E2B06EBB71E73F76B965207 /* DTCoreTextParagraphStyle.m in Sources */, - 9A9D9A340943B30B067EE1B0 /* DTDictationPlaceholderTextAttachment.m in Sources */, - 511BAA36D0762088F7DDD7B9 /* DTDictationPlaceholderView.m in Sources */, - E732DB06754EA53254B94735 /* DTHTMLAttributedStringBuilder.m in Sources */, - C091864FBB955E27F86D3F85 /* DTHTMLElement.m in Sources */, - 2957FD54466B570824668768 /* DTHTMLParserNode.m in Sources */, - 76A8AF44494649F2C9921273 /* DTHTMLParserTextNode.m in Sources */, - DE032459E92803F21DAF6177 /* DTHTMLWriter.m in Sources */, - B5CF28826926F9B920F476D2 /* DTHorizontalRuleHTMLElement.m in Sources */, - C3F00385920B4655024620E7 /* DTIframeTextAttachment.m in Sources */, - 9DDF74DB7D7E5E8EF07BA04F /* DTImage+HTML.m in Sources */, - 71264C5CD1A8852E56E3F88F /* DTImageTextAttachment.m in Sources */, - E7291F024C531A2A9C013429 /* DTLazyImageView.m in Sources */, - 6D12B076ADD9EF9B2105D6D6 /* DTLinkButton.m in Sources */, - D1F439C75EC1CFFF9A2DD88D /* DTListItemHTMLElement.m in Sources */, - B299EE3F4930338CF702A3A1 /* DTObjectTextAttachment.m in Sources */, - DE6D56467B4F6118F21DCBB7 /* DTStylesheetHTMLElement.m in Sources */, - C6D22327B28AB9680C0F9DE3 /* DTTextAttachment.m in Sources */, - BDDB77AF9A58D1B79014004D /* DTTextAttachmentHTMLElement.m in Sources */, - 4EF33D5049AFA1509CF73779 /* DTTextBlock.m in Sources */, - 56537D1008A6086C62D57D36 /* DTTextHTMLElement.m in Sources */, - A833C2A3D7B70FB37A4E46DC /* DTVideoTextAttachment.m in Sources */, - E980727C56C02EF4FD745263 /* DTWebVideoView.m in Sources */, - 7A439BD4DA6EFE2F4F61EB63 /* NSAttributedString+DTCoreText.m in Sources */, - 2CA32DA7E65DF80E7C750048 /* NSAttributedString+DTDebug.m in Sources */, - 09D5C7B9E5669FC9852799A0 /* NSAttributedString+HTML.m in Sources */, - C8AD6D29FA096FD12F747DDC /* NSAttributedString+SmallCaps.m in Sources */, - 645A5C37747872C68DE2F8B2 /* NSAttributedStringRunDelegates.m in Sources */, - CFDEA7BADEE329C1A1A1EBB0 /* NSCharacterSet+HTML.m in Sources */, - 2599716241029048D12453BB /* NSCoder+DTCompatibility.m in Sources */, - 38D554163E106E1C88D223F8 /* NSDictionary+DTCoreText.m in Sources */, - 9788817922F0E81CA3356114 /* NSMutableAttributedString+HTML.m in Sources */, - AD390BCEA9D792C3957FFAF8 /* NSMutableString+HTML.m in Sources */, - CC05D3F5473B93B70829B099 /* NSScanner+HTML.m in Sources */, - EF56D323C7DE78EA9D735BE2 /* NSString+CSS.m in Sources */, - B8CABA753182C060BFA2183F /* NSString+HTML.m in Sources */, - 1557DF7243D3BE8FF57762F9 /* NSString+Paragraphs.m in Sources */, - D80BE4E29F69553549A0713E /* Pods-DTCoreText-dummy.m in Sources */, - F91E1D6B1784B35C920BAD67 /* UIFont+DTCoreText.m in Sources */, - 4AE39F5A27F3C1A67BC1F10C /* default.css.c in Sources */, + 223F4A8A89E9C73FB4F54189 /* MWCaptionView.m in Sources */, + 90962298AFD31DCC02502560 /* MWGridCell.m in Sources */, + CFBBA31FD90BF871E08273ED /* MWGridViewController.m in Sources */, + DF4AF4782FA4F7A0547EC5B1 /* MWPhoto.m in Sources */, + 8B81702969A19C620672612C /* MWPhotoBrowser.m in Sources */, + BA7B2D47CF7DEF90A7234EF1 /* MWTapDetectingImageView.m in Sources */, + 49509B5FF706B989A9F2CA27 /* MWTapDetectingView.m in Sources */, + 6C9E939DE8B59B367D5A5D85 /* MWZoomingScrollView.m in Sources */, + 534F39BC9970B65EABFA9AA2 /* Pods-MWPhotoBrowser-dummy.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; - 5DB31C8B187018C4C20B90B4 /* Sources */ = { + 4A7B46417FA226F8C062EBFB /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 4E19B321140DF0FFCAD39931 /* AFHTTPRequestOperation.m in Sources */, - D9A42AA8AC78B29F5909F2EF /* AFHTTPRequestOperationManager.m in Sources */, - 3632E9ABE4CBE8994EF0AFB2 /* AFHTTPSessionManager.m in Sources */, - ED603858C05FB7A9F4C8A998 /* AFNetworkActivityIndicatorManager.m in Sources */, - 6230463E54645081E39A2E9C /* AFNetworkReachabilityManager.m in Sources */, - 9AEAEC552D6893233463DFD1 /* AFSecurityPolicy.m in Sources */, - 3CAC6C9048BD575906F46945 /* AFURLConnectionOperation.m in Sources */, - DC639029D855700349F85E09 /* AFURLRequestSerialization.m in Sources */, - 90039C5C2F0C0A40DD688913 /* AFURLResponseSerialization.m in Sources */, - 4092F1978DB4496E053C37AB /* AFURLSessionManager.m in Sources */, - 08B673B94982357C5B554C17 /* Pods-AFNetworking-dummy.m in Sources */, - 22DC6D081D812BDC590D1790 /* UIActivityIndicatorView+AFNetworking.m in Sources */, - 9EA6F696EA65ED8F56DFF108 /* UIAlertView+AFNetworking.m in Sources */, - 6D1BA9DEA803AD732BC520C1 /* UIButton+AFNetworking.m in Sources */, - 91DA1F9D2E84A4178269769D /* UIImageView+AFNetworking.m in Sources */, - 87693E4DDCFD61DC4FE03752 /* UIProgressView+AFNetworking.m in Sources */, - FA624995017C8D9B99980ECD /* UIRefreshControl+AFNetworking.m in Sources */, - 193E008C51214B282BB15DB0 /* UIWebView+AFNetworking.m in Sources */, + B9B257CFDACBE7E1FF80397F /* Pods-Reachability-dummy.m in Sources */, + 9816B3660EA3A8BAF0DD7C71 /* Reachability.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; - 8D29B19E38F029F6C7915BD3 /* Sources */ = { + 53D70EE5EA0688E5D89825DD /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - A8A8688A740DB6DA56EF6DB5 /* NSData+Godzippa.m in Sources */, - 2414AE68EE3B87A413FAF4A6 /* NSFileManager+Godzippa.m in Sources */, - 1927D218D867C80904A9D718 /* Pods-Godzippa-dummy.m in Sources */, + 363E1A0FA0B27721606DE952 /* EGOCache.m in Sources */, + 067C00B6D9216B28AB58DBC7 /* Pods-EGOCache-dummy.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; - 9053894A398DC237175612F6 /* Sources */ = { + 5C3E4C7386E5D2FCF922DABD /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - CAF5189BCDA0A6BBE9B232F4 /* Pods-SBJson-dummy.m in Sources */, - FA3D4208009A96348BA934ED /* SBJson4Parser.m in Sources */, - 2B3CEB8B932D6275D22E365C /* SBJson4StreamParser.m in Sources */, - A56BFA99D1F1F6A6AC80DBC3 /* SBJson4StreamParserState.m in Sources */, - 41B3C717DCE4AA5E4D1BE745 /* SBJson4StreamTokeniser.m in Sources */, - EDCDAD0297C93F420DB0A137 /* SBJson4StreamWriter.m in Sources */, - 6E1B015496786B6F6BECD649 /* SBJson4StreamWriterState.m in Sources */, - 3A199E6E897D83B2FE5E0BC5 /* SBJson4Writer.m in Sources */, + 19A4A74B972EF132B8020020 /* Pods-SecureUDID-dummy.m in Sources */, + 40A6447A5505D0DBE2A9C127 /* SecureUDID.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; - 920C70FABBB472096CFA871F /* Sources */ = { + 6EA5833E99D510CDBD51772A /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - FC0C6AA4307A7E5DB2E0E360 /* Pods-Reachability-dummy.m in Sources */, - EE3D8069B5FFFB74BDBDE5A6 /* Reachability.m in Sources */, + 71FEF4DEB972B9DDF950F52C /* MBProgressHUD.m in Sources */, + 665A6D3765FE3A5EFB8471E0 /* Pods-MBProgressHUD-dummy.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; - 9B01D4DF00F7DE882F64335C /* Sources */ = { + 78D0B8A83329D479577E1525 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 6A21E94A5341699D26C493FB /* DTActivityTitleView.m in Sources */, - 10013362018CA4989D580A81 /* DTAnimatedGIF.m in Sources */, - 6352551E83620AA320F9BEAD /* DTAsyncFileDeleter.m in Sources */, - 5941F1A283E283FA9A7ACC8A /* DTBase64Coding.m in Sources */, - D860516C72317BD81E11CEB5 /* DTBlockFunctions.m in Sources */, - C6E8E09246A2749A956187B4 /* DTCoreGraphicsUtils.m in Sources */, - 5921EB579F7FAEF03FF8B6F5 /* DTCustomColoredAccessory.m in Sources */, - 1081B1832D78FB4CF7BF72F6 /* DTExtendedFileAttributes.m in Sources */, - 61674A1F9BD420367B6C7A57 /* DTFolderMonitor.m in Sources */, - E169462BDEA825EC2FFA2818 /* DTFoundationConstants.m in Sources */, - D3A3C2E147CEEFBB7FEB74EF /* DTHTMLParser.m in Sources */, - 6F8C0549CE0E74983DEB2525 /* DTLog.m in Sources */, - 3BB69F101FB7962D1F60644E /* DTPieProgressIndicator.m in Sources */, - B2BA58000A6B0F2FB85768F4 /* DTSmartPagingScrollView.m in Sources */, - BE38EC0AE62924DD67E9FE1C /* DTTiledLayerWithoutFade.m in Sources */, - 07DC747AB89E367CCFD890C2 /* DTVersion.m in Sources */, - 99392309B94CE18346DA0EA8 /* NSArray+DTError.m in Sources */, - 26AC6C444F6FAE0FAA2E760C /* NSData+DTCrypto.m in Sources */, - AA776D7C0C90F33CD7D327E3 /* NSDictionary+DTError.m in Sources */, - BD4EEE83BE46779F584C7CC7 /* NSFileWrapper+DTCopying.m in Sources */, - F3E77CD28645D885900F45DC /* NSMutableArray+DTMoving.m in Sources */, - 6E8CB74C97B4358B4A14FA53 /* NSString+DTFormatNumbers.m in Sources */, - 8C51B09BD3256961EF3080D9 /* NSString+DTPaths.m in Sources */, - 6A07B0C1D9C7D99852513FE8 /* NSString+DTURLEncoding.m in Sources */, - 12F17919DA35204E9E8190E2 /* NSString+DTUtilities.m in Sources */, - 7B712A885E3AC50A4797B179 /* NSURL+DTAppLinks.m in Sources */, - AF4C931E95064EFE6898E4B2 /* NSURL+DTComparing.m in Sources */, - 03602DA16768AA2E4F44EF9F /* NSURL+DTUnshorten.m in Sources */, - 52CAE06DBD6FA7F2C2B4B95B /* Pods-DTFoundation-dummy.m in Sources */, - DECFDFCCAC554EAE56A2A9C2 /* UIApplication+DTNetworkActivity.m in Sources */, - F2A40A1202DB1216C90862A4 /* UIImage+DTFoundation.m in Sources */, - 7B076D2975F1D808E454CF8E /* UIView+DTFoundation.m in Sources */, - C0C1AEC45B65D87312750F35 /* UIWebView+DTFoundation.m in Sources */, + 5AA8F5AF66989002E28A6D94 /* NSData+Godzippa.m in Sources */, + 1D5A7E5D16B00B048BAFF788 /* NSFileManager+Godzippa.m in Sources */, + E2206C08452B18363CC423D6 /* Pods-Godzippa-dummy.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; - AC92C9C59762CE5201D3E4FA /* Sources */ = { + 8CECE964E796E73116DC475D /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 02FDDB835C27EF636DAB16C8 /* NSData+ImageContentType.m in Sources */, - 4D178EA509151771F9471851 /* Pods-SDWebImage-dummy.m in Sources */, - 4F10F0A70F10D1D2BAF784C5 /* SDImageCache.m in Sources */, - DEFBA23CF6F4EF128E90E531 /* SDWebImageCompat.m in Sources */, - FF8CB0ABA29672C1B2634C2F /* SDWebImageDecoder.m in Sources */, - 94053C0235D66070913E143E /* SDWebImageDownloader.m in Sources */, - F5C8F6274B4C9131CFAA827F /* SDWebImageDownloaderOperation.m in Sources */, - 2CDE09CE2BD3FCE505BC0E48 /* SDWebImageManager.m in Sources */, - BDF2155F432F8BD9411CD9F8 /* SDWebImagePrefetcher.m in Sources */, - 1FD9A8ED7D34AF7E58005295 /* UIButton+WebCache.m in Sources */, - D536F373B3F30C87AEFC268D /* UIImage+GIF.m in Sources */, - 50977A6FB806F7290536C123 /* UIImage+MultiFormat.m in Sources */, - 6F0101FEEAF8EEAFA8AAA3DD /* UIImageView+HighlightedWebCache.m in Sources */, - 9D2BAA3444ECCF844DCC2D0E /* UIImageView+WebCache.m in Sources */, - 35CAD4E7E13BD530B42C2A88 /* UIView+WebCacheOperation.m in Sources */, + 8D9C8129D3F02ADDD17F102B /* Pods-SBJson-dummy.m in Sources */, + FB2D77294B5EC8315EDAD083 /* SBJson4Parser.m in Sources */, + 8DC382C53B3510E164568F70 /* SBJson4StreamParser.m in Sources */, + 01A2575BB0563E5C56ED34BC /* SBJson4StreamParserState.m in Sources */, + 84B2B80C99B6BD67A3AF450F /* SBJson4StreamTokeniser.m in Sources */, + 9DB33B3434052C9E0A215CF7 /* SBJson4StreamWriter.m in Sources */, + 39AF55564A0CAF4176CCAAA8 /* SBJson4StreamWriterState.m in Sources */, + B7AA7A70878F67070C829A93 /* SBJson4Writer.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; - AE295086C1653AEF242065A9 /* Sources */ = { + 9003FEFA4B5821553B804229 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - A21C6B68A0B246CA9CC03108 /* Pods-SecureUDID-dummy.m in Sources */, - E4A708ED5E6882982158D569 /* SecureUDID.m in Sources */, + EA3905748722914626534565 /* Pods-dummy.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; - C10FD15D7A796A7F96C0556E /* Sources */ = { + 92DD02A36479667E02F2AE78 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 207323BBA418E47FB0C5570A /* EGOCache.m in Sources */, - 9F3924124111D61A4BA8685C /* Pods-EGOCache-dummy.m in Sources */, + 2870C09F762AA3DB30D86A7E /* NSData+ImageContentType.m in Sources */, + 168F51D770168F43238D7682 /* Pods-SDWebImage-dummy.m in Sources */, + 656405A94145561EECD63A10 /* SDImageCache.m in Sources */, + 1C0CC4188DD664C6D4BD3D01 /* SDWebImageCompat.m in Sources */, + 0276C8068BEB7964A69886F6 /* SDWebImageDecoder.m in Sources */, + AEDE272F0316FF7E0D90C261 /* SDWebImageDownloader.m in Sources */, + A7A738E4B4C61EA4C4658ABE /* SDWebImageDownloaderOperation.m in Sources */, + 3E130872DB446F631E919735 /* SDWebImageManager.m in Sources */, + 8F59D1655595A142BB9ED4CD /* SDWebImagePrefetcher.m in Sources */, + B63FB37550CCE67F2C61DF65 /* UIButton+WebCache.m in Sources */, + 02955D91F3D762730E3A87E6 /* UIImage+GIF.m in Sources */, + D006A4436A29F0E44080DFB9 /* UIImage+MultiFormat.m in Sources */, + 351C6C28907D530ED829133D /* UIImageView+HighlightedWebCache.m in Sources */, + DE2B61397DA0121B9508C801 /* UIImageView+WebCache.m in Sources */, + FF8D5B336688F3803EAB3833 /* UIView+WebCacheOperation.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; - C3D75EC5880A07C7FFE4B77F /* Sources */ = { + A73FEA6295ACB31BEC3AE2B4 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - E82B8C9DE1D60F403B63D8FE /* MBProgressHUD.m in Sources */, - 960DC808B718C5A17E234BDD /* Pods-MBProgressHUD-dummy.m in Sources */, + 318EA73C445FC562A1798F41 /* DACircularProgressView.m in Sources */, + 1B39B607E3D12F2542532902 /* Pods-DACircularProgress-dummy.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; - DED9F731FC6B56D2234A4F13 /* Sources */ = { + B067C5F9BCEBF9FB0E9FA557 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - EF51ED77B13ABAA7CB745CFA /* MJRefreshComponent.m in Sources */, - 07E1C1882ADC1CE2FA6B0F55 /* MJRefreshConst.m in Sources */, - 150FF6D4FE69C5430F4A310B /* MJRefreshFooter.m in Sources */, - 8F575E11771A529DCF0FE05D /* MJRefreshGifFooter.m in Sources */, - 7D64ADF8423BB40EF10D4ADF /* MJRefreshGifHeader.m in Sources */, - F24C8AF54568D6BEDD06A674 /* MJRefreshHeader.m in Sources */, - 0D2FE5AF1FEFA62248A77602 /* MJRefreshLegendFooter.m in Sources */, - 2BFC12E3A6466342025550CC /* MJRefreshLegendHeader.m in Sources */, - A2676B4ABFF77B64F6E91ED0 /* Pods-MJRefresh-dummy.m in Sources */, - 2BA7FBFBD062CEDAD4E5DC98 /* UIScrollView+MJExtension.m in Sources */, - 648AB936C6937FF4E02FA4BB /* UIScrollView+MJRefresh.m in Sources */, - 9B47C7363665EC5AB1EBCF13 /* UIView+MJExtension.m in Sources */, + F72C248235D285A06D9A6FCE /* MJRefreshComponent.m in Sources */, + 9DFFD62A28398071EF5DE725 /* MJRefreshConst.m in Sources */, + 2CC726C0DAF27E9186824BAB /* MJRefreshFooter.m in Sources */, + C8CAB1D1F8FA8B72158EC301 /* MJRefreshGifFooter.m in Sources */, + FDECC6BC0E2E0294FD7576FC /* MJRefreshGifHeader.m in Sources */, + 249D54E19C3F9C01397C9451 /* MJRefreshHeader.m in Sources */, + D47495456F32D6DE09719881 /* MJRefreshLegendFooter.m in Sources */, + 11D13F9B0729BC6C2F0B2AB6 /* MJRefreshLegendHeader.m in Sources */, + 800294A480F64EA3157CBE6B /* Pods-MJRefresh-dummy.m in Sources */, + 972EC10517E865A57838A7C6 /* UIScrollView+MJExtension.m in Sources */, + 7273B6055BE8AA17AF21BB1F /* UIScrollView+MJRefresh.m in Sources */, + 74CC60B12A4D4453B3A81CFD /* UIView+MJExtension.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; - F56D9DC8F77D39164C09E72B /* Sources */ = { + C6D5F78DF262E3C62507786D /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 682FDEED1A6A7C8243E4AF37 /* Pods-STableViewController-dummy.m in Sources */, - 2557188806A5F77BE086DA35 /* STableViewController.m in Sources */, + EA1611767B2F0DDF8BEA8BB5 /* EXTRuntimeExtensions.m in Sources */, + 0CED5FFC23E5F7C799F1BBDF /* EXTScope.m in Sources */, + E84D88C9B04676B817E0F2D6 /* MTLJSONAdapter.m in Sources */, + 6165D092249067FE05D2F300 /* MTLManagedObjectAdapter.m in Sources */, + 3C4B4DD8F65026A18FC04783 /* MTLModel+NSCoding.m in Sources */, + 26A3BC61BC3739BEDDBA145C /* MTLModel.m in Sources */, + 0396B5FD44AFB4580FBC0F3C /* MTLReflection.m in Sources */, + 9995639EC6E18AB23A0CA2D6 /* MTLValueTransformer.m in Sources */, + D0D0C639AD58EB4AEBB1B408 /* NSArray+MTLManipulationAdditions.m in Sources */, + 8DE09B856063AAEEA495F53E /* NSDictionary+MTLManipulationAdditions.m in Sources */, + 3C3265591FCBD7A7E6721CC9 /* NSError+MTLModelException.m in Sources */, + 034DFE81051FE800FD5F607E /* NSObject+MTLComparisonAdditions.m in Sources */, + 75ACFAC8189C5C5648A6C047 /* NSValueTransformer+MTLInversionAdditions.m in Sources */, + 5002F311EB4AB7E8FB6F29B9 /* NSValueTransformer+MTLPredefinedTransformerAdditions.m in Sources */, + 6CCBDAE54825E5AB41D403E9 /* Pods-Mantle-dummy.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + E0FB6AAF1C170545B2DB415A /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + F0FE8B0ACFB0E1A07CACBD42 /* AFHTTPRequestOperation.m in Sources */, + 72A2A375F92AEF7E0A015F4D /* AFHTTPRequestOperationManager.m in Sources */, + 94782A2A822CB584053D2E85 /* AFHTTPSessionManager.m in Sources */, + 73177D1D1C1B935A38112120 /* AFNetworkActivityIndicatorManager.m in Sources */, + 74CE2EE74F28D4E9FB214EFC /* AFNetworkReachabilityManager.m in Sources */, + 938EAFD247E3113DC4FC0D34 /* AFSecurityPolicy.m in Sources */, + 8D073E4D6DAB70E9AD7519E6 /* AFURLConnectionOperation.m in Sources */, + 98A36A7AAAC2423CF7841052 /* AFURLRequestSerialization.m in Sources */, + 417EB6BBD5213EB120F49DDC /* AFURLResponseSerialization.m in Sources */, + D8BEEBA1CEF31E4EB8603A0A /* AFURLSessionManager.m in Sources */, + D884E3967842B6A51E34BE24 /* Pods-AFNetworking-dummy.m in Sources */, + 4F543701EED5C086563440E5 /* UIActivityIndicatorView+AFNetworking.m in Sources */, + FAEB4D12E4BB923FACBCB2DE /* UIAlertView+AFNetworking.m in Sources */, + 81295B5F0891A8F6981B45E8 /* UIButton+AFNetworking.m in Sources */, + 6FCEB794F332AD38DF148645 /* UIImageView+AFNetworking.m in Sources */, + 6993212012C0296C7A4D5B77 /* UIProgressView+AFNetworking.m in Sources */, + 49A48C4E9A5CB5C0573E29F6 /* UIRefreshControl+AFNetworking.m in Sources */, + 79A605EDD2B05508CFFDD0E7 /* UIWebView+AFNetworking.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + E112906F1331203FBFF73887 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + EE0E99ABD6519C8095554ACA /* DTAccessibilityElement.m in Sources */, + 5F5056A4BDD734A480C96F30 /* DTAccessibilityViewProxy.m in Sources */, + 64FF71B962A8DFCACF27C965 /* DTAnchorHTMLElement.m in Sources */, + 52F78AE898F6BD8E9C6ED83C /* DTAttributedLabel.m in Sources */, + DA4413CF46DF51285AB77BE9 /* DTAttributedTextCell.m in Sources */, + 3B9AA063A0498F6349EE4CD4 /* DTAttributedTextContentView.m in Sources */, + 982A6B51545DFDC7101E23AC /* DTAttributedTextView.m in Sources */, + D723E08618D1892E73228E61 /* DTBreakHTMLElement.m in Sources */, + 6188CBC694903FE643EF63A8 /* DTCSSListStyle.m in Sources */, + 3BB7351F385667B1073C7A42 /* DTCSSStylesheet.m in Sources */, + 49E65E25E37A655D1B2A2149 /* DTColor+Compatibility.m in Sources */, + 7DA75ADE029FF132BA1E50F9 /* DTColorFunctions.m in Sources */, + 40CC390E82B904010B21341F /* DTCoreTextConstants.m in Sources */, + 0756462E168ADA67854A26DB /* DTCoreTextFontCollection.m in Sources */, + 7C96421F392F749C8DE590D1 /* DTCoreTextFontDescriptor.m in Sources */, + F59FDCD7D4F112CCEF14C889 /* DTCoreTextFunctions.m in Sources */, + 97C6DFA55ECE1ADF8E91EF95 /* DTCoreTextGlyphRun.m in Sources */, + C189EDB1FFC03D152A1BD7A8 /* DTCoreTextLayoutFrame+Cursor.m in Sources */, + 06AFCE725C3A2C601D526337 /* DTCoreTextLayoutFrame.m in Sources */, + BDF84A076EA8085162E6649C /* DTCoreTextLayoutFrameAccessibilityElementGenerator.m in Sources */, + 4D4E22EF9ABF53A10208705A /* DTCoreTextLayoutLine.m in Sources */, + 859B13E54DE99C75D145BAFE /* DTCoreTextLayouter.m in Sources */, + A435E81952D076AC603159F1 /* DTCoreTextParagraphStyle.m in Sources */, + 8FD72B64A22E16EDBEEDDC13 /* DTDictationPlaceholderTextAttachment.m in Sources */, + 4399C07A28CC66924F98D179 /* DTDictationPlaceholderView.m in Sources */, + 2096CDB547026402D7796F37 /* DTHTMLAttributedStringBuilder.m in Sources */, + 7958328AC23A4326D2CCBE2E /* DTHTMLElement.m in Sources */, + E70E6B6B1B93BF443D9AD149 /* DTHTMLParserNode.m in Sources */, + D35BD55B95B3B28F007A1482 /* DTHTMLParserTextNode.m in Sources */, + 69A2A1E1C666A137580BDDB4 /* DTHTMLWriter.m in Sources */, + 8173015B6BC7206FEA20520A /* DTHorizontalRuleHTMLElement.m in Sources */, + AB3BEF7AF436C5EB4A680EF7 /* DTIframeTextAttachment.m in Sources */, + 316DD1BF57B73B300891DCF9 /* DTImage+HTML.m in Sources */, + C75E53CD3BDFE9AAC69BEDFA /* DTImageTextAttachment.m in Sources */, + 896980ED6C0D031EF455311C /* DTLazyImageView.m in Sources */, + 3800AAF46AF7FF0CA0460351 /* DTLinkButton.m in Sources */, + D969956942962CF7E57B9C17 /* DTListItemHTMLElement.m in Sources */, + F9E632FC9D53E1E7F49E8A12 /* DTObjectTextAttachment.m in Sources */, + DCD3136C1D977E93363C9A89 /* DTStylesheetHTMLElement.m in Sources */, + E9CEDD3CC7B13497466D2156 /* DTTextAttachment.m in Sources */, + 2BCFCD9BC243CAE3875F2C09 /* DTTextAttachmentHTMLElement.m in Sources */, + ACAE8F62FEF535A7385EDEE4 /* DTTextBlock.m in Sources */, + 59146CB6F52805903B1FA47D /* DTTextHTMLElement.m in Sources */, + C29BB29202A874DB35FF99BE /* DTVideoTextAttachment.m in Sources */, + 6C7725E8A2F88D45BD711533 /* DTWebVideoView.m in Sources */, + 4BB47E5114CB87C9DA90C0EE /* NSAttributedString+DTCoreText.m in Sources */, + 020C87160EC3157CF89FEFBD /* NSAttributedString+DTDebug.m in Sources */, + 40565216C75840FCE73CE757 /* NSAttributedString+HTML.m in Sources */, + 9248EF66FDACC79E2A2D3108 /* NSAttributedString+SmallCaps.m in Sources */, + 32628604E2894E128642EE98 /* NSAttributedStringRunDelegates.m in Sources */, + EC22FEE08608E5E2A1547ADB /* NSCharacterSet+HTML.m in Sources */, + 7E18735D1A95DAD218437363 /* NSCoder+DTCompatibility.m in Sources */, + 8AA3471802C274586E823416 /* NSDictionary+DTCoreText.m in Sources */, + 4A9FF4F5890DF192268C2653 /* NSMutableAttributedString+HTML.m in Sources */, + 9F660CA796A78116C5C071A2 /* NSMutableString+HTML.m in Sources */, + 6F2249C8B581C332CD4BF3AC /* NSScanner+HTML.m in Sources */, + 489E037069D77E49C3A986F8 /* NSString+CSS.m in Sources */, + 47CE11C2CB354D30E3B0EF6B /* NSString+HTML.m in Sources */, + 0E0258225E9A3447128FE4EA /* NSString+Paragraphs.m in Sources */, + 7FDCE62C25C741321711D79A /* Pods-DTCoreText-dummy.m in Sources */, + 4531FCB3E9DFEC3AF4A53579 /* UIFont+DTCoreText.m in Sources */, + EBDB69C13600A9CF7A0A8011 /* default.css.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + FF0A0CCB4C94210040E2E5A6 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + DE8D930E4CA749F00B0FE11C /* DTActivityTitleView.m in Sources */, + CE84B033046FDBE95A4D7A50 /* DTAnimatedGIF.m in Sources */, + CAE2FE61F20CFD6E71ABE219 /* DTAsyncFileDeleter.m in Sources */, + 24FCE1072FD2A60153C036A8 /* DTBase64Coding.m in Sources */, + EB11F133808619C0B75C9083 /* DTBlockFunctions.m in Sources */, + F59CD2FAE1A11967E35244F3 /* DTCoreGraphicsUtils.m in Sources */, + 613F989C94B2787A7E5EA92D /* DTCustomColoredAccessory.m in Sources */, + 864035EABC4EAF9D6E0991C8 /* DTExtendedFileAttributes.m in Sources */, + A4F77B569E06FEC6F566B6BB /* DTFolderMonitor.m in Sources */, + 825CF0914C5033C90D3E1B41 /* DTFoundationConstants.m in Sources */, + 03AB500AC6C2F8A6AC2784C3 /* DTHTMLParser.m in Sources */, + 2FAEE1959255C43B33A10169 /* DTLog.m in Sources */, + 980B82FDA58EA0BF7DE929E7 /* DTPieProgressIndicator.m in Sources */, + 8621E05EF6D186BA360E626E /* DTSmartPagingScrollView.m in Sources */, + 32476845937493D7782E5651 /* DTTiledLayerWithoutFade.m in Sources */, + 299480403489F2F31FEAAFA1 /* DTVersion.m in Sources */, + C974369196B98030C4CFEE6E /* NSArray+DTError.m in Sources */, + 0BB84D8DC28B0132AE20C5C0 /* NSData+DTCrypto.m in Sources */, + 25678E7EA09A08AB3AFE9E0E /* NSDictionary+DTError.m in Sources */, + BF02B1882EF664333A0758D7 /* NSFileWrapper+DTCopying.m in Sources */, + B356840B13010BEA772CF8C4 /* NSMutableArray+DTMoving.m in Sources */, + 444199BE04FE1FAE7B00FAC3 /* NSString+DTFormatNumbers.m in Sources */, + 4C793E2A5F6CF472EA83D553 /* NSString+DTPaths.m in Sources */, + 500439D7202F2BD18DBE2FF0 /* NSString+DTURLEncoding.m in Sources */, + 63B95A6E1A6296CCF2F863D7 /* NSString+DTUtilities.m in Sources */, + 365484596A8C9C8DE67D56F3 /* NSURL+DTAppLinks.m in Sources */, + AD42A9372C0319E1EEB28637 /* NSURL+DTComparing.m in Sources */, + 6A8F51E5BA70F9636F5032C1 /* NSURL+DTUnshorten.m in Sources */, + 2AD71187E46030D102B771AD /* Pods-DTFoundation-dummy.m in Sources */, + 0B5D8811CB1D9571801ABB01 /* UIApplication+DTNetworkActivity.m in Sources */, + 9AB1AB1FC97EED608AA4C6BB /* UIImage+DTFoundation.m in Sources */, + CCAFCA0612A7C78698EFE5AF /* UIView+DTFoundation.m in Sources */, + F8650B78C3069BAC9451B5B7 /* UIWebView+DTFoundation.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXSourcesBuildPhase section */ /* Begin PBXTargetDependency section */ - 154A418E45CE656728ED4824 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = "Pods-SDWebImage"; - target = 246007DB8F862E25EDD87EC3 /* Pods-SDWebImage */; - targetProxy = 38C945F1F6F6BC52E4CE665E /* PBXContainerItemProxy */; - }; - 252845096E59F9EB7428AE4F /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = "Pods-SBJson"; - target = D4CB5066DD4B9FA1102C148C /* Pods-SBJson */; - targetProxy = FE0CECC3D1513298672661F4 /* PBXContainerItemProxy */; - }; - 3F8A1F3D4F9BFD03625482CB /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = "Pods-DTFoundation"; - target = 7AAD259F4548BFB4D392BCE8 /* Pods-DTFoundation */; - targetProxy = 1739FF7FE3B342BF01E503F6 /* PBXContainerItemProxy */; - }; - 7128B2D8BBDDCBAE3EAA17F2 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = "Pods-EGOCache"; - target = 5516FCAE39C9ADCE88363669 /* Pods-EGOCache */; - targetProxy = 02AD8F81C589D205D29DB38C /* PBXContainerItemProxy */; - }; - 8431BE6D7108C8BA8D2647AA /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = "Pods-STableViewController"; - target = 71A4FA4DD2C39B010FEF1F64 /* Pods-STableViewController */; - targetProxy = B71AED8C508841B62163A219 /* PBXContainerItemProxy */; - }; - 8F55CBBE44981043A059015D /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = "Pods-MJRefresh"; - target = 3407AC2ADE0234D6024C3225 /* Pods-MJRefresh */; - targetProxy = 8E25F8235F2571BBC5DA927B /* PBXContainerItemProxy */; - }; - 90E0C2F76215FE886E6B8B11 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = "Pods-DTFoundation"; - target = 7AAD259F4548BFB4D392BCE8 /* Pods-DTFoundation */; - targetProxy = 21120104EC635683D0B4D139 /* PBXContainerItemProxy */; - }; - 9BFF5EB87C6C233A097553C6 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = "Pods-Mantle"; - target = 5CE1CEB18F375654764E6BEE /* Pods-Mantle */; - targetProxy = 7EB8709494DC6FB10B44B3BE /* PBXContainerItemProxy */; - }; - B060BD778F628281C4729922 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = "Pods-SecureUDID"; - target = 1C099AB0A914FF873E22025E /* Pods-SecureUDID */; - targetProxy = 4D573A2942931FFD1FAA6C61 /* PBXContainerItemProxy */; - }; - C90B979B0763E58C1ECB1C8C /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = "Pods-DTCoreText"; - target = F923B086C24D15CF9BD1F307 /* Pods-DTCoreText */; - targetProxy = 42261464B06A0BFF5FA815D5 /* PBXContainerItemProxy */; - }; - D965D94F70BD2ACB62A36195 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = "Pods-Godzippa"; - target = F564FE7FF3C0FFC99E487782 /* Pods-Godzippa */; - targetProxy = 9F99C0C33B43C989580614FC /* PBXContainerItemProxy */; - }; - DBC36892FC0F6C2C976F8D13 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = "Pods-Reachability"; - target = F71420DF9662B503D8ACFF36 /* Pods-Reachability */; - targetProxy = B2F393B569A411420FA898BE /* PBXContainerItemProxy */; - }; - E711A3109557099B3AF43935 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = "Pods-MBProgressHUD"; - target = E4CE1DC0A990D7D49C2F3706 /* Pods-MBProgressHUD */; - targetProxy = 4B2A182BEEF28A31FB75187D /* PBXContainerItemProxy */; - }; - FE39A11FC6BA60A53AD1C0CA /* PBXTargetDependency */ = { + 090A692A3EC783DC65C5C4E3 /* PBXTargetDependency */ = { isa = PBXTargetDependency; name = "Pods-AFNetworking"; - target = EDBB7D54D3DBA6D222E66ACC /* Pods-AFNetworking */; - targetProxy = AB93C3A70AFE14B9D5948982 /* PBXContainerItemProxy */; + target = B37E6E1C3E8E3B523811465A /* Pods-AFNetworking */; + targetProxy = A6AD488E06BCA3C59EB878A2 /* PBXContainerItemProxy */; + }; + 14FC2D2DFAC9A3AB3D5ED28F /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "Pods-PSTCollectionView"; + target = 4BD013E38F08B8A236F2377D /* Pods-PSTCollectionView */; + targetProxy = 88D3C91A3EC418896CDF497E /* PBXContainerItemProxy */; + }; + 366A157581CC6EACDF882097 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "Pods-SDWebImage"; + target = 7E0C326C21065451AF915068 /* Pods-SDWebImage */; + targetProxy = 631976BE3B8246B6F5E19A92 /* PBXContainerItemProxy */; + }; + 39FE6CAE98B0618CD0185486 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "Pods-Godzippa"; + target = CE6309E0EE9C415DCA1D6900 /* Pods-Godzippa */; + targetProxy = 508495F79596412E431019FB /* PBXContainerItemProxy */; + }; + 3BD1DF923FC280E1AE7A6B62 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "Pods-SecureUDID"; + target = 9094841566C2C953FA59B13F /* Pods-SecureUDID */; + targetProxy = FE5925C1575E02EDFB133DAA /* PBXContainerItemProxy */; + }; + 42FBEBF0CFA2760FC751A34F /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "Pods-SBJson"; + target = EA0106004E80381BF40BA4E8 /* Pods-SBJson */; + targetProxy = 70F0658C483ACCBC8FDC660B /* PBXContainerItemProxy */; + }; + 521C68F4C0A943697BB27F7E /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "Pods-SDWebImage"; + target = 7E0C326C21065451AF915068 /* Pods-SDWebImage */; + targetProxy = 2A5D83757E182FF1764DF0D3 /* PBXContainerItemProxy */; + }; + 5BC97F894CF1D0988C835A08 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "Pods-DTFoundation"; + target = 12D6EACA73735A1B258DC584 /* Pods-DTFoundation */; + targetProxy = 26D120BB399AC3540699F019 /* PBXContainerItemProxy */; + }; + 823489026E773E24982461FE /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "Pods-Reachability"; + target = 2ADE72A514F2B9DCC6AA9078 /* Pods-Reachability */; + targetProxy = F3B29824FC296E3B51275067 /* PBXContainerItemProxy */; + }; + 910A039972E83280D1A067D7 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "Pods-MBProgressHUD"; + target = B2366AF3542637503A71E0A9 /* Pods-MBProgressHUD */; + targetProxy = 580CAACDCCA97B651EA4AA07 /* PBXContainerItemProxy */; + }; + 963B89A3D101B3E423F8D4DC /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "Pods-DACircularProgress"; + target = C37FD853CB072143A5870EDB /* Pods-DACircularProgress */; + targetProxy = 9A0BF19F4DB0FCF429C0FEB4 /* PBXContainerItemProxy */; + }; + A4AB6FE0B407BED0ED73CE26 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "Pods-DTFoundation"; + target = 12D6EACA73735A1B258DC584 /* Pods-DTFoundation */; + targetProxy = 2EAF4DD89F3FE2D4C5A45551 /* PBXContainerItemProxy */; + }; + BBAE5290DF47ED0D4212F2B3 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "Pods-EGOCache"; + target = 436E0A2F78024613E0497B57 /* Pods-EGOCache */; + targetProxy = 4DFA12577713403FD6F83B81 /* PBXContainerItemProxy */; + }; + BF9295FDF54B5E75D0846B1D /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "Pods-MWPhotoBrowser"; + target = 0965509D6FC49C811309F372 /* Pods-MWPhotoBrowser */; + targetProxy = 15A30D61A20A5E5C17B5B17E /* PBXContainerItemProxy */; + }; + C1DD85958381EF1F08A2A012 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "Pods-MBProgressHUD"; + target = B2366AF3542637503A71E0A9 /* Pods-MBProgressHUD */; + targetProxy = C29477443EB7CF149D1080D1 /* PBXContainerItemProxy */; + }; + D770AA89BC1A6FD3F9D43A6C /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "Pods-DTCoreText"; + target = 082A9C1460279150C0A6B992 /* Pods-DTCoreText */; + targetProxy = 2BC3F3518815D6D67A4FED40 /* PBXContainerItemProxy */; + }; + DE7D0A24905CE995E5EFCBE3 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "Pods-STableViewController"; + target = F957CDF7C0878193FD3EDB48 /* Pods-STableViewController */; + targetProxy = 55848F7E75DA7A3FA5D26DCE /* PBXContainerItemProxy */; + }; + E3FE47800E16C98F55A7ECC9 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "Pods-DACircularProgress"; + target = C37FD853CB072143A5870EDB /* Pods-DACircularProgress */; + targetProxy = BCBA1B03B6FA1BD831856B64 /* PBXContainerItemProxy */; + }; + F278240B1CB4C3DB34162D83 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "Pods-MJRefresh"; + target = 744BBE6A2B6DB06A58643241 /* Pods-MJRefresh */; + targetProxy = 6C3EBBDC3DC47FE3D5A529A9 /* PBXContainerItemProxy */; + }; + F719C1A8D8D417DAD6B0112D /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "Pods-PSTCollectionView"; + target = 4BD013E38F08B8A236F2377D /* Pods-PSTCollectionView */; + targetProxy = B5A1AB51C68A3EB9D7A1D99B /* PBXContainerItemProxy */; + }; + FCAB09B66B418F07ED804E01 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "Pods-Mantle"; + target = 5E581170A93903727961FF04 /* Pods-Mantle */; + targetProxy = F40AF6B9C76445FB2E2F8599 /* PBXContainerItemProxy */; }; /* End PBXTargetDependency section */ /* Begin XCBuildConfiguration section */ - 0C2CBF088FD9DF20F1B6213B /* Debug */ = { + 0942852C3AB3FF1AA70570B2 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = C09B4C9B31BECE0AAEBA4764 /* Pods-DTCoreText-Private.xcconfig */; - buildSettings = { - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_PREFIX_HEADER = "Target Support Files/Pods-DTCoreText/Pods-DTCoreText-prefix.pch"; - IPHONEOS_DEPLOYMENT_TARGET = 6.0; - MTL_ENABLE_DEBUG_INFO = YES; - OTHER_LDFLAGS = ""; - OTHER_LIBTOOLFLAGS = ""; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - }; - name = Debug; - }; - 11C7803EC7FF4D9C33109F1F /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = B75F71FC4D5A158E5CBAAE4A /* Pods-Mantle-Private.xcconfig */; - buildSettings = { - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_PREFIX_HEADER = "Target Support Files/Pods-Mantle/Pods-Mantle-prefix.pch"; - IPHONEOS_DEPLOYMENT_TARGET = 6.0; - MTL_ENABLE_DEBUG_INFO = NO; - OTHER_LDFLAGS = ""; - OTHER_LIBTOOLFLAGS = ""; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - }; - name = Release; - }; - 1C8EED1B1E9ABE657F0957DC /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = CBC0B7619CE8715C3E8F9F05 /* Pods-AFNetworking-Private.xcconfig */; + baseConfigurationReference = 452A1A47C8214D431886E257 /* Pods-AFNetworking-Private.xcconfig */; buildSettings = { ENABLE_STRICT_OBJC_MSGSEND = YES; GCC_PREFIX_HEADER = "Target Support Files/Pods-AFNetworking/Pods-AFNetworking-prefix.pch"; @@ -2822,9 +3328,57 @@ }; name = Release; }; - 1E1E1BCFD85E51F02050D7C5 /* Release */ = { + 1C256E0981C8909240DF2FBE /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 90370D6EA53E520AF4DD96ED /* Pods-MJRefresh-Private.xcconfig */; + baseConfigurationReference = 293204770E373A792966B177 /* Pods-DTCoreText-Private.xcconfig */; + buildSettings = { + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_PREFIX_HEADER = "Target Support Files/Pods-DTCoreText/Pods-DTCoreText-prefix.pch"; + IPHONEOS_DEPLOYMENT_TARGET = 6.0; + MTL_ENABLE_DEBUG_INFO = NO; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + }; + name = Release; + }; + 2049B37E7B0576E52372CE7A /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = C5A0870AB9989B2BBEC561ED /* Pods.debug.xcconfig */; + buildSettings = { + ENABLE_STRICT_OBJC_MSGSEND = YES; + IPHONEOS_DEPLOYMENT_TARGET = 6.0; + MTL_ENABLE_DEBUG_INFO = YES; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PODS_ROOT = "$(SRCROOT)"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + }; + name = Debug; + }; + 216A93E86203D2877E381EF2 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 90313691E9CFB036F66A2D80 /* Pods-PSTCollectionView-Private.xcconfig */; + buildSettings = { + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_PREFIX_HEADER = "Target Support Files/Pods-PSTCollectionView/Pods-PSTCollectionView-prefix.pch"; + IPHONEOS_DEPLOYMENT_TARGET = 6.0; + MTL_ENABLE_DEBUG_INFO = YES; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + }; + name = Debug; + }; + 25431C13E59CF15E3A130FFB /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = B23EE0E23E50982654CCF67F /* Pods-MJRefresh-Private.xcconfig */; buildSettings = { ENABLE_STRICT_OBJC_MSGSEND = YES; GCC_PREFIX_HEADER = "Target Support Files/Pods-MJRefresh/Pods-MJRefresh-prefix.pch"; @@ -2838,41 +3392,9 @@ }; name = Release; }; - 2263A6926872D85E125C8F2C /* Release */ = { + 26D6FD61CE9159468059178B /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 043D98647761B600A32F118F /* Pods-Godzippa-Private.xcconfig */; - buildSettings = { - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_PREFIX_HEADER = "Target Support Files/Pods-Godzippa/Pods-Godzippa-prefix.pch"; - IPHONEOS_DEPLOYMENT_TARGET = 6.0; - MTL_ENABLE_DEBUG_INFO = NO; - OTHER_LDFLAGS = ""; - OTHER_LIBTOOLFLAGS = ""; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - }; - name = Release; - }; - 2566E5179B875303CB5F7FAB /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 9F5D12453238D4D645F3419B /* Pods.release.xcconfig */; - buildSettings = { - ENABLE_STRICT_OBJC_MSGSEND = YES; - IPHONEOS_DEPLOYMENT_TARGET = 6.0; - MTL_ENABLE_DEBUG_INFO = NO; - OTHER_LDFLAGS = ""; - OTHER_LIBTOOLFLAGS = ""; - PODS_ROOT = "$(SRCROOT)"; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - }; - name = Release; - }; - 4072D356A72448FA898FAE76 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 862B69EC37D1700792222296 /* Pods-Reachability-Private.xcconfig */; + baseConfigurationReference = F24BAB4B074FBFF651E8F6CC /* Pods-Reachability-Private.xcconfig */; buildSettings = { ENABLE_STRICT_OBJC_MSGSEND = YES; GCC_PREFIX_HEADER = "Target Support Files/Pods-Reachability/Pods-Reachability-prefix.pch"; @@ -2886,137 +3408,25 @@ }; name = Release; }; - 475425BBB28BCFFE03565041 /* Release */ = { + 32DD45A53F2E5B8D2FA9BD73 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = C09B4C9B31BECE0AAEBA4764 /* Pods-DTCoreText-Private.xcconfig */; - buildSettings = { - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_PREFIX_HEADER = "Target Support Files/Pods-DTCoreText/Pods-DTCoreText-prefix.pch"; - IPHONEOS_DEPLOYMENT_TARGET = 6.0; - MTL_ENABLE_DEBUG_INFO = NO; - OTHER_LDFLAGS = ""; - OTHER_LIBTOOLFLAGS = ""; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - }; - name = Release; - }; - 4E9BBADD7ABF5A4622326D70 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 043D98647761B600A32F118F /* Pods-Godzippa-Private.xcconfig */; - buildSettings = { - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_PREFIX_HEADER = "Target Support Files/Pods-Godzippa/Pods-Godzippa-prefix.pch"; - IPHONEOS_DEPLOYMENT_TARGET = 6.0; - MTL_ENABLE_DEBUG_INFO = YES; - OTHER_LDFLAGS = ""; - OTHER_LIBTOOLFLAGS = ""; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - }; - name = Debug; - }; - 5018CC43DB58D73A6AF30AC0 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 52247F1042D0F039DD844309 /* Pods-DTFoundation-Private.xcconfig */; - buildSettings = { - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_PREFIX_HEADER = "Target Support Files/Pods-DTFoundation/Pods-DTFoundation-prefix.pch"; - IPHONEOS_DEPLOYMENT_TARGET = 6.0; - MTL_ENABLE_DEBUG_INFO = YES; - OTHER_LDFLAGS = ""; - OTHER_LIBTOOLFLAGS = ""; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - }; - name = Debug; - }; - 639303A0087CE76FA3F2AACB /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = DD16954F60332ADFD07CC6DD /* Pods-MBProgressHUD-Private.xcconfig */; - buildSettings = { - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_PREFIX_HEADER = "Target Support Files/Pods-MBProgressHUD/Pods-MBProgressHUD-prefix.pch"; - IPHONEOS_DEPLOYMENT_TARGET = 6.0; - MTL_ENABLE_DEBUG_INFO = YES; - OTHER_LDFLAGS = ""; - OTHER_LIBTOOLFLAGS = ""; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - }; - name = Debug; - }; - 700F470686CD318E831ECF5D /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 22DC7F7C26F943CC883DABEC /* Pods-SDWebImage-Private.xcconfig */; - buildSettings = { - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_PREFIX_HEADER = "Target Support Files/Pods-SDWebImage/Pods-SDWebImage-prefix.pch"; - IPHONEOS_DEPLOYMENT_TARGET = 6.0; - MTL_ENABLE_DEBUG_INFO = NO; - OTHER_LDFLAGS = ""; - OTHER_LIBTOOLFLAGS = ""; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - }; - name = Release; - }; - 7148599659007ADE41CD4755 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 4F71A29574E0B380FE804D63 /* Pods-SecureUDID-Private.xcconfig */; - buildSettings = { - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_PREFIX_HEADER = "Target Support Files/Pods-SecureUDID/Pods-SecureUDID-prefix.pch"; - IPHONEOS_DEPLOYMENT_TARGET = 6.0; - MTL_ENABLE_DEBUG_INFO = YES; - OTHER_LDFLAGS = ""; - OTHER_LIBTOOLFLAGS = ""; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - }; - name = Debug; - }; - 71F83F3AA5A8366D45330C1E /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 90370D6EA53E520AF4DD96ED /* Pods-MJRefresh-Private.xcconfig */; - buildSettings = { - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_PREFIX_HEADER = "Target Support Files/Pods-MJRefresh/Pods-MJRefresh-prefix.pch"; - IPHONEOS_DEPLOYMENT_TARGET = 6.0; - MTL_ENABLE_DEBUG_INFO = YES; - OTHER_LDFLAGS = ""; - OTHER_LIBTOOLFLAGS = ""; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - }; - name = Debug; - }; - 8080777D3306971F8487E07D /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = AEDF710B3D9BBB4B3530BDB4 /* Pods-STableViewController-Private.xcconfig */; + baseConfigurationReference = 099DAB73D0E32ED005F070D2 /* Pods-STableViewController-Private.xcconfig */; buildSettings = { ENABLE_STRICT_OBJC_MSGSEND = YES; GCC_PREFIX_HEADER = "Target Support Files/Pods-STableViewController/Pods-STableViewController-prefix.pch"; IPHONEOS_DEPLOYMENT_TARGET = 6.0; - MTL_ENABLE_DEBUG_INFO = YES; + MTL_ENABLE_DEBUG_INFO = NO; OTHER_LDFLAGS = ""; OTHER_LIBTOOLFLAGS = ""; PRODUCT_NAME = "$(TARGET_NAME)"; SDKROOT = iphoneos; SKIP_INSTALL = YES; }; - name = Debug; + name = Release; }; - 8608610D593A775F16F4A0C0 /* Debug */ = { + 34043AFEC730309936F96611 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = CBC0B7619CE8715C3E8F9F05 /* Pods-AFNetworking-Private.xcconfig */; + baseConfigurationReference = 452A1A47C8214D431886E257 /* Pods-AFNetworking-Private.xcconfig */; buildSettings = { ENABLE_STRICT_OBJC_MSGSEND = YES; GCC_PREFIX_HEADER = "Target Support Files/Pods-AFNetworking/Pods-AFNetworking-prefix.pch"; @@ -3030,71 +3440,23 @@ }; name = Debug; }; - 88A87F73D2B38115C3B80393 /* Release */ = { + 40BDEB6F5110EF31AEC02F03 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 576D95F49662885C9F88275D /* Pods-EGOCache-Private.xcconfig */; + baseConfigurationReference = 84BD7BF6AC8F0BCF104B2026 /* Pods-MWPhotoBrowser-Private.xcconfig */; buildSettings = { ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_PREFIX_HEADER = "Target Support Files/Pods-EGOCache/Pods-EGOCache-prefix.pch"; + GCC_PREFIX_HEADER = "Target Support Files/Pods-MWPhotoBrowser/Pods-MWPhotoBrowser-prefix.pch"; IPHONEOS_DEPLOYMENT_TARGET = 6.0; - MTL_ENABLE_DEBUG_INFO = NO; + MTL_ENABLE_DEBUG_INFO = YES; OTHER_LDFLAGS = ""; OTHER_LIBTOOLFLAGS = ""; PRODUCT_NAME = "$(TARGET_NAME)"; SDKROOT = iphoneos; SKIP_INSTALL = YES; }; - name = Release; + name = Debug; }; - 8E72BBD2C785ED13A3DC1592 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 52247F1042D0F039DD844309 /* Pods-DTFoundation-Private.xcconfig */; - buildSettings = { - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_PREFIX_HEADER = "Target Support Files/Pods-DTFoundation/Pods-DTFoundation-prefix.pch"; - IPHONEOS_DEPLOYMENT_TARGET = 6.0; - MTL_ENABLE_DEBUG_INFO = NO; - OTHER_LDFLAGS = ""; - OTHER_LIBTOOLFLAGS = ""; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - }; - name = Release; - }; - 968F848956BEC49C0D0D8BA0 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 4F71A29574E0B380FE804D63 /* Pods-SecureUDID-Private.xcconfig */; - buildSettings = { - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_PREFIX_HEADER = "Target Support Files/Pods-SecureUDID/Pods-SecureUDID-prefix.pch"; - IPHONEOS_DEPLOYMENT_TARGET = 6.0; - MTL_ENABLE_DEBUG_INFO = NO; - OTHER_LDFLAGS = ""; - OTHER_LIBTOOLFLAGS = ""; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - }; - name = Release; - }; - A6C0C256C65BB625A566F9DF /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = DD16954F60332ADFD07CC6DD /* Pods-MBProgressHUD-Private.xcconfig */; - buildSettings = { - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_PREFIX_HEADER = "Target Support Files/Pods-MBProgressHUD/Pods-MBProgressHUD-prefix.pch"; - IPHONEOS_DEPLOYMENT_TARGET = 6.0; - MTL_ENABLE_DEBUG_INFO = NO; - OTHER_LDFLAGS = ""; - OTHER_LIBTOOLFLAGS = ""; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - }; - name = Release; - }; - AD59A97C310CAA8085904D1A /* Debug */ = { + 4A42BA51D20B724BAFE8C429 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; @@ -3133,121 +3495,9 @@ }; name = Debug; }; - AE190827C144AFE0131A0B16 /* Debug */ = { + 4C93BF7761F2660AB05A000D /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 88E74D6057B5692DADC10F93 /* Pods-SBJson-Private.xcconfig */; - buildSettings = { - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_PREFIX_HEADER = "Target Support Files/Pods-SBJson/Pods-SBJson-prefix.pch"; - IPHONEOS_DEPLOYMENT_TARGET = 6.0; - MTL_ENABLE_DEBUG_INFO = YES; - OTHER_LDFLAGS = ""; - OTHER_LIBTOOLFLAGS = ""; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - }; - name = Debug; - }; - AE85C6EA9EFF50C2E9F49BFD /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 88E74D6057B5692DADC10F93 /* Pods-SBJson-Private.xcconfig */; - buildSettings = { - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_PREFIX_HEADER = "Target Support Files/Pods-SBJson/Pods-SBJson-prefix.pch"; - IPHONEOS_DEPLOYMENT_TARGET = 6.0; - MTL_ENABLE_DEBUG_INFO = NO; - OTHER_LDFLAGS = ""; - OTHER_LIBTOOLFLAGS = ""; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - }; - name = Release; - }; - AF241EFC0DF06C703EEC07FC /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = B75F71FC4D5A158E5CBAAE4A /* Pods-Mantle-Private.xcconfig */; - buildSettings = { - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_PREFIX_HEADER = "Target Support Files/Pods-Mantle/Pods-Mantle-prefix.pch"; - IPHONEOS_DEPLOYMENT_TARGET = 6.0; - MTL_ENABLE_DEBUG_INFO = YES; - OTHER_LDFLAGS = ""; - OTHER_LIBTOOLFLAGS = ""; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - }; - name = Debug; - }; - B202258D06331B14EC622D79 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 576D95F49662885C9F88275D /* Pods-EGOCache-Private.xcconfig */; - buildSettings = { - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_PREFIX_HEADER = "Target Support Files/Pods-EGOCache/Pods-EGOCache-prefix.pch"; - IPHONEOS_DEPLOYMENT_TARGET = 6.0; - MTL_ENABLE_DEBUG_INFO = YES; - OTHER_LDFLAGS = ""; - OTHER_LIBTOOLFLAGS = ""; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - }; - name = Debug; - }; - D529C85CC77351FE05993355 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 22DC7F7C26F943CC883DABEC /* Pods-SDWebImage-Private.xcconfig */; - buildSettings = { - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_PREFIX_HEADER = "Target Support Files/Pods-SDWebImage/Pods-SDWebImage-prefix.pch"; - IPHONEOS_DEPLOYMENT_TARGET = 6.0; - MTL_ENABLE_DEBUG_INFO = YES; - OTHER_LDFLAGS = ""; - OTHER_LIBTOOLFLAGS = ""; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - }; - name = Debug; - }; - E84F07D663124301A2C2F40B /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 6DED580510E29228D84B181C /* Pods.debug.xcconfig */; - buildSettings = { - ENABLE_STRICT_OBJC_MSGSEND = YES; - IPHONEOS_DEPLOYMENT_TARGET = 6.0; - MTL_ENABLE_DEBUG_INFO = YES; - OTHER_LDFLAGS = ""; - OTHER_LIBTOOLFLAGS = ""; - PODS_ROOT = "$(SRCROOT)"; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - }; - name = Debug; - }; - EDCA71E732519343645C1461 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = AEDF710B3D9BBB4B3530BDB4 /* Pods-STableViewController-Private.xcconfig */; - buildSettings = { - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_PREFIX_HEADER = "Target Support Files/Pods-STableViewController/Pods-STableViewController-prefix.pch"; - IPHONEOS_DEPLOYMENT_TARGET = 6.0; - MTL_ENABLE_DEBUG_INFO = NO; - OTHER_LDFLAGS = ""; - OTHER_LIBTOOLFLAGS = ""; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - }; - name = Release; - }; - F5A3B668A75170676582C59F /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 862B69EC37D1700792222296 /* Pods-Reachability-Private.xcconfig */; + baseConfigurationReference = F24BAB4B074FBFF651E8F6CC /* Pods-Reachability-Private.xcconfig */; buildSettings = { ENABLE_STRICT_OBJC_MSGSEND = YES; GCC_PREFIX_HEADER = "Target Support Files/Pods-Reachability/Pods-Reachability-prefix.pch"; @@ -3261,7 +3511,311 @@ }; name = Debug; }; - F6719AA61F374A2EA8AE5734 /* Release */ = { + 601878FAE857809BC3DD59D6 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = AEEA3AA239E2FB8B9B74BD59 /* Pods-DTFoundation-Private.xcconfig */; + buildSettings = { + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_PREFIX_HEADER = "Target Support Files/Pods-DTFoundation/Pods-DTFoundation-prefix.pch"; + IPHONEOS_DEPLOYMENT_TARGET = 6.0; + MTL_ENABLE_DEBUG_INFO = YES; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + }; + name = Debug; + }; + 62C2AB9424BD06F170F063BD /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = E89E478BB8D8087563FC258D /* Pods-Godzippa-Private.xcconfig */; + buildSettings = { + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_PREFIX_HEADER = "Target Support Files/Pods-Godzippa/Pods-Godzippa-prefix.pch"; + IPHONEOS_DEPLOYMENT_TARGET = 6.0; + MTL_ENABLE_DEBUG_INFO = NO; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + }; + name = Release; + }; + 67E2DD955BCB027714E039DC /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 03F90A77DCEDB83871C3FCDE /* Pods-SBJson-Private.xcconfig */; + buildSettings = { + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_PREFIX_HEADER = "Target Support Files/Pods-SBJson/Pods-SBJson-prefix.pch"; + IPHONEOS_DEPLOYMENT_TARGET = 6.0; + MTL_ENABLE_DEBUG_INFO = NO; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + }; + name = Release; + }; + 71DCD508B61A46BC40B05B66 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 62892682D0C45CAB93E0BFB5 /* Pods-MBProgressHUD-Private.xcconfig */; + buildSettings = { + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_PREFIX_HEADER = "Target Support Files/Pods-MBProgressHUD/Pods-MBProgressHUD-prefix.pch"; + IPHONEOS_DEPLOYMENT_TARGET = 6.0; + MTL_ENABLE_DEBUG_INFO = YES; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + }; + name = Debug; + }; + 773B0C5DDE9EF1C9C723F93E /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = E89E478BB8D8087563FC258D /* Pods-Godzippa-Private.xcconfig */; + buildSettings = { + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_PREFIX_HEADER = "Target Support Files/Pods-Godzippa/Pods-Godzippa-prefix.pch"; + IPHONEOS_DEPLOYMENT_TARGET = 6.0; + MTL_ENABLE_DEBUG_INFO = YES; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + }; + name = Debug; + }; + 87FD1C891B80E369AA100621 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 0F368EBCC297CD54BA371764 /* Pods-SDWebImage-Private.xcconfig */; + buildSettings = { + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_PREFIX_HEADER = "Target Support Files/Pods-SDWebImage/Pods-SDWebImage-prefix.pch"; + IPHONEOS_DEPLOYMENT_TARGET = 6.0; + MTL_ENABLE_DEBUG_INFO = NO; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + }; + name = Release; + }; + 8BAC1D1B92086C78ABE5A408 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 84BD7BF6AC8F0BCF104B2026 /* Pods-MWPhotoBrowser-Private.xcconfig */; + buildSettings = { + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_PREFIX_HEADER = "Target Support Files/Pods-MWPhotoBrowser/Pods-MWPhotoBrowser-prefix.pch"; + IPHONEOS_DEPLOYMENT_TARGET = 6.0; + MTL_ENABLE_DEBUG_INFO = NO; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + }; + name = Release; + }; + 926A9B51CD28824875F47C4D /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = DE695A4BFE20BD8ABFB9B9B8 /* Pods-Mantle-Private.xcconfig */; + buildSettings = { + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_PREFIX_HEADER = "Target Support Files/Pods-Mantle/Pods-Mantle-prefix.pch"; + IPHONEOS_DEPLOYMENT_TARGET = 6.0; + MTL_ENABLE_DEBUG_INFO = NO; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + }; + name = Release; + }; + 96D2355A92DCC2F9B0464982 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 90313691E9CFB036F66A2D80 /* Pods-PSTCollectionView-Private.xcconfig */; + buildSettings = { + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_PREFIX_HEADER = "Target Support Files/Pods-PSTCollectionView/Pods-PSTCollectionView-prefix.pch"; + IPHONEOS_DEPLOYMENT_TARGET = 6.0; + MTL_ENABLE_DEBUG_INFO = NO; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + }; + name = Release; + }; + 99CCF1A0218CE648579264F7 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 62892682D0C45CAB93E0BFB5 /* Pods-MBProgressHUD-Private.xcconfig */; + buildSettings = { + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_PREFIX_HEADER = "Target Support Files/Pods-MBProgressHUD/Pods-MBProgressHUD-prefix.pch"; + IPHONEOS_DEPLOYMENT_TARGET = 6.0; + MTL_ENABLE_DEBUG_INFO = NO; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + }; + name = Release; + }; + 9A546BF63EE3725A9E667D24 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = DE695A4BFE20BD8ABFB9B9B8 /* Pods-Mantle-Private.xcconfig */; + buildSettings = { + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_PREFIX_HEADER = "Target Support Files/Pods-Mantle/Pods-Mantle-prefix.pch"; + IPHONEOS_DEPLOYMENT_TARGET = 6.0; + MTL_ENABLE_DEBUG_INFO = YES; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + }; + name = Debug; + }; + A05575F6E70BA8BA82B3735A /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 8C83144F42F9F5593EDAC0F2 /* Pods-DACircularProgress-Private.xcconfig */; + buildSettings = { + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_PREFIX_HEADER = "Target Support Files/Pods-DACircularProgress/Pods-DACircularProgress-prefix.pch"; + IPHONEOS_DEPLOYMENT_TARGET = 6.0; + MTL_ENABLE_DEBUG_INFO = YES; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + }; + name = Debug; + }; + A0E02D6BF305EA455DC494F5 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = AEEA3AA239E2FB8B9B74BD59 /* Pods-DTFoundation-Private.xcconfig */; + buildSettings = { + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_PREFIX_HEADER = "Target Support Files/Pods-DTFoundation/Pods-DTFoundation-prefix.pch"; + IPHONEOS_DEPLOYMENT_TARGET = 6.0; + MTL_ENABLE_DEBUG_INFO = NO; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + }; + name = Release; + }; + A683829F5AFBB88C1E830E97 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 03F90A77DCEDB83871C3FCDE /* Pods-SBJson-Private.xcconfig */; + buildSettings = { + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_PREFIX_HEADER = "Target Support Files/Pods-SBJson/Pods-SBJson-prefix.pch"; + IPHONEOS_DEPLOYMENT_TARGET = 6.0; + MTL_ENABLE_DEBUG_INFO = YES; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + }; + name = Debug; + }; + A996C920D9AEB2626C202606 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 34EB5CFA65095FE3625330BF /* Pods-EGOCache-Private.xcconfig */; + buildSettings = { + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_PREFIX_HEADER = "Target Support Files/Pods-EGOCache/Pods-EGOCache-prefix.pch"; + IPHONEOS_DEPLOYMENT_TARGET = 6.0; + MTL_ENABLE_DEBUG_INFO = NO; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + }; + name = Release; + }; + A9C6F22223AC8FA24E131B68 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = FEE19E4B6AD394551F002582 /* Pods-SecureUDID-Private.xcconfig */; + buildSettings = { + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_PREFIX_HEADER = "Target Support Files/Pods-SecureUDID/Pods-SecureUDID-prefix.pch"; + IPHONEOS_DEPLOYMENT_TARGET = 6.0; + MTL_ENABLE_DEBUG_INFO = NO; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + }; + name = Release; + }; + B0D3A077D732B7A9896AC2DD /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 8C83144F42F9F5593EDAC0F2 /* Pods-DACircularProgress-Private.xcconfig */; + buildSettings = { + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_PREFIX_HEADER = "Target Support Files/Pods-DACircularProgress/Pods-DACircularProgress-prefix.pch"; + IPHONEOS_DEPLOYMENT_TARGET = 6.0; + MTL_ENABLE_DEBUG_INFO = NO; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + }; + name = Release; + }; + B3FB5D25E5D105436756AE36 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 644B67330549C104D231EDFD /* Pods.release.xcconfig */; + buildSettings = { + ENABLE_STRICT_OBJC_MSGSEND = YES; + IPHONEOS_DEPLOYMENT_TARGET = 6.0; + MTL_ENABLE_DEBUG_INFO = NO; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PODS_ROOT = "$(SRCROOT)"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + }; + name = Release; + }; + B4CDE3CFDC57FEB19667160F /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = B23EE0E23E50982654CCF67F /* Pods-MJRefresh-Private.xcconfig */; + buildSettings = { + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_PREFIX_HEADER = "Target Support Files/Pods-MJRefresh/Pods-MJRefresh-prefix.pch"; + IPHONEOS_DEPLOYMENT_TARGET = 6.0; + MTL_ENABLE_DEBUG_INFO = YES; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + }; + name = Debug; + }; + B5D20B579FEBBFB90E3B64A9 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; @@ -3295,145 +3849,252 @@ }; name = Release; }; + B857775F8285F22BC55F2CA1 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 0F368EBCC297CD54BA371764 /* Pods-SDWebImage-Private.xcconfig */; + buildSettings = { + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_PREFIX_HEADER = "Target Support Files/Pods-SDWebImage/Pods-SDWebImage-prefix.pch"; + IPHONEOS_DEPLOYMENT_TARGET = 6.0; + MTL_ENABLE_DEBUG_INFO = YES; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + }; + name = Debug; + }; + CDE1EA254A86C041C411778C /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 099DAB73D0E32ED005F070D2 /* Pods-STableViewController-Private.xcconfig */; + buildSettings = { + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_PREFIX_HEADER = "Target Support Files/Pods-STableViewController/Pods-STableViewController-prefix.pch"; + IPHONEOS_DEPLOYMENT_TARGET = 6.0; + MTL_ENABLE_DEBUG_INFO = YES; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + }; + name = Debug; + }; + EE61AF35D706D9BC30EE9126 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 34EB5CFA65095FE3625330BF /* Pods-EGOCache-Private.xcconfig */; + buildSettings = { + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_PREFIX_HEADER = "Target Support Files/Pods-EGOCache/Pods-EGOCache-prefix.pch"; + IPHONEOS_DEPLOYMENT_TARGET = 6.0; + MTL_ENABLE_DEBUG_INFO = YES; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + }; + name = Debug; + }; + F50171BE31A296759AAECBFA /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 293204770E373A792966B177 /* Pods-DTCoreText-Private.xcconfig */; + buildSettings = { + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_PREFIX_HEADER = "Target Support Files/Pods-DTCoreText/Pods-DTCoreText-prefix.pch"; + IPHONEOS_DEPLOYMENT_TARGET = 6.0; + MTL_ENABLE_DEBUG_INFO = YES; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + }; + name = Debug; + }; + FEF37048D714A153ED486858 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = FEE19E4B6AD394551F002582 /* Pods-SecureUDID-Private.xcconfig */; + buildSettings = { + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_PREFIX_HEADER = "Target Support Files/Pods-SecureUDID/Pods-SecureUDID-prefix.pch"; + IPHONEOS_DEPLOYMENT_TARGET = 6.0; + MTL_ENABLE_DEBUG_INFO = YES; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + }; + name = Debug; + }; /* End XCBuildConfiguration section */ /* Begin XCConfigurationList section */ - 0224B1896EF6A709F9E14C24 /* Build configuration list for PBXNativeTarget "Pods-SDWebImage" */ = { + 245AA4CEEF178E602218A6BF /* Build configuration list for PBXNativeTarget "Pods-MWPhotoBrowser" */ = { isa = XCConfigurationList; buildConfigurations = ( - D529C85CC77351FE05993355 /* Debug */, - 700F470686CD318E831ECF5D /* Release */, + 40BDEB6F5110EF31AEC02F03 /* Debug */, + 8BAC1D1B92086C78ABE5A408 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 0899F51A4DFAE9EA982785B0 /* Build configuration list for PBXNativeTarget "Pods-Mantle" */ = { + 2612CD391CC7BE9A95F7E20D /* Build configuration list for PBXProject "Pods" */ = { isa = XCConfigurationList; buildConfigurations = ( - AF241EFC0DF06C703EEC07FC /* Debug */, - 11C7803EC7FF4D9C33109F1F /* Release */, + 4A42BA51D20B724BAFE8C429 /* Debug */, + B5D20B579FEBBFB90E3B64A9 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 1F5B8925DF3847EB18FB26EB /* Build configuration list for PBXNativeTarget "Pods-STableViewController" */ = { + 2CB98FDCF80DE595805BCF00 /* Build configuration list for PBXNativeTarget "Pods-STableViewController" */ = { isa = XCConfigurationList; buildConfigurations = ( - 8080777D3306971F8487E07D /* Debug */, - EDCA71E732519343645C1461 /* Release */, + CDE1EA254A86C041C411778C /* Debug */, + 32DD45A53F2E5B8D2FA9BD73 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 2197E30DCF1893EFFB50C950 /* Build configuration list for PBXNativeTarget "Pods-DTFoundation" */ = { + 41D4A0C3998BA319D8ADEB97 /* Build configuration list for PBXNativeTarget "Pods-MJRefresh" */ = { isa = XCConfigurationList; buildConfigurations = ( - 5018CC43DB58D73A6AF30AC0 /* Debug */, - 8E72BBD2C785ED13A3DC1592 /* Release */, + B4CDE3CFDC57FEB19667160F /* Debug */, + 25431C13E59CF15E3A130FFB /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 41C18C3F490300E87F7137C7 /* Build configuration list for PBXNativeTarget "Pods-EGOCache" */ = { + 4CE48F0FB8630375A6A7A1CC /* Build configuration list for PBXNativeTarget "Pods-Mantle" */ = { isa = XCConfigurationList; buildConfigurations = ( - B202258D06331B14EC622D79 /* Debug */, - 88A87F73D2B38115C3B80393 /* Release */, + 9A546BF63EE3725A9E667D24 /* Debug */, + 926A9B51CD28824875F47C4D /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - A4A57808D4240107C25A4D8C /* Build configuration list for PBXNativeTarget "Pods-Godzippa" */ = { + 61C9EB8B547237F87CA71BCC /* Build configuration list for PBXNativeTarget "Pods-DACircularProgress" */ = { isa = XCConfigurationList; buildConfigurations = ( - 4E9BBADD7ABF5A4622326D70 /* Debug */, - 2263A6926872D85E125C8F2C /* Release */, + A05575F6E70BA8BA82B3735A /* Debug */, + B0D3A077D732B7A9896AC2DD /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - BCDA08264FAD178F9E7902E4 /* Build configuration list for PBXNativeTarget "Pods-DTCoreText" */ = { + 6C2AA5D08BDC75A50C6DCE43 /* Build configuration list for PBXNativeTarget "Pods-MBProgressHUD" */ = { isa = XCConfigurationList; buildConfigurations = ( - 0C2CBF088FD9DF20F1B6213B /* Debug */, - 475425BBB28BCFFE03565041 /* Release */, + 71DCD508B61A46BC40B05B66 /* Debug */, + 99CCF1A0218CE648579264F7 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - BFB9722C75FA0D33477152AA /* Build configuration list for PBXNativeTarget "Pods-SBJson" */ = { + 7AEF12EFFF94781BF964AD6E /* Build configuration list for PBXNativeTarget "Pods-AFNetworking" */ = { isa = XCConfigurationList; buildConfigurations = ( - AE190827C144AFE0131A0B16 /* Debug */, - AE85C6EA9EFF50C2E9F49BFD /* Release */, + 34043AFEC730309936F96611 /* Debug */, + 0942852C3AB3FF1AA70570B2 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - C0B3FEA2AA18227702AE86D0 /* Build configuration list for PBXNativeTarget "Pods-SecureUDID" */ = { + 8948877EA0191D365876833C /* Build configuration list for PBXNativeTarget "Pods-Reachability" */ = { isa = XCConfigurationList; buildConfigurations = ( - 7148599659007ADE41CD4755 /* Debug */, - 968F848956BEC49C0D0D8BA0 /* Release */, + 4C93BF7761F2660AB05A000D /* Debug */, + 26D6FD61CE9159468059178B /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - C84CA766F0B00CABD15454A1 /* Build configuration list for PBXProject "Pods" */ = { + ABEE8D8DB32907874C098E3F /* Build configuration list for PBXNativeTarget "Pods-DTCoreText" */ = { isa = XCConfigurationList; buildConfigurations = ( - AD59A97C310CAA8085904D1A /* Debug */, - F6719AA61F374A2EA8AE5734 /* Release */, + F50171BE31A296759AAECBFA /* Debug */, + 1C256E0981C8909240DF2FBE /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - CA3E6F2226233EF570586D0B /* Build configuration list for PBXNativeTarget "Pods-AFNetworking" */ = { + B0C82DFAEAD06161DBF83CC8 /* Build configuration list for PBXNativeTarget "Pods-PSTCollectionView" */ = { isa = XCConfigurationList; buildConfigurations = ( - 8608610D593A775F16F4A0C0 /* Debug */, - 1C8EED1B1E9ABE657F0957DC /* Release */, + 216A93E86203D2877E381EF2 /* Debug */, + 96D2355A92DCC2F9B0464982 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - CD5B0112664C365774FBF164 /* Build configuration list for PBXNativeTarget "Pods-MJRefresh" */ = { + B1BD329BF383556E952E70A9 /* Build configuration list for PBXNativeTarget "Pods-Godzippa" */ = { isa = XCConfigurationList; buildConfigurations = ( - 71F83F3AA5A8366D45330C1E /* Debug */, - 1E1E1BCFD85E51F02050D7C5 /* Release */, + 773B0C5DDE9EF1C9C723F93E /* Debug */, + 62C2AB9424BD06F170F063BD /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - CEA819D71063BA6A3869EF7E /* Build configuration list for PBXNativeTarget "Pods-Reachability" */ = { + B620F5A21FF881D23ABC2281 /* Build configuration list for PBXNativeTarget "Pods-SecureUDID" */ = { isa = XCConfigurationList; buildConfigurations = ( - F5A3B668A75170676582C59F /* Debug */, - 4072D356A72448FA898FAE76 /* Release */, + FEF37048D714A153ED486858 /* Debug */, + A9C6F22223AC8FA24E131B68 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - DC81AD117F48A5D8D26DFB2F /* Build configuration list for PBXNativeTarget "Pods" */ = { + C72F14705D5402C9E28B8604 /* Build configuration list for PBXNativeTarget "Pods" */ = { isa = XCConfigurationList; buildConfigurations = ( - E84F07D663124301A2C2F40B /* Debug */, - 2566E5179B875303CB5F7FAB /* Release */, + 2049B37E7B0576E52372CE7A /* Debug */, + B3FB5D25E5D105436756AE36 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - E0312F5DB5390546EC07C28D /* Build configuration list for PBXNativeTarget "Pods-MBProgressHUD" */ = { + D2EEE339A3B160BBB693A38A /* Build configuration list for PBXNativeTarget "Pods-SDWebImage" */ = { isa = XCConfigurationList; buildConfigurations = ( - 639303A0087CE76FA3F2AACB /* Debug */, - A6C0C256C65BB625A566F9DF /* Release */, + B857775F8285F22BC55F2CA1 /* Debug */, + 87FD1C891B80E369AA100621 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + DB4FA151E97D78A797DF64BD /* Build configuration list for PBXNativeTarget "Pods-SBJson" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + A683829F5AFBB88C1E830E97 /* Debug */, + 67E2DD955BCB027714E039DC /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + DE931276C36EA5CDE4C46E12 /* Build configuration list for PBXNativeTarget "Pods-DTFoundation" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 601878FAE857809BC3DD59D6 /* Debug */, + A0E02D6BF305EA455DC494F5 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + FD951D8DA3456F7CD97F9256 /* Build configuration list for PBXNativeTarget "Pods-EGOCache" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + EE61AF35D706D9BC30EE9126 /* Debug */, + A996C920D9AEB2626C202606 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; /* End XCConfigurationList section */ }; - rootObject = 90BC916F6B727ED9575295CB /* Project object */; + rootObject = 1BD8303C8D8D44595ADAF4F8 /* Project object */; } diff --git a/Pods/Pods.xcodeproj/xcuserdata/xmfish.xcuserdatad/xcschemes/Pods-AFNetworking.xcscheme b/Pods/Pods.xcodeproj/xcuserdata/xmfish.xcuserdatad/xcschemes/Pods-AFNetworking.xcscheme index b493436..79711f6 100644 --- a/Pods/Pods.xcodeproj/xcuserdata/xmfish.xcuserdatad/xcschemes/Pods-AFNetworking.xcscheme +++ b/Pods/Pods.xcodeproj/xcuserdata/xmfish.xcuserdatad/xcschemes/Pods-AFNetworking.xcscheme @@ -14,7 +14,7 @@ buildForAnalyzing = "YES"> diff --git a/Pods/Pods.xcodeproj/xcuserdata/xmfish.xcuserdatad/xcschemes/Pods-DTCoreText.xcscheme b/Pods/Pods.xcodeproj/xcuserdata/xmfish.xcuserdatad/xcschemes/Pods-DTCoreText.xcscheme index d56aae6..d890de4 100644 --- a/Pods/Pods.xcodeproj/xcuserdata/xmfish.xcuserdatad/xcschemes/Pods-DTCoreText.xcscheme +++ b/Pods/Pods.xcodeproj/xcuserdata/xmfish.xcuserdatad/xcschemes/Pods-DTCoreText.xcscheme @@ -14,7 +14,7 @@ buildForAnalyzing = "YES"> diff --git a/Pods/Pods.xcodeproj/xcuserdata/xmfish.xcuserdatad/xcschemes/Pods-DTFoundation.xcscheme b/Pods/Pods.xcodeproj/xcuserdata/xmfish.xcuserdatad/xcschemes/Pods-DTFoundation.xcscheme index be6ec1d..82dfe04 100644 --- a/Pods/Pods.xcodeproj/xcuserdata/xmfish.xcuserdatad/xcschemes/Pods-DTFoundation.xcscheme +++ b/Pods/Pods.xcodeproj/xcuserdata/xmfish.xcuserdatad/xcschemes/Pods-DTFoundation.xcscheme @@ -14,7 +14,7 @@ buildForAnalyzing = "YES"> diff --git a/Pods/Pods.xcodeproj/xcuserdata/xmfish.xcuserdatad/xcschemes/Pods-EGOCache.xcscheme b/Pods/Pods.xcodeproj/xcuserdata/xmfish.xcuserdatad/xcschemes/Pods-EGOCache.xcscheme index 8e5244c..85c14f7 100644 --- a/Pods/Pods.xcodeproj/xcuserdata/xmfish.xcuserdatad/xcschemes/Pods-EGOCache.xcscheme +++ b/Pods/Pods.xcodeproj/xcuserdata/xmfish.xcuserdatad/xcschemes/Pods-EGOCache.xcscheme @@ -14,7 +14,7 @@ buildForAnalyzing = "YES"> diff --git a/Pods/Pods.xcodeproj/xcuserdata/xmfish.xcuserdatad/xcschemes/Pods-Godzippa.xcscheme b/Pods/Pods.xcodeproj/xcuserdata/xmfish.xcuserdatad/xcschemes/Pods-Godzippa.xcscheme index 93ab1df..a64ac78 100644 --- a/Pods/Pods.xcodeproj/xcuserdata/xmfish.xcuserdatad/xcschemes/Pods-Godzippa.xcscheme +++ b/Pods/Pods.xcodeproj/xcuserdata/xmfish.xcuserdatad/xcschemes/Pods-Godzippa.xcscheme @@ -14,7 +14,7 @@ buildForAnalyzing = "YES"> diff --git a/Pods/Pods.xcodeproj/xcuserdata/xmfish.xcuserdatad/xcschemes/Pods-MBProgressHUD.xcscheme b/Pods/Pods.xcodeproj/xcuserdata/xmfish.xcuserdatad/xcschemes/Pods-MBProgressHUD.xcscheme index e102f5a..5933fa8 100644 --- a/Pods/Pods.xcodeproj/xcuserdata/xmfish.xcuserdatad/xcschemes/Pods-MBProgressHUD.xcscheme +++ b/Pods/Pods.xcodeproj/xcuserdata/xmfish.xcuserdatad/xcschemes/Pods-MBProgressHUD.xcscheme @@ -14,7 +14,7 @@ buildForAnalyzing = "YES"> diff --git a/Pods/Pods.xcodeproj/xcuserdata/xmfish.xcuserdatad/xcschemes/Pods-MJRefresh.xcscheme b/Pods/Pods.xcodeproj/xcuserdata/xmfish.xcuserdatad/xcschemes/Pods-MJRefresh.xcscheme index ec8dd3c..783a230 100644 --- a/Pods/Pods.xcodeproj/xcuserdata/xmfish.xcuserdatad/xcschemes/Pods-MJRefresh.xcscheme +++ b/Pods/Pods.xcodeproj/xcuserdata/xmfish.xcuserdatad/xcschemes/Pods-MJRefresh.xcscheme @@ -14,7 +14,7 @@ buildForAnalyzing = "YES"> diff --git a/Pods/Pods.xcodeproj/xcuserdata/xmfish.xcuserdatad/xcschemes/Pods-Mantle.xcscheme b/Pods/Pods.xcodeproj/xcuserdata/xmfish.xcuserdatad/xcschemes/Pods-Mantle.xcscheme index 686d24b..147b96b 100644 --- a/Pods/Pods.xcodeproj/xcuserdata/xmfish.xcuserdatad/xcschemes/Pods-Mantle.xcscheme +++ b/Pods/Pods.xcodeproj/xcuserdata/xmfish.xcuserdatad/xcschemes/Pods-Mantle.xcscheme @@ -14,7 +14,7 @@ buildForAnalyzing = "YES"> diff --git a/Pods/Pods.xcodeproj/xcuserdata/xmfish.xcuserdatad/xcschemes/Pods-Reachability.xcscheme b/Pods/Pods.xcodeproj/xcuserdata/xmfish.xcuserdatad/xcschemes/Pods-Reachability.xcscheme index 163e938..e34ff31 100644 --- a/Pods/Pods.xcodeproj/xcuserdata/xmfish.xcuserdatad/xcschemes/Pods-Reachability.xcscheme +++ b/Pods/Pods.xcodeproj/xcuserdata/xmfish.xcuserdatad/xcschemes/Pods-Reachability.xcscheme @@ -14,7 +14,7 @@ buildForAnalyzing = "YES"> diff --git a/Pods/Pods.xcodeproj/xcuserdata/xmfish.xcuserdatad/xcschemes/Pods-SBJson.xcscheme b/Pods/Pods.xcodeproj/xcuserdata/xmfish.xcuserdatad/xcschemes/Pods-SBJson.xcscheme index 0a0869c..d029a6f 100644 --- a/Pods/Pods.xcodeproj/xcuserdata/xmfish.xcuserdatad/xcschemes/Pods-SBJson.xcscheme +++ b/Pods/Pods.xcodeproj/xcuserdata/xmfish.xcuserdatad/xcschemes/Pods-SBJson.xcscheme @@ -14,7 +14,7 @@ buildForAnalyzing = "YES"> diff --git a/Pods/Pods.xcodeproj/xcuserdata/xmfish.xcuserdatad/xcschemes/Pods-SDWebImage.xcscheme b/Pods/Pods.xcodeproj/xcuserdata/xmfish.xcuserdatad/xcschemes/Pods-SDWebImage.xcscheme index f560f0c..d21f838 100644 --- a/Pods/Pods.xcodeproj/xcuserdata/xmfish.xcuserdatad/xcschemes/Pods-SDWebImage.xcscheme +++ b/Pods/Pods.xcodeproj/xcuserdata/xmfish.xcuserdatad/xcschemes/Pods-SDWebImage.xcscheme @@ -14,7 +14,7 @@ buildForAnalyzing = "YES"> diff --git a/Pods/Pods.xcodeproj/xcuserdata/xmfish.xcuserdatad/xcschemes/Pods-STableViewController.xcscheme b/Pods/Pods.xcodeproj/xcuserdata/xmfish.xcuserdatad/xcschemes/Pods-STableViewController.xcscheme index f5508ec..71cd6f6 100644 --- a/Pods/Pods.xcodeproj/xcuserdata/xmfish.xcuserdatad/xcschemes/Pods-STableViewController.xcscheme +++ b/Pods/Pods.xcodeproj/xcuserdata/xmfish.xcuserdatad/xcschemes/Pods-STableViewController.xcscheme @@ -14,7 +14,7 @@ buildForAnalyzing = "YES"> diff --git a/Pods/Pods.xcodeproj/xcuserdata/xmfish.xcuserdatad/xcschemes/Pods-SecureUDID.xcscheme b/Pods/Pods.xcodeproj/xcuserdata/xmfish.xcuserdatad/xcschemes/Pods-SecureUDID.xcscheme index 038f952..4e9e43f 100644 --- a/Pods/Pods.xcodeproj/xcuserdata/xmfish.xcuserdatad/xcschemes/Pods-SecureUDID.xcscheme +++ b/Pods/Pods.xcodeproj/xcuserdata/xmfish.xcuserdatad/xcschemes/Pods-SecureUDID.xcscheme @@ -14,7 +14,7 @@ buildForAnalyzing = "YES"> diff --git a/Pods/Pods.xcodeproj/xcuserdata/xmfish.xcuserdatad/xcschemes/Pods.xcscheme b/Pods/Pods.xcodeproj/xcuserdata/xmfish.xcuserdatad/xcschemes/Pods.xcscheme index 92203c6..a1ccfd9 100644 --- a/Pods/Pods.xcodeproj/xcuserdata/xmfish.xcuserdatad/xcschemes/Pods.xcscheme +++ b/Pods/Pods.xcodeproj/xcuserdata/xmfish.xcuserdatad/xcschemes/Pods.xcscheme @@ -14,7 +14,7 @@ buildForAnalyzing = "YES"> diff --git a/Pods/Pods.xcodeproj/xcuserdata/xmfish.xcuserdatad/xcschemes/xcschememanagement.plist b/Pods/Pods.xcodeproj/xcuserdata/xmfish.xcuserdatad/xcschemes/xcschememanagement.plist index e53ed8c..168713a 100644 --- a/Pods/Pods.xcodeproj/xcuserdata/xmfish.xcuserdatad/xcschemes/xcschememanagement.plist +++ b/Pods/Pods.xcodeproj/xcuserdata/xmfish.xcuserdatad/xcschemes/xcschememanagement.plist @@ -9,6 +9,11 @@ isShown + Pods-DACircularProgress.xcscheme + + isShown + + Pods-DTCoreText.xcscheme isShown @@ -39,11 +44,21 @@ isShown + Pods-MWPhotoBrowser.xcscheme + + isShown + + Pods-Mantle.xcscheme isShown + Pods-PSTCollectionView.xcscheme + + isShown + + Pods-Reachability.xcscheme isShown @@ -77,72 +92,87 @@ SuppressBuildableAutocreation - 14D13089E11DA69B9989B5D7 + 082A9C1460279150C0A6B992 primary - 1C099AB0A914FF873E22025E + 0965509D6FC49C811309F372 primary - 246007DB8F862E25EDD87EC3 + 12D6EACA73735A1B258DC584 primary - 3407AC2ADE0234D6024C3225 + 2ADE72A514F2B9DCC6AA9078 primary - 5516FCAE39C9ADCE88363669 + 436E0A2F78024613E0497B57 primary - 5CE1CEB18F375654764E6BEE + 4BD013E38F08B8A236F2377D primary - 71A4FA4DD2C39B010FEF1F64 + 4D420C6AEDF459FE9E5FC522 primary - 7AAD259F4548BFB4D392BCE8 + 5E581170A93903727961FF04 primary - D4CB5066DD4B9FA1102C148C + 744BBE6A2B6DB06A58643241 primary - E4CE1DC0A990D7D49C2F3706 + 7E0C326C21065451AF915068 primary - EDBB7D54D3DBA6D222E66ACC + 9094841566C2C953FA59B13F primary - F564FE7FF3C0FFC99E487782 + B2366AF3542637503A71E0A9 primary - F71420DF9662B503D8ACFF36 + B37E6E1C3E8E3B523811465A primary - F923B086C24D15CF9BD1F307 + C37FD853CB072143A5870EDB + + primary + + + CE6309E0EE9C415DCA1D6900 + + primary + + + EA0106004E80381BF40BA4E8 + + primary + + + F957CDF7C0878193FD3EDB48 primary diff --git a/Pods/Target Support Files/Pods-AFNetworking/Pods-AFNetworking-Private.xcconfig b/Pods/Target Support Files/Pods-AFNetworking/Pods-AFNetworking-Private.xcconfig index 61dd248..f9b4d33 100644 --- a/Pods/Target Support Files/Pods-AFNetworking/Pods-AFNetworking-Private.xcconfig +++ b/Pods/Target Support Files/Pods-AFNetworking/Pods-AFNetworking-Private.xcconfig @@ -1,6 +1,6 @@ #include "Pods-AFNetworking.xcconfig" GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 -HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/AFNetworking" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/AFNetworking" "${PODS_ROOT}/Headers/Public/DTCoreText" "${PODS_ROOT}/Headers/Public/DTFoundation" "${PODS_ROOT}/Headers/Public/EGOCache" "${PODS_ROOT}/Headers/Public/Godzippa" "${PODS_ROOT}/Headers/Public/MBProgressHUD" "${PODS_ROOT}/Headers/Public/MJRefresh" "${PODS_ROOT}/Headers/Public/Mantle" "${PODS_ROOT}/Headers/Public/Reachability" "${PODS_ROOT}/Headers/Public/SBJson" "${PODS_ROOT}/Headers/Public/SDWebImage" "${PODS_ROOT}/Headers/Public/STableViewController" "${PODS_ROOT}/Headers/Public/SecureUDID" +HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/AFNetworking" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/AFNetworking" "${PODS_ROOT}/Headers/Public/DACircularProgress" "${PODS_ROOT}/Headers/Public/DTCoreText" "${PODS_ROOT}/Headers/Public/DTFoundation" "${PODS_ROOT}/Headers/Public/EGOCache" "${PODS_ROOT}/Headers/Public/Godzippa" "${PODS_ROOT}/Headers/Public/MBProgressHUD" "${PODS_ROOT}/Headers/Public/MJRefresh" "${PODS_ROOT}/Headers/Public/MWPhotoBrowser" "${PODS_ROOT}/Headers/Public/Mantle" "${PODS_ROOT}/Headers/Public/PSTCollectionView" "${PODS_ROOT}/Headers/Public/Reachability" "${PODS_ROOT}/Headers/Public/SBJson" "${PODS_ROOT}/Headers/Public/SDWebImage" "${PODS_ROOT}/Headers/Public/STableViewController" "${PODS_ROOT}/Headers/Public/SecureUDID" OTHER_LDFLAGS = ${PODS_AFNETWORKING_OTHER_LDFLAGS} -ObjC PODS_ROOT = ${SRCROOT} SKIP_INSTALL = YES \ No newline at end of file diff --git a/Pods/Target Support Files/Pods-DACircularProgress/Pods-DACircularProgress-Private.xcconfig b/Pods/Target Support Files/Pods-DACircularProgress/Pods-DACircularProgress-Private.xcconfig new file mode 100644 index 0000000..bbabfaa --- /dev/null +++ b/Pods/Target Support Files/Pods-DACircularProgress/Pods-DACircularProgress-Private.xcconfig @@ -0,0 +1,6 @@ +#include "Pods-DACircularProgress.xcconfig" +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/DACircularProgress" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/AFNetworking" "${PODS_ROOT}/Headers/Public/DACircularProgress" "${PODS_ROOT}/Headers/Public/DTCoreText" "${PODS_ROOT}/Headers/Public/DTFoundation" "${PODS_ROOT}/Headers/Public/EGOCache" "${PODS_ROOT}/Headers/Public/Godzippa" "${PODS_ROOT}/Headers/Public/MBProgressHUD" "${PODS_ROOT}/Headers/Public/MJRefresh" "${PODS_ROOT}/Headers/Public/MWPhotoBrowser" "${PODS_ROOT}/Headers/Public/Mantle" "${PODS_ROOT}/Headers/Public/PSTCollectionView" "${PODS_ROOT}/Headers/Public/Reachability" "${PODS_ROOT}/Headers/Public/SBJson" "${PODS_ROOT}/Headers/Public/SDWebImage" "${PODS_ROOT}/Headers/Public/STableViewController" "${PODS_ROOT}/Headers/Public/SecureUDID" +OTHER_LDFLAGS = ${PODS_DACIRCULARPROGRESS_OTHER_LDFLAGS} -ObjC +PODS_ROOT = ${SRCROOT} +SKIP_INSTALL = YES \ No newline at end of file diff --git a/Pods/Target Support Files/Pods-DACircularProgress/Pods-DACircularProgress-dummy.m b/Pods/Target Support Files/Pods-DACircularProgress/Pods-DACircularProgress-dummy.m new file mode 100644 index 0000000..42b1ea3 --- /dev/null +++ b/Pods/Target Support Files/Pods-DACircularProgress/Pods-DACircularProgress-dummy.m @@ -0,0 +1,5 @@ +#import +@interface PodsDummy_Pods_DACircularProgress : NSObject +@end +@implementation PodsDummy_Pods_DACircularProgress +@end diff --git a/Pods/Target Support Files/Pods-DACircularProgress/Pods-DACircularProgress-prefix.pch b/Pods/Target Support Files/Pods-DACircularProgress/Pods-DACircularProgress-prefix.pch new file mode 100644 index 0000000..95cf11d --- /dev/null +++ b/Pods/Target Support Files/Pods-DACircularProgress/Pods-DACircularProgress-prefix.pch @@ -0,0 +1,5 @@ +#ifdef __OBJC__ +#import +#endif + +#import "Pods-environment.h" diff --git a/Pods/Target Support Files/Pods-DACircularProgress/Pods-DACircularProgress.xcconfig b/Pods/Target Support Files/Pods-DACircularProgress/Pods-DACircularProgress.xcconfig new file mode 100644 index 0000000..3e15173 --- /dev/null +++ b/Pods/Target Support Files/Pods-DACircularProgress/Pods-DACircularProgress.xcconfig @@ -0,0 +1 @@ +PODS_DACIRCULARPROGRESS_OTHER_LDFLAGS = -framework "QuartzCore" \ No newline at end of file diff --git a/Pods/Target Support Files/Pods-DTCoreText/Pods-DTCoreText-Private.xcconfig b/Pods/Target Support Files/Pods-DTCoreText/Pods-DTCoreText-Private.xcconfig index 3fc2391..100eaae 100644 --- a/Pods/Target Support Files/Pods-DTCoreText/Pods-DTCoreText-Private.xcconfig +++ b/Pods/Target Support Files/Pods-DTCoreText/Pods-DTCoreText-Private.xcconfig @@ -1,6 +1,6 @@ #include "Pods-DTCoreText.xcconfig" GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 -HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/DTCoreText" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/AFNetworking" "${PODS_ROOT}/Headers/Public/DTCoreText" "${PODS_ROOT}/Headers/Public/DTFoundation" "${PODS_ROOT}/Headers/Public/EGOCache" "${PODS_ROOT}/Headers/Public/Godzippa" "${PODS_ROOT}/Headers/Public/MBProgressHUD" "${PODS_ROOT}/Headers/Public/MJRefresh" "${PODS_ROOT}/Headers/Public/Mantle" "${PODS_ROOT}/Headers/Public/Reachability" "${PODS_ROOT}/Headers/Public/SBJson" "${PODS_ROOT}/Headers/Public/SDWebImage" "${PODS_ROOT}/Headers/Public/STableViewController" "${PODS_ROOT}/Headers/Public/SecureUDID" +HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/DTCoreText" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/AFNetworking" "${PODS_ROOT}/Headers/Public/DACircularProgress" "${PODS_ROOT}/Headers/Public/DTCoreText" "${PODS_ROOT}/Headers/Public/DTFoundation" "${PODS_ROOT}/Headers/Public/EGOCache" "${PODS_ROOT}/Headers/Public/Godzippa" "${PODS_ROOT}/Headers/Public/MBProgressHUD" "${PODS_ROOT}/Headers/Public/MJRefresh" "${PODS_ROOT}/Headers/Public/MWPhotoBrowser" "${PODS_ROOT}/Headers/Public/Mantle" "${PODS_ROOT}/Headers/Public/PSTCollectionView" "${PODS_ROOT}/Headers/Public/Reachability" "${PODS_ROOT}/Headers/Public/SBJson" "${PODS_ROOT}/Headers/Public/SDWebImage" "${PODS_ROOT}/Headers/Public/STableViewController" "${PODS_ROOT}/Headers/Public/SecureUDID" OTHER_LDFLAGS = ${PODS_DTCORETEXT_OTHER_LDFLAGS} -ObjC PODS_ROOT = ${SRCROOT} SKIP_INSTALL = YES \ No newline at end of file diff --git a/Pods/Target Support Files/Pods-DTFoundation/Pods-DTFoundation-Private.xcconfig b/Pods/Target Support Files/Pods-DTFoundation/Pods-DTFoundation-Private.xcconfig index 282bfd4..1a861b5 100644 --- a/Pods/Target Support Files/Pods-DTFoundation/Pods-DTFoundation-Private.xcconfig +++ b/Pods/Target Support Files/Pods-DTFoundation/Pods-DTFoundation-Private.xcconfig @@ -1,6 +1,6 @@ #include "Pods-DTFoundation.xcconfig" GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 -HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/DTFoundation" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/AFNetworking" "${PODS_ROOT}/Headers/Public/DTCoreText" "${PODS_ROOT}/Headers/Public/DTFoundation" "${PODS_ROOT}/Headers/Public/EGOCache" "${PODS_ROOT}/Headers/Public/Godzippa" "${PODS_ROOT}/Headers/Public/MBProgressHUD" "${PODS_ROOT}/Headers/Public/MJRefresh" "${PODS_ROOT}/Headers/Public/Mantle" "${PODS_ROOT}/Headers/Public/Reachability" "${PODS_ROOT}/Headers/Public/SBJson" "${PODS_ROOT}/Headers/Public/SDWebImage" "${PODS_ROOT}/Headers/Public/STableViewController" "${PODS_ROOT}/Headers/Public/SecureUDID" ${PODS_DTFOUNDATION_HEADER_SEARCH_PATHS} +HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/DTFoundation" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/AFNetworking" "${PODS_ROOT}/Headers/Public/DACircularProgress" "${PODS_ROOT}/Headers/Public/DTCoreText" "${PODS_ROOT}/Headers/Public/DTFoundation" "${PODS_ROOT}/Headers/Public/EGOCache" "${PODS_ROOT}/Headers/Public/Godzippa" "${PODS_ROOT}/Headers/Public/MBProgressHUD" "${PODS_ROOT}/Headers/Public/MJRefresh" "${PODS_ROOT}/Headers/Public/MWPhotoBrowser" "${PODS_ROOT}/Headers/Public/Mantle" "${PODS_ROOT}/Headers/Public/PSTCollectionView" "${PODS_ROOT}/Headers/Public/Reachability" "${PODS_ROOT}/Headers/Public/SBJson" "${PODS_ROOT}/Headers/Public/SDWebImage" "${PODS_ROOT}/Headers/Public/STableViewController" "${PODS_ROOT}/Headers/Public/SecureUDID" ${PODS_DTFOUNDATION_HEADER_SEARCH_PATHS} OTHER_LDFLAGS = ${PODS_DTFOUNDATION_OTHER_LDFLAGS} -ObjC PODS_ROOT = ${SRCROOT} SKIP_INSTALL = YES \ No newline at end of file diff --git a/Pods/Target Support Files/Pods-EGOCache/Pods-EGOCache-Private.xcconfig b/Pods/Target Support Files/Pods-EGOCache/Pods-EGOCache-Private.xcconfig index d927088..c5d3036 100644 --- a/Pods/Target Support Files/Pods-EGOCache/Pods-EGOCache-Private.xcconfig +++ b/Pods/Target Support Files/Pods-EGOCache/Pods-EGOCache-Private.xcconfig @@ -1,6 +1,6 @@ #include "Pods-EGOCache.xcconfig" GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 -HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/EGOCache" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/AFNetworking" "${PODS_ROOT}/Headers/Public/DTCoreText" "${PODS_ROOT}/Headers/Public/DTFoundation" "${PODS_ROOT}/Headers/Public/EGOCache" "${PODS_ROOT}/Headers/Public/Godzippa" "${PODS_ROOT}/Headers/Public/MBProgressHUD" "${PODS_ROOT}/Headers/Public/MJRefresh" "${PODS_ROOT}/Headers/Public/Mantle" "${PODS_ROOT}/Headers/Public/Reachability" "${PODS_ROOT}/Headers/Public/SBJson" "${PODS_ROOT}/Headers/Public/SDWebImage" "${PODS_ROOT}/Headers/Public/STableViewController" "${PODS_ROOT}/Headers/Public/SecureUDID" +HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/EGOCache" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/AFNetworking" "${PODS_ROOT}/Headers/Public/DACircularProgress" "${PODS_ROOT}/Headers/Public/DTCoreText" "${PODS_ROOT}/Headers/Public/DTFoundation" "${PODS_ROOT}/Headers/Public/EGOCache" "${PODS_ROOT}/Headers/Public/Godzippa" "${PODS_ROOT}/Headers/Public/MBProgressHUD" "${PODS_ROOT}/Headers/Public/MJRefresh" "${PODS_ROOT}/Headers/Public/MWPhotoBrowser" "${PODS_ROOT}/Headers/Public/Mantle" "${PODS_ROOT}/Headers/Public/PSTCollectionView" "${PODS_ROOT}/Headers/Public/Reachability" "${PODS_ROOT}/Headers/Public/SBJson" "${PODS_ROOT}/Headers/Public/SDWebImage" "${PODS_ROOT}/Headers/Public/STableViewController" "${PODS_ROOT}/Headers/Public/SecureUDID" OTHER_LDFLAGS = -ObjC PODS_ROOT = ${SRCROOT} SKIP_INSTALL = YES \ No newline at end of file diff --git a/Pods/Target Support Files/Pods-Godzippa/Pods-Godzippa-Private.xcconfig b/Pods/Target Support Files/Pods-Godzippa/Pods-Godzippa-Private.xcconfig index e578b85..1aeb77b 100644 --- a/Pods/Target Support Files/Pods-Godzippa/Pods-Godzippa-Private.xcconfig +++ b/Pods/Target Support Files/Pods-Godzippa/Pods-Godzippa-Private.xcconfig @@ -1,6 +1,6 @@ #include "Pods-Godzippa.xcconfig" GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 -HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/Godzippa" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/AFNetworking" "${PODS_ROOT}/Headers/Public/DTCoreText" "${PODS_ROOT}/Headers/Public/DTFoundation" "${PODS_ROOT}/Headers/Public/EGOCache" "${PODS_ROOT}/Headers/Public/Godzippa" "${PODS_ROOT}/Headers/Public/MBProgressHUD" "${PODS_ROOT}/Headers/Public/MJRefresh" "${PODS_ROOT}/Headers/Public/Mantle" "${PODS_ROOT}/Headers/Public/Reachability" "${PODS_ROOT}/Headers/Public/SBJson" "${PODS_ROOT}/Headers/Public/SDWebImage" "${PODS_ROOT}/Headers/Public/STableViewController" "${PODS_ROOT}/Headers/Public/SecureUDID" +HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/Godzippa" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/AFNetworking" "${PODS_ROOT}/Headers/Public/DACircularProgress" "${PODS_ROOT}/Headers/Public/DTCoreText" "${PODS_ROOT}/Headers/Public/DTFoundation" "${PODS_ROOT}/Headers/Public/EGOCache" "${PODS_ROOT}/Headers/Public/Godzippa" "${PODS_ROOT}/Headers/Public/MBProgressHUD" "${PODS_ROOT}/Headers/Public/MJRefresh" "${PODS_ROOT}/Headers/Public/MWPhotoBrowser" "${PODS_ROOT}/Headers/Public/Mantle" "${PODS_ROOT}/Headers/Public/PSTCollectionView" "${PODS_ROOT}/Headers/Public/Reachability" "${PODS_ROOT}/Headers/Public/SBJson" "${PODS_ROOT}/Headers/Public/SDWebImage" "${PODS_ROOT}/Headers/Public/STableViewController" "${PODS_ROOT}/Headers/Public/SecureUDID" OTHER_LDFLAGS = ${PODS_GODZIPPA_OTHER_LDFLAGS} -ObjC PODS_ROOT = ${SRCROOT} SKIP_INSTALL = YES \ No newline at end of file diff --git a/Pods/Target Support Files/Pods-MBProgressHUD/Pods-MBProgressHUD-Private.xcconfig b/Pods/Target Support Files/Pods-MBProgressHUD/Pods-MBProgressHUD-Private.xcconfig index bc1c379..97a107b 100644 --- a/Pods/Target Support Files/Pods-MBProgressHUD/Pods-MBProgressHUD-Private.xcconfig +++ b/Pods/Target Support Files/Pods-MBProgressHUD/Pods-MBProgressHUD-Private.xcconfig @@ -1,6 +1,6 @@ #include "Pods-MBProgressHUD.xcconfig" GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 -HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/MBProgressHUD" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/AFNetworking" "${PODS_ROOT}/Headers/Public/DTCoreText" "${PODS_ROOT}/Headers/Public/DTFoundation" "${PODS_ROOT}/Headers/Public/EGOCache" "${PODS_ROOT}/Headers/Public/Godzippa" "${PODS_ROOT}/Headers/Public/MBProgressHUD" "${PODS_ROOT}/Headers/Public/MJRefresh" "${PODS_ROOT}/Headers/Public/Mantle" "${PODS_ROOT}/Headers/Public/Reachability" "${PODS_ROOT}/Headers/Public/SBJson" "${PODS_ROOT}/Headers/Public/SDWebImage" "${PODS_ROOT}/Headers/Public/STableViewController" "${PODS_ROOT}/Headers/Public/SecureUDID" +HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/MBProgressHUD" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/AFNetworking" "${PODS_ROOT}/Headers/Public/DACircularProgress" "${PODS_ROOT}/Headers/Public/DTCoreText" "${PODS_ROOT}/Headers/Public/DTFoundation" "${PODS_ROOT}/Headers/Public/EGOCache" "${PODS_ROOT}/Headers/Public/Godzippa" "${PODS_ROOT}/Headers/Public/MBProgressHUD" "${PODS_ROOT}/Headers/Public/MJRefresh" "${PODS_ROOT}/Headers/Public/MWPhotoBrowser" "${PODS_ROOT}/Headers/Public/Mantle" "${PODS_ROOT}/Headers/Public/PSTCollectionView" "${PODS_ROOT}/Headers/Public/Reachability" "${PODS_ROOT}/Headers/Public/SBJson" "${PODS_ROOT}/Headers/Public/SDWebImage" "${PODS_ROOT}/Headers/Public/STableViewController" "${PODS_ROOT}/Headers/Public/SecureUDID" OTHER_LDFLAGS = ${PODS_MBPROGRESSHUD_OTHER_LDFLAGS} -ObjC PODS_ROOT = ${SRCROOT} SKIP_INSTALL = YES \ No newline at end of file diff --git a/Pods/Target Support Files/Pods-MJRefresh/Pods-MJRefresh-Private.xcconfig b/Pods/Target Support Files/Pods-MJRefresh/Pods-MJRefresh-Private.xcconfig index 2b398bb..9ebf8c0 100644 --- a/Pods/Target Support Files/Pods-MJRefresh/Pods-MJRefresh-Private.xcconfig +++ b/Pods/Target Support Files/Pods-MJRefresh/Pods-MJRefresh-Private.xcconfig @@ -1,6 +1,6 @@ #include "Pods-MJRefresh.xcconfig" GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 -HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/MJRefresh" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/AFNetworking" "${PODS_ROOT}/Headers/Public/DTCoreText" "${PODS_ROOT}/Headers/Public/DTFoundation" "${PODS_ROOT}/Headers/Public/EGOCache" "${PODS_ROOT}/Headers/Public/Godzippa" "${PODS_ROOT}/Headers/Public/MBProgressHUD" "${PODS_ROOT}/Headers/Public/MJRefresh" "${PODS_ROOT}/Headers/Public/Mantle" "${PODS_ROOT}/Headers/Public/Reachability" "${PODS_ROOT}/Headers/Public/SBJson" "${PODS_ROOT}/Headers/Public/SDWebImage" "${PODS_ROOT}/Headers/Public/STableViewController" "${PODS_ROOT}/Headers/Public/SecureUDID" +HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/MJRefresh" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/AFNetworking" "${PODS_ROOT}/Headers/Public/DACircularProgress" "${PODS_ROOT}/Headers/Public/DTCoreText" "${PODS_ROOT}/Headers/Public/DTFoundation" "${PODS_ROOT}/Headers/Public/EGOCache" "${PODS_ROOT}/Headers/Public/Godzippa" "${PODS_ROOT}/Headers/Public/MBProgressHUD" "${PODS_ROOT}/Headers/Public/MJRefresh" "${PODS_ROOT}/Headers/Public/MWPhotoBrowser" "${PODS_ROOT}/Headers/Public/Mantle" "${PODS_ROOT}/Headers/Public/PSTCollectionView" "${PODS_ROOT}/Headers/Public/Reachability" "${PODS_ROOT}/Headers/Public/SBJson" "${PODS_ROOT}/Headers/Public/SDWebImage" "${PODS_ROOT}/Headers/Public/STableViewController" "${PODS_ROOT}/Headers/Public/SecureUDID" OTHER_LDFLAGS = -ObjC PODS_ROOT = ${SRCROOT} SKIP_INSTALL = YES \ No newline at end of file diff --git a/Pods/Target Support Files/Pods-MWPhotoBrowser/Pods-MWPhotoBrowser-Private.xcconfig b/Pods/Target Support Files/Pods-MWPhotoBrowser/Pods-MWPhotoBrowser-Private.xcconfig new file mode 100644 index 0000000..b2e25f3 --- /dev/null +++ b/Pods/Target Support Files/Pods-MWPhotoBrowser/Pods-MWPhotoBrowser-Private.xcconfig @@ -0,0 +1,6 @@ +#include "Pods-MWPhotoBrowser.xcconfig" +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/MWPhotoBrowser" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/AFNetworking" "${PODS_ROOT}/Headers/Public/DACircularProgress" "${PODS_ROOT}/Headers/Public/DTCoreText" "${PODS_ROOT}/Headers/Public/DTFoundation" "${PODS_ROOT}/Headers/Public/EGOCache" "${PODS_ROOT}/Headers/Public/Godzippa" "${PODS_ROOT}/Headers/Public/MBProgressHUD" "${PODS_ROOT}/Headers/Public/MJRefresh" "${PODS_ROOT}/Headers/Public/MWPhotoBrowser" "${PODS_ROOT}/Headers/Public/Mantle" "${PODS_ROOT}/Headers/Public/PSTCollectionView" "${PODS_ROOT}/Headers/Public/Reachability" "${PODS_ROOT}/Headers/Public/SBJson" "${PODS_ROOT}/Headers/Public/SDWebImage" "${PODS_ROOT}/Headers/Public/STableViewController" "${PODS_ROOT}/Headers/Public/SecureUDID" +OTHER_LDFLAGS = ${PODS_MWPHOTOBROWSER_OTHER_LDFLAGS} -ObjC +PODS_ROOT = ${SRCROOT} +SKIP_INSTALL = YES \ No newline at end of file diff --git a/Pods/Target Support Files/Pods-MWPhotoBrowser/Pods-MWPhotoBrowser-dummy.m b/Pods/Target Support Files/Pods-MWPhotoBrowser/Pods-MWPhotoBrowser-dummy.m new file mode 100644 index 0000000..9e0162f --- /dev/null +++ b/Pods/Target Support Files/Pods-MWPhotoBrowser/Pods-MWPhotoBrowser-dummy.m @@ -0,0 +1,5 @@ +#import +@interface PodsDummy_Pods_MWPhotoBrowser : NSObject +@end +@implementation PodsDummy_Pods_MWPhotoBrowser +@end diff --git a/Pods/Target Support Files/Pods-MWPhotoBrowser/Pods-MWPhotoBrowser-prefix.pch b/Pods/Target Support Files/Pods-MWPhotoBrowser/Pods-MWPhotoBrowser-prefix.pch new file mode 100644 index 0000000..95cf11d --- /dev/null +++ b/Pods/Target Support Files/Pods-MWPhotoBrowser/Pods-MWPhotoBrowser-prefix.pch @@ -0,0 +1,5 @@ +#ifdef __OBJC__ +#import +#endif + +#import "Pods-environment.h" diff --git a/Pods/Target Support Files/Pods-MWPhotoBrowser/Pods-MWPhotoBrowser.xcconfig b/Pods/Target Support Files/Pods-MWPhotoBrowser/Pods-MWPhotoBrowser.xcconfig new file mode 100644 index 0000000..a99d35e --- /dev/null +++ b/Pods/Target Support Files/Pods-MWPhotoBrowser/Pods-MWPhotoBrowser.xcconfig @@ -0,0 +1 @@ +PODS_MWPHOTOBROWSER_OTHER_LDFLAGS = -framework "AssetsLibrary" -framework "ImageIO" -framework "MapKit" -framework "MessageUI" -framework "QuartzCore" \ No newline at end of file diff --git a/Pods/Target Support Files/Pods-Mantle/Pods-Mantle-Private.xcconfig b/Pods/Target Support Files/Pods-Mantle/Pods-Mantle-Private.xcconfig index 241f79e..cb0224b 100644 --- a/Pods/Target Support Files/Pods-Mantle/Pods-Mantle-Private.xcconfig +++ b/Pods/Target Support Files/Pods-Mantle/Pods-Mantle-Private.xcconfig @@ -1,6 +1,6 @@ #include "Pods-Mantle.xcconfig" GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 -HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/Mantle" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/AFNetworking" "${PODS_ROOT}/Headers/Public/DTCoreText" "${PODS_ROOT}/Headers/Public/DTFoundation" "${PODS_ROOT}/Headers/Public/EGOCache" "${PODS_ROOT}/Headers/Public/Godzippa" "${PODS_ROOT}/Headers/Public/MBProgressHUD" "${PODS_ROOT}/Headers/Public/MJRefresh" "${PODS_ROOT}/Headers/Public/Mantle" "${PODS_ROOT}/Headers/Public/Reachability" "${PODS_ROOT}/Headers/Public/SBJson" "${PODS_ROOT}/Headers/Public/SDWebImage" "${PODS_ROOT}/Headers/Public/STableViewController" "${PODS_ROOT}/Headers/Public/SecureUDID" +HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/Mantle" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/AFNetworking" "${PODS_ROOT}/Headers/Public/DACircularProgress" "${PODS_ROOT}/Headers/Public/DTCoreText" "${PODS_ROOT}/Headers/Public/DTFoundation" "${PODS_ROOT}/Headers/Public/EGOCache" "${PODS_ROOT}/Headers/Public/Godzippa" "${PODS_ROOT}/Headers/Public/MBProgressHUD" "${PODS_ROOT}/Headers/Public/MJRefresh" "${PODS_ROOT}/Headers/Public/MWPhotoBrowser" "${PODS_ROOT}/Headers/Public/Mantle" "${PODS_ROOT}/Headers/Public/PSTCollectionView" "${PODS_ROOT}/Headers/Public/Reachability" "${PODS_ROOT}/Headers/Public/SBJson" "${PODS_ROOT}/Headers/Public/SDWebImage" "${PODS_ROOT}/Headers/Public/STableViewController" "${PODS_ROOT}/Headers/Public/SecureUDID" OTHER_LDFLAGS = ${PODS_MANTLE_OTHER_LDFLAGS} -ObjC PODS_ROOT = ${SRCROOT} SKIP_INSTALL = YES \ No newline at end of file diff --git a/Pods/Target Support Files/Pods-PSTCollectionView/Pods-PSTCollectionView-Private.xcconfig b/Pods/Target Support Files/Pods-PSTCollectionView/Pods-PSTCollectionView-Private.xcconfig new file mode 100644 index 0000000..120be61 --- /dev/null +++ b/Pods/Target Support Files/Pods-PSTCollectionView/Pods-PSTCollectionView-Private.xcconfig @@ -0,0 +1,6 @@ +#include "Pods-PSTCollectionView.xcconfig" +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 +HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/PSTCollectionView" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/AFNetworking" "${PODS_ROOT}/Headers/Public/DACircularProgress" "${PODS_ROOT}/Headers/Public/DTCoreText" "${PODS_ROOT}/Headers/Public/DTFoundation" "${PODS_ROOT}/Headers/Public/EGOCache" "${PODS_ROOT}/Headers/Public/Godzippa" "${PODS_ROOT}/Headers/Public/MBProgressHUD" "${PODS_ROOT}/Headers/Public/MJRefresh" "${PODS_ROOT}/Headers/Public/MWPhotoBrowser" "${PODS_ROOT}/Headers/Public/Mantle" "${PODS_ROOT}/Headers/Public/PSTCollectionView" "${PODS_ROOT}/Headers/Public/Reachability" "${PODS_ROOT}/Headers/Public/SBJson" "${PODS_ROOT}/Headers/Public/SDWebImage" "${PODS_ROOT}/Headers/Public/STableViewController" "${PODS_ROOT}/Headers/Public/SecureUDID" +OTHER_LDFLAGS = ${PODS_PSTCOLLECTIONVIEW_OTHER_LDFLAGS} -ObjC +PODS_ROOT = ${SRCROOT} +SKIP_INSTALL = YES \ No newline at end of file diff --git a/Pods/Target Support Files/Pods-PSTCollectionView/Pods-PSTCollectionView-dummy.m b/Pods/Target Support Files/Pods-PSTCollectionView/Pods-PSTCollectionView-dummy.m new file mode 100644 index 0000000..e7afdfb --- /dev/null +++ b/Pods/Target Support Files/Pods-PSTCollectionView/Pods-PSTCollectionView-dummy.m @@ -0,0 +1,5 @@ +#import +@interface PodsDummy_Pods_PSTCollectionView : NSObject +@end +@implementation PodsDummy_Pods_PSTCollectionView +@end diff --git a/Pods/Target Support Files/Pods-PSTCollectionView/Pods-PSTCollectionView-prefix.pch b/Pods/Target Support Files/Pods-PSTCollectionView/Pods-PSTCollectionView-prefix.pch new file mode 100644 index 0000000..95cf11d --- /dev/null +++ b/Pods/Target Support Files/Pods-PSTCollectionView/Pods-PSTCollectionView-prefix.pch @@ -0,0 +1,5 @@ +#ifdef __OBJC__ +#import +#endif + +#import "Pods-environment.h" diff --git a/Pods/Target Support Files/Pods-PSTCollectionView/Pods-PSTCollectionView.xcconfig b/Pods/Target Support Files/Pods-PSTCollectionView/Pods-PSTCollectionView.xcconfig new file mode 100644 index 0000000..07a1e46 --- /dev/null +++ b/Pods/Target Support Files/Pods-PSTCollectionView/Pods-PSTCollectionView.xcconfig @@ -0,0 +1 @@ +PODS_PSTCOLLECTIONVIEW_OTHER_LDFLAGS = -framework "QuartzCore" -framework "UIKit" \ No newline at end of file diff --git a/Pods/Target Support Files/Pods-Reachability/Pods-Reachability-Private.xcconfig b/Pods/Target Support Files/Pods-Reachability/Pods-Reachability-Private.xcconfig index f99b687..aa1f8d0 100644 --- a/Pods/Target Support Files/Pods-Reachability/Pods-Reachability-Private.xcconfig +++ b/Pods/Target Support Files/Pods-Reachability/Pods-Reachability-Private.xcconfig @@ -1,6 +1,6 @@ #include "Pods-Reachability.xcconfig" GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 -HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/Reachability" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/AFNetworking" "${PODS_ROOT}/Headers/Public/DTCoreText" "${PODS_ROOT}/Headers/Public/DTFoundation" "${PODS_ROOT}/Headers/Public/EGOCache" "${PODS_ROOT}/Headers/Public/Godzippa" "${PODS_ROOT}/Headers/Public/MBProgressHUD" "${PODS_ROOT}/Headers/Public/MJRefresh" "${PODS_ROOT}/Headers/Public/Mantle" "${PODS_ROOT}/Headers/Public/Reachability" "${PODS_ROOT}/Headers/Public/SBJson" "${PODS_ROOT}/Headers/Public/SDWebImage" "${PODS_ROOT}/Headers/Public/STableViewController" "${PODS_ROOT}/Headers/Public/SecureUDID" +HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/Reachability" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/AFNetworking" "${PODS_ROOT}/Headers/Public/DACircularProgress" "${PODS_ROOT}/Headers/Public/DTCoreText" "${PODS_ROOT}/Headers/Public/DTFoundation" "${PODS_ROOT}/Headers/Public/EGOCache" "${PODS_ROOT}/Headers/Public/Godzippa" "${PODS_ROOT}/Headers/Public/MBProgressHUD" "${PODS_ROOT}/Headers/Public/MJRefresh" "${PODS_ROOT}/Headers/Public/MWPhotoBrowser" "${PODS_ROOT}/Headers/Public/Mantle" "${PODS_ROOT}/Headers/Public/PSTCollectionView" "${PODS_ROOT}/Headers/Public/Reachability" "${PODS_ROOT}/Headers/Public/SBJson" "${PODS_ROOT}/Headers/Public/SDWebImage" "${PODS_ROOT}/Headers/Public/STableViewController" "${PODS_ROOT}/Headers/Public/SecureUDID" OTHER_LDFLAGS = ${PODS_REACHABILITY_OTHER_LDFLAGS} -ObjC PODS_ROOT = ${SRCROOT} SKIP_INSTALL = YES \ No newline at end of file diff --git a/Pods/Target Support Files/Pods-SBJson/Pods-SBJson-Private.xcconfig b/Pods/Target Support Files/Pods-SBJson/Pods-SBJson-Private.xcconfig index 4b8e057..a791484 100644 --- a/Pods/Target Support Files/Pods-SBJson/Pods-SBJson-Private.xcconfig +++ b/Pods/Target Support Files/Pods-SBJson/Pods-SBJson-Private.xcconfig @@ -1,6 +1,6 @@ #include "Pods-SBJson.xcconfig" GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 -HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/SBJson" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/AFNetworking" "${PODS_ROOT}/Headers/Public/DTCoreText" "${PODS_ROOT}/Headers/Public/DTFoundation" "${PODS_ROOT}/Headers/Public/EGOCache" "${PODS_ROOT}/Headers/Public/Godzippa" "${PODS_ROOT}/Headers/Public/MBProgressHUD" "${PODS_ROOT}/Headers/Public/MJRefresh" "${PODS_ROOT}/Headers/Public/Mantle" "${PODS_ROOT}/Headers/Public/Reachability" "${PODS_ROOT}/Headers/Public/SBJson" "${PODS_ROOT}/Headers/Public/SDWebImage" "${PODS_ROOT}/Headers/Public/STableViewController" "${PODS_ROOT}/Headers/Public/SecureUDID" +HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/SBJson" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/AFNetworking" "${PODS_ROOT}/Headers/Public/DACircularProgress" "${PODS_ROOT}/Headers/Public/DTCoreText" "${PODS_ROOT}/Headers/Public/DTFoundation" "${PODS_ROOT}/Headers/Public/EGOCache" "${PODS_ROOT}/Headers/Public/Godzippa" "${PODS_ROOT}/Headers/Public/MBProgressHUD" "${PODS_ROOT}/Headers/Public/MJRefresh" "${PODS_ROOT}/Headers/Public/MWPhotoBrowser" "${PODS_ROOT}/Headers/Public/Mantle" "${PODS_ROOT}/Headers/Public/PSTCollectionView" "${PODS_ROOT}/Headers/Public/Reachability" "${PODS_ROOT}/Headers/Public/SBJson" "${PODS_ROOT}/Headers/Public/SDWebImage" "${PODS_ROOT}/Headers/Public/STableViewController" "${PODS_ROOT}/Headers/Public/SecureUDID" OTHER_LDFLAGS = -ObjC PODS_ROOT = ${SRCROOT} SKIP_INSTALL = YES \ No newline at end of file diff --git a/Pods/Target Support Files/Pods-SDWebImage/Pods-SDWebImage-Private.xcconfig b/Pods/Target Support Files/Pods-SDWebImage/Pods-SDWebImage-Private.xcconfig index 8958598..4bce134 100644 --- a/Pods/Target Support Files/Pods-SDWebImage/Pods-SDWebImage-Private.xcconfig +++ b/Pods/Target Support Files/Pods-SDWebImage/Pods-SDWebImage-Private.xcconfig @@ -1,6 +1,6 @@ #include "Pods-SDWebImage.xcconfig" GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 -HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/SDWebImage" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/AFNetworking" "${PODS_ROOT}/Headers/Public/DTCoreText" "${PODS_ROOT}/Headers/Public/DTFoundation" "${PODS_ROOT}/Headers/Public/EGOCache" "${PODS_ROOT}/Headers/Public/Godzippa" "${PODS_ROOT}/Headers/Public/MBProgressHUD" "${PODS_ROOT}/Headers/Public/MJRefresh" "${PODS_ROOT}/Headers/Public/Mantle" "${PODS_ROOT}/Headers/Public/Reachability" "${PODS_ROOT}/Headers/Public/SBJson" "${PODS_ROOT}/Headers/Public/SDWebImage" "${PODS_ROOT}/Headers/Public/STableViewController" "${PODS_ROOT}/Headers/Public/SecureUDID" +HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/SDWebImage" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/AFNetworking" "${PODS_ROOT}/Headers/Public/DACircularProgress" "${PODS_ROOT}/Headers/Public/DTCoreText" "${PODS_ROOT}/Headers/Public/DTFoundation" "${PODS_ROOT}/Headers/Public/EGOCache" "${PODS_ROOT}/Headers/Public/Godzippa" "${PODS_ROOT}/Headers/Public/MBProgressHUD" "${PODS_ROOT}/Headers/Public/MJRefresh" "${PODS_ROOT}/Headers/Public/MWPhotoBrowser" "${PODS_ROOT}/Headers/Public/Mantle" "${PODS_ROOT}/Headers/Public/PSTCollectionView" "${PODS_ROOT}/Headers/Public/Reachability" "${PODS_ROOT}/Headers/Public/SBJson" "${PODS_ROOT}/Headers/Public/SDWebImage" "${PODS_ROOT}/Headers/Public/STableViewController" "${PODS_ROOT}/Headers/Public/SecureUDID" OTHER_LDFLAGS = ${PODS_SDWEBIMAGE_OTHER_LDFLAGS} -ObjC PODS_ROOT = ${SRCROOT} SKIP_INSTALL = YES \ No newline at end of file diff --git a/Pods/Target Support Files/Pods-STableViewController/Pods-STableViewController-Private.xcconfig b/Pods/Target Support Files/Pods-STableViewController/Pods-STableViewController-Private.xcconfig index 0876c9e..dbfad6b 100644 --- a/Pods/Target Support Files/Pods-STableViewController/Pods-STableViewController-Private.xcconfig +++ b/Pods/Target Support Files/Pods-STableViewController/Pods-STableViewController-Private.xcconfig @@ -1,6 +1,6 @@ #include "Pods-STableViewController.xcconfig" GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 -HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/STableViewController" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/AFNetworking" "${PODS_ROOT}/Headers/Public/DTCoreText" "${PODS_ROOT}/Headers/Public/DTFoundation" "${PODS_ROOT}/Headers/Public/EGOCache" "${PODS_ROOT}/Headers/Public/Godzippa" "${PODS_ROOT}/Headers/Public/MBProgressHUD" "${PODS_ROOT}/Headers/Public/MJRefresh" "${PODS_ROOT}/Headers/Public/Mantle" "${PODS_ROOT}/Headers/Public/Reachability" "${PODS_ROOT}/Headers/Public/SBJson" "${PODS_ROOT}/Headers/Public/SDWebImage" "${PODS_ROOT}/Headers/Public/STableViewController" "${PODS_ROOT}/Headers/Public/SecureUDID" +HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/STableViewController" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/AFNetworking" "${PODS_ROOT}/Headers/Public/DACircularProgress" "${PODS_ROOT}/Headers/Public/DTCoreText" "${PODS_ROOT}/Headers/Public/DTFoundation" "${PODS_ROOT}/Headers/Public/EGOCache" "${PODS_ROOT}/Headers/Public/Godzippa" "${PODS_ROOT}/Headers/Public/MBProgressHUD" "${PODS_ROOT}/Headers/Public/MJRefresh" "${PODS_ROOT}/Headers/Public/MWPhotoBrowser" "${PODS_ROOT}/Headers/Public/Mantle" "${PODS_ROOT}/Headers/Public/PSTCollectionView" "${PODS_ROOT}/Headers/Public/Reachability" "${PODS_ROOT}/Headers/Public/SBJson" "${PODS_ROOT}/Headers/Public/SDWebImage" "${PODS_ROOT}/Headers/Public/STableViewController" "${PODS_ROOT}/Headers/Public/SecureUDID" OTHER_LDFLAGS = -ObjC PODS_ROOT = ${SRCROOT} SKIP_INSTALL = YES \ No newline at end of file diff --git a/Pods/Target Support Files/Pods-SecureUDID/Pods-SecureUDID-Private.xcconfig b/Pods/Target Support Files/Pods-SecureUDID/Pods-SecureUDID-Private.xcconfig index b898e79..e953071 100644 --- a/Pods/Target Support Files/Pods-SecureUDID/Pods-SecureUDID-Private.xcconfig +++ b/Pods/Target Support Files/Pods-SecureUDID/Pods-SecureUDID-Private.xcconfig @@ -1,6 +1,6 @@ #include "Pods-SecureUDID.xcconfig" GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 -HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/SecureUDID" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/AFNetworking" "${PODS_ROOT}/Headers/Public/DTCoreText" "${PODS_ROOT}/Headers/Public/DTFoundation" "${PODS_ROOT}/Headers/Public/EGOCache" "${PODS_ROOT}/Headers/Public/Godzippa" "${PODS_ROOT}/Headers/Public/MBProgressHUD" "${PODS_ROOT}/Headers/Public/MJRefresh" "${PODS_ROOT}/Headers/Public/Mantle" "${PODS_ROOT}/Headers/Public/Reachability" "${PODS_ROOT}/Headers/Public/SBJson" "${PODS_ROOT}/Headers/Public/SDWebImage" "${PODS_ROOT}/Headers/Public/STableViewController" "${PODS_ROOT}/Headers/Public/SecureUDID" +HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/SecureUDID" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/AFNetworking" "${PODS_ROOT}/Headers/Public/DACircularProgress" "${PODS_ROOT}/Headers/Public/DTCoreText" "${PODS_ROOT}/Headers/Public/DTFoundation" "${PODS_ROOT}/Headers/Public/EGOCache" "${PODS_ROOT}/Headers/Public/Godzippa" "${PODS_ROOT}/Headers/Public/MBProgressHUD" "${PODS_ROOT}/Headers/Public/MJRefresh" "${PODS_ROOT}/Headers/Public/MWPhotoBrowser" "${PODS_ROOT}/Headers/Public/Mantle" "${PODS_ROOT}/Headers/Public/PSTCollectionView" "${PODS_ROOT}/Headers/Public/Reachability" "${PODS_ROOT}/Headers/Public/SBJson" "${PODS_ROOT}/Headers/Public/SDWebImage" "${PODS_ROOT}/Headers/Public/STableViewController" "${PODS_ROOT}/Headers/Public/SecureUDID" OTHER_LDFLAGS = -ObjC PODS_ROOT = ${SRCROOT} SKIP_INSTALL = YES \ No newline at end of file diff --git a/Pods/Target Support Files/Pods/Pods-acknowledgements.markdown b/Pods/Target Support Files/Pods/Pods-acknowledgements.markdown index be90cc9..0b02377 100644 --- a/Pods/Target Support Files/Pods/Pods-acknowledgements.markdown +++ b/Pods/Target Support Files/Pods/Pods-acknowledgements.markdown @@ -24,6 +24,32 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +## DACircularProgress + +# License + +## MIT License + +Copyright (c) 2013 Daniel Amitay (http://danielamitay.com) + +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. + ## DTCoreText Copyright (c) 2011, Oliver Drobnik All rights reserved. @@ -167,6 +193,28 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +## MWPhotoBrowser + +Copyright (c) 2010 Michael Waterfall + +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. + ## Mantle **Copyright (c) 2012 - 2014, GitHub, Inc.** @@ -192,6 +240,29 @@ Redistribution and use in source and binary forms, with or without modification, THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +## PSTCollectionView + +Copyright (c) 2012-2013 Peter Steinberger + +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. + + ## Reachability Copyright (c) 2011, Tony Million. diff --git a/Pods/Target Support Files/Pods/Pods-acknowledgements.plist b/Pods/Target Support Files/Pods/Pods-acknowledgements.plist index 1970a95..c7ef194 100644 --- a/Pods/Target Support Files/Pods/Pods-acknowledgements.plist +++ b/Pods/Target Support Files/Pods/Pods-acknowledgements.plist @@ -39,6 +39,36 @@ THE SOFTWARE. Type PSGroupSpecifier + + FooterText + # License + +## MIT License + +Copyright (c) 2013 Daniel Amitay (http://danielamitay.com) + +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. + Title + DACircularProgress + Type + PSGroupSpecifier + FooterText Copyright (c) 2011, Oliver Drobnik All rights reserved. @@ -206,6 +236,32 @@ THE SOFTWARE. Type PSGroupSpecifier + + FooterText + Copyright (c) 2010 Michael Waterfall <michaelwaterfall@gmail.com> + +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. + Title + MWPhotoBrowser + Type + PSGroupSpecifier + FooterText **Copyright (c) 2012 - 2014, GitHub, Inc.** @@ -235,6 +291,33 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND Type PSGroupSpecifier + + FooterText + Copyright (c) 2012-2013 Peter Steinberger <steipete@gmail.com> + +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. + + Title + PSTCollectionView + Type + PSGroupSpecifier + FooterText Copyright (c) 2011, Tony Million. diff --git a/Pods/Target Support Files/Pods/Pods-environment.h b/Pods/Target Support Files/Pods/Pods-environment.h index fdeba9e..ab05a69 100644 --- a/Pods/Target Support Files/Pods/Pods-environment.h +++ b/Pods/Target Support Files/Pods/Pods-environment.h @@ -48,6 +48,12 @@ #define COCOAPODS_VERSION_MINOR_AFNetworking_UIKit 5 #define COCOAPODS_VERSION_PATCH_AFNetworking_UIKit 2 +// DACircularProgress +#define COCOAPODS_POD_AVAILABLE_DACircularProgress +#define COCOAPODS_VERSION_MAJOR_DACircularProgress 2 +#define COCOAPODS_VERSION_MINOR_DACircularProgress 2 +#define COCOAPODS_VERSION_PATCH_DACircularProgress 0 + // DTCoreText #define COCOAPODS_POD_AVAILABLE_DTCoreText #define COCOAPODS_VERSION_MAJOR_DTCoreText 1 @@ -100,7 +106,13 @@ #define COCOAPODS_POD_AVAILABLE_MJRefresh #define COCOAPODS_VERSION_MAJOR_MJRefresh 1 #define COCOAPODS_VERSION_MINOR_MJRefresh 4 -#define COCOAPODS_VERSION_PATCH_MJRefresh 1 +#define COCOAPODS_VERSION_PATCH_MJRefresh 3 + +// MWPhotoBrowser +#define COCOAPODS_POD_AVAILABLE_MWPhotoBrowser +#define COCOAPODS_VERSION_MAJOR_MWPhotoBrowser 1 +#define COCOAPODS_VERSION_MINOR_MWPhotoBrowser 4 +#define COCOAPODS_VERSION_PATCH_MWPhotoBrowser 1 // Mantle #define COCOAPODS_POD_AVAILABLE_Mantle @@ -114,6 +126,12 @@ #define COCOAPODS_VERSION_MINOR_Mantle_extobjc 5 #define COCOAPODS_VERSION_PATCH_Mantle_extobjc 4 +// PSTCollectionView +#define COCOAPODS_POD_AVAILABLE_PSTCollectionView +#define COCOAPODS_VERSION_MAJOR_PSTCollectionView 1 +#define COCOAPODS_VERSION_MINOR_PSTCollectionView 2 +#define COCOAPODS_VERSION_PATCH_PSTCollectionView 3 + // Reachability #define COCOAPODS_POD_AVAILABLE_Reachability #define COCOAPODS_VERSION_MAJOR_Reachability 3 diff --git a/Pods/Target Support Files/Pods/Pods-resources.sh b/Pods/Target Support Files/Pods/Pods-resources.sh index b39030f..96a2583 100755 --- a/Pods/Target Support Files/Pods/Pods-resources.sh +++ b/Pods/Target Support Files/Pods/Pods-resources.sh @@ -52,9 +52,11 @@ install_resource() } if [[ "$CONFIGURATION" == "Debug" ]]; then install_resource "MJRefresh/MJRefreshExample/MJRefreshExample/MJRefresh/MJRefresh.bundle" + install_resource "MWPhotoBrowser/MWPhotoBrowser/MWPhotoBrowser.bundle" fi if [[ "$CONFIGURATION" == "Release" ]]; then install_resource "MJRefresh/MJRefreshExample/MJRefreshExample/MJRefresh/MJRefresh.bundle" + install_resource "MWPhotoBrowser/MWPhotoBrowser/MWPhotoBrowser.bundle" fi rsync -avr --copy-links --no-relative --exclude '*/.svn/*' --files-from="$RESOURCES_TO_COPY" / "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" diff --git a/Pods/Target Support Files/Pods/Pods.debug.xcconfig b/Pods/Target Support Files/Pods/Pods.debug.xcconfig index e2af7ac..0bf6583 100644 --- a/Pods/Target Support Files/Pods/Pods.debug.xcconfig +++ b/Pods/Target Support Files/Pods/Pods.debug.xcconfig @@ -1,6 +1,6 @@ GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 -HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/AFNetworking" "${PODS_ROOT}/Headers/Public/DTCoreText" "${PODS_ROOT}/Headers/Public/DTFoundation" "${PODS_ROOT}/Headers/Public/EGOCache" "${PODS_ROOT}/Headers/Public/Godzippa" "${PODS_ROOT}/Headers/Public/MBProgressHUD" "${PODS_ROOT}/Headers/Public/MJRefresh" "${PODS_ROOT}/Headers/Public/Mantle" "${PODS_ROOT}/Headers/Public/Reachability" "${PODS_ROOT}/Headers/Public/SBJson" "${PODS_ROOT}/Headers/Public/SDWebImage" "${PODS_ROOT}/Headers/Public/STableViewController" "${PODS_ROOT}/Headers/Public/SecureUDID" "$(SDKROOT)/usr/include/libxml2" -OTHER_CFLAGS = $(inherited) -isystem "${PODS_ROOT}/Headers/Public" -isystem "${PODS_ROOT}/Headers/Public/AFNetworking" -isystem "${PODS_ROOT}/Headers/Public/DTCoreText" -isystem "${PODS_ROOT}/Headers/Public/DTFoundation" -isystem "${PODS_ROOT}/Headers/Public/EGOCache" -isystem "${PODS_ROOT}/Headers/Public/Godzippa" -isystem "${PODS_ROOT}/Headers/Public/MBProgressHUD" -isystem "${PODS_ROOT}/Headers/Public/MJRefresh" -isystem "${PODS_ROOT}/Headers/Public/Mantle" -isystem "${PODS_ROOT}/Headers/Public/Reachability" -isystem "${PODS_ROOT}/Headers/Public/SBJson" -isystem "${PODS_ROOT}/Headers/Public/SDWebImage" -isystem "${PODS_ROOT}/Headers/Public/STableViewController" -isystem "${PODS_ROOT}/Headers/Public/SecureUDID" -OTHER_LDFLAGS = $(inherited) -ObjC -l"Pods-AFNetworking" -l"Pods-DTCoreText" -l"Pods-DTFoundation" -l"Pods-EGOCache" -l"Pods-Godzippa" -l"Pods-MBProgressHUD" -l"Pods-MJRefresh" -l"Pods-Mantle" -l"Pods-Reachability" -l"Pods-SBJson" -l"Pods-SDWebImage" -l"Pods-STableViewController" -l"Pods-SecureUDID" -l"xml2" -l"z" -framework "CoreGraphics" -framework "CoreText" -framework "Foundation" -framework "ImageIO" -framework "MediaPlayer" -framework "MobileCoreServices" -framework "QuartzCore" -framework "Security" -framework "SystemConfiguration" +HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/AFNetworking" "${PODS_ROOT}/Headers/Public/DACircularProgress" "${PODS_ROOT}/Headers/Public/DTCoreText" "${PODS_ROOT}/Headers/Public/DTFoundation" "${PODS_ROOT}/Headers/Public/EGOCache" "${PODS_ROOT}/Headers/Public/Godzippa" "${PODS_ROOT}/Headers/Public/MBProgressHUD" "${PODS_ROOT}/Headers/Public/MJRefresh" "${PODS_ROOT}/Headers/Public/MWPhotoBrowser" "${PODS_ROOT}/Headers/Public/Mantle" "${PODS_ROOT}/Headers/Public/PSTCollectionView" "${PODS_ROOT}/Headers/Public/Reachability" "${PODS_ROOT}/Headers/Public/SBJson" "${PODS_ROOT}/Headers/Public/SDWebImage" "${PODS_ROOT}/Headers/Public/STableViewController" "${PODS_ROOT}/Headers/Public/SecureUDID" "$(SDKROOT)/usr/include/libxml2" +OTHER_CFLAGS = $(inherited) -isystem "${PODS_ROOT}/Headers/Public" -isystem "${PODS_ROOT}/Headers/Public/AFNetworking" -isystem "${PODS_ROOT}/Headers/Public/DACircularProgress" -isystem "${PODS_ROOT}/Headers/Public/DTCoreText" -isystem "${PODS_ROOT}/Headers/Public/DTFoundation" -isystem "${PODS_ROOT}/Headers/Public/EGOCache" -isystem "${PODS_ROOT}/Headers/Public/Godzippa" -isystem "${PODS_ROOT}/Headers/Public/MBProgressHUD" -isystem "${PODS_ROOT}/Headers/Public/MJRefresh" -isystem "${PODS_ROOT}/Headers/Public/MWPhotoBrowser" -isystem "${PODS_ROOT}/Headers/Public/Mantle" -isystem "${PODS_ROOT}/Headers/Public/PSTCollectionView" -isystem "${PODS_ROOT}/Headers/Public/Reachability" -isystem "${PODS_ROOT}/Headers/Public/SBJson" -isystem "${PODS_ROOT}/Headers/Public/SDWebImage" -isystem "${PODS_ROOT}/Headers/Public/STableViewController" -isystem "${PODS_ROOT}/Headers/Public/SecureUDID" +OTHER_LDFLAGS = $(inherited) -ObjC -l"Pods-AFNetworking" -l"Pods-DACircularProgress" -l"Pods-DTCoreText" -l"Pods-DTFoundation" -l"Pods-EGOCache" -l"Pods-Godzippa" -l"Pods-MBProgressHUD" -l"Pods-MJRefresh" -l"Pods-MWPhotoBrowser" -l"Pods-Mantle" -l"Pods-PSTCollectionView" -l"Pods-Reachability" -l"Pods-SBJson" -l"Pods-SDWebImage" -l"Pods-STableViewController" -l"Pods-SecureUDID" -l"xml2" -l"z" -framework "AssetsLibrary" -framework "CoreGraphics" -framework "CoreText" -framework "Foundation" -framework "ImageIO" -framework "MapKit" -framework "MediaPlayer" -framework "MessageUI" -framework "MobileCoreServices" -framework "QuartzCore" -framework "Security" -framework "SystemConfiguration" -framework "UIKit" OTHER_LIBTOOLFLAGS = $(OTHER_LDFLAGS) PODS_ROOT = ${SRCROOT}/Pods \ No newline at end of file diff --git a/Pods/Target Support Files/Pods/Pods.release.xcconfig b/Pods/Target Support Files/Pods/Pods.release.xcconfig index e2af7ac..0bf6583 100644 --- a/Pods/Target Support Files/Pods/Pods.release.xcconfig +++ b/Pods/Target Support Files/Pods/Pods.release.xcconfig @@ -1,6 +1,6 @@ GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 -HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/AFNetworking" "${PODS_ROOT}/Headers/Public/DTCoreText" "${PODS_ROOT}/Headers/Public/DTFoundation" "${PODS_ROOT}/Headers/Public/EGOCache" "${PODS_ROOT}/Headers/Public/Godzippa" "${PODS_ROOT}/Headers/Public/MBProgressHUD" "${PODS_ROOT}/Headers/Public/MJRefresh" "${PODS_ROOT}/Headers/Public/Mantle" "${PODS_ROOT}/Headers/Public/Reachability" "${PODS_ROOT}/Headers/Public/SBJson" "${PODS_ROOT}/Headers/Public/SDWebImage" "${PODS_ROOT}/Headers/Public/STableViewController" "${PODS_ROOT}/Headers/Public/SecureUDID" "$(SDKROOT)/usr/include/libxml2" -OTHER_CFLAGS = $(inherited) -isystem "${PODS_ROOT}/Headers/Public" -isystem "${PODS_ROOT}/Headers/Public/AFNetworking" -isystem "${PODS_ROOT}/Headers/Public/DTCoreText" -isystem "${PODS_ROOT}/Headers/Public/DTFoundation" -isystem "${PODS_ROOT}/Headers/Public/EGOCache" -isystem "${PODS_ROOT}/Headers/Public/Godzippa" -isystem "${PODS_ROOT}/Headers/Public/MBProgressHUD" -isystem "${PODS_ROOT}/Headers/Public/MJRefresh" -isystem "${PODS_ROOT}/Headers/Public/Mantle" -isystem "${PODS_ROOT}/Headers/Public/Reachability" -isystem "${PODS_ROOT}/Headers/Public/SBJson" -isystem "${PODS_ROOT}/Headers/Public/SDWebImage" -isystem "${PODS_ROOT}/Headers/Public/STableViewController" -isystem "${PODS_ROOT}/Headers/Public/SecureUDID" -OTHER_LDFLAGS = $(inherited) -ObjC -l"Pods-AFNetworking" -l"Pods-DTCoreText" -l"Pods-DTFoundation" -l"Pods-EGOCache" -l"Pods-Godzippa" -l"Pods-MBProgressHUD" -l"Pods-MJRefresh" -l"Pods-Mantle" -l"Pods-Reachability" -l"Pods-SBJson" -l"Pods-SDWebImage" -l"Pods-STableViewController" -l"Pods-SecureUDID" -l"xml2" -l"z" -framework "CoreGraphics" -framework "CoreText" -framework "Foundation" -framework "ImageIO" -framework "MediaPlayer" -framework "MobileCoreServices" -framework "QuartzCore" -framework "Security" -framework "SystemConfiguration" +HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/AFNetworking" "${PODS_ROOT}/Headers/Public/DACircularProgress" "${PODS_ROOT}/Headers/Public/DTCoreText" "${PODS_ROOT}/Headers/Public/DTFoundation" "${PODS_ROOT}/Headers/Public/EGOCache" "${PODS_ROOT}/Headers/Public/Godzippa" "${PODS_ROOT}/Headers/Public/MBProgressHUD" "${PODS_ROOT}/Headers/Public/MJRefresh" "${PODS_ROOT}/Headers/Public/MWPhotoBrowser" "${PODS_ROOT}/Headers/Public/Mantle" "${PODS_ROOT}/Headers/Public/PSTCollectionView" "${PODS_ROOT}/Headers/Public/Reachability" "${PODS_ROOT}/Headers/Public/SBJson" "${PODS_ROOT}/Headers/Public/SDWebImage" "${PODS_ROOT}/Headers/Public/STableViewController" "${PODS_ROOT}/Headers/Public/SecureUDID" "$(SDKROOT)/usr/include/libxml2" +OTHER_CFLAGS = $(inherited) -isystem "${PODS_ROOT}/Headers/Public" -isystem "${PODS_ROOT}/Headers/Public/AFNetworking" -isystem "${PODS_ROOT}/Headers/Public/DACircularProgress" -isystem "${PODS_ROOT}/Headers/Public/DTCoreText" -isystem "${PODS_ROOT}/Headers/Public/DTFoundation" -isystem "${PODS_ROOT}/Headers/Public/EGOCache" -isystem "${PODS_ROOT}/Headers/Public/Godzippa" -isystem "${PODS_ROOT}/Headers/Public/MBProgressHUD" -isystem "${PODS_ROOT}/Headers/Public/MJRefresh" -isystem "${PODS_ROOT}/Headers/Public/MWPhotoBrowser" -isystem "${PODS_ROOT}/Headers/Public/Mantle" -isystem "${PODS_ROOT}/Headers/Public/PSTCollectionView" -isystem "${PODS_ROOT}/Headers/Public/Reachability" -isystem "${PODS_ROOT}/Headers/Public/SBJson" -isystem "${PODS_ROOT}/Headers/Public/SDWebImage" -isystem "${PODS_ROOT}/Headers/Public/STableViewController" -isystem "${PODS_ROOT}/Headers/Public/SecureUDID" +OTHER_LDFLAGS = $(inherited) -ObjC -l"Pods-AFNetworking" -l"Pods-DACircularProgress" -l"Pods-DTCoreText" -l"Pods-DTFoundation" -l"Pods-EGOCache" -l"Pods-Godzippa" -l"Pods-MBProgressHUD" -l"Pods-MJRefresh" -l"Pods-MWPhotoBrowser" -l"Pods-Mantle" -l"Pods-PSTCollectionView" -l"Pods-Reachability" -l"Pods-SBJson" -l"Pods-SDWebImage" -l"Pods-STableViewController" -l"Pods-SecureUDID" -l"xml2" -l"z" -framework "AssetsLibrary" -framework "CoreGraphics" -framework "CoreText" -framework "Foundation" -framework "ImageIO" -framework "MapKit" -framework "MediaPlayer" -framework "MessageUI" -framework "MobileCoreServices" -framework "QuartzCore" -framework "Security" -framework "SystemConfiguration" -framework "UIKit" OTHER_LIBTOOLFLAGS = $(OTHER_LDFLAGS) PODS_ROOT = ${SRCROOT}/Pods \ No newline at end of file