From 570f181b227b1b0b73841cc0744f6764aaa5d5da Mon Sep 17 00:00:00 2001 From: Sami Samhuri Date: Mon, 25 May 2015 22:13:49 -0700 Subject: [PATCH] add HockeySDK --- Podfile | 1 + Podfile.lock | 3 + .../HockeySDK/BITActivityIndicatorButton.h | 1 + .../Private/HockeySDK/BITAppStoreHeader.h | 1 + .../Private/HockeySDK/BITAppVersionMetaInfo.h | 1 + .../HockeySDK/BITArrowImageAnnotation.h | 1 + .../Private/HockeySDK/BITAttributedLabel.h | 1 + .../BITAuthenticationViewController.h | 1 + .../Private/HockeySDK/BITAuthenticator.h | 1 + .../HockeySDK/BITAuthenticator_Private.h | 1 + .../HockeySDK/BITBlurImageAnnotation.h | 1 + .../Private/HockeySDK/BITCrashAttachment.h | 1 + .../Private/HockeySDK/BITCrashDetails.h | 1 + .../HockeySDK/BITCrashDetailsPrivate.h | 1 + .../Private/HockeySDK/BITCrashManager.h | 1 + .../HockeySDK/BITCrashManagerDelegate.h | 1 + .../HockeySDK/BITCrashManagerPrivate.h | 1 + .../Private/HockeySDK/BITCrashMetaData.h | 1 + .../HockeySDK/BITCrashReportTextFormatter.h | 1 + .../Private/HockeySDK/BITFeedbackActivity.h | 1 + .../BITFeedbackComposeViewController.h | 1 + ...BITFeedbackComposeViewControllerDelegate.h | 1 + .../HockeySDK/BITFeedbackListViewCell.h | 1 + .../HockeySDK/BITFeedbackListViewController.h | 1 + .../Private/HockeySDK/BITFeedbackManager.h | 1 + .../HockeySDK/BITFeedbackManagerDelegate.h | 1 + .../HockeySDK/BITFeedbackManagerPrivate.h | 1 + .../Private/HockeySDK/BITFeedbackMessage.h | 1 + .../HockeySDK/BITFeedbackMessageAttachment.h | 1 + .../BITFeedbackUserDataViewController.h | 1 + .../Private/HockeySDK/BITHTTPOperation.h | 1 + .../Private/HockeySDK/BITHockeyAppClient.h | 1 + .../Private/HockeySDK/BITHockeyAttachment.h | 1 + .../Private/HockeySDK/BITHockeyBaseManager.h | 1 + .../HockeySDK/BITHockeyBaseManagerPrivate.h | 1 + .../HockeySDK/BITHockeyBaseViewController.h | 1 + .../Private/HockeySDK/BITHockeyHelper.h | 1 + .../Private/HockeySDK/BITHockeyManager.h | 1 + .../HockeySDK/BITHockeyManagerDelegate.h | 1 + .../Private/HockeySDK/BITImageAnnotation.h | 1 + .../BITImageAnnotationViewController.h | 1 + .../Private/HockeySDK/BITKeychainUtils.h | 1 + .../HockeySDK/BITRectangleImageAnnotation.h | 1 + .../Private/HockeySDK/BITStoreButton.h | 1 + .../Private/HockeySDK/BITStoreUpdateManager.h | 1 + .../HockeySDK/BITStoreUpdateManagerDelegate.h | 1 + .../HockeySDK/BITStoreUpdateManagerPrivate.h | 1 + .../Private/HockeySDK/BITUpdateManager.h | 1 + .../HockeySDK/BITUpdateManagerDelegate.h | 1 + .../HockeySDK/BITUpdateManagerPrivate.h | 1 + .../HockeySDK/BITUpdateViewController.h | 1 + .../BITUpdateViewControllerPrivate.h | 1 + .../Private/HockeySDK/BITWebTableViewCell.h | 1 + Pods/Headers/Private/HockeySDK/HockeySDK.h | 1 + .../HockeySDK/HockeySDKFeatureConfig.h | 1 + .../Private/HockeySDK/HockeySDKPrivate.h | 1 + .../HockeySDK/BITActivityIndicatorButton.h | 1 + .../Public/HockeySDK/BITAppStoreHeader.h | 1 + .../Public/HockeySDK/BITAppVersionMetaInfo.h | 1 + .../HockeySDK/BITArrowImageAnnotation.h | 1 + .../Public/HockeySDK/BITAttributedLabel.h | 1 + .../BITAuthenticationViewController.h | 1 + .../Public/HockeySDK/BITAuthenticator.h | 1 + .../Public/HockeySDK/BITBlurImageAnnotation.h | 1 + .../Public/HockeySDK/BITCrashAttachment.h | 1 + .../Public/HockeySDK/BITCrashDetails.h | 1 + .../Public/HockeySDK/BITCrashManager.h | 1 + .../HockeySDK/BITCrashManagerDelegate.h | 1 + .../Public/HockeySDK/BITCrashMetaData.h | 1 + .../HockeySDK/BITCrashReportTextFormatter.h | 1 + .../Public/HockeySDK/BITFeedbackActivity.h | 1 + .../BITFeedbackComposeViewController.h | 1 + ...BITFeedbackComposeViewControllerDelegate.h | 1 + .../HockeySDK/BITFeedbackListViewCell.h | 1 + .../HockeySDK/BITFeedbackListViewController.h | 1 + .../Public/HockeySDK/BITFeedbackManager.h | 1 + .../HockeySDK/BITFeedbackManagerDelegate.h | 1 + .../Public/HockeySDK/BITFeedbackMessage.h | 1 + .../HockeySDK/BITFeedbackMessageAttachment.h | 1 + .../BITFeedbackUserDataViewController.h | 1 + .../Public/HockeySDK/BITHTTPOperation.h | 1 + .../Public/HockeySDK/BITHockeyAppClient.h | 1 + .../Public/HockeySDK/BITHockeyAttachment.h | 1 + .../Public/HockeySDK/BITHockeyBaseManager.h | 1 + .../HockeySDK/BITHockeyBaseViewController.h | 1 + .../Public/HockeySDK/BITHockeyHelper.h | 1 + .../Public/HockeySDK/BITHockeyManager.h | 1 + .../HockeySDK/BITHockeyManagerDelegate.h | 1 + .../Public/HockeySDK/BITImageAnnotation.h | 1 + .../BITImageAnnotationViewController.h | 1 + .../Public/HockeySDK/BITKeychainUtils.h | 1 + .../HockeySDK/BITRectangleImageAnnotation.h | 1 + .../Headers/Public/HockeySDK/BITStoreButton.h | 1 + .../Public/HockeySDK/BITStoreUpdateManager.h | 1 + .../HockeySDK/BITStoreUpdateManagerDelegate.h | 1 + .../Public/HockeySDK/BITUpdateManager.h | 1 + .../HockeySDK/BITUpdateManagerDelegate.h | 1 + .../HockeySDK/BITUpdateViewController.h | 1 + .../Public/HockeySDK/BITWebTableViewCell.h | 1 + Pods/Headers/Public/HockeySDK/HockeySDK.h | 1 + .../Public/HockeySDK/HockeySDKFeatureConfig.h | 1 + .../Classes/BITActivityIndicatorButton.h | 33 + .../Classes/BITActivityIndicatorButton.m | 76 + Pods/HockeySDK/Classes/BITAppStoreHeader.h | 60 + Pods/HockeySDK/Classes/BITAppStoreHeader.m | 160 + .../HockeySDK/Classes/BITAppVersionMetaInfo.h | 58 + .../HockeySDK/Classes/BITAppVersionMetaInfo.m | 228 + .../Classes/BITArrowImageAnnotation.h | 33 + .../Classes/BITArrowImageAnnotation.m | 204 + Pods/HockeySDK/Classes/BITAttributedLabel.h | 330 + Pods/HockeySDK/Classes/BITAttributedLabel.m | 1022 +++ .../Classes/BITAuthenticationViewController.h | 94 + .../Classes/BITAuthenticationViewController.m | 325 + Pods/HockeySDK/Classes/BITAuthenticator.h | 385 + Pods/HockeySDK/Classes/BITAuthenticator.m | 910 ++ .../Classes/BITAuthenticator_Private.h | 95 + .../Classes/BITBlurImageAnnotation.h | 33 + .../Classes/BITBlurImageAnnotation.m | 101 + Pods/HockeySDK/Classes/BITCrashAttachment.h | 59 + Pods/HockeySDK/Classes/BITCrashAttachment.m | 42 + Pods/HockeySDK/Classes/BITCrashDetails.h | 110 + Pods/HockeySDK/Classes/BITCrashDetails.m | 71 + .../Classes/BITCrashDetailsPrivate.h | 48 + Pods/HockeySDK/Classes/BITCrashManager.h | 442 + Pods/HockeySDK/Classes/BITCrashManager.m | 1535 ++++ .../Classes/BITCrashManagerDelegate.h | 183 + .../Classes/BITCrashManagerPrivate.h | 109 + Pods/HockeySDK/Classes/BITCrashMetaData.h | 57 + Pods/HockeySDK/Classes/BITCrashMetaData.m | 34 + .../Classes/BITCrashReportTextFormatter.h | 75 + .../Classes/BITCrashReportTextFormatter.m | 852 ++ Pods/HockeySDK/Classes/BITFeedbackActivity.h | 75 + Pods/HockeySDK/Classes/BITFeedbackActivity.m | 150 + .../BITFeedbackComposeViewController.h | 89 + .../BITFeedbackComposeViewController.m | 635 ++ ...BITFeedbackComposeViewControllerDelegate.h | 80 + .../Classes/BITFeedbackListViewCell.h | 97 + .../Classes/BITFeedbackListViewCell.m | 377 + .../Classes/BITFeedbackListViewController.h | 61 + .../Classes/BITFeedbackListViewController.m | 878 ++ Pods/HockeySDK/Classes/BITFeedbackManager.h | 339 + Pods/HockeySDK/Classes/BITFeedbackManager.m | 1156 +++ .../Classes/BITFeedbackManagerDelegate.h | 50 + .../Classes/BITFeedbackManagerPrivate.h | 122 + Pods/HockeySDK/Classes/BITFeedbackMessage.h | 102 + Pods/HockeySDK/Classes/BITFeedbackMessage.m | 114 + .../Classes/BITFeedbackMessageAttachment.h | 68 + .../Classes/BITFeedbackMessageAttachment.m | 258 + .../BITFeedbackUserDataViewController.h | 51 + .../BITFeedbackUserDataViewController.m | 272 + Pods/HockeySDK/Classes/BITHTTPOperation.h | 47 + Pods/HockeySDK/Classes/BITHTTPOperation.m | 148 + Pods/HockeySDK/Classes/BITHockeyAppClient.h | 145 + Pods/HockeySDK/Classes/BITHockeyAppClient.m | 185 + Pods/HockeySDK/Classes/BITHockeyAttachment.h | 68 + Pods/HockeySDK/Classes/BITHockeyAttachment.m | 75 + Pods/HockeySDK/Classes/BITHockeyBaseManager.h | 84 + Pods/HockeySDK/Classes/BITHockeyBaseManager.m | 331 + .../Classes/BITHockeyBaseManagerPrivate.h | 84 + .../Classes/BITHockeyBaseViewController.h | 38 + .../Classes/BITHockeyBaseViewController.m | 132 + Pods/HockeySDK/Classes/BITHockeyHelper.h | 65 + Pods/HockeySDK/Classes/BITHockeyHelper.m | 805 ++ Pods/HockeySDK/Classes/BITHockeyManager.h | 531 ++ Pods/HockeySDK/Classes/BITHockeyManager.m | 664 ++ .../Classes/BITHockeyManagerDelegate.h | 230 + Pods/HockeySDK/Classes/BITImageAnnotation.h | 44 + Pods/HockeySDK/Classes/BITImageAnnotation.m | 45 + .../BITImageAnnotationViewController.h | 45 + .../BITImageAnnotationViewController.m | 407 + Pods/HockeySDK/Classes/BITKeychainUtils.h | 44 + Pods/HockeySDK/Classes/BITKeychainUtils.m | 307 + .../Classes/BITRectangleImageAnnotation.h | 33 + .../Classes/BITRectangleImageAnnotation.m | 86 + Pods/HockeySDK/Classes/BITStoreButton.h | 93 + Pods/HockeySDK/Classes/BITStoreButton.m | 278 + .../HockeySDK/Classes/BITStoreUpdateManager.h | 186 + .../HockeySDK/Classes/BITStoreUpdateManager.m | 466 + .../Classes/BITStoreUpdateManagerDelegate.h | 59 + .../Classes/BITStoreUpdateManagerPrivate.h | 71 + Pods/HockeySDK/Classes/BITUpdateManager.h | 237 + Pods/HockeySDK/Classes/BITUpdateManager.m | 1079 +++ .../Classes/BITUpdateManagerDelegate.h | 157 + .../Classes/BITUpdateManagerPrivate.h | 109 + .../Classes/BITUpdateViewController.h | 37 + .../Classes/BITUpdateViewController.m | 555 ++ .../Classes/BITUpdateViewControllerPrivate.h | 79 + Pods/HockeySDK/Classes/BITWebTableViewCell.h | 44 + Pods/HockeySDK/Classes/BITWebTableViewCell.m | 181 + Pods/HockeySDK/Classes/HockeySDK.h | 212 + .../Classes/HockeySDKFeatureConfig.h | 83 + Pods/HockeySDK/Classes/HockeySDKPrivate.h | 108 + Pods/HockeySDK/Classes/HockeySDKPrivate.m | 83 + Pods/HockeySDK/LICENSE | 124 + Pods/HockeySDK/README.md | 50 + Pods/HockeySDK/Resources/Arrow.png | Bin 0 -> 231 bytes Pods/HockeySDK/Resources/Arrow@2x.png | Bin 0 -> 522 bytes Pods/HockeySDK/Resources/Arrow@3x.png | Bin 0 -> 678 bytes Pods/HockeySDK/Resources/Blur.png | Bin 0 -> 130 bytes Pods/HockeySDK/Resources/Blur@2x.png | Bin 0 -> 142 bytes Pods/HockeySDK/Resources/Blur@3x.png | Bin 0 -> 149 bytes Pods/HockeySDK/Resources/Cancel.png | Bin 0 -> 150 bytes Pods/HockeySDK/Resources/Cancel@2x.png | Bin 0 -> 224 bytes Pods/HockeySDK/Resources/Cancel@3x.png | Bin 0 -> 294 bytes Pods/HockeySDK/Resources/HockeySDK-Info.plist | 30 + Pods/HockeySDK/Resources/IconGradient.png | Bin 0 -> 750 bytes Pods/HockeySDK/Resources/IconGradient@2x.png | Bin 0 -> 1287 bytes Pods/HockeySDK/Resources/Ok.png | Bin 0 -> 150 bytes Pods/HockeySDK/Resources/Ok@2x.png | Bin 0 -> 300 bytes Pods/HockeySDK/Resources/Ok@3x.png | Bin 0 -> 363 bytes Pods/HockeySDK/Resources/Rectangle.png | Bin 0 -> 125 bytes Pods/HockeySDK/Resources/Rectangle@2x.png | Bin 0 -> 282 bytes Pods/HockeySDK/Resources/Rectangle@3x.png | Bin 0 -> 398 bytes Pods/HockeySDK/Resources/authorize_denied.png | Bin 0 -> 1459 bytes .../Resources/authorize_denied@2x.png | Bin 0 -> 2847 bytes .../Resources/authorize_denied@3x.png | Bin 0 -> 4144 bytes Pods/HockeySDK/Resources/bg.png | Bin 0 -> 236 bytes .../Resources/buttonRoundedDelete.png | Bin 0 -> 626 bytes .../Resources/buttonRoundedDelete@2x.png | Bin 0 -> 1086 bytes .../buttonRoundedDeleteHighlighted.png | Bin 0 -> 720 bytes .../buttonRoundedDeleteHighlighted@2x.png | Bin 0 -> 1567 bytes .../Resources/buttonRoundedRegular.png | Bin 0 -> 448 bytes .../Resources/buttonRoundedRegular@2x.png | Bin 0 -> 800 bytes .../buttonRoundedRegularHighlighted.png | Bin 0 -> 809 bytes .../buttonRoundedRegularHighlighted@2x.png | Bin 0 -> 1509 bytes .../Resources/de.lproj/HockeySDK.strings | 276 + .../Resources/en.lproj/HockeySDK.strings | 276 + .../Resources/es.lproj/HockeySDK.strings | 276 + Pods/HockeySDK/Resources/feedbackActivity.png | Bin 0 -> 321 bytes .../Resources/feedbackActivity@2x.png | Bin 0 -> 861 bytes .../Resources/feedbackActivity@2x~ipad.png | Bin 0 -> 1629 bytes .../Resources/feedbackActivity@3x.png | Bin 0 -> 1204 bytes .../Resources/feedbackActivity~ipad.png | Bin 0 -> 1043 bytes .../Resources/fr.lproj/HockeySDK.strings | 276 + .../Resources/hr.lproj/HockeySDK.strings | 277 + .../Resources/hu.lproj/HockeySDK.strings | 276 + Pods/HockeySDK/Resources/iconCamera.png | Bin 0 -> 260 bytes Pods/HockeySDK/Resources/iconCamera@2x.png | Bin 0 -> 358 bytes .../Resources/it.lproj/HockeySDK.strings | 276 + .../Resources/ja.lproj/HockeySDK.strings | 276 + .../Resources/nl.lproj/HockeySDK.strings | 276 + .../Resources/pt-PT.lproj/HockeySDK.strings | 276 + .../Resources/pt.lproj/HockeySDK.strings | 276 + .../Resources/ru.lproj/HockeySDK.strings | 276 + .../Resources/zh-Hans.lproj/HockeySDK.strings | 276 + Pods/HockeySDK/Support/HockeySDK.xcconfig | 3 + .../HockeySDK.xcodeproj/project.pbxproj | 1725 ++++ .../contents.xcworkspacedata | 7 + .../HockeySDK Documentation.xcscheme | 68 + .../xcschemes/HockeySDK Framework.xcscheme | 68 + .../xcshareddata/xcschemes/HockeySDK.xcscheme | 110 + .../xcschemes/HockeySDKResources.xcscheme | 68 + .../Support/HockeySDKCrashOnlyConfig.h | 90 + .../HockeySDKTests/BITAuthenticatorTests.m | 332 + .../HockeySDKTests/BITCrashManagerTests.m | 295 + .../BITCrashReportTextFormatterTests.m | 196 + .../HockeySDKTests/BITFeedbackManagerTests.m | 216 + .../HockeySDKTests/BITHockeyAppClientTests.m | 236 + .../HockeySDKTests/BITHockeyHelperTests.m | 153 + .../HockeySDKTests/BITKeychainUtilsTests.m | 88 + .../BITStoreUpdateManagerTests.m | 319 + .../Support/HockeySDKTests/BITTestHelper.h | 8 + .../Support/HockeySDKTests/BITTestHelper.m | 66 + .../HockeySDKTests/Fixtures/AppIcon.png | Bin 0 -> 2790 bytes .../HockeySDKTests/Fixtures/AppIcon@2x.png | Bin 0 -> 3628 bytes .../Fixtures/StoreBundleIdentifierKnown.json | 9 + .../StoreBundleIdentifierUnknown.json | 4 + .../Fixtures/live_report_empty.plcrash | 0 .../Fixtures/live_report_exception.plcrash | Bin 0 -> 27580 bytes .../Fixtures/live_report_signal.plcrash | Bin 0 -> 26882 bytes .../HockeySDKTests/HockeySDKTests-Info.plist | 22 + .../HockeySDKTests/HockeySDKTests-Prefix.pch | 8 + .../Support/HockeySDKTests/Licenses.txt | 38 + .../OCHamcrestIOS.framework/Headers | 1 + .../OCHamcrestIOS.framework/OCHamcrestIOS | 1 + .../OCHamcrestIOS.framework/Resources | 1 + .../Versions/A/Headers/HCAllOf.h | 45 + .../Versions/A/Headers/HCAnyOf.h | 45 + .../Versions/A/Headers/HCAssertThat.h | 42 + .../Versions/A/Headers/HCBaseDescription.h | 33 + .../Versions/A/Headers/HCBaseMatcher.h | 27 + .../Versions/A/Headers/HCClassMatcher.h | 20 + .../Versions/A/Headers/HCCollectMatchers.h | 23 + .../Versions/A/Headers/HCConformsToProtocol.h | 42 + .../Versions/A/Headers/HCDescribedAs.h | 50 + .../Versions/A/Headers/HCDescription.h | 48 + .../Versions/A/Headers/HCHasCount.h | 63 + .../Versions/A/Headers/HCHasDescription.h | 44 + .../Versions/A/Headers/HCHasProperty.h | 49 + .../Versions/A/Headers/HCInvocationMatcher.h | 57 + .../Versions/A/Headers/HCIs.h | 54 + .../Versions/A/Headers/HCIsAnything.h | 63 + .../Versions/A/Headers/HCIsCloseTo.h | 47 + .../A/Headers/HCIsCollectionContaining.h | 69 + .../HCIsCollectionContainingInAnyOrder.h | 47 + .../Headers/HCIsCollectionContainingInOrder.h | 45 + .../A/Headers/HCIsCollectionOnlyContaining.h | 52 + .../A/Headers/HCIsDictionaryContaining.h | 54 + .../Headers/HCIsDictionaryContainingEntries.h | 53 + .../A/Headers/HCIsDictionaryContainingKey.h | 49 + .../A/Headers/HCIsDictionaryContainingValue.h | 49 + .../Versions/A/Headers/HCIsEmptyCollection.h | 37 + .../Versions/A/Headers/HCIsEqual.h | 44 + .../A/Headers/HCIsEqualIgnoringCase.h | 49 + .../A/Headers/HCIsEqualIgnoringWhiteSpace.h | 50 + .../Versions/A/Headers/HCIsEqualToNumber.h | 331 + .../Versions/A/Headers/HCIsIn.h | 42 + .../Versions/A/Headers/HCIsInstanceOf.h | 41 + .../Versions/A/Headers/HCIsNil.h | 47 + .../Versions/A/Headers/HCIsNot.h | 47 + .../Versions/A/Headers/HCIsSame.h | 42 + .../Versions/A/Headers/HCIsTypeOf.h | 40 + .../Versions/A/Headers/HCMatcher.h | 56 + .../Versions/A/Headers/HCNumberAssert.h | 387 + .../Versions/A/Headers/HCOrderingComparison.h | 115 + .../A/Headers/HCRequireNonNilObject.h | 19 + .../Versions/A/Headers/HCSelfDescribing.h | 32 + .../Versions/A/Headers/HCStringContains.h | 45 + .../A/Headers/HCStringContainsInOrder.h | 50 + .../Versions/A/Headers/HCStringDescription.h | 43 + .../Versions/A/Headers/HCStringEndsWith.h | 45 + .../Versions/A/Headers/HCStringStartsWith.h | 45 + .../Versions/A/Headers/HCSubstringMatcher.h | 20 + .../Versions/A/Headers/HCTestFailure.h | 21 + .../Versions/A/Headers/HCTestFailureHandler.h | 20 + .../A/Headers/HCTestFailureHandlerChain.h | 12 + .../Versions/A/Headers/HCWrapInMatcher.h | 22 + .../Versions/A/Headers/OCHamcrestIOS.h | 141 + .../Versions/A/OCHamcrestIOS | Bin 0 -> 3671740 bytes .../Versions/A/Resources/Info.plist | 42 + .../OCHamcrestIOS.framework/Versions/Current | 1 + .../OCMockitoIOS.framework/Headers | 1 + .../OCMockitoIOS.framework/OCMockitoIOS | 1 + .../OCMockitoIOS.framework/Resources | 1 + .../Versions/A/Headers/MKTBaseMockObject.h | 17 + .../Versions/A/Headers/MKTClassObjectMock.h | 22 + .../A/Headers/MKTObjectAndProtocolMock.h | 20 + .../Versions/A/Headers/MKTObjectMock.h | 20 + .../Versions/A/Headers/MKTOngoingStubbing.h | 70 + .../A/Headers/MKTPrimitiveArgumentMatching.h | 50 + .../Versions/A/Headers/MKTProtocolMock.h | 23 + .../Versions/A/Headers/OCMockitoIOS.h | 218 + .../Versions/A/OCMockitoIOS | Bin 0 -> 1299132 bytes .../Versions/A/Resources/Info.plist | 42 + .../OCMockitoIOS.framework/Versions/Current | 1 + .../HockeySDKTests/en.lproj/InfoPlist.strings | 2 + Pods/HockeySDK/Support/buildnumber.xcconfig | 9 + Pods/HockeySDK/Support/crashonly.xcconfig | 3 + Pods/HockeySDK/Support/module.modulemap | 6 + .../CrashReporter.framework/CrashReporter | 1 + .../Vendor/CrashReporter.framework/Headers | 1 + .../Vendor/CrashReporter.framework/Resources | 1 + .../Versions/A/CrashReporter | Bin 0 -> 1432156 bytes .../Versions/A/Headers/CrashReporter.h | 363 + .../A/Headers/PLCrashAsyncSignalInfo.h | 58 + .../Versions/A/Headers/PLCrashFeatureConfig.h | 104 + .../Versions/A/Headers/PLCrashNamespace.h | 80 + .../Versions/A/Headers/PLCrashReport.h | 200 + .../A/Headers/PLCrashReportApplicationInfo.h | 53 + .../A/Headers/PLCrashReportBinaryImageInfo.h | 90 + .../A/Headers/PLCrashReportExceptionInfo.h | 65 + .../A/Headers/PLCrashReportFormatter.h | 51 + .../Headers/PLCrashReportMachExceptionInfo.h | 48 + .../A/Headers/PLCrashReportMachineInfo.h | 73 + .../A/Headers/PLCrashReportProcessInfo.h | 103 + .../A/Headers/PLCrashReportProcessorInfo.h | 74 + .../A/Headers/PLCrashReportRegisterInfo.h | 52 + .../A/Headers/PLCrashReportSignalInfo.h | 60 + .../A/Headers/PLCrashReportStackFrameInfo.h | 52 + .../A/Headers/PLCrashReportSymbolInfo.h | 61 + .../A/Headers/PLCrashReportSystemInfo.h | 145 + .../A/Headers/PLCrashReportTextFormatter.h | 62 + .../A/Headers/PLCrashReportThreadInfo.h | 77 + .../Versions/A/Headers/PLCrashReporter.h | 133 + .../A/Headers/PLCrashReporterConfig.h | 165 + .../Versions/A/Resources/Info.plist | 38 + .../CrashReporter.framework/Versions/Current | 1 + Pods/Manifest.lock | 3 + Pods/Pods.xcodeproj/project.pbxproj | 8094 +++++++++-------- ...Blog-HockeySDK-HockeySDKResources.xcscheme | 68 + .../xcschemes/Pods-Blog-HockeySDK.xcscheme | 68 + .../xcshareddata/xcschemes/Pods-Blog.xcscheme | 59 +- ...Pods-Blog-CocoaLumberjack-Private.xcconfig | 2 +- ...Pods-Blog-FontAwesome+iOS-Private.xcconfig | 2 +- .../Pods-Blog-HockeySDK-Private.xcconfig | 7 + .../Pods-Blog-HockeySDK-dummy.m | 5 + .../Pods-Blog-HockeySDK-prefix.pch | 5 + .../Pods-Blog-HockeySDK.xcconfig | 3 + .../Pods-Blog-MBProgressHUD-Private.xcconfig | 2 +- .../Pods-Blog-Mantle-Private.xcconfig | 2 +- .../Pods-Blog-OMGHTTPURLRQ-Private.xcconfig | 2 +- .../Pods-Blog-ObjectiveSugar-Private.xcconfig | 2 +- .../Pods-Blog-PromiseKit-Private.xcconfig | 2 +- .../Pods-Blog-YapDatabase-Private.xcconfig | 2 +- .../Pods-Blog-dyci-Private.xcconfig | 2 +- .../Pods-Blog-libextobjc-Private.xcconfig | 2 +- .../Pods-Blog-acknowledgements.markdown | 128 + .../Pods-Blog-acknowledgements.plist | 132 + .../Pods-Blog/Pods-Blog-environment.h | 6 + .../Pods-Blog/Pods-Blog-resources.sh | 2 + .../Pods-Blog/Pods-Blog.debug.xcconfig | 9 +- .../Pods-Blog/Pods-Blog.release.xcconfig | 9 +- ...mhuri.net-CocoaLumberjack-Private.xcconfig | 2 +- ...samhuri.net-MBProgressHUD-Private.xcconfig | 2 +- .../Pods-samhuri.net-Mantle-Private.xcconfig | 2 +- ...-samhuri.net-OMGHTTPURLRQ-Private.xcconfig | 2 +- ...amhuri.net-ObjectiveSugar-Private.xcconfig | 2 +- ...ds-samhuri.net-PromiseKit-Private.xcconfig | 2 +- ...s-samhuri.net-YapDatabase-Private.xcconfig | 2 +- .../Pods-samhuri.net.debug.xcconfig | 4 +- .../Pods-samhuri.net.release.xcconfig | 4 +- 411 files changed, 40266 insertions(+), 3673 deletions(-) create mode 120000 Pods/Headers/Private/HockeySDK/BITActivityIndicatorButton.h create mode 120000 Pods/Headers/Private/HockeySDK/BITAppStoreHeader.h create mode 120000 Pods/Headers/Private/HockeySDK/BITAppVersionMetaInfo.h create mode 120000 Pods/Headers/Private/HockeySDK/BITArrowImageAnnotation.h create mode 120000 Pods/Headers/Private/HockeySDK/BITAttributedLabel.h create mode 120000 Pods/Headers/Private/HockeySDK/BITAuthenticationViewController.h create mode 120000 Pods/Headers/Private/HockeySDK/BITAuthenticator.h create mode 120000 Pods/Headers/Private/HockeySDK/BITAuthenticator_Private.h create mode 120000 Pods/Headers/Private/HockeySDK/BITBlurImageAnnotation.h create mode 120000 Pods/Headers/Private/HockeySDK/BITCrashAttachment.h create mode 120000 Pods/Headers/Private/HockeySDK/BITCrashDetails.h create mode 120000 Pods/Headers/Private/HockeySDK/BITCrashDetailsPrivate.h create mode 120000 Pods/Headers/Private/HockeySDK/BITCrashManager.h create mode 120000 Pods/Headers/Private/HockeySDK/BITCrashManagerDelegate.h create mode 120000 Pods/Headers/Private/HockeySDK/BITCrashManagerPrivate.h create mode 120000 Pods/Headers/Private/HockeySDK/BITCrashMetaData.h create mode 120000 Pods/Headers/Private/HockeySDK/BITCrashReportTextFormatter.h create mode 120000 Pods/Headers/Private/HockeySDK/BITFeedbackActivity.h create mode 120000 Pods/Headers/Private/HockeySDK/BITFeedbackComposeViewController.h create mode 120000 Pods/Headers/Private/HockeySDK/BITFeedbackComposeViewControllerDelegate.h create mode 120000 Pods/Headers/Private/HockeySDK/BITFeedbackListViewCell.h create mode 120000 Pods/Headers/Private/HockeySDK/BITFeedbackListViewController.h create mode 120000 Pods/Headers/Private/HockeySDK/BITFeedbackManager.h create mode 120000 Pods/Headers/Private/HockeySDK/BITFeedbackManagerDelegate.h create mode 120000 Pods/Headers/Private/HockeySDK/BITFeedbackManagerPrivate.h create mode 120000 Pods/Headers/Private/HockeySDK/BITFeedbackMessage.h create mode 120000 Pods/Headers/Private/HockeySDK/BITFeedbackMessageAttachment.h create mode 120000 Pods/Headers/Private/HockeySDK/BITFeedbackUserDataViewController.h create mode 120000 Pods/Headers/Private/HockeySDK/BITHTTPOperation.h create mode 120000 Pods/Headers/Private/HockeySDK/BITHockeyAppClient.h create mode 120000 Pods/Headers/Private/HockeySDK/BITHockeyAttachment.h create mode 120000 Pods/Headers/Private/HockeySDK/BITHockeyBaseManager.h create mode 120000 Pods/Headers/Private/HockeySDK/BITHockeyBaseManagerPrivate.h create mode 120000 Pods/Headers/Private/HockeySDK/BITHockeyBaseViewController.h create mode 120000 Pods/Headers/Private/HockeySDK/BITHockeyHelper.h create mode 120000 Pods/Headers/Private/HockeySDK/BITHockeyManager.h create mode 120000 Pods/Headers/Private/HockeySDK/BITHockeyManagerDelegate.h create mode 120000 Pods/Headers/Private/HockeySDK/BITImageAnnotation.h create mode 120000 Pods/Headers/Private/HockeySDK/BITImageAnnotationViewController.h create mode 120000 Pods/Headers/Private/HockeySDK/BITKeychainUtils.h create mode 120000 Pods/Headers/Private/HockeySDK/BITRectangleImageAnnotation.h create mode 120000 Pods/Headers/Private/HockeySDK/BITStoreButton.h create mode 120000 Pods/Headers/Private/HockeySDK/BITStoreUpdateManager.h create mode 120000 Pods/Headers/Private/HockeySDK/BITStoreUpdateManagerDelegate.h create mode 120000 Pods/Headers/Private/HockeySDK/BITStoreUpdateManagerPrivate.h create mode 120000 Pods/Headers/Private/HockeySDK/BITUpdateManager.h create mode 120000 Pods/Headers/Private/HockeySDK/BITUpdateManagerDelegate.h create mode 120000 Pods/Headers/Private/HockeySDK/BITUpdateManagerPrivate.h create mode 120000 Pods/Headers/Private/HockeySDK/BITUpdateViewController.h create mode 120000 Pods/Headers/Private/HockeySDK/BITUpdateViewControllerPrivate.h create mode 120000 Pods/Headers/Private/HockeySDK/BITWebTableViewCell.h create mode 120000 Pods/Headers/Private/HockeySDK/HockeySDK.h create mode 120000 Pods/Headers/Private/HockeySDK/HockeySDKFeatureConfig.h create mode 120000 Pods/Headers/Private/HockeySDK/HockeySDKPrivate.h create mode 120000 Pods/Headers/Public/HockeySDK/BITActivityIndicatorButton.h create mode 120000 Pods/Headers/Public/HockeySDK/BITAppStoreHeader.h create mode 120000 Pods/Headers/Public/HockeySDK/BITAppVersionMetaInfo.h create mode 120000 Pods/Headers/Public/HockeySDK/BITArrowImageAnnotation.h create mode 120000 Pods/Headers/Public/HockeySDK/BITAttributedLabel.h create mode 120000 Pods/Headers/Public/HockeySDK/BITAuthenticationViewController.h create mode 120000 Pods/Headers/Public/HockeySDK/BITAuthenticator.h create mode 120000 Pods/Headers/Public/HockeySDK/BITBlurImageAnnotation.h create mode 120000 Pods/Headers/Public/HockeySDK/BITCrashAttachment.h create mode 120000 Pods/Headers/Public/HockeySDK/BITCrashDetails.h create mode 120000 Pods/Headers/Public/HockeySDK/BITCrashManager.h create mode 120000 Pods/Headers/Public/HockeySDK/BITCrashManagerDelegate.h create mode 120000 Pods/Headers/Public/HockeySDK/BITCrashMetaData.h create mode 120000 Pods/Headers/Public/HockeySDK/BITCrashReportTextFormatter.h create mode 120000 Pods/Headers/Public/HockeySDK/BITFeedbackActivity.h create mode 120000 Pods/Headers/Public/HockeySDK/BITFeedbackComposeViewController.h create mode 120000 Pods/Headers/Public/HockeySDK/BITFeedbackComposeViewControllerDelegate.h create mode 120000 Pods/Headers/Public/HockeySDK/BITFeedbackListViewCell.h create mode 120000 Pods/Headers/Public/HockeySDK/BITFeedbackListViewController.h create mode 120000 Pods/Headers/Public/HockeySDK/BITFeedbackManager.h create mode 120000 Pods/Headers/Public/HockeySDK/BITFeedbackManagerDelegate.h create mode 120000 Pods/Headers/Public/HockeySDK/BITFeedbackMessage.h create mode 120000 Pods/Headers/Public/HockeySDK/BITFeedbackMessageAttachment.h create mode 120000 Pods/Headers/Public/HockeySDK/BITFeedbackUserDataViewController.h create mode 120000 Pods/Headers/Public/HockeySDK/BITHTTPOperation.h create mode 120000 Pods/Headers/Public/HockeySDK/BITHockeyAppClient.h create mode 120000 Pods/Headers/Public/HockeySDK/BITHockeyAttachment.h create mode 120000 Pods/Headers/Public/HockeySDK/BITHockeyBaseManager.h create mode 120000 Pods/Headers/Public/HockeySDK/BITHockeyBaseViewController.h create mode 120000 Pods/Headers/Public/HockeySDK/BITHockeyHelper.h create mode 120000 Pods/Headers/Public/HockeySDK/BITHockeyManager.h create mode 120000 Pods/Headers/Public/HockeySDK/BITHockeyManagerDelegate.h create mode 120000 Pods/Headers/Public/HockeySDK/BITImageAnnotation.h create mode 120000 Pods/Headers/Public/HockeySDK/BITImageAnnotationViewController.h create mode 120000 Pods/Headers/Public/HockeySDK/BITKeychainUtils.h create mode 120000 Pods/Headers/Public/HockeySDK/BITRectangleImageAnnotation.h create mode 120000 Pods/Headers/Public/HockeySDK/BITStoreButton.h create mode 120000 Pods/Headers/Public/HockeySDK/BITStoreUpdateManager.h create mode 120000 Pods/Headers/Public/HockeySDK/BITStoreUpdateManagerDelegate.h create mode 120000 Pods/Headers/Public/HockeySDK/BITUpdateManager.h create mode 120000 Pods/Headers/Public/HockeySDK/BITUpdateManagerDelegate.h create mode 120000 Pods/Headers/Public/HockeySDK/BITUpdateViewController.h create mode 120000 Pods/Headers/Public/HockeySDK/BITWebTableViewCell.h create mode 120000 Pods/Headers/Public/HockeySDK/HockeySDK.h create mode 120000 Pods/Headers/Public/HockeySDK/HockeySDKFeatureConfig.h create mode 100644 Pods/HockeySDK/Classes/BITActivityIndicatorButton.h create mode 100644 Pods/HockeySDK/Classes/BITActivityIndicatorButton.m create mode 100644 Pods/HockeySDK/Classes/BITAppStoreHeader.h create mode 100644 Pods/HockeySDK/Classes/BITAppStoreHeader.m create mode 100644 Pods/HockeySDK/Classes/BITAppVersionMetaInfo.h create mode 100644 Pods/HockeySDK/Classes/BITAppVersionMetaInfo.m create mode 100644 Pods/HockeySDK/Classes/BITArrowImageAnnotation.h create mode 100644 Pods/HockeySDK/Classes/BITArrowImageAnnotation.m create mode 100644 Pods/HockeySDK/Classes/BITAttributedLabel.h create mode 100644 Pods/HockeySDK/Classes/BITAttributedLabel.m create mode 100644 Pods/HockeySDK/Classes/BITAuthenticationViewController.h create mode 100644 Pods/HockeySDK/Classes/BITAuthenticationViewController.m create mode 100644 Pods/HockeySDK/Classes/BITAuthenticator.h create mode 100644 Pods/HockeySDK/Classes/BITAuthenticator.m create mode 100644 Pods/HockeySDK/Classes/BITAuthenticator_Private.h create mode 100644 Pods/HockeySDK/Classes/BITBlurImageAnnotation.h create mode 100644 Pods/HockeySDK/Classes/BITBlurImageAnnotation.m create mode 100644 Pods/HockeySDK/Classes/BITCrashAttachment.h create mode 100644 Pods/HockeySDK/Classes/BITCrashAttachment.m create mode 100644 Pods/HockeySDK/Classes/BITCrashDetails.h create mode 100644 Pods/HockeySDK/Classes/BITCrashDetails.m create mode 100644 Pods/HockeySDK/Classes/BITCrashDetailsPrivate.h create mode 100644 Pods/HockeySDK/Classes/BITCrashManager.h create mode 100644 Pods/HockeySDK/Classes/BITCrashManager.m create mode 100644 Pods/HockeySDK/Classes/BITCrashManagerDelegate.h create mode 100644 Pods/HockeySDK/Classes/BITCrashManagerPrivate.h create mode 100644 Pods/HockeySDK/Classes/BITCrashMetaData.h create mode 100644 Pods/HockeySDK/Classes/BITCrashMetaData.m create mode 100644 Pods/HockeySDK/Classes/BITCrashReportTextFormatter.h create mode 100644 Pods/HockeySDK/Classes/BITCrashReportTextFormatter.m create mode 100644 Pods/HockeySDK/Classes/BITFeedbackActivity.h create mode 100644 Pods/HockeySDK/Classes/BITFeedbackActivity.m create mode 100644 Pods/HockeySDK/Classes/BITFeedbackComposeViewController.h create mode 100644 Pods/HockeySDK/Classes/BITFeedbackComposeViewController.m create mode 100644 Pods/HockeySDK/Classes/BITFeedbackComposeViewControllerDelegate.h create mode 100644 Pods/HockeySDK/Classes/BITFeedbackListViewCell.h create mode 100644 Pods/HockeySDK/Classes/BITFeedbackListViewCell.m create mode 100644 Pods/HockeySDK/Classes/BITFeedbackListViewController.h create mode 100644 Pods/HockeySDK/Classes/BITFeedbackListViewController.m create mode 100644 Pods/HockeySDK/Classes/BITFeedbackManager.h create mode 100644 Pods/HockeySDK/Classes/BITFeedbackManager.m create mode 100644 Pods/HockeySDK/Classes/BITFeedbackManagerDelegate.h create mode 100644 Pods/HockeySDK/Classes/BITFeedbackManagerPrivate.h create mode 100644 Pods/HockeySDK/Classes/BITFeedbackMessage.h create mode 100644 Pods/HockeySDK/Classes/BITFeedbackMessage.m create mode 100644 Pods/HockeySDK/Classes/BITFeedbackMessageAttachment.h create mode 100644 Pods/HockeySDK/Classes/BITFeedbackMessageAttachment.m create mode 100644 Pods/HockeySDK/Classes/BITFeedbackUserDataViewController.h create mode 100644 Pods/HockeySDK/Classes/BITFeedbackUserDataViewController.m create mode 100644 Pods/HockeySDK/Classes/BITHTTPOperation.h create mode 100644 Pods/HockeySDK/Classes/BITHTTPOperation.m create mode 100644 Pods/HockeySDK/Classes/BITHockeyAppClient.h create mode 100644 Pods/HockeySDK/Classes/BITHockeyAppClient.m create mode 100644 Pods/HockeySDK/Classes/BITHockeyAttachment.h create mode 100644 Pods/HockeySDK/Classes/BITHockeyAttachment.m create mode 100644 Pods/HockeySDK/Classes/BITHockeyBaseManager.h create mode 100644 Pods/HockeySDK/Classes/BITHockeyBaseManager.m create mode 100644 Pods/HockeySDK/Classes/BITHockeyBaseManagerPrivate.h create mode 100644 Pods/HockeySDK/Classes/BITHockeyBaseViewController.h create mode 100644 Pods/HockeySDK/Classes/BITHockeyBaseViewController.m create mode 100644 Pods/HockeySDK/Classes/BITHockeyHelper.h create mode 100644 Pods/HockeySDK/Classes/BITHockeyHelper.m create mode 100644 Pods/HockeySDK/Classes/BITHockeyManager.h create mode 100644 Pods/HockeySDK/Classes/BITHockeyManager.m create mode 100644 Pods/HockeySDK/Classes/BITHockeyManagerDelegate.h create mode 100644 Pods/HockeySDK/Classes/BITImageAnnotation.h create mode 100644 Pods/HockeySDK/Classes/BITImageAnnotation.m create mode 100644 Pods/HockeySDK/Classes/BITImageAnnotationViewController.h create mode 100644 Pods/HockeySDK/Classes/BITImageAnnotationViewController.m create mode 100644 Pods/HockeySDK/Classes/BITKeychainUtils.h create mode 100644 Pods/HockeySDK/Classes/BITKeychainUtils.m create mode 100644 Pods/HockeySDK/Classes/BITRectangleImageAnnotation.h create mode 100644 Pods/HockeySDK/Classes/BITRectangleImageAnnotation.m create mode 100644 Pods/HockeySDK/Classes/BITStoreButton.h create mode 100644 Pods/HockeySDK/Classes/BITStoreButton.m create mode 100644 Pods/HockeySDK/Classes/BITStoreUpdateManager.h create mode 100644 Pods/HockeySDK/Classes/BITStoreUpdateManager.m create mode 100644 Pods/HockeySDK/Classes/BITStoreUpdateManagerDelegate.h create mode 100644 Pods/HockeySDK/Classes/BITStoreUpdateManagerPrivate.h create mode 100644 Pods/HockeySDK/Classes/BITUpdateManager.h create mode 100644 Pods/HockeySDK/Classes/BITUpdateManager.m create mode 100644 Pods/HockeySDK/Classes/BITUpdateManagerDelegate.h create mode 100644 Pods/HockeySDK/Classes/BITUpdateManagerPrivate.h create mode 100644 Pods/HockeySDK/Classes/BITUpdateViewController.h create mode 100644 Pods/HockeySDK/Classes/BITUpdateViewController.m create mode 100644 Pods/HockeySDK/Classes/BITUpdateViewControllerPrivate.h create mode 100644 Pods/HockeySDK/Classes/BITWebTableViewCell.h create mode 100644 Pods/HockeySDK/Classes/BITWebTableViewCell.m create mode 100644 Pods/HockeySDK/Classes/HockeySDK.h create mode 100644 Pods/HockeySDK/Classes/HockeySDKFeatureConfig.h create mode 100644 Pods/HockeySDK/Classes/HockeySDKPrivate.h create mode 100644 Pods/HockeySDK/Classes/HockeySDKPrivate.m create mode 100644 Pods/HockeySDK/LICENSE create mode 100644 Pods/HockeySDK/README.md create mode 100644 Pods/HockeySDK/Resources/Arrow.png create mode 100644 Pods/HockeySDK/Resources/Arrow@2x.png create mode 100644 Pods/HockeySDK/Resources/Arrow@3x.png create mode 100644 Pods/HockeySDK/Resources/Blur.png create mode 100644 Pods/HockeySDK/Resources/Blur@2x.png create mode 100644 Pods/HockeySDK/Resources/Blur@3x.png create mode 100644 Pods/HockeySDK/Resources/Cancel.png create mode 100644 Pods/HockeySDK/Resources/Cancel@2x.png create mode 100644 Pods/HockeySDK/Resources/Cancel@3x.png create mode 100644 Pods/HockeySDK/Resources/HockeySDK-Info.plist create mode 100644 Pods/HockeySDK/Resources/IconGradient.png create mode 100644 Pods/HockeySDK/Resources/IconGradient@2x.png create mode 100644 Pods/HockeySDK/Resources/Ok.png create mode 100644 Pods/HockeySDK/Resources/Ok@2x.png create mode 100644 Pods/HockeySDK/Resources/Ok@3x.png create mode 100644 Pods/HockeySDK/Resources/Rectangle.png create mode 100644 Pods/HockeySDK/Resources/Rectangle@2x.png create mode 100644 Pods/HockeySDK/Resources/Rectangle@3x.png create mode 100644 Pods/HockeySDK/Resources/authorize_denied.png create mode 100644 Pods/HockeySDK/Resources/authorize_denied@2x.png create mode 100644 Pods/HockeySDK/Resources/authorize_denied@3x.png create mode 100644 Pods/HockeySDK/Resources/bg.png create mode 100644 Pods/HockeySDK/Resources/buttonRoundedDelete.png create mode 100644 Pods/HockeySDK/Resources/buttonRoundedDelete@2x.png create mode 100644 Pods/HockeySDK/Resources/buttonRoundedDeleteHighlighted.png create mode 100644 Pods/HockeySDK/Resources/buttonRoundedDeleteHighlighted@2x.png create mode 100644 Pods/HockeySDK/Resources/buttonRoundedRegular.png create mode 100644 Pods/HockeySDK/Resources/buttonRoundedRegular@2x.png create mode 100644 Pods/HockeySDK/Resources/buttonRoundedRegularHighlighted.png create mode 100644 Pods/HockeySDK/Resources/buttonRoundedRegularHighlighted@2x.png create mode 100644 Pods/HockeySDK/Resources/de.lproj/HockeySDK.strings create mode 100644 Pods/HockeySDK/Resources/en.lproj/HockeySDK.strings create mode 100644 Pods/HockeySDK/Resources/es.lproj/HockeySDK.strings create mode 100644 Pods/HockeySDK/Resources/feedbackActivity.png create mode 100644 Pods/HockeySDK/Resources/feedbackActivity@2x.png create mode 100644 Pods/HockeySDK/Resources/feedbackActivity@2x~ipad.png create mode 100644 Pods/HockeySDK/Resources/feedbackActivity@3x.png create mode 100644 Pods/HockeySDK/Resources/feedbackActivity~ipad.png create mode 100644 Pods/HockeySDK/Resources/fr.lproj/HockeySDK.strings create mode 100644 Pods/HockeySDK/Resources/hr.lproj/HockeySDK.strings create mode 100644 Pods/HockeySDK/Resources/hu.lproj/HockeySDK.strings create mode 100644 Pods/HockeySDK/Resources/iconCamera.png create mode 100644 Pods/HockeySDK/Resources/iconCamera@2x.png create mode 100644 Pods/HockeySDK/Resources/it.lproj/HockeySDK.strings create mode 100644 Pods/HockeySDK/Resources/ja.lproj/HockeySDK.strings create mode 100644 Pods/HockeySDK/Resources/nl.lproj/HockeySDK.strings create mode 100644 Pods/HockeySDK/Resources/pt-PT.lproj/HockeySDK.strings create mode 100644 Pods/HockeySDK/Resources/pt.lproj/HockeySDK.strings create mode 100644 Pods/HockeySDK/Resources/ru.lproj/HockeySDK.strings create mode 100644 Pods/HockeySDK/Resources/zh-Hans.lproj/HockeySDK.strings create mode 100644 Pods/HockeySDK/Support/HockeySDK.xcconfig create mode 100644 Pods/HockeySDK/Support/HockeySDK.xcodeproj/project.pbxproj create mode 100644 Pods/HockeySDK/Support/HockeySDK.xcodeproj/project.xcworkspace/contents.xcworkspacedata create mode 100644 Pods/HockeySDK/Support/HockeySDK.xcodeproj/xcshareddata/xcschemes/HockeySDK Documentation.xcscheme create mode 100644 Pods/HockeySDK/Support/HockeySDK.xcodeproj/xcshareddata/xcschemes/HockeySDK Framework.xcscheme create mode 100644 Pods/HockeySDK/Support/HockeySDK.xcodeproj/xcshareddata/xcschemes/HockeySDK.xcscheme create mode 100644 Pods/HockeySDK/Support/HockeySDK.xcodeproj/xcshareddata/xcschemes/HockeySDKResources.xcscheme create mode 100644 Pods/HockeySDK/Support/HockeySDKCrashOnlyConfig.h create mode 100644 Pods/HockeySDK/Support/HockeySDKTests/BITAuthenticatorTests.m create mode 100644 Pods/HockeySDK/Support/HockeySDKTests/BITCrashManagerTests.m create mode 100644 Pods/HockeySDK/Support/HockeySDKTests/BITCrashReportTextFormatterTests.m create mode 100644 Pods/HockeySDK/Support/HockeySDKTests/BITFeedbackManagerTests.m create mode 100644 Pods/HockeySDK/Support/HockeySDKTests/BITHockeyAppClientTests.m create mode 100644 Pods/HockeySDK/Support/HockeySDKTests/BITHockeyHelperTests.m create mode 100644 Pods/HockeySDK/Support/HockeySDKTests/BITKeychainUtilsTests.m create mode 100644 Pods/HockeySDK/Support/HockeySDKTests/BITStoreUpdateManagerTests.m create mode 100644 Pods/HockeySDK/Support/HockeySDKTests/BITTestHelper.h create mode 100644 Pods/HockeySDK/Support/HockeySDKTests/BITTestHelper.m create mode 100644 Pods/HockeySDK/Support/HockeySDKTests/Fixtures/AppIcon.png create mode 100644 Pods/HockeySDK/Support/HockeySDKTests/Fixtures/AppIcon@2x.png create mode 100644 Pods/HockeySDK/Support/HockeySDKTests/Fixtures/StoreBundleIdentifierKnown.json create mode 100644 Pods/HockeySDK/Support/HockeySDKTests/Fixtures/StoreBundleIdentifierUnknown.json create mode 100644 Pods/HockeySDK/Support/HockeySDKTests/Fixtures/live_report_empty.plcrash create mode 100644 Pods/HockeySDK/Support/HockeySDKTests/Fixtures/live_report_exception.plcrash create mode 100644 Pods/HockeySDK/Support/HockeySDKTests/Fixtures/live_report_signal.plcrash create mode 100644 Pods/HockeySDK/Support/HockeySDKTests/HockeySDKTests-Info.plist create mode 100644 Pods/HockeySDK/Support/HockeySDKTests/HockeySDKTests-Prefix.pch create mode 100644 Pods/HockeySDK/Support/HockeySDKTests/Licenses.txt create mode 120000 Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Headers create mode 120000 Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/OCHamcrestIOS create mode 120000 Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Resources create mode 100644 Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCAllOf.h create mode 100644 Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCAnyOf.h create mode 100644 Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCAssertThat.h create mode 100644 Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCBaseDescription.h create mode 100644 Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCBaseMatcher.h create mode 100644 Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCClassMatcher.h create mode 100644 Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCCollectMatchers.h create mode 100644 Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCConformsToProtocol.h create mode 100644 Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCDescribedAs.h create mode 100644 Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCDescription.h create mode 100644 Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCHasCount.h create mode 100644 Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCHasDescription.h create mode 100644 Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCHasProperty.h create mode 100644 Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCInvocationMatcher.h create mode 100644 Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCIs.h create mode 100644 Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCIsAnything.h create mode 100644 Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCIsCloseTo.h create mode 100644 Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCIsCollectionContaining.h create mode 100644 Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCIsCollectionContainingInAnyOrder.h create mode 100644 Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCIsCollectionContainingInOrder.h create mode 100644 Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCIsCollectionOnlyContaining.h create mode 100644 Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCIsDictionaryContaining.h create mode 100644 Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCIsDictionaryContainingEntries.h create mode 100644 Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCIsDictionaryContainingKey.h create mode 100644 Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCIsDictionaryContainingValue.h create mode 100644 Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCIsEmptyCollection.h create mode 100644 Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCIsEqual.h create mode 100644 Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCIsEqualIgnoringCase.h create mode 100644 Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCIsEqualIgnoringWhiteSpace.h create mode 100644 Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCIsEqualToNumber.h create mode 100644 Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCIsIn.h create mode 100644 Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCIsInstanceOf.h create mode 100644 Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCIsNil.h create mode 100644 Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCIsNot.h create mode 100644 Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCIsSame.h create mode 100644 Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCIsTypeOf.h create mode 100644 Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCMatcher.h create mode 100644 Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCNumberAssert.h create mode 100644 Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCOrderingComparison.h create mode 100644 Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCRequireNonNilObject.h create mode 100644 Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCSelfDescribing.h create mode 100644 Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCStringContains.h create mode 100644 Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCStringContainsInOrder.h create mode 100644 Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCStringDescription.h create mode 100644 Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCStringEndsWith.h create mode 100644 Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCStringStartsWith.h create mode 100644 Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCSubstringMatcher.h create mode 100644 Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCTestFailure.h create mode 100644 Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCTestFailureHandler.h create mode 100644 Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCTestFailureHandlerChain.h create mode 100644 Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCWrapInMatcher.h create mode 100644 Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/OCHamcrestIOS.h create mode 100644 Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/OCHamcrestIOS create mode 100644 Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Resources/Info.plist create mode 120000 Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/Current create mode 120000 Pods/HockeySDK/Support/HockeySDKTests/OCMockitoIOS.framework/Headers create mode 120000 Pods/HockeySDK/Support/HockeySDKTests/OCMockitoIOS.framework/OCMockitoIOS create mode 120000 Pods/HockeySDK/Support/HockeySDKTests/OCMockitoIOS.framework/Resources create mode 100644 Pods/HockeySDK/Support/HockeySDKTests/OCMockitoIOS.framework/Versions/A/Headers/MKTBaseMockObject.h create mode 100644 Pods/HockeySDK/Support/HockeySDKTests/OCMockitoIOS.framework/Versions/A/Headers/MKTClassObjectMock.h create mode 100644 Pods/HockeySDK/Support/HockeySDKTests/OCMockitoIOS.framework/Versions/A/Headers/MKTObjectAndProtocolMock.h create mode 100644 Pods/HockeySDK/Support/HockeySDKTests/OCMockitoIOS.framework/Versions/A/Headers/MKTObjectMock.h create mode 100644 Pods/HockeySDK/Support/HockeySDKTests/OCMockitoIOS.framework/Versions/A/Headers/MKTOngoingStubbing.h create mode 100644 Pods/HockeySDK/Support/HockeySDKTests/OCMockitoIOS.framework/Versions/A/Headers/MKTPrimitiveArgumentMatching.h create mode 100644 Pods/HockeySDK/Support/HockeySDKTests/OCMockitoIOS.framework/Versions/A/Headers/MKTProtocolMock.h create mode 100644 Pods/HockeySDK/Support/HockeySDKTests/OCMockitoIOS.framework/Versions/A/Headers/OCMockitoIOS.h create mode 100644 Pods/HockeySDK/Support/HockeySDKTests/OCMockitoIOS.framework/Versions/A/OCMockitoIOS create mode 100644 Pods/HockeySDK/Support/HockeySDKTests/OCMockitoIOS.framework/Versions/A/Resources/Info.plist create mode 120000 Pods/HockeySDK/Support/HockeySDKTests/OCMockitoIOS.framework/Versions/Current create mode 100644 Pods/HockeySDK/Support/HockeySDKTests/en.lproj/InfoPlist.strings create mode 100644 Pods/HockeySDK/Support/buildnumber.xcconfig create mode 100644 Pods/HockeySDK/Support/crashonly.xcconfig create mode 100644 Pods/HockeySDK/Support/module.modulemap create mode 120000 Pods/HockeySDK/Vendor/CrashReporter.framework/CrashReporter create mode 120000 Pods/HockeySDK/Vendor/CrashReporter.framework/Headers create mode 120000 Pods/HockeySDK/Vendor/CrashReporter.framework/Resources create mode 100644 Pods/HockeySDK/Vendor/CrashReporter.framework/Versions/A/CrashReporter create mode 100644 Pods/HockeySDK/Vendor/CrashReporter.framework/Versions/A/Headers/CrashReporter.h create mode 100644 Pods/HockeySDK/Vendor/CrashReporter.framework/Versions/A/Headers/PLCrashAsyncSignalInfo.h create mode 100644 Pods/HockeySDK/Vendor/CrashReporter.framework/Versions/A/Headers/PLCrashFeatureConfig.h create mode 100644 Pods/HockeySDK/Vendor/CrashReporter.framework/Versions/A/Headers/PLCrashNamespace.h create mode 100644 Pods/HockeySDK/Vendor/CrashReporter.framework/Versions/A/Headers/PLCrashReport.h create mode 100644 Pods/HockeySDK/Vendor/CrashReporter.framework/Versions/A/Headers/PLCrashReportApplicationInfo.h create mode 100644 Pods/HockeySDK/Vendor/CrashReporter.framework/Versions/A/Headers/PLCrashReportBinaryImageInfo.h create mode 100644 Pods/HockeySDK/Vendor/CrashReporter.framework/Versions/A/Headers/PLCrashReportExceptionInfo.h create mode 100644 Pods/HockeySDK/Vendor/CrashReporter.framework/Versions/A/Headers/PLCrashReportFormatter.h create mode 100644 Pods/HockeySDK/Vendor/CrashReporter.framework/Versions/A/Headers/PLCrashReportMachExceptionInfo.h create mode 100644 Pods/HockeySDK/Vendor/CrashReporter.framework/Versions/A/Headers/PLCrashReportMachineInfo.h create mode 100644 Pods/HockeySDK/Vendor/CrashReporter.framework/Versions/A/Headers/PLCrashReportProcessInfo.h create mode 100644 Pods/HockeySDK/Vendor/CrashReporter.framework/Versions/A/Headers/PLCrashReportProcessorInfo.h create mode 100644 Pods/HockeySDK/Vendor/CrashReporter.framework/Versions/A/Headers/PLCrashReportRegisterInfo.h create mode 100644 Pods/HockeySDK/Vendor/CrashReporter.framework/Versions/A/Headers/PLCrashReportSignalInfo.h create mode 100644 Pods/HockeySDK/Vendor/CrashReporter.framework/Versions/A/Headers/PLCrashReportStackFrameInfo.h create mode 100644 Pods/HockeySDK/Vendor/CrashReporter.framework/Versions/A/Headers/PLCrashReportSymbolInfo.h create mode 100644 Pods/HockeySDK/Vendor/CrashReporter.framework/Versions/A/Headers/PLCrashReportSystemInfo.h create mode 100644 Pods/HockeySDK/Vendor/CrashReporter.framework/Versions/A/Headers/PLCrashReportTextFormatter.h create mode 100644 Pods/HockeySDK/Vendor/CrashReporter.framework/Versions/A/Headers/PLCrashReportThreadInfo.h create mode 100644 Pods/HockeySDK/Vendor/CrashReporter.framework/Versions/A/Headers/PLCrashReporter.h create mode 100644 Pods/HockeySDK/Vendor/CrashReporter.framework/Versions/A/Headers/PLCrashReporterConfig.h create mode 100644 Pods/HockeySDK/Vendor/CrashReporter.framework/Versions/A/Resources/Info.plist create mode 120000 Pods/HockeySDK/Vendor/CrashReporter.framework/Versions/Current create mode 100644 Pods/Pods.xcodeproj/xcshareddata/xcschemes/Pods-Blog-HockeySDK-HockeySDKResources.xcscheme create mode 100644 Pods/Pods.xcodeproj/xcshareddata/xcschemes/Pods-Blog-HockeySDK.xcscheme create mode 100644 Pods/Target Support Files/Pods-Blog-HockeySDK/Pods-Blog-HockeySDK-Private.xcconfig create mode 100644 Pods/Target Support Files/Pods-Blog-HockeySDK/Pods-Blog-HockeySDK-dummy.m create mode 100644 Pods/Target Support Files/Pods-Blog-HockeySDK/Pods-Blog-HockeySDK-prefix.pch create mode 100644 Pods/Target Support Files/Pods-Blog-HockeySDK/Pods-Blog-HockeySDK.xcconfig diff --git a/Podfile b/Podfile index b7b8335..3a9c534 100644 --- a/Podfile +++ b/Podfile @@ -20,6 +20,7 @@ target :Blog do pod 'dyci' pod 'FontAwesome+iOS', :git => 'https://github.com/alexdrone/ios-fontawesome.git' pod 'MBProgressHUD' + pod 'HockeySDK' end target :BlogTests do diff --git a/Podfile.lock b/Podfile.lock index f7893de..6a62850 100644 --- a/Podfile.lock +++ b/Podfile.lock @@ -8,6 +8,7 @@ PODS: - dyci/Injections (= 0.1.5.6) - dyci/Injections (0.1.5.6) - FontAwesome+iOS (0.0.1) + - HockeySDK (3.6.4) - libextobjc (0.4.1): - libextobjc/EXTADT (= 0.4.1) - libextobjc/EXTConcreteProtocol (= 0.4.1) @@ -99,6 +100,7 @@ PODS: DEPENDENCIES: - dyci - FontAwesome+iOS (from `https://github.com/alexdrone/ios-fontawesome.git`) + - HockeySDK - libextobjc - Mantle - MBProgressHUD @@ -119,6 +121,7 @@ SPEC CHECKSUMS: CocoaLumberjack: 628fca2e88ef06f7cf6817309aa405f325d9a6fa dyci: 099c2e6dc98abb8f21b370cabbf1443ff700608a FontAwesome+iOS: c6d3bbd2856b9633028d316d56133d45fb6a6cb0 + HockeySDK: c07cdd580296737edcd0963e292c19885a53f563 libextobjc: a650fc1bf489a3d3a9bc2e621efa3e1006fc5471 Mantle: d7c75b6fb789b20f7ae30cd0d09435fe545896ff MBProgressHUD: c47f2c166c126cf2ce36498d80f33e754d4e93ad diff --git a/Pods/Headers/Private/HockeySDK/BITActivityIndicatorButton.h b/Pods/Headers/Private/HockeySDK/BITActivityIndicatorButton.h new file mode 120000 index 0000000..1092ef4 --- /dev/null +++ b/Pods/Headers/Private/HockeySDK/BITActivityIndicatorButton.h @@ -0,0 +1 @@ +../../../HockeySDK/Classes/BITActivityIndicatorButton.h \ No newline at end of file diff --git a/Pods/Headers/Private/HockeySDK/BITAppStoreHeader.h b/Pods/Headers/Private/HockeySDK/BITAppStoreHeader.h new file mode 120000 index 0000000..9f0ad14 --- /dev/null +++ b/Pods/Headers/Private/HockeySDK/BITAppStoreHeader.h @@ -0,0 +1 @@ +../../../HockeySDK/Classes/BITAppStoreHeader.h \ No newline at end of file diff --git a/Pods/Headers/Private/HockeySDK/BITAppVersionMetaInfo.h b/Pods/Headers/Private/HockeySDK/BITAppVersionMetaInfo.h new file mode 120000 index 0000000..63cd39e --- /dev/null +++ b/Pods/Headers/Private/HockeySDK/BITAppVersionMetaInfo.h @@ -0,0 +1 @@ +../../../HockeySDK/Classes/BITAppVersionMetaInfo.h \ No newline at end of file diff --git a/Pods/Headers/Private/HockeySDK/BITArrowImageAnnotation.h b/Pods/Headers/Private/HockeySDK/BITArrowImageAnnotation.h new file mode 120000 index 0000000..6542c24 --- /dev/null +++ b/Pods/Headers/Private/HockeySDK/BITArrowImageAnnotation.h @@ -0,0 +1 @@ +../../../HockeySDK/Classes/BITArrowImageAnnotation.h \ No newline at end of file diff --git a/Pods/Headers/Private/HockeySDK/BITAttributedLabel.h b/Pods/Headers/Private/HockeySDK/BITAttributedLabel.h new file mode 120000 index 0000000..46d598e --- /dev/null +++ b/Pods/Headers/Private/HockeySDK/BITAttributedLabel.h @@ -0,0 +1 @@ +../../../HockeySDK/Classes/BITAttributedLabel.h \ No newline at end of file diff --git a/Pods/Headers/Private/HockeySDK/BITAuthenticationViewController.h b/Pods/Headers/Private/HockeySDK/BITAuthenticationViewController.h new file mode 120000 index 0000000..176aa93 --- /dev/null +++ b/Pods/Headers/Private/HockeySDK/BITAuthenticationViewController.h @@ -0,0 +1 @@ +../../../HockeySDK/Classes/BITAuthenticationViewController.h \ No newline at end of file diff --git a/Pods/Headers/Private/HockeySDK/BITAuthenticator.h b/Pods/Headers/Private/HockeySDK/BITAuthenticator.h new file mode 120000 index 0000000..8567561 --- /dev/null +++ b/Pods/Headers/Private/HockeySDK/BITAuthenticator.h @@ -0,0 +1 @@ +../../../HockeySDK/Classes/BITAuthenticator.h \ No newline at end of file diff --git a/Pods/Headers/Private/HockeySDK/BITAuthenticator_Private.h b/Pods/Headers/Private/HockeySDK/BITAuthenticator_Private.h new file mode 120000 index 0000000..395268d --- /dev/null +++ b/Pods/Headers/Private/HockeySDK/BITAuthenticator_Private.h @@ -0,0 +1 @@ +../../../HockeySDK/Classes/BITAuthenticator_Private.h \ No newline at end of file diff --git a/Pods/Headers/Private/HockeySDK/BITBlurImageAnnotation.h b/Pods/Headers/Private/HockeySDK/BITBlurImageAnnotation.h new file mode 120000 index 0000000..2fce628 --- /dev/null +++ b/Pods/Headers/Private/HockeySDK/BITBlurImageAnnotation.h @@ -0,0 +1 @@ +../../../HockeySDK/Classes/BITBlurImageAnnotation.h \ No newline at end of file diff --git a/Pods/Headers/Private/HockeySDK/BITCrashAttachment.h b/Pods/Headers/Private/HockeySDK/BITCrashAttachment.h new file mode 120000 index 0000000..eaa8a5a --- /dev/null +++ b/Pods/Headers/Private/HockeySDK/BITCrashAttachment.h @@ -0,0 +1 @@ +../../../HockeySDK/Classes/BITCrashAttachment.h \ No newline at end of file diff --git a/Pods/Headers/Private/HockeySDK/BITCrashDetails.h b/Pods/Headers/Private/HockeySDK/BITCrashDetails.h new file mode 120000 index 0000000..3a4bee4 --- /dev/null +++ b/Pods/Headers/Private/HockeySDK/BITCrashDetails.h @@ -0,0 +1 @@ +../../../HockeySDK/Classes/BITCrashDetails.h \ No newline at end of file diff --git a/Pods/Headers/Private/HockeySDK/BITCrashDetailsPrivate.h b/Pods/Headers/Private/HockeySDK/BITCrashDetailsPrivate.h new file mode 120000 index 0000000..bc65016 --- /dev/null +++ b/Pods/Headers/Private/HockeySDK/BITCrashDetailsPrivate.h @@ -0,0 +1 @@ +../../../HockeySDK/Classes/BITCrashDetailsPrivate.h \ No newline at end of file diff --git a/Pods/Headers/Private/HockeySDK/BITCrashManager.h b/Pods/Headers/Private/HockeySDK/BITCrashManager.h new file mode 120000 index 0000000..5934a08 --- /dev/null +++ b/Pods/Headers/Private/HockeySDK/BITCrashManager.h @@ -0,0 +1 @@ +../../../HockeySDK/Classes/BITCrashManager.h \ No newline at end of file diff --git a/Pods/Headers/Private/HockeySDK/BITCrashManagerDelegate.h b/Pods/Headers/Private/HockeySDK/BITCrashManagerDelegate.h new file mode 120000 index 0000000..7073977 --- /dev/null +++ b/Pods/Headers/Private/HockeySDK/BITCrashManagerDelegate.h @@ -0,0 +1 @@ +../../../HockeySDK/Classes/BITCrashManagerDelegate.h \ No newline at end of file diff --git a/Pods/Headers/Private/HockeySDK/BITCrashManagerPrivate.h b/Pods/Headers/Private/HockeySDK/BITCrashManagerPrivate.h new file mode 120000 index 0000000..0f28b49 --- /dev/null +++ b/Pods/Headers/Private/HockeySDK/BITCrashManagerPrivate.h @@ -0,0 +1 @@ +../../../HockeySDK/Classes/BITCrashManagerPrivate.h \ No newline at end of file diff --git a/Pods/Headers/Private/HockeySDK/BITCrashMetaData.h b/Pods/Headers/Private/HockeySDK/BITCrashMetaData.h new file mode 120000 index 0000000..54e7a2a --- /dev/null +++ b/Pods/Headers/Private/HockeySDK/BITCrashMetaData.h @@ -0,0 +1 @@ +../../../HockeySDK/Classes/BITCrashMetaData.h \ No newline at end of file diff --git a/Pods/Headers/Private/HockeySDK/BITCrashReportTextFormatter.h b/Pods/Headers/Private/HockeySDK/BITCrashReportTextFormatter.h new file mode 120000 index 0000000..1c17bf6 --- /dev/null +++ b/Pods/Headers/Private/HockeySDK/BITCrashReportTextFormatter.h @@ -0,0 +1 @@ +../../../HockeySDK/Classes/BITCrashReportTextFormatter.h \ No newline at end of file diff --git a/Pods/Headers/Private/HockeySDK/BITFeedbackActivity.h b/Pods/Headers/Private/HockeySDK/BITFeedbackActivity.h new file mode 120000 index 0000000..3ee3761 --- /dev/null +++ b/Pods/Headers/Private/HockeySDK/BITFeedbackActivity.h @@ -0,0 +1 @@ +../../../HockeySDK/Classes/BITFeedbackActivity.h \ No newline at end of file diff --git a/Pods/Headers/Private/HockeySDK/BITFeedbackComposeViewController.h b/Pods/Headers/Private/HockeySDK/BITFeedbackComposeViewController.h new file mode 120000 index 0000000..a9c8fc9 --- /dev/null +++ b/Pods/Headers/Private/HockeySDK/BITFeedbackComposeViewController.h @@ -0,0 +1 @@ +../../../HockeySDK/Classes/BITFeedbackComposeViewController.h \ No newline at end of file diff --git a/Pods/Headers/Private/HockeySDK/BITFeedbackComposeViewControllerDelegate.h b/Pods/Headers/Private/HockeySDK/BITFeedbackComposeViewControllerDelegate.h new file mode 120000 index 0000000..a58e9d5 --- /dev/null +++ b/Pods/Headers/Private/HockeySDK/BITFeedbackComposeViewControllerDelegate.h @@ -0,0 +1 @@ +../../../HockeySDK/Classes/BITFeedbackComposeViewControllerDelegate.h \ No newline at end of file diff --git a/Pods/Headers/Private/HockeySDK/BITFeedbackListViewCell.h b/Pods/Headers/Private/HockeySDK/BITFeedbackListViewCell.h new file mode 120000 index 0000000..e4f2686 --- /dev/null +++ b/Pods/Headers/Private/HockeySDK/BITFeedbackListViewCell.h @@ -0,0 +1 @@ +../../../HockeySDK/Classes/BITFeedbackListViewCell.h \ No newline at end of file diff --git a/Pods/Headers/Private/HockeySDK/BITFeedbackListViewController.h b/Pods/Headers/Private/HockeySDK/BITFeedbackListViewController.h new file mode 120000 index 0000000..2c45f93 --- /dev/null +++ b/Pods/Headers/Private/HockeySDK/BITFeedbackListViewController.h @@ -0,0 +1 @@ +../../../HockeySDK/Classes/BITFeedbackListViewController.h \ No newline at end of file diff --git a/Pods/Headers/Private/HockeySDK/BITFeedbackManager.h b/Pods/Headers/Private/HockeySDK/BITFeedbackManager.h new file mode 120000 index 0000000..4ece7c3 --- /dev/null +++ b/Pods/Headers/Private/HockeySDK/BITFeedbackManager.h @@ -0,0 +1 @@ +../../../HockeySDK/Classes/BITFeedbackManager.h \ No newline at end of file diff --git a/Pods/Headers/Private/HockeySDK/BITFeedbackManagerDelegate.h b/Pods/Headers/Private/HockeySDK/BITFeedbackManagerDelegate.h new file mode 120000 index 0000000..fe85d70 --- /dev/null +++ b/Pods/Headers/Private/HockeySDK/BITFeedbackManagerDelegate.h @@ -0,0 +1 @@ +../../../HockeySDK/Classes/BITFeedbackManagerDelegate.h \ No newline at end of file diff --git a/Pods/Headers/Private/HockeySDK/BITFeedbackManagerPrivate.h b/Pods/Headers/Private/HockeySDK/BITFeedbackManagerPrivate.h new file mode 120000 index 0000000..6acade0 --- /dev/null +++ b/Pods/Headers/Private/HockeySDK/BITFeedbackManagerPrivate.h @@ -0,0 +1 @@ +../../../HockeySDK/Classes/BITFeedbackManagerPrivate.h \ No newline at end of file diff --git a/Pods/Headers/Private/HockeySDK/BITFeedbackMessage.h b/Pods/Headers/Private/HockeySDK/BITFeedbackMessage.h new file mode 120000 index 0000000..b82c3e2 --- /dev/null +++ b/Pods/Headers/Private/HockeySDK/BITFeedbackMessage.h @@ -0,0 +1 @@ +../../../HockeySDK/Classes/BITFeedbackMessage.h \ No newline at end of file diff --git a/Pods/Headers/Private/HockeySDK/BITFeedbackMessageAttachment.h b/Pods/Headers/Private/HockeySDK/BITFeedbackMessageAttachment.h new file mode 120000 index 0000000..dddfc77 --- /dev/null +++ b/Pods/Headers/Private/HockeySDK/BITFeedbackMessageAttachment.h @@ -0,0 +1 @@ +../../../HockeySDK/Classes/BITFeedbackMessageAttachment.h \ No newline at end of file diff --git a/Pods/Headers/Private/HockeySDK/BITFeedbackUserDataViewController.h b/Pods/Headers/Private/HockeySDK/BITFeedbackUserDataViewController.h new file mode 120000 index 0000000..2c26411 --- /dev/null +++ b/Pods/Headers/Private/HockeySDK/BITFeedbackUserDataViewController.h @@ -0,0 +1 @@ +../../../HockeySDK/Classes/BITFeedbackUserDataViewController.h \ No newline at end of file diff --git a/Pods/Headers/Private/HockeySDK/BITHTTPOperation.h b/Pods/Headers/Private/HockeySDK/BITHTTPOperation.h new file mode 120000 index 0000000..3b70d31 --- /dev/null +++ b/Pods/Headers/Private/HockeySDK/BITHTTPOperation.h @@ -0,0 +1 @@ +../../../HockeySDK/Classes/BITHTTPOperation.h \ No newline at end of file diff --git a/Pods/Headers/Private/HockeySDK/BITHockeyAppClient.h b/Pods/Headers/Private/HockeySDK/BITHockeyAppClient.h new file mode 120000 index 0000000..b4c02e6 --- /dev/null +++ b/Pods/Headers/Private/HockeySDK/BITHockeyAppClient.h @@ -0,0 +1 @@ +../../../HockeySDK/Classes/BITHockeyAppClient.h \ No newline at end of file diff --git a/Pods/Headers/Private/HockeySDK/BITHockeyAttachment.h b/Pods/Headers/Private/HockeySDK/BITHockeyAttachment.h new file mode 120000 index 0000000..db05bcd --- /dev/null +++ b/Pods/Headers/Private/HockeySDK/BITHockeyAttachment.h @@ -0,0 +1 @@ +../../../HockeySDK/Classes/BITHockeyAttachment.h \ No newline at end of file diff --git a/Pods/Headers/Private/HockeySDK/BITHockeyBaseManager.h b/Pods/Headers/Private/HockeySDK/BITHockeyBaseManager.h new file mode 120000 index 0000000..3cb9516 --- /dev/null +++ b/Pods/Headers/Private/HockeySDK/BITHockeyBaseManager.h @@ -0,0 +1 @@ +../../../HockeySDK/Classes/BITHockeyBaseManager.h \ No newline at end of file diff --git a/Pods/Headers/Private/HockeySDK/BITHockeyBaseManagerPrivate.h b/Pods/Headers/Private/HockeySDK/BITHockeyBaseManagerPrivate.h new file mode 120000 index 0000000..63fd2d7 --- /dev/null +++ b/Pods/Headers/Private/HockeySDK/BITHockeyBaseManagerPrivate.h @@ -0,0 +1 @@ +../../../HockeySDK/Classes/BITHockeyBaseManagerPrivate.h \ No newline at end of file diff --git a/Pods/Headers/Private/HockeySDK/BITHockeyBaseViewController.h b/Pods/Headers/Private/HockeySDK/BITHockeyBaseViewController.h new file mode 120000 index 0000000..f8cd886 --- /dev/null +++ b/Pods/Headers/Private/HockeySDK/BITHockeyBaseViewController.h @@ -0,0 +1 @@ +../../../HockeySDK/Classes/BITHockeyBaseViewController.h \ No newline at end of file diff --git a/Pods/Headers/Private/HockeySDK/BITHockeyHelper.h b/Pods/Headers/Private/HockeySDK/BITHockeyHelper.h new file mode 120000 index 0000000..eaacba3 --- /dev/null +++ b/Pods/Headers/Private/HockeySDK/BITHockeyHelper.h @@ -0,0 +1 @@ +../../../HockeySDK/Classes/BITHockeyHelper.h \ No newline at end of file diff --git a/Pods/Headers/Private/HockeySDK/BITHockeyManager.h b/Pods/Headers/Private/HockeySDK/BITHockeyManager.h new file mode 120000 index 0000000..e010c80 --- /dev/null +++ b/Pods/Headers/Private/HockeySDK/BITHockeyManager.h @@ -0,0 +1 @@ +../../../HockeySDK/Classes/BITHockeyManager.h \ No newline at end of file diff --git a/Pods/Headers/Private/HockeySDK/BITHockeyManagerDelegate.h b/Pods/Headers/Private/HockeySDK/BITHockeyManagerDelegate.h new file mode 120000 index 0000000..d7aa47b --- /dev/null +++ b/Pods/Headers/Private/HockeySDK/BITHockeyManagerDelegate.h @@ -0,0 +1 @@ +../../../HockeySDK/Classes/BITHockeyManagerDelegate.h \ No newline at end of file diff --git a/Pods/Headers/Private/HockeySDK/BITImageAnnotation.h b/Pods/Headers/Private/HockeySDK/BITImageAnnotation.h new file mode 120000 index 0000000..c46b085 --- /dev/null +++ b/Pods/Headers/Private/HockeySDK/BITImageAnnotation.h @@ -0,0 +1 @@ +../../../HockeySDK/Classes/BITImageAnnotation.h \ No newline at end of file diff --git a/Pods/Headers/Private/HockeySDK/BITImageAnnotationViewController.h b/Pods/Headers/Private/HockeySDK/BITImageAnnotationViewController.h new file mode 120000 index 0000000..b9e1fb7 --- /dev/null +++ b/Pods/Headers/Private/HockeySDK/BITImageAnnotationViewController.h @@ -0,0 +1 @@ +../../../HockeySDK/Classes/BITImageAnnotationViewController.h \ No newline at end of file diff --git a/Pods/Headers/Private/HockeySDK/BITKeychainUtils.h b/Pods/Headers/Private/HockeySDK/BITKeychainUtils.h new file mode 120000 index 0000000..761c8e8 --- /dev/null +++ b/Pods/Headers/Private/HockeySDK/BITKeychainUtils.h @@ -0,0 +1 @@ +../../../HockeySDK/Classes/BITKeychainUtils.h \ No newline at end of file diff --git a/Pods/Headers/Private/HockeySDK/BITRectangleImageAnnotation.h b/Pods/Headers/Private/HockeySDK/BITRectangleImageAnnotation.h new file mode 120000 index 0000000..4a4dadc --- /dev/null +++ b/Pods/Headers/Private/HockeySDK/BITRectangleImageAnnotation.h @@ -0,0 +1 @@ +../../../HockeySDK/Classes/BITRectangleImageAnnotation.h \ No newline at end of file diff --git a/Pods/Headers/Private/HockeySDK/BITStoreButton.h b/Pods/Headers/Private/HockeySDK/BITStoreButton.h new file mode 120000 index 0000000..69a7ee1 --- /dev/null +++ b/Pods/Headers/Private/HockeySDK/BITStoreButton.h @@ -0,0 +1 @@ +../../../HockeySDK/Classes/BITStoreButton.h \ No newline at end of file diff --git a/Pods/Headers/Private/HockeySDK/BITStoreUpdateManager.h b/Pods/Headers/Private/HockeySDK/BITStoreUpdateManager.h new file mode 120000 index 0000000..0cec214 --- /dev/null +++ b/Pods/Headers/Private/HockeySDK/BITStoreUpdateManager.h @@ -0,0 +1 @@ +../../../HockeySDK/Classes/BITStoreUpdateManager.h \ No newline at end of file diff --git a/Pods/Headers/Private/HockeySDK/BITStoreUpdateManagerDelegate.h b/Pods/Headers/Private/HockeySDK/BITStoreUpdateManagerDelegate.h new file mode 120000 index 0000000..765a1d6 --- /dev/null +++ b/Pods/Headers/Private/HockeySDK/BITStoreUpdateManagerDelegate.h @@ -0,0 +1 @@ +../../../HockeySDK/Classes/BITStoreUpdateManagerDelegate.h \ No newline at end of file diff --git a/Pods/Headers/Private/HockeySDK/BITStoreUpdateManagerPrivate.h b/Pods/Headers/Private/HockeySDK/BITStoreUpdateManagerPrivate.h new file mode 120000 index 0000000..3c10563 --- /dev/null +++ b/Pods/Headers/Private/HockeySDK/BITStoreUpdateManagerPrivate.h @@ -0,0 +1 @@ +../../../HockeySDK/Classes/BITStoreUpdateManagerPrivate.h \ No newline at end of file diff --git a/Pods/Headers/Private/HockeySDK/BITUpdateManager.h b/Pods/Headers/Private/HockeySDK/BITUpdateManager.h new file mode 120000 index 0000000..213385f --- /dev/null +++ b/Pods/Headers/Private/HockeySDK/BITUpdateManager.h @@ -0,0 +1 @@ +../../../HockeySDK/Classes/BITUpdateManager.h \ No newline at end of file diff --git a/Pods/Headers/Private/HockeySDK/BITUpdateManagerDelegate.h b/Pods/Headers/Private/HockeySDK/BITUpdateManagerDelegate.h new file mode 120000 index 0000000..4774b1b --- /dev/null +++ b/Pods/Headers/Private/HockeySDK/BITUpdateManagerDelegate.h @@ -0,0 +1 @@ +../../../HockeySDK/Classes/BITUpdateManagerDelegate.h \ No newline at end of file diff --git a/Pods/Headers/Private/HockeySDK/BITUpdateManagerPrivate.h b/Pods/Headers/Private/HockeySDK/BITUpdateManagerPrivate.h new file mode 120000 index 0000000..ad5afaf --- /dev/null +++ b/Pods/Headers/Private/HockeySDK/BITUpdateManagerPrivate.h @@ -0,0 +1 @@ +../../../HockeySDK/Classes/BITUpdateManagerPrivate.h \ No newline at end of file diff --git a/Pods/Headers/Private/HockeySDK/BITUpdateViewController.h b/Pods/Headers/Private/HockeySDK/BITUpdateViewController.h new file mode 120000 index 0000000..ca187f0 --- /dev/null +++ b/Pods/Headers/Private/HockeySDK/BITUpdateViewController.h @@ -0,0 +1 @@ +../../../HockeySDK/Classes/BITUpdateViewController.h \ No newline at end of file diff --git a/Pods/Headers/Private/HockeySDK/BITUpdateViewControllerPrivate.h b/Pods/Headers/Private/HockeySDK/BITUpdateViewControllerPrivate.h new file mode 120000 index 0000000..5f4b1dc --- /dev/null +++ b/Pods/Headers/Private/HockeySDK/BITUpdateViewControllerPrivate.h @@ -0,0 +1 @@ +../../../HockeySDK/Classes/BITUpdateViewControllerPrivate.h \ No newline at end of file diff --git a/Pods/Headers/Private/HockeySDK/BITWebTableViewCell.h b/Pods/Headers/Private/HockeySDK/BITWebTableViewCell.h new file mode 120000 index 0000000..0827e6f --- /dev/null +++ b/Pods/Headers/Private/HockeySDK/BITWebTableViewCell.h @@ -0,0 +1 @@ +../../../HockeySDK/Classes/BITWebTableViewCell.h \ No newline at end of file diff --git a/Pods/Headers/Private/HockeySDK/HockeySDK.h b/Pods/Headers/Private/HockeySDK/HockeySDK.h new file mode 120000 index 0000000..d5ab803 --- /dev/null +++ b/Pods/Headers/Private/HockeySDK/HockeySDK.h @@ -0,0 +1 @@ +../../../HockeySDK/Classes/HockeySDK.h \ No newline at end of file diff --git a/Pods/Headers/Private/HockeySDK/HockeySDKFeatureConfig.h b/Pods/Headers/Private/HockeySDK/HockeySDKFeatureConfig.h new file mode 120000 index 0000000..41a8c4b --- /dev/null +++ b/Pods/Headers/Private/HockeySDK/HockeySDKFeatureConfig.h @@ -0,0 +1 @@ +../../../HockeySDK/Classes/HockeySDKFeatureConfig.h \ No newline at end of file diff --git a/Pods/Headers/Private/HockeySDK/HockeySDKPrivate.h b/Pods/Headers/Private/HockeySDK/HockeySDKPrivate.h new file mode 120000 index 0000000..250c180 --- /dev/null +++ b/Pods/Headers/Private/HockeySDK/HockeySDKPrivate.h @@ -0,0 +1 @@ +../../../HockeySDK/Classes/HockeySDKPrivate.h \ No newline at end of file diff --git a/Pods/Headers/Public/HockeySDK/BITActivityIndicatorButton.h b/Pods/Headers/Public/HockeySDK/BITActivityIndicatorButton.h new file mode 120000 index 0000000..1092ef4 --- /dev/null +++ b/Pods/Headers/Public/HockeySDK/BITActivityIndicatorButton.h @@ -0,0 +1 @@ +../../../HockeySDK/Classes/BITActivityIndicatorButton.h \ No newline at end of file diff --git a/Pods/Headers/Public/HockeySDK/BITAppStoreHeader.h b/Pods/Headers/Public/HockeySDK/BITAppStoreHeader.h new file mode 120000 index 0000000..9f0ad14 --- /dev/null +++ b/Pods/Headers/Public/HockeySDK/BITAppStoreHeader.h @@ -0,0 +1 @@ +../../../HockeySDK/Classes/BITAppStoreHeader.h \ No newline at end of file diff --git a/Pods/Headers/Public/HockeySDK/BITAppVersionMetaInfo.h b/Pods/Headers/Public/HockeySDK/BITAppVersionMetaInfo.h new file mode 120000 index 0000000..63cd39e --- /dev/null +++ b/Pods/Headers/Public/HockeySDK/BITAppVersionMetaInfo.h @@ -0,0 +1 @@ +../../../HockeySDK/Classes/BITAppVersionMetaInfo.h \ No newline at end of file diff --git a/Pods/Headers/Public/HockeySDK/BITArrowImageAnnotation.h b/Pods/Headers/Public/HockeySDK/BITArrowImageAnnotation.h new file mode 120000 index 0000000..6542c24 --- /dev/null +++ b/Pods/Headers/Public/HockeySDK/BITArrowImageAnnotation.h @@ -0,0 +1 @@ +../../../HockeySDK/Classes/BITArrowImageAnnotation.h \ No newline at end of file diff --git a/Pods/Headers/Public/HockeySDK/BITAttributedLabel.h b/Pods/Headers/Public/HockeySDK/BITAttributedLabel.h new file mode 120000 index 0000000..46d598e --- /dev/null +++ b/Pods/Headers/Public/HockeySDK/BITAttributedLabel.h @@ -0,0 +1 @@ +../../../HockeySDK/Classes/BITAttributedLabel.h \ No newline at end of file diff --git a/Pods/Headers/Public/HockeySDK/BITAuthenticationViewController.h b/Pods/Headers/Public/HockeySDK/BITAuthenticationViewController.h new file mode 120000 index 0000000..176aa93 --- /dev/null +++ b/Pods/Headers/Public/HockeySDK/BITAuthenticationViewController.h @@ -0,0 +1 @@ +../../../HockeySDK/Classes/BITAuthenticationViewController.h \ No newline at end of file diff --git a/Pods/Headers/Public/HockeySDK/BITAuthenticator.h b/Pods/Headers/Public/HockeySDK/BITAuthenticator.h new file mode 120000 index 0000000..8567561 --- /dev/null +++ b/Pods/Headers/Public/HockeySDK/BITAuthenticator.h @@ -0,0 +1 @@ +../../../HockeySDK/Classes/BITAuthenticator.h \ No newline at end of file diff --git a/Pods/Headers/Public/HockeySDK/BITBlurImageAnnotation.h b/Pods/Headers/Public/HockeySDK/BITBlurImageAnnotation.h new file mode 120000 index 0000000..2fce628 --- /dev/null +++ b/Pods/Headers/Public/HockeySDK/BITBlurImageAnnotation.h @@ -0,0 +1 @@ +../../../HockeySDK/Classes/BITBlurImageAnnotation.h \ No newline at end of file diff --git a/Pods/Headers/Public/HockeySDK/BITCrashAttachment.h b/Pods/Headers/Public/HockeySDK/BITCrashAttachment.h new file mode 120000 index 0000000..eaa8a5a --- /dev/null +++ b/Pods/Headers/Public/HockeySDK/BITCrashAttachment.h @@ -0,0 +1 @@ +../../../HockeySDK/Classes/BITCrashAttachment.h \ No newline at end of file diff --git a/Pods/Headers/Public/HockeySDK/BITCrashDetails.h b/Pods/Headers/Public/HockeySDK/BITCrashDetails.h new file mode 120000 index 0000000..3a4bee4 --- /dev/null +++ b/Pods/Headers/Public/HockeySDK/BITCrashDetails.h @@ -0,0 +1 @@ +../../../HockeySDK/Classes/BITCrashDetails.h \ No newline at end of file diff --git a/Pods/Headers/Public/HockeySDK/BITCrashManager.h b/Pods/Headers/Public/HockeySDK/BITCrashManager.h new file mode 120000 index 0000000..5934a08 --- /dev/null +++ b/Pods/Headers/Public/HockeySDK/BITCrashManager.h @@ -0,0 +1 @@ +../../../HockeySDK/Classes/BITCrashManager.h \ No newline at end of file diff --git a/Pods/Headers/Public/HockeySDK/BITCrashManagerDelegate.h b/Pods/Headers/Public/HockeySDK/BITCrashManagerDelegate.h new file mode 120000 index 0000000..7073977 --- /dev/null +++ b/Pods/Headers/Public/HockeySDK/BITCrashManagerDelegate.h @@ -0,0 +1 @@ +../../../HockeySDK/Classes/BITCrashManagerDelegate.h \ No newline at end of file diff --git a/Pods/Headers/Public/HockeySDK/BITCrashMetaData.h b/Pods/Headers/Public/HockeySDK/BITCrashMetaData.h new file mode 120000 index 0000000..54e7a2a --- /dev/null +++ b/Pods/Headers/Public/HockeySDK/BITCrashMetaData.h @@ -0,0 +1 @@ +../../../HockeySDK/Classes/BITCrashMetaData.h \ No newline at end of file diff --git a/Pods/Headers/Public/HockeySDK/BITCrashReportTextFormatter.h b/Pods/Headers/Public/HockeySDK/BITCrashReportTextFormatter.h new file mode 120000 index 0000000..1c17bf6 --- /dev/null +++ b/Pods/Headers/Public/HockeySDK/BITCrashReportTextFormatter.h @@ -0,0 +1 @@ +../../../HockeySDK/Classes/BITCrashReportTextFormatter.h \ No newline at end of file diff --git a/Pods/Headers/Public/HockeySDK/BITFeedbackActivity.h b/Pods/Headers/Public/HockeySDK/BITFeedbackActivity.h new file mode 120000 index 0000000..3ee3761 --- /dev/null +++ b/Pods/Headers/Public/HockeySDK/BITFeedbackActivity.h @@ -0,0 +1 @@ +../../../HockeySDK/Classes/BITFeedbackActivity.h \ No newline at end of file diff --git a/Pods/Headers/Public/HockeySDK/BITFeedbackComposeViewController.h b/Pods/Headers/Public/HockeySDK/BITFeedbackComposeViewController.h new file mode 120000 index 0000000..a9c8fc9 --- /dev/null +++ b/Pods/Headers/Public/HockeySDK/BITFeedbackComposeViewController.h @@ -0,0 +1 @@ +../../../HockeySDK/Classes/BITFeedbackComposeViewController.h \ No newline at end of file diff --git a/Pods/Headers/Public/HockeySDK/BITFeedbackComposeViewControllerDelegate.h b/Pods/Headers/Public/HockeySDK/BITFeedbackComposeViewControllerDelegate.h new file mode 120000 index 0000000..a58e9d5 --- /dev/null +++ b/Pods/Headers/Public/HockeySDK/BITFeedbackComposeViewControllerDelegate.h @@ -0,0 +1 @@ +../../../HockeySDK/Classes/BITFeedbackComposeViewControllerDelegate.h \ No newline at end of file diff --git a/Pods/Headers/Public/HockeySDK/BITFeedbackListViewCell.h b/Pods/Headers/Public/HockeySDK/BITFeedbackListViewCell.h new file mode 120000 index 0000000..e4f2686 --- /dev/null +++ b/Pods/Headers/Public/HockeySDK/BITFeedbackListViewCell.h @@ -0,0 +1 @@ +../../../HockeySDK/Classes/BITFeedbackListViewCell.h \ No newline at end of file diff --git a/Pods/Headers/Public/HockeySDK/BITFeedbackListViewController.h b/Pods/Headers/Public/HockeySDK/BITFeedbackListViewController.h new file mode 120000 index 0000000..2c45f93 --- /dev/null +++ b/Pods/Headers/Public/HockeySDK/BITFeedbackListViewController.h @@ -0,0 +1 @@ +../../../HockeySDK/Classes/BITFeedbackListViewController.h \ No newline at end of file diff --git a/Pods/Headers/Public/HockeySDK/BITFeedbackManager.h b/Pods/Headers/Public/HockeySDK/BITFeedbackManager.h new file mode 120000 index 0000000..4ece7c3 --- /dev/null +++ b/Pods/Headers/Public/HockeySDK/BITFeedbackManager.h @@ -0,0 +1 @@ +../../../HockeySDK/Classes/BITFeedbackManager.h \ No newline at end of file diff --git a/Pods/Headers/Public/HockeySDK/BITFeedbackManagerDelegate.h b/Pods/Headers/Public/HockeySDK/BITFeedbackManagerDelegate.h new file mode 120000 index 0000000..fe85d70 --- /dev/null +++ b/Pods/Headers/Public/HockeySDK/BITFeedbackManagerDelegate.h @@ -0,0 +1 @@ +../../../HockeySDK/Classes/BITFeedbackManagerDelegate.h \ No newline at end of file diff --git a/Pods/Headers/Public/HockeySDK/BITFeedbackMessage.h b/Pods/Headers/Public/HockeySDK/BITFeedbackMessage.h new file mode 120000 index 0000000..b82c3e2 --- /dev/null +++ b/Pods/Headers/Public/HockeySDK/BITFeedbackMessage.h @@ -0,0 +1 @@ +../../../HockeySDK/Classes/BITFeedbackMessage.h \ No newline at end of file diff --git a/Pods/Headers/Public/HockeySDK/BITFeedbackMessageAttachment.h b/Pods/Headers/Public/HockeySDK/BITFeedbackMessageAttachment.h new file mode 120000 index 0000000..dddfc77 --- /dev/null +++ b/Pods/Headers/Public/HockeySDK/BITFeedbackMessageAttachment.h @@ -0,0 +1 @@ +../../../HockeySDK/Classes/BITFeedbackMessageAttachment.h \ No newline at end of file diff --git a/Pods/Headers/Public/HockeySDK/BITFeedbackUserDataViewController.h b/Pods/Headers/Public/HockeySDK/BITFeedbackUserDataViewController.h new file mode 120000 index 0000000..2c26411 --- /dev/null +++ b/Pods/Headers/Public/HockeySDK/BITFeedbackUserDataViewController.h @@ -0,0 +1 @@ +../../../HockeySDK/Classes/BITFeedbackUserDataViewController.h \ No newline at end of file diff --git a/Pods/Headers/Public/HockeySDK/BITHTTPOperation.h b/Pods/Headers/Public/HockeySDK/BITHTTPOperation.h new file mode 120000 index 0000000..3b70d31 --- /dev/null +++ b/Pods/Headers/Public/HockeySDK/BITHTTPOperation.h @@ -0,0 +1 @@ +../../../HockeySDK/Classes/BITHTTPOperation.h \ No newline at end of file diff --git a/Pods/Headers/Public/HockeySDK/BITHockeyAppClient.h b/Pods/Headers/Public/HockeySDK/BITHockeyAppClient.h new file mode 120000 index 0000000..b4c02e6 --- /dev/null +++ b/Pods/Headers/Public/HockeySDK/BITHockeyAppClient.h @@ -0,0 +1 @@ +../../../HockeySDK/Classes/BITHockeyAppClient.h \ No newline at end of file diff --git a/Pods/Headers/Public/HockeySDK/BITHockeyAttachment.h b/Pods/Headers/Public/HockeySDK/BITHockeyAttachment.h new file mode 120000 index 0000000..db05bcd --- /dev/null +++ b/Pods/Headers/Public/HockeySDK/BITHockeyAttachment.h @@ -0,0 +1 @@ +../../../HockeySDK/Classes/BITHockeyAttachment.h \ No newline at end of file diff --git a/Pods/Headers/Public/HockeySDK/BITHockeyBaseManager.h b/Pods/Headers/Public/HockeySDK/BITHockeyBaseManager.h new file mode 120000 index 0000000..3cb9516 --- /dev/null +++ b/Pods/Headers/Public/HockeySDK/BITHockeyBaseManager.h @@ -0,0 +1 @@ +../../../HockeySDK/Classes/BITHockeyBaseManager.h \ No newline at end of file diff --git a/Pods/Headers/Public/HockeySDK/BITHockeyBaseViewController.h b/Pods/Headers/Public/HockeySDK/BITHockeyBaseViewController.h new file mode 120000 index 0000000..f8cd886 --- /dev/null +++ b/Pods/Headers/Public/HockeySDK/BITHockeyBaseViewController.h @@ -0,0 +1 @@ +../../../HockeySDK/Classes/BITHockeyBaseViewController.h \ No newline at end of file diff --git a/Pods/Headers/Public/HockeySDK/BITHockeyHelper.h b/Pods/Headers/Public/HockeySDK/BITHockeyHelper.h new file mode 120000 index 0000000..eaacba3 --- /dev/null +++ b/Pods/Headers/Public/HockeySDK/BITHockeyHelper.h @@ -0,0 +1 @@ +../../../HockeySDK/Classes/BITHockeyHelper.h \ No newline at end of file diff --git a/Pods/Headers/Public/HockeySDK/BITHockeyManager.h b/Pods/Headers/Public/HockeySDK/BITHockeyManager.h new file mode 120000 index 0000000..e010c80 --- /dev/null +++ b/Pods/Headers/Public/HockeySDK/BITHockeyManager.h @@ -0,0 +1 @@ +../../../HockeySDK/Classes/BITHockeyManager.h \ No newline at end of file diff --git a/Pods/Headers/Public/HockeySDK/BITHockeyManagerDelegate.h b/Pods/Headers/Public/HockeySDK/BITHockeyManagerDelegate.h new file mode 120000 index 0000000..d7aa47b --- /dev/null +++ b/Pods/Headers/Public/HockeySDK/BITHockeyManagerDelegate.h @@ -0,0 +1 @@ +../../../HockeySDK/Classes/BITHockeyManagerDelegate.h \ No newline at end of file diff --git a/Pods/Headers/Public/HockeySDK/BITImageAnnotation.h b/Pods/Headers/Public/HockeySDK/BITImageAnnotation.h new file mode 120000 index 0000000..c46b085 --- /dev/null +++ b/Pods/Headers/Public/HockeySDK/BITImageAnnotation.h @@ -0,0 +1 @@ +../../../HockeySDK/Classes/BITImageAnnotation.h \ No newline at end of file diff --git a/Pods/Headers/Public/HockeySDK/BITImageAnnotationViewController.h b/Pods/Headers/Public/HockeySDK/BITImageAnnotationViewController.h new file mode 120000 index 0000000..b9e1fb7 --- /dev/null +++ b/Pods/Headers/Public/HockeySDK/BITImageAnnotationViewController.h @@ -0,0 +1 @@ +../../../HockeySDK/Classes/BITImageAnnotationViewController.h \ No newline at end of file diff --git a/Pods/Headers/Public/HockeySDK/BITKeychainUtils.h b/Pods/Headers/Public/HockeySDK/BITKeychainUtils.h new file mode 120000 index 0000000..761c8e8 --- /dev/null +++ b/Pods/Headers/Public/HockeySDK/BITKeychainUtils.h @@ -0,0 +1 @@ +../../../HockeySDK/Classes/BITKeychainUtils.h \ No newline at end of file diff --git a/Pods/Headers/Public/HockeySDK/BITRectangleImageAnnotation.h b/Pods/Headers/Public/HockeySDK/BITRectangleImageAnnotation.h new file mode 120000 index 0000000..4a4dadc --- /dev/null +++ b/Pods/Headers/Public/HockeySDK/BITRectangleImageAnnotation.h @@ -0,0 +1 @@ +../../../HockeySDK/Classes/BITRectangleImageAnnotation.h \ No newline at end of file diff --git a/Pods/Headers/Public/HockeySDK/BITStoreButton.h b/Pods/Headers/Public/HockeySDK/BITStoreButton.h new file mode 120000 index 0000000..69a7ee1 --- /dev/null +++ b/Pods/Headers/Public/HockeySDK/BITStoreButton.h @@ -0,0 +1 @@ +../../../HockeySDK/Classes/BITStoreButton.h \ No newline at end of file diff --git a/Pods/Headers/Public/HockeySDK/BITStoreUpdateManager.h b/Pods/Headers/Public/HockeySDK/BITStoreUpdateManager.h new file mode 120000 index 0000000..0cec214 --- /dev/null +++ b/Pods/Headers/Public/HockeySDK/BITStoreUpdateManager.h @@ -0,0 +1 @@ +../../../HockeySDK/Classes/BITStoreUpdateManager.h \ No newline at end of file diff --git a/Pods/Headers/Public/HockeySDK/BITStoreUpdateManagerDelegate.h b/Pods/Headers/Public/HockeySDK/BITStoreUpdateManagerDelegate.h new file mode 120000 index 0000000..765a1d6 --- /dev/null +++ b/Pods/Headers/Public/HockeySDK/BITStoreUpdateManagerDelegate.h @@ -0,0 +1 @@ +../../../HockeySDK/Classes/BITStoreUpdateManagerDelegate.h \ No newline at end of file diff --git a/Pods/Headers/Public/HockeySDK/BITUpdateManager.h b/Pods/Headers/Public/HockeySDK/BITUpdateManager.h new file mode 120000 index 0000000..213385f --- /dev/null +++ b/Pods/Headers/Public/HockeySDK/BITUpdateManager.h @@ -0,0 +1 @@ +../../../HockeySDK/Classes/BITUpdateManager.h \ No newline at end of file diff --git a/Pods/Headers/Public/HockeySDK/BITUpdateManagerDelegate.h b/Pods/Headers/Public/HockeySDK/BITUpdateManagerDelegate.h new file mode 120000 index 0000000..4774b1b --- /dev/null +++ b/Pods/Headers/Public/HockeySDK/BITUpdateManagerDelegate.h @@ -0,0 +1 @@ +../../../HockeySDK/Classes/BITUpdateManagerDelegate.h \ No newline at end of file diff --git a/Pods/Headers/Public/HockeySDK/BITUpdateViewController.h b/Pods/Headers/Public/HockeySDK/BITUpdateViewController.h new file mode 120000 index 0000000..ca187f0 --- /dev/null +++ b/Pods/Headers/Public/HockeySDK/BITUpdateViewController.h @@ -0,0 +1 @@ +../../../HockeySDK/Classes/BITUpdateViewController.h \ No newline at end of file diff --git a/Pods/Headers/Public/HockeySDK/BITWebTableViewCell.h b/Pods/Headers/Public/HockeySDK/BITWebTableViewCell.h new file mode 120000 index 0000000..0827e6f --- /dev/null +++ b/Pods/Headers/Public/HockeySDK/BITWebTableViewCell.h @@ -0,0 +1 @@ +../../../HockeySDK/Classes/BITWebTableViewCell.h \ No newline at end of file diff --git a/Pods/Headers/Public/HockeySDK/HockeySDK.h b/Pods/Headers/Public/HockeySDK/HockeySDK.h new file mode 120000 index 0000000..d5ab803 --- /dev/null +++ b/Pods/Headers/Public/HockeySDK/HockeySDK.h @@ -0,0 +1 @@ +../../../HockeySDK/Classes/HockeySDK.h \ No newline at end of file diff --git a/Pods/Headers/Public/HockeySDK/HockeySDKFeatureConfig.h b/Pods/Headers/Public/HockeySDK/HockeySDKFeatureConfig.h new file mode 120000 index 0000000..41a8c4b --- /dev/null +++ b/Pods/Headers/Public/HockeySDK/HockeySDKFeatureConfig.h @@ -0,0 +1 @@ +../../../HockeySDK/Classes/HockeySDKFeatureConfig.h \ No newline at end of file diff --git a/Pods/HockeySDK/Classes/BITActivityIndicatorButton.h b/Pods/HockeySDK/Classes/BITActivityIndicatorButton.h new file mode 100644 index 0000000..2c63322 --- /dev/null +++ b/Pods/HockeySDK/Classes/BITActivityIndicatorButton.h @@ -0,0 +1,33 @@ +/* + * Copyright (c) 2012-2014 HockeyApp, Bit Stadium GmbH. + * All rights reserved. + * + * Permission is hereby granted, free of charge, to any person + * obtaining a copy of this software and associated documentation + * files (the "Software"), to deal in the Software without + * restriction, including without limitation the rights to use, + * copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following + * conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES + * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + */ + +#import + +@interface BITActivityIndicatorButton : UIButton + +- (void)setShowsActivityIndicator:(BOOL)showsIndicator; + +@end diff --git a/Pods/HockeySDK/Classes/BITActivityIndicatorButton.m b/Pods/HockeySDK/Classes/BITActivityIndicatorButton.m new file mode 100644 index 0000000..0096618 --- /dev/null +++ b/Pods/HockeySDK/Classes/BITActivityIndicatorButton.m @@ -0,0 +1,76 @@ +/* + * Copyright (c) 2012-2014 HockeyApp, Bit Stadium GmbH. + * All rights reserved. + * + * Permission is hereby granted, free of charge, to any person + * obtaining a copy of this software and associated documentation + * files (the "Software"), to deal in the Software without + * restriction, including without limitation the rights to use, + * copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following + * conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES + * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + */ + +#import "BITActivityIndicatorButton.h" + +@interface BITActivityIndicatorButton() + +@property (nonatomic, strong) UIActivityIndicatorView *indicator; +@property (nonatomic) BOOL indicatorVisible; + +@end + +@implementation BITActivityIndicatorButton + +- (void)setShowsActivityIndicator:(BOOL)showsIndicator { + if (self.indicatorVisible == showsIndicator){ + return; + } + + if (!self.indicator){ + self.indicator = [[UIActivityIndicatorView alloc] initWithFrame:self.bounds]; + [self addSubview:self.indicator]; + [self.indicator setColor:[UIColor blackColor]]; + } + + self.indicatorVisible = showsIndicator; + + if (showsIndicator){ + [self.indicator startAnimating]; + self.indicator.alpha = 1; + self.layer.borderWidth = 1; + self.layer.borderColor = [UIColor lightGrayColor].CGColor; + self.layer.cornerRadius = 5; + self.imageView.image = nil; + } else { + [self.indicator stopAnimating]; + self.layer.cornerRadius = 0; + self.indicator.alpha = 0; + self.layer.borderWidth = 0; + + } + +} + +- (void)layoutSubviews { + [super layoutSubviews]; + + [self.indicator setFrame:self.bounds]; + +} + + +@end diff --git a/Pods/HockeySDK/Classes/BITAppStoreHeader.h b/Pods/HockeySDK/Classes/BITAppStoreHeader.h new file mode 100644 index 0000000..b08ada4 --- /dev/null +++ b/Pods/HockeySDK/Classes/BITAppStoreHeader.h @@ -0,0 +1,60 @@ +/* + * Author: Andreas Linde + * Peter Steinberger + * + * Copyright (c) 2012-2014 HockeyApp, Bit Stadium GmbH. + * Copyright (c) 2011-2012 Peter Steinberger. + * All rights reserved. + * + * Permission is hereby granted, free of charge, to any person + * obtaining a copy of this software and associated documentation + * files (the "Software"), to deal in the Software without + * restriction, including without limitation the rights to use, + * copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following + * conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES + * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + */ + + +#import + +#ifndef __IPHONE_6_1 +#define __IPHONE_6_1 60100 +#endif + + +/** + * Header style depending on the iOS version + */ +typedef NS_ENUM(NSUInteger, BITAppStoreHeaderStyle) { + /** + * Default is iOS 6 style + */ + BITAppStoreHeaderStyleDefault = 0, + /** + * Draw header in the iOS 7 style + */ + BITAppStoreHeaderStyleOS7 = 1 +}; + +@interface BITAppStoreHeader : UIView + +@property (nonatomic, copy) NSString *headerText; +@property (nonatomic, copy) NSString *subHeaderText; +@property (nonatomic, strong) UIImage *iconImage; +@property (nonatomic, assign) BITAppStoreHeaderStyle style; + +@end diff --git a/Pods/HockeySDK/Classes/BITAppStoreHeader.m b/Pods/HockeySDK/Classes/BITAppStoreHeader.m new file mode 100644 index 0000000..87a967f --- /dev/null +++ b/Pods/HockeySDK/Classes/BITAppStoreHeader.m @@ -0,0 +1,160 @@ +/* + * Author: Andreas Linde + * Peter Steinberger + * + * Copyright (c) 2012-2014 HockeyApp, Bit Stadium GmbH. + * Copyright (c) 2011-2012 Peter Steinberger. + * All rights reserved. + * + * Permission is hereby granted, free of charge, to any person + * obtaining a copy of this software and associated documentation + * files (the "Software"), to deal in the Software without + * restriction, including without limitation the rights to use, + * copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following + * conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES + * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + */ + + +#import "BITAppStoreHeader.h" +#import "BITHockeyHelper.h" +#import "HockeySDKPrivate.h" + + +#define kLightGrayColor BIT_RGBCOLOR(235, 235, 235) +#define kDarkGrayColor BIT_RGBCOLOR(186, 186, 186) +#define kWhiteBackgroundColorDefault BIT_RGBCOLOR(245, 245, 245) +#define kWhiteBackgroundColorOS7 BIT_RGBCOLOR(255, 255, 255) +#define kImageHeight 72 +#define kImageBorderRadius 12 +#define kImageBorderRadiusiOS7 16.5 +#define kImageLeftMargin 14 +#define kImageTopMargin 12 +#define kTextRow kImageTopMargin*2 + kImageHeight + +@implementation BITAppStoreHeader { + UILabel *_headerLabelView; + UILabel *_middleLabelView; +} + + +#pragma mark - NSObject + +- (instancetype)initWithFrame:(CGRect)frame { + if ((self = [super initWithFrame:frame])) { + self.autoresizingMask = UIViewAutoresizingFlexibleWidth; + self.backgroundColor = kWhiteBackgroundColorDefault; + self.style = BITAppStoreHeaderStyleDefault; + } + return self; +} + + +#pragma mark - UIView + +- (void)drawRect:(CGRect)rect { + CGRect bounds = self.bounds; + CGContextRef context = UIGraphicsGetCurrentContext(); + + if (self.style == BITAppStoreHeaderStyleDefault) { + // draw the gradient + NSArray *colors = [NSArray arrayWithObjects:(id)kDarkGrayColor.CGColor, (id)kLightGrayColor.CGColor, nil]; + CGGradientRef gradient = CGGradientCreateWithColors(CGColorGetColorSpace((__bridge CGColorRef)[colors objectAtIndex:0]), (__bridge CFArrayRef)colors, (CGFloat[2]){0, 1}); + CGPoint top = CGPointMake(CGRectGetMidX(bounds), bounds.size.height - 3); + CGPoint bottom = CGPointMake(CGRectGetMidX(bounds), CGRectGetMaxY(bounds)); + CGContextDrawLinearGradient(context, gradient, top, bottom, 0); + CGGradientRelease(gradient); + } else { + // draw the line + CGContextRef ctx = UIGraphicsGetCurrentContext(); + CGContextSetLineWidth(ctx, 1.0); + CGContextSetStrokeColorWithColor(ctx, kDarkGrayColor.CGColor); + CGContextMoveToPoint(ctx, 0, CGRectGetMaxY(bounds)); + CGContextAddLineToPoint( ctx, CGRectGetMaxX(bounds), CGRectGetMaxY(bounds)); + CGContextStrokePath(ctx); + } + + // icon + [_iconImage drawAtPoint:CGPointMake(kImageLeftMargin, kImageTopMargin)]; + + [super drawRect:rect]; +} + + +- (void)layoutSubviews { + if (self.style == BITAppStoreHeaderStyleOS7) + self.backgroundColor = kWhiteBackgroundColorOS7; + + [super layoutSubviews]; + + CGFloat globalWidth = self.frame.size.width; + + // draw header name + UIColor *mainTextColor = BIT_RGBCOLOR(61, 61, 61); + UIColor *secondaryTextColor = BIT_RGBCOLOR(100, 100, 100); + UIFont *mainFont = [UIFont boldSystemFontOfSize:15]; + UIFont *secondaryFont = [UIFont systemFontOfSize:10]; + + if (!_headerLabelView) _headerLabelView = [[UILabel alloc] init]; + [_headerLabelView setFont:mainFont]; + [_headerLabelView setFrame:CGRectMake(kTextRow, kImageTopMargin, globalWidth-kTextRow, 20)]; + [_headerLabelView setTextColor:mainTextColor]; + [_headerLabelView setBackgroundColor:[UIColor clearColor]]; + [_headerLabelView setText:_headerText]; + [self addSubview:_headerLabelView]; + + // middle + if (!_middleLabelView) _middleLabelView = [[UILabel alloc] init]; + [_middleLabelView setFont:secondaryFont]; + [_middleLabelView setFrame:CGRectMake(kTextRow, kImageTopMargin + 17, globalWidth-kTextRow, 20)]; + [_middleLabelView setTextColor:secondaryTextColor]; + [_middleLabelView setBackgroundColor:[UIColor clearColor]]; + [_middleLabelView setText:_subHeaderText]; + [self addSubview:_middleLabelView]; +} + + +#pragma mark - Properties + +- (void)setHeaderText:(NSString *)anHeaderText { + if (_headerText != anHeaderText) { + _headerText = [anHeaderText copy]; + [self setNeedsDisplay]; + } +} + +- (void)setSubHeaderText:(NSString *)aSubHeaderText { + if (_subHeaderText != aSubHeaderText) { + _subHeaderText = [aSubHeaderText copy]; + [self setNeedsDisplay]; + } +} + +- (void)setIconImage:(UIImage *)anIconImage { + if (_iconImage != anIconImage) { + + // scale, make borders and reflection + _iconImage = bit_imageToFitSize(anIconImage, CGSizeMake(kImageHeight, kImageHeight), YES); + CGFloat radius = kImageBorderRadius; + if (self.style == BITAppStoreHeaderStyleOS7) + radius = kImageBorderRadiusiOS7; + _iconImage = bit_roundedCornerImage(_iconImage, radius, 0.0); + + [self setNeedsDisplay]; + } +} + +@end diff --git a/Pods/HockeySDK/Classes/BITAppVersionMetaInfo.h b/Pods/HockeySDK/Classes/BITAppVersionMetaInfo.h new file mode 100644 index 0000000..2143e02 --- /dev/null +++ b/Pods/HockeySDK/Classes/BITAppVersionMetaInfo.h @@ -0,0 +1,58 @@ +/* + * Author: Peter Steinberger + * Andreas Linde + * + * Copyright (c) 2012-2014 HockeyApp, Bit Stadium GmbH. + * Copyright (c) 2011 Andreas Linde, Peter Steinberger. + * All rights reserved. + * + * Permission is hereby granted, free of charge, to any person + * obtaining a copy of this software and associated documentation + * files (the "Software"), to deal in the Software without + * restriction, including without limitation the rights to use, + * copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following + * conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES + * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + */ + +#import + +@interface BITAppVersionMetaInfo : NSObject { +} +@property (nonatomic, copy) NSString *name; +@property (nonatomic, copy) NSString *version; +@property (nonatomic, copy) NSString *shortVersion; +@property (nonatomic, copy) NSString *minOSVersion; +@property (nonatomic, copy) NSString *notes; +@property (nonatomic, copy) NSDate *date; +@property (nonatomic, copy) NSNumber *size; +@property (nonatomic, copy) NSNumber *mandatory; +@property (nonatomic, copy) NSNumber *versionID; +@property (nonatomic, copy) NSDictionary *uuids; + +- (NSString *)nameAndVersionString; +- (NSString *)versionString; +- (NSString *)dateString; +- (NSString *)sizeInMB; +- (NSString *)notesOrEmptyString; +- (void)setDateWithTimestamp:(NSTimeInterval)timestamp; +- (BOOL)isValid; +- (BOOL)hasUUID:(NSString *)uuid; +- (BOOL)isEqualToAppVersionMetaInfo:(BITAppVersionMetaInfo *)anAppVersionMetaInfo; + ++ (BITAppVersionMetaInfo *)appVersionMetaInfoFromDict:(NSDictionary *)dict; + +@end diff --git a/Pods/HockeySDK/Classes/BITAppVersionMetaInfo.m b/Pods/HockeySDK/Classes/BITAppVersionMetaInfo.m new file mode 100644 index 0000000..24b4216 --- /dev/null +++ b/Pods/HockeySDK/Classes/BITAppVersionMetaInfo.m @@ -0,0 +1,228 @@ +/* + * Author: Peter Steinberger + * Andreas Linde + * + * Copyright (c) 2012-2014 HockeyApp, Bit Stadium GmbH. + * Copyright (c) 2011 Andreas Linde, Peter Steinberger. + * All rights reserved. + * + * Permission is hereby granted, free of charge, to any person + * obtaining a copy of this software and associated documentation + * files (the "Software"), to deal in the Software without + * restriction, including without limitation the rights to use, + * copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following + * conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES + * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + */ + +#import "BITAppVersionMetaInfo.h" +#import "HockeySDKPrivate.h" + + +@implementation BITAppVersionMetaInfo + + +#pragma mark - Static + ++ (BITAppVersionMetaInfo *)appVersionMetaInfoFromDict:(NSDictionary *)dict { + BITAppVersionMetaInfo *appVersionMetaInfo = [[[self class] alloc] init]; + + if ([dict isKindOfClass:[NSDictionary class]]) { + appVersionMetaInfo.name = [dict objectForKey:@"title"]; + appVersionMetaInfo.version = [dict objectForKey:@"version"]; + appVersionMetaInfo.shortVersion = [dict objectForKey:@"shortversion"]; + appVersionMetaInfo.minOSVersion = [dict objectForKey:@"minimum_os_version"]; + [appVersionMetaInfo setDateWithTimestamp:[[dict objectForKey:@"timestamp"] doubleValue]]; + appVersionMetaInfo.size = [dict objectForKey:@"appsize"]; + appVersionMetaInfo.notes = [dict objectForKey:@"notes"]; + appVersionMetaInfo.mandatory = [dict objectForKey:@"mandatory"]; + appVersionMetaInfo.versionID = [dict objectForKey:@"id"]; + appVersionMetaInfo.uuids = [dict objectForKey:@"uuids"]; + } + + return appVersionMetaInfo; +} + + +#pragma mark - NSObject + +- (BOOL)isEqual:(id)other { + if (other == self) + return YES; + if (!other || ![other isKindOfClass:[self class]]) + return NO; + return [self isEqualToAppVersionMetaInfo:other]; +} + +- (BOOL)isEqualComparingString:(NSString *)stringA withString:(NSString *)stringB { + if ([stringA isKindOfClass:[NSString class]] && [stringB isKindOfClass:[NSString class]]) { + return [stringA isEqualToString:stringB]; + } + + return NO; +} + +- (BOOL)isEqualComparingNumber:(NSNumber *)numberA withNumber:(NSNumber *)numberB { + if ([numberA isKindOfClass:[NSNumber class]] && [numberB isKindOfClass:[NSNumber class]]) { + return [numberA isEqualToNumber:numberB]; + } + + return NO; +} + +- (BOOL)isEqualComparingDate:(NSDate *)dateA withDate:(NSDate *)dateB { + if ([dateA isKindOfClass:[NSDate class]] && [dateB isKindOfClass:[NSDate class]]) { + return [dateA isEqualToDate:dateB]; + } + + return NO; +} + +- (BOOL)isEqualComparingDictionary:(NSDictionary *)dictA withDate:(NSDictionary *)dictB { + if ([dictA isKindOfClass:[NSDictionary class]] && [dictB isKindOfClass:[NSDictionary class]]) { + return [dictA isEqualToDictionary:dictB]; + } + + return NO; +} + +- (BOOL)isEqualToAppVersionMetaInfo:(BITAppVersionMetaInfo *)anAppVersionMetaInfo { + if (self == anAppVersionMetaInfo) + return YES; + if (![self isEqualComparingString:self.name withString:anAppVersionMetaInfo.name]) + return NO; + if (![self isEqualComparingString:self.version withString:anAppVersionMetaInfo.version]) + return NO; + if (![self isEqualComparingString:self.shortVersion withString:anAppVersionMetaInfo.shortVersion]) + return NO; + if (![self isEqualComparingString:self.minOSVersion withString:anAppVersionMetaInfo.minOSVersion]) + return NO; + if (![self isEqualComparingString:self.notes withString:anAppVersionMetaInfo.notes]) + return NO; + if (![self isEqualComparingDate:self.date withDate:anAppVersionMetaInfo.date]) + return NO; + if (![self isEqualComparingNumber:self.size withNumber:anAppVersionMetaInfo.size]) + return NO; + if (![self isEqualComparingNumber:self.mandatory withNumber:anAppVersionMetaInfo.mandatory]) + return NO; + if (![self isEqualComparingDictionary:self.uuids withDate:anAppVersionMetaInfo.uuids]) + return NO; + return YES; +} + + +#pragma mark - NSCoder + +- (void)encodeWithCoder:(NSCoder *)encoder { + [encoder encodeObject:self.name forKey:@"name"]; + [encoder encodeObject:self.version forKey:@"version"]; + [encoder encodeObject:self.shortVersion forKey:@"shortVersion"]; + [encoder encodeObject:self.minOSVersion forKey:@"minOSVersion"]; + [encoder encodeObject:self.notes forKey:@"notes"]; + [encoder encodeObject:self.date forKey:@"date"]; + [encoder encodeObject:self.size forKey:@"size"]; + [encoder encodeObject:self.mandatory forKey:@"mandatory"]; + [encoder encodeObject:self.versionID forKey:@"versionID"]; + [encoder encodeObject:self.uuids forKey:@"uuids"]; +} + +- (instancetype)initWithCoder:(NSCoder *)decoder { + if ((self = [super init])) { + self.name = [decoder decodeObjectForKey:@"name"]; + self.version = [decoder decodeObjectForKey:@"version"]; + self.shortVersion = [decoder decodeObjectForKey:@"shortVersion"]; + self.minOSVersion = [decoder decodeObjectForKey:@"minOSVersion"]; + self.notes = [decoder decodeObjectForKey:@"notes"]; + self.date = [decoder decodeObjectForKey:@"date"]; + self.size = [decoder decodeObjectForKey:@"size"]; + self.mandatory = [decoder decodeObjectForKey:@"mandatory"]; + self.versionID = [decoder decodeObjectForKey:@"versionID"]; + self.uuids = [decoder decodeObjectForKey:@"uuids"]; + } + return self; +} + + +#pragma mark - Properties + +- (NSString *)nameAndVersionString { + NSString *appNameAndVersion = [NSString stringWithFormat:@"%@ %@", self.name, [self versionString]]; + return appNameAndVersion; +} + +- (NSString *)versionString { + NSString *shortString = ([self.shortVersion respondsToSelector:@selector(length)] && [self.shortVersion length]) ? [NSString stringWithFormat:@"%@", self.shortVersion] : @""; + NSString *versionString = [shortString length] ? [NSString stringWithFormat:@" (%@)", self.version] : self.version; + return [NSString stringWithFormat:@"%@ %@%@", BITHockeyLocalizedString(@"UpdateVersion"), shortString, versionString]; +} + +- (NSString *)dateString { + NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; + [formatter setDateStyle:NSDateFormatterMediumStyle]; + + return [formatter stringFromDate:self.date]; +} + +- (NSString *)sizeInMB { + if ([_size isKindOfClass: [NSNumber class]] && [_size doubleValue] > 0) { + double appSizeInMB = [_size doubleValue]/(1024*1024); + NSString *appSizeString = [NSString stringWithFormat:@"%.1f MB", appSizeInMB]; + return appSizeString; + } + + return @"0 MB"; +} + +- (void)setDateWithTimestamp:(NSTimeInterval)timestamp { + if (timestamp) { + NSDate *appDate = [NSDate dateWithTimeIntervalSince1970:timestamp]; + self.date = appDate; + } else { + self.date = nil; + } +} + +- (NSString *)notesOrEmptyString { + if (self.notes) { + return self.notes; + }else { + return [NSString string]; + } +} + + +// A valid app needs at least following properties: name, version, date +- (BOOL)isValid { + BOOL valid = [self.name length] && [self.version length] && self.date; + return valid; +} + +- (BOOL)hasUUID:(NSString *)uuid { + if (!uuid) return NO; + if (!self.uuids) return NO; + + __block BOOL hasUUID = NO; + + [self.uuids enumerateKeysAndObjectsUsingBlock:^(id key, id obj, BOOL *stop){ + if (obj && [uuid compare:obj] == NSOrderedSame) { + hasUUID = YES; + *stop = YES; + } + }]; + + return hasUUID; +} +@end diff --git a/Pods/HockeySDK/Classes/BITArrowImageAnnotation.h b/Pods/HockeySDK/Classes/BITArrowImageAnnotation.h new file mode 100644 index 0000000..feeca76 --- /dev/null +++ b/Pods/HockeySDK/Classes/BITArrowImageAnnotation.h @@ -0,0 +1,33 @@ +/* + * Author: Moritz Haarmann + * + * Copyright (c) 2012-2014 HockeyApp, Bit Stadium GmbH. + * All rights reserved. + * + * Permission is hereby granted, free of charge, to any person + * obtaining a copy of this software and associated documentation + * files (the "Software"), to deal in the Software without + * restriction, including without limitation the rights to use, + * copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following + * conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES + * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + */ + +#import "BITImageAnnotation.h" + +@interface BITArrowImageAnnotation : BITImageAnnotation + +@end diff --git a/Pods/HockeySDK/Classes/BITArrowImageAnnotation.m b/Pods/HockeySDK/Classes/BITArrowImageAnnotation.m new file mode 100644 index 0000000..ec7ccd9 --- /dev/null +++ b/Pods/HockeySDK/Classes/BITArrowImageAnnotation.m @@ -0,0 +1,204 @@ +/* + * Author: Moritz Haarmann + * + * Copyright (c) 2012-2014 HockeyApp, Bit Stadium GmbH. + * All rights reserved. + * + * Permission is hereby granted, free of charge, to any person + * obtaining a copy of this software and associated documentation + * files (the "Software"), to deal in the Software without + * restriction, including without limitation the rights to use, + * copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following + * conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES + * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + */ + +#import "BITArrowImageAnnotation.h" + +#define kArrowPointCount 7 + + +@interface BITArrowImageAnnotation() + +@property (nonatomic, strong) CAShapeLayer *shapeLayer; +@property (nonatomic, strong) CAShapeLayer *strokeLayer; + +@end + +@implementation BITArrowImageAnnotation + +- (instancetype)initWithFrame:(CGRect)frame { + self = [super initWithFrame:frame]; + if (self) { + self.shapeLayer = [CAShapeLayer layer]; + self.shapeLayer.strokeColor = [UIColor whiteColor].CGColor; + self.shapeLayer.lineWidth = 5; + self.shapeLayer.fillColor = [UIColor redColor].CGColor; + + self.strokeLayer = [CAShapeLayer layer]; + self.strokeLayer.strokeColor = [UIColor redColor].CGColor; + self.strokeLayer.lineWidth = 10; + self.strokeLayer.fillColor = [UIColor clearColor].CGColor; + [self.layer addSublayer:self.strokeLayer]; + + [self.layer addSublayer:self.shapeLayer]; + + + } + return self; +} + +- (void)buildShape { + CGFloat baseWidth = MAX(self.frame.size.width, self.frame.size.height); + CGFloat topHeight = MAX(baseWidth / 3.0f,10); + + + CGFloat lineWidth = MAX(baseWidth / 10.0f,3); + CGFloat startX, startY, endX, endY; + + CGRect boundRect = CGRectInset(self.bounds, 0, 0); + CGFloat arrowLength= sqrt(pow(CGRectGetWidth(boundRect), 2) + pow(CGRectGetHeight(boundRect), 2)); + if (arrowLength < 30){ + + CGFloat factor = 30.f/arrowLength; + + boundRect = CGRectApplyAffineTransform(boundRect, CGAffineTransformMakeScale(factor,factor)); + } + + if ( self.movedDelta.width < 0){ + startX = CGRectGetMinX(boundRect); + endX = CGRectGetMaxX(boundRect); + } else { + startX = CGRectGetMaxX(boundRect); + endX = CGRectGetMinX(boundRect); + + } + + if ( self.movedDelta.height < 0){ + startY = CGRectGetMinY(boundRect); + endY = CGRectGetMaxY(boundRect); + } else { + startY = CGRectGetMaxY(boundRect); + endY = CGRectGetMinY(boundRect); + + } + + + if (fabs(CGRectGetWidth(boundRect)) < 30 || fabs(CGRectGetHeight(boundRect)) < 30){ + CGFloat smallerOne = MIN(fabs(CGRectGetHeight(boundRect)), fabs(CGRectGetWidth(boundRect))); + + CGFloat factor = smallerOne/30.f; + + CGRectApplyAffineTransform(boundRect, CGAffineTransformMakeScale(factor,factor)); + } + + UIBezierPath *path = [self bezierPathWithArrowFromPoint:CGPointMake(endX, endY) toPoint:CGPointMake(startX, startY) tailWidth:lineWidth headWidth:topHeight headLength:topHeight]; + + self.shapeLayer.path = path.CGPath; + self.strokeLayer.path = path.CGPath; + [CATransaction begin]; + [CATransaction setAnimationDuration:0]; + self.strokeLayer.lineWidth = lineWidth/1.5f; + self.shapeLayer.lineWidth = lineWidth / 3.0f; + + [CATransaction commit]; + +} + + +- (UIBezierPath *)bezierPathWithArrowFromPoint:(CGPoint)startPoint + toPoint:(CGPoint)endPoint + tailWidth:(CGFloat)tailWidth + headWidth:(CGFloat)headWidth + headLength:(CGFloat)headLength { + CGFloat length = hypotf(endPoint.x - startPoint.x, endPoint.y - startPoint.y); + + CGPoint points[kArrowPointCount]; + [self getAxisAlignedArrowPoints:points + forLength:length + tailWidth:tailWidth + headWidth:headWidth + headLength:headLength]; + + CGAffineTransform transform = [self transformForStartPoint:startPoint + endPoint:endPoint + length:length]; + + CGMutablePathRef cgPath = CGPathCreateMutable(); + CGPathAddLines(cgPath, &transform, points, sizeof points / sizeof *points); + CGPathCloseSubpath(cgPath); + + UIBezierPath *uiPath = [UIBezierPath bezierPathWithCGPath:cgPath]; + CGPathRelease(cgPath); + return uiPath; +} + +- (void)getAxisAlignedArrowPoints:(CGPoint[kArrowPointCount])points + forLength:(CGFloat)length + tailWidth:(CGFloat)tailWidth + headWidth:(CGFloat)headWidth + headLength:(CGFloat)headLength { + CGFloat tailLength = length - headLength; + points[0] = CGPointMake(0, tailWidth / 2); + points[1] = CGPointMake(tailLength, tailWidth / 2); + points[2] = CGPointMake(tailLength, headWidth / 2); + points[3] = CGPointMake(length, 0); + points[4] = CGPointMake(tailLength, -headWidth / 2); + points[5] = CGPointMake(tailLength, -tailWidth / 2); + points[6] = CGPointMake(0, -tailWidth / 2); +} + ++ (CGAffineTransform)dqd_transformForStartPoint:(CGPoint)startPoint + endPoint:(CGPoint)endPoint + length:(CGFloat)length { + CGFloat cosine = (endPoint.x - startPoint.x) / length; + CGFloat sine = (endPoint.y - startPoint.y) / length; + return (CGAffineTransform){ cosine, sine, -sine, cosine, startPoint.x, startPoint.y }; +} + +- (CGAffineTransform)transformForStartPoint:(CGPoint)startPoint + endPoint:(CGPoint)endPoint + length:(CGFloat)length { + CGFloat cosine = (endPoint.x - startPoint.x) / length; + CGFloat sine = (endPoint.y - startPoint.y) / length; + return (CGAffineTransform){ cosine, sine, -sine, cosine, startPoint.x, startPoint.y }; +} + +#pragma mark - UIView + +- (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event { + + CGPathRef strokePath = CGPathCreateCopyByStrokingPath(self.shapeLayer.path, NULL, fmaxf(90.0f, self.shapeLayer.lineWidth), kCGLineCapRound,kCGLineJoinMiter,0); + + BOOL containsPoint = CGPathContainsPoint(strokePath, NULL, point, NO); + + CGPathRelease(strokePath); + + if (containsPoint){ + return self; + } else { + return nil; + } + +} + +- (void)layoutSubviews{ + [super layoutSubviews]; + + [self buildShape]; +} + +@end diff --git a/Pods/HockeySDK/Classes/BITAttributedLabel.h b/Pods/HockeySDK/Classes/BITAttributedLabel.h new file mode 100644 index 0000000..d84caec --- /dev/null +++ b/Pods/HockeySDK/Classes/BITAttributedLabel.h @@ -0,0 +1,330 @@ +// TTTAttributedLabel.h +// +// Copyright (c) 2011 Mattt Thompson (http://mattt.me) +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +#import +#import + +/** + Vertical alignment for text in a label whose bounds are larger than its text bounds + */ +typedef enum { + BITAttributedLabelVerticalAlignmentCenter = 0, + BITAttributedLabelVerticalAlignmentTop = 1, + BITAttributedLabelVerticalAlignmentBottom = 2, +} BITAttributedLabelVerticalAlignment; + +/** + Determines whether the text to which this attribute applies has a strikeout drawn through itself. + */ +extern NSString * const kBITStrikeOutAttributeName; + +/** + The background fill color. Value must be a `CGColorRef`. Default value is `nil` (no fill). + */ +extern NSString * const kBITBackgroundFillColorAttributeName; + +/** + The background stroke color. Value must be a `CGColorRef`. Default value is `nil` (no stroke). + */ +extern NSString * const kBITBackgroundStrokeColorAttributeName; + +/** + The background stroke line width. Value must be an `NSNumber`. Default value is `1.0f`. + */ +extern NSString * const kBITBackgroundLineWidthAttributeName; + +/** + The background corner radius. Value must be an `NSNumber`. Default value is `5.0f`. + */ +extern NSString * const kBITBackgroundCornerRadiusAttributeName; + +@protocol BITAttributedLabelDelegate; + +// Override UILabel @property to accept both NSString and NSAttributedString +@protocol BITAttributedLabel +@property (nonatomic, copy) id text; +@end + +/** + `TTTAttributedLabel` is a drop-in replacement for `UILabel` that supports `NSAttributedString`, as well as automatically-detected and manually-added links to URLs, addresses, phone numbers, and dates. + + # Differences Between `TTTAttributedLabel` and `UILabel` + + For the most part, `TTTAttributedLabel` behaves just like `UILabel`. The following are notable exceptions, in which `TTTAttributedLabel` properties may act differently: + + - `text` - This property now takes an `id` type argument, which can either be a kind of `NSString` or `NSAttributedString` (mutable or immutable in both cases) + - `lineBreakMode` - This property displays only the first line when the value is `UILineBreakModeHeadTruncation`, `UILineBreakModeTailTruncation`, or `UILineBreakModeMiddleTruncation` + - `adjustsFontsizeToFitWidth` - Supported in iOS 5 and greater, this property is effective for any value of `numberOfLines` greater than zero. In iOS 4, setting `numberOfLines` to a value greater than 1 with `adjustsFontSizeToFitWidth` set to `YES` may cause `sizeToFit` to execute indefinitely. + + Any properties affecting text or paragraph styling, such as `shadowRadius` or `firstLineIndent` will only apply when text is set with an `NSString`. If the text is set with an `NSAttributedString`, these properties will not apply. + + @warning Any properties changed on the label after setting the text will not be reflected until a subsequent call to `setText:` or `setText:afterInheritingLabelAttributesAndConfiguringWithBlock:`. This is to say, order of operations matters in this case. For example, if the label text color is originally black when the text is set, changing the text color to red will have no effect on the display of the label until the text is set once again. + */ +@interface BITAttributedLabel : UILabel + +///----------------------------- +/// @name Accessing the Delegate +///----------------------------- + +/** + The receiver's delegate. + + @discussion A `TTTAttributedLabel` delegate responds to messages sent by tapping on links in the label. You can use the delegate to respond to links referencing a URL, address, phone number, date, or date with a specified time zone and duration. + */ +@property (nonatomic, unsafe_unretained) id delegate; + +///-------------------------------------------- +/// @name Detecting, Accessing, & Styling Links +///-------------------------------------------- + +/** + A bitmask of `UIDataDetectorTypes` which are used to automatically detect links in the label text. This is `UIDataDetectorTypeNone` by default. + + @warning You must specify `dataDetectorTypes` before setting the `text`, with either `setText:` or `setText:afterInheritingLabelAttributesAndConfiguringWithBlock:`. + */ +@property (nonatomic, assign) UIDataDetectorTypes dataDetectorTypes; + +/** + An array of `NSTextCheckingResult` objects for links detected or manually added to the label text. + */ +@property (readonly, nonatomic, strong) NSArray *links; + +/** + A dictionary containing the `NSAttributedString` attributes to be applied to links detected or manually added to the label text. The default link style is blue and underlined. + + @warning You must specify `linkAttributes` before setting autodetecting or manually-adding links for these attributes to be applied. + */ +@property (nonatomic, strong) NSDictionary *linkAttributes; + +/** + A dictionary containing the `NSAttributedString` attributes to be applied to links when they are in the active state. Supply `nil` or an empty dictionary to opt out of active link styling. The default active link style is red and underlined. + */ +@property (nonatomic, strong) NSDictionary *activeLinkAttributes; + +///--------------------------------------- +/// @name Accessing Text Style Attributes +///--------------------------------------- + +/** + The shadow blur radius for the label. A value of 0 indicates no blur, while larger values produce correspondingly larger blurring. This value must not be negative. The default value is 0. + */ +@property (nonatomic, assign) CGFloat shadowRadius; + +///-------------------------------------------- +/// @name Accessing Paragraph Style Attributes +///-------------------------------------------- + +/** + The distance, in points, from the leading margin of a frame to the beginning of the paragraph's first line. This value is always nonnegative, and is 0.0 by default. + */ +@property (nonatomic, assign) CGFloat firstLineIndent; + +/** + The space in points added between lines within the paragraph. This value is always nonnegative and is 0.0 by default. + */ +@property (nonatomic, assign) CGFloat leading; + +/** + The line height multiple. This value is 0.0 by default. + */ +@property (nonatomic, assign) CGFloat lineHeightMultiple; + +/** + The distance, in points, from the margin to the text container. This value is `UIEdgeInsetsZero` by default. + + @discussion The `UIEdgeInset` members correspond to paragraph style properties rather than a particular geometry, and can change depending on the writing direction. + + ## `UIEdgeInset` Member Correspondence With `CTParagraphStyleSpecifier` Values: + + - `top`: `kCTParagraphStyleSpecifierParagraphSpacingBefore` + - `left`: `kCTParagraphStyleSpecifierHeadIndent` + - `bottom`: `kCTParagraphStyleSpecifierParagraphSpacing` + - `right`: `kCTParagraphStyleSpecifierTailIndent` + + */ +@property (nonatomic, assign) UIEdgeInsets textInsets; + +/** + The vertical text alignment for the label, for when the frame size is greater than the text rect size. The vertical alignment is `TTTAttributedLabelVerticalAlignmentCenter` by default. + */ +@property (nonatomic, assign) BITAttributedLabelVerticalAlignment verticalAlignment; + +///---------------------------------- +/// @name Setting the Text Attributes +///---------------------------------- + +/** + Sets the text displayed by the label. + + @param text An `NSString` or `NSAttributedString` object to be displayed by the label. If the specified text is an `NSString`, the label will display the text like a `UILabel`, inheriting the text styles of the label. If the specified text is an `NSAttributedString`, the label text styles will be overridden by the styles specified in the attributed string. + + @discussion This method overrides `UILabel -setText:` to accept both `NSString` and `NSAttributedString` objects. This string is `nil` by default. + */ +- (void)setText:(id)text; + +/** + Sets the text displayed by the label, after configuring an attributed string containing the text attributes inherited from the label in a block. + + @param text An `NSString` or `NSAttributedString` object to be displayed by the label. + @param block A block object that returns an `NSMutableAttributedString` object and takes a single argument, which is an `NSMutableAttributedString` object with the text from the first parameter, and the text attributes inherited from the label text styles. For example, if you specified the `font` of the label to be `[UIFont boldSystemFontOfSize:14]` and `textColor` to be `[UIColor redColor]`, the `NSAttributedString` argument of the block would be contain the `NSAttributedString` attribute equivalents of those properties. In this block, you can set further attributes on particular ranges. + + @discussion This string is `nil` by default. + */ +- (void)setText:(id)text afterInheritingLabelAttributesAndConfiguringWithBlock:(NSMutableAttributedString *(^)(NSMutableAttributedString *mutableAttributedString))block; + +///---------------------------------- +/// @name Accessing the Text Attributes +///---------------------------------- + +/** + A copy of the label's current attributedText. This returns `nil` if an attributed string has never been set on the label. + */ +@property (readwrite, nonatomic, copy) NSAttributedString *attributedText; + +///------------------- +/// @name Adding Links +///------------------- + +/** + Adds a link to an `NSTextCheckingResult`. + + @param result An `NSTextCheckingResult` representing the link's location and type. + */ +- (void)addLinkWithTextCheckingResult:(NSTextCheckingResult *)result; + +/** + Adds a link to an `NSTextCheckingResult`. + + @param result An `NSTextCheckingResult` representing the link's location and type. + @param attributes The attributes to be added to the text in the range of the specified link. If `nil`, no attributes are added. + */ +- (void)addLinkWithTextCheckingResult:(NSTextCheckingResult *)result attributes:(NSDictionary *)attributes; + +/** + Adds a link to a URL for a specified range in the label text. + + @param url The url to be linked to + @param range The range in the label text of the link. The range must not exceed the bounds of the receiver. + */ +- (void)addLinkToURL:(NSURL *)url withRange:(NSRange)range; + +/** + Adds a link to an address for a specified range in the label text. + + @param addressComponents A dictionary of address components for the address to be linked to + @param range The range in the label text of the link. The range must not exceed the bounds of the receiver. + + @discussion The address component dictionary keys are described in `NSTextCheckingResult`'s "Keys for Address Components." + */ +- (void)addLinkToAddress:(NSDictionary *)addressComponents withRange:(NSRange)range; + +/** + Adds a link to a phone number for a specified range in the label text. + + @param phoneNumber The phone number to be linked to. + @param range The range in the label text of the link. The range must not exceed the bounds of the receiver. + */ +- (void)addLinkToPhoneNumber:(NSString *)phoneNumber withRange:(NSRange)range; + +/** + Adds a link to a date for a specified range in the label text. + + @param date The date to be linked to. + @param range The range in the label text of the link. The range must not exceed the bounds of the receiver. + */ +- (void)addLinkToDate:(NSDate *)date withRange:(NSRange)range; + +/** + Adds a link to a date with a particular time zone and duration for a specified range in the label text. + + @param date The date to be linked to. + @param timeZone The time zone of the specified date. + @param duration The duration, in seconds from the specified date. + @param range The range in the label text of the link. The range must not exceed the bounds of the receiver. + */ +- (void)addLinkToDate:(NSDate *)date timeZone:(NSTimeZone *)timeZone duration:(NSTimeInterval)duration withRange:(NSRange)range; + +@end + +/** + The `TTTAttributedLabelDelegate` protocol defines the messages sent to an attributed label delegate when links are tapped. All of the methods of this protocol are optional. + */ +@protocol BITAttributedLabelDelegate + +///----------------------------------- +/// @name Responding to Link Selection +///----------------------------------- +@optional + +/** + Tells the delegate that the user did select a link to a URL. + + @param label The label whose link was selected. + @param url The URL for the selected link. + */ +- (void)attributedLabel:(BITAttributedLabel *)label didSelectLinkWithURL:(NSURL *)url; + +/** + Tells the delegate that the user did select a link to an address. + + @param label The label whose link was selected. + @param addressComponents The components of the address for the selected link. + */ +- (void)attributedLabel:(BITAttributedLabel *)label didSelectLinkWithAddress:(NSDictionary *)addressComponents; + +/** + Tells the delegate that the user did select a link to a phone number. + + @param label The label whose link was selected. + @param phoneNumber The phone number for the selected link. + */ +- (void)attributedLabel:(BITAttributedLabel *)label didSelectLinkWithPhoneNumber:(NSString *)phoneNumber; + +/** + Tells the delegate that the user did select a link to a date. + + @param label The label whose link was selected. + @param date The date for the selected link. + */ +- (void)attributedLabel:(BITAttributedLabel *)label didSelectLinkWithDate:(NSDate *)date; + +/** + Tells the delegate that the user did select a link to a date with a time zone and duration. + + @param label The label whose link was selected. + @param date The date for the selected link. + @param timeZone The time zone of the date for the selected link. + @param duration The duration, in seconds from the date for the selected link. + */ +- (void)attributedLabel:(BITAttributedLabel *)label didSelectLinkWithDate:(NSDate *)date timeZone:(NSTimeZone *)timeZone duration:(NSTimeInterval)duration; + +/** + Tells the delegate that the user did select a link to a text checking result. + + @discussion This method is called if no other delegate method was called, which can occur by either now implementing the method in `TTTAttributedLabelDelegate` corresponding to a particular link, or the link was added by passing an instance of a custom `NSTextCheckingResult` subclass into `-addLinkWithTextCheckingResult:`. + + @param label The label whose link was selected. + @param result The custom text checking result. + */ +- (void)attributedLabel:(BITAttributedLabel *)label didSelectLinkWithTextCheckingResult:(NSTextCheckingResult *)result; + +@end diff --git a/Pods/HockeySDK/Classes/BITAttributedLabel.m b/Pods/HockeySDK/Classes/BITAttributedLabel.m new file mode 100644 index 0000000..d2d5fb4 --- /dev/null +++ b/Pods/HockeySDK/Classes/BITAttributedLabel.m @@ -0,0 +1,1022 @@ +// TTTAttributedLabel.m +// +// Copyright (c) 2011 Mattt Thompson (http://mattt.me) +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +#import "BITAttributedLabel.h" + +#define kBITLineBreakWordWrapTextWidthScalingFactor (M_PI / M_E) + +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" + +NSString * const kBITStrikeOutAttributeName = @"BITStrikeOutAttribute"; +NSString * const kBITBackgroundFillColorAttributeName = @"BITBackgroundFillColor"; +NSString * const kBITBackgroundStrokeColorAttributeName = @"BITBackgroundStrokeColor"; +NSString * const kBITBackgroundLineWidthAttributeName = @"BITBackgroundLineWidth"; +NSString * const kBITBackgroundCornerRadiusAttributeName = @"BITBackgroundCornerRadius"; + +static inline __attribute__((unused)) CTTextAlignment CTTextAlignmentFromUITextAlignment(UITextAlignment alignment) { + switch (alignment) { + case UITextAlignmentLeft: return kCTLeftTextAlignment; + case UITextAlignmentCenter: return kCTCenterTextAlignment; + case UITextAlignmentRight: return kCTRightTextAlignment; + default: return kCTNaturalTextAlignment; + } +} + +static __attribute__((unused)) inline CTTextAlignment CTTextAlignmentFromNSTextAlignment(NSTextAlignment alignment) { + switch (alignment) { + case NSTextAlignmentLeft: return kCTLeftTextAlignment; + case NSTextAlignmentCenter: return kCTCenterTextAlignment; + case NSTextAlignmentRight: return kCTRightTextAlignment; + default: return kCTNaturalTextAlignment; + } +} + +static inline CTLineBreakMode CTLineBreakModeFromUILineBreakMode(UILineBreakMode lineBreakMode) { + switch (lineBreakMode) { + case UILineBreakModeWordWrap: return kCTLineBreakByWordWrapping; + case UILineBreakModeCharacterWrap: return kCTLineBreakByCharWrapping; + case UILineBreakModeClip: return kCTLineBreakByClipping; + case UILineBreakModeHeadTruncation: return kCTLineBreakByTruncatingHead; + case UILineBreakModeTailTruncation: return kCTLineBreakByTruncatingTail; + case UILineBreakModeMiddleTruncation: return kCTLineBreakByTruncatingMiddle; + default: return 0; + } +} + +static inline __attribute__((unused)) CTLineBreakMode CTLineBreakModeFromNSLineBreakMode(NSLineBreakMode lineBreakMode) { + switch (lineBreakMode) { + case NSLineBreakByWordWrapping: return kCTLineBreakByWordWrapping; + case NSLineBreakByCharWrapping: return kCTLineBreakByCharWrapping; + case NSLineBreakByClipping: return kCTLineBreakByClipping; + case NSLineBreakByTruncatingHead: return kCTLineBreakByTruncatingHead; + case NSLineBreakByTruncatingTail: return kCTLineBreakByTruncatingTail; + case NSLineBreakByTruncatingMiddle: return kCTLineBreakByTruncatingMiddle; + default: return 0; + } +} + +static inline __attribute__((unused)) UILineBreakMode UILineBreakModeFromNSLineBreakMode(NSLineBreakMode lineBreakMode) { + switch (lineBreakMode) { + case NSLineBreakByWordWrapping: return UILineBreakModeWordWrap; + case NSLineBreakByCharWrapping: return UILineBreakModeCharacterWrap; + case NSLineBreakByClipping: return UILineBreakModeClip; + case NSLineBreakByTruncatingHead: return UILineBreakModeHeadTruncation; + case NSLineBreakByTruncatingTail: return UILineBreakModeTailTruncation; + case NSLineBreakByTruncatingMiddle: return UILineBreakModeMiddleTruncation; + default: return 0; + } +} + +static inline NSTextCheckingType NSTextCheckingTypeFromUIDataDetectorType(UIDataDetectorTypes dataDetectorType) { + NSTextCheckingType textCheckingType = 0; + if (dataDetectorType & UIDataDetectorTypeAddress) { + textCheckingType |= NSTextCheckingTypeAddress; + } + + if (dataDetectorType & UIDataDetectorTypeCalendarEvent) { + textCheckingType |= NSTextCheckingTypeDate; + } + + if (dataDetectorType & UIDataDetectorTypeLink) { + textCheckingType |= NSTextCheckingTypeLink; + } + + if (dataDetectorType & UIDataDetectorTypePhoneNumber) { + textCheckingType |= NSTextCheckingTypePhoneNumber; + } + + return textCheckingType; +} + +static inline NSDictionary * NSAttributedStringAttributesFromLabel(BITAttributedLabel *label) { + NSMutableDictionary *mutableAttributes = [NSMutableDictionary dictionary]; + + CTFontRef font = CTFontCreateWithName((__bridge CFStringRef)label.font.fontName, label.font.pointSize, NULL); + [mutableAttributes setObject:(__bridge id)font forKey:(NSString *)kCTFontAttributeName]; + CFRelease(font); + + [mutableAttributes setObject:(id)[label.textColor CGColor] forKey:(NSString *)kCTForegroundColorAttributeName]; + +#ifdef __IPHONE_6_0 + CTTextAlignment alignment = CTTextAlignmentFromNSTextAlignment(label.textAlignment); +#else + CTTextAlignment alignment = CTTextAlignmentFromUITextAlignment(label.textAlignment); +#endif + CGFloat lineSpacing = label.leading; + CGFloat lineSpacingAdjustment = label.font.lineHeight - label.font.ascender + label.font.descender; + CGFloat lineHeightMultiple = label.lineHeightMultiple; + CGFloat topMargin = label.textInsets.top; + CGFloat bottomMargin = label.textInsets.bottom; + CGFloat leftMargin = label.textInsets.left; + CGFloat rightMargin = label.textInsets.right; + CGFloat firstLineIndent = label.firstLineIndent + leftMargin; + + CTLineBreakMode lineBreakMode; + if (label.numberOfLines != 1) { + lineBreakMode = CTLineBreakModeFromUILineBreakMode(UILineBreakModeWordWrap); + } else { +#ifdef __IPHONE_6_0 + lineBreakMode = CTLineBreakModeFromNSLineBreakMode(label.lineBreakMode); +#else + lineBreakMode = CTLineBreakModeFromUILineBreakMode(label.lineBreakMode); +#endif + } + + CTParagraphStyleSetting paragraphStyles[10] = { + {.spec = kCTParagraphStyleSpecifierAlignment, .valueSize = sizeof(CTTextAlignment), .value = (const void *)&alignment}, + {.spec = kCTParagraphStyleSpecifierLineBreakMode, .valueSize = sizeof(CTLineBreakMode), .value = (const void *)&lineBreakMode}, + {.spec = kCTParagraphStyleSpecifierLineSpacing, .valueSize = sizeof(CGFloat), .value = (const void *)&lineSpacing}, + {.spec = kCTParagraphStyleSpecifierLineSpacingAdjustment, .valueSize = sizeof (CGFloat), .value = (const void *)&lineSpacingAdjustment}, + {.spec = kCTParagraphStyleSpecifierLineHeightMultiple, .valueSize = sizeof(CGFloat), .value = (const void *)&lineHeightMultiple}, + {.spec = kCTParagraphStyleSpecifierFirstLineHeadIndent, .valueSize = sizeof(CGFloat), .value = (const void *)&firstLineIndent}, + {.spec = kCTParagraphStyleSpecifierParagraphSpacingBefore, .valueSize = sizeof(CGFloat), .value = (const void *)&topMargin}, + {.spec = kCTParagraphStyleSpecifierParagraphSpacing, .valueSize = sizeof(CGFloat), .value = (const void *)&bottomMargin}, + {.spec = kCTParagraphStyleSpecifierHeadIndent, .valueSize = sizeof(CGFloat), .value = (const void *)&leftMargin}, + {.spec = kCTParagraphStyleSpecifierTailIndent, .valueSize = sizeof(CGFloat), .value = (const void *)&rightMargin} + }; + + CTParagraphStyleRef paragraphStyle = CTParagraphStyleCreate(paragraphStyles, 10); + [mutableAttributes setObject:(__bridge id)paragraphStyle forKey:(NSString *)kCTParagraphStyleAttributeName]; + CFRelease(paragraphStyle); + + return [NSDictionary dictionaryWithDictionary:mutableAttributes]; +} + +static inline NSAttributedString * NSAttributedStringByScalingFontSize(NSAttributedString *attributedString, CGFloat scale, CGFloat minimumFontSize) { + NSMutableAttributedString *mutableAttributedString = [attributedString mutableCopy]; + [mutableAttributedString enumerateAttribute:(NSString *)kCTFontAttributeName inRange:NSMakeRange(0, [mutableAttributedString length]) options:0 usingBlock:^(id value, NSRange range, BOOL *stop) { + CTFontRef font = (__bridge CTFontRef)value; + if (font) { + CGFloat scaledFontSize = floorf(CTFontGetSize(font) * scale); + CTFontRef scaledFont = CTFontCreateCopyWithAttributes(font, fmaxf(scaledFontSize, minimumFontSize), NULL, NULL); + CFAttributedStringSetAttribute((__bridge CFMutableAttributedStringRef)mutableAttributedString, CFRangeMake(range.location, range.length), kCTFontAttributeName, scaledFont); + CFRelease(scaledFont); + } + }]; + + return mutableAttributedString; +} + +static inline NSAttributedString * NSAttributedStringBySettingColorFromContext(NSAttributedString *attributedString, UIColor *color) { + if (!color) { + return attributedString; + } + + CGColorRef colorRef = color.CGColor; + NSMutableAttributedString *mutableAttributedString = [attributedString mutableCopy]; + [mutableAttributedString enumerateAttribute:(NSString *)kCTForegroundColorFromContextAttributeName inRange:NSMakeRange(0, [mutableAttributedString length]) options:0 usingBlock:^(id value, NSRange range, BOOL *stop) { + CFBooleanRef usesColorFromContext = (__bridge CFBooleanRef)value; + if (usesColorFromContext && CFBooleanGetValue(usesColorFromContext)) { + CFRange updateRange = CFRangeMake(range.location, range.length); + CFAttributedStringSetAttribute((__bridge CFMutableAttributedStringRef)mutableAttributedString, updateRange, kCTForegroundColorAttributeName, colorRef); + CFAttributedStringRemoveAttribute((__bridge CFMutableAttributedStringRef)mutableAttributedString, updateRange, kCTForegroundColorFromContextAttributeName); + } + }]; + + return mutableAttributedString; +} + +@interface BITAttributedLabel () +@property (readwrite, nonatomic, copy) NSAttributedString *inactiveAttributedText; +@property (readwrite, nonatomic, copy) NSAttributedString *renderedAttributedText; +@property (readwrite, nonatomic, assign) CTFramesetterRef framesetter; +@property (readwrite, nonatomic, assign) CTFramesetterRef highlightFramesetter; +@property (readwrite, nonatomic, strong) NSDataDetector *dataDetector; +@property (readwrite, nonatomic, strong) NSArray *links; +@property (readwrite, nonatomic, strong) NSTextCheckingResult *activeLink; + +- (void)commonInit; +- (void)setNeedsFramesetter; +- (NSArray *)detectedLinksInString:(NSString *)string range:(NSRange)range error:(NSError **)error; +- (NSTextCheckingResult *)linkAtCharacterIndex:(CFIndex)idx; +- (NSTextCheckingResult *)linkAtPoint:(CGPoint)p; +- (CFIndex)characterIndexAtPoint:(CGPoint)p; +- (void)drawFramesetter:(CTFramesetterRef)framesetter attributedString:(NSAttributedString *)attributedString textRange:(CFRange)textRange inRect:(CGRect)rect context:(CGContextRef)c; +- (void)drawStrike:(CTFrameRef)frame inRect:(CGRect)rect context:(CGContextRef)c; +@end + +@implementation BITAttributedLabel { +@private + BOOL _needsFramesetter; +} + +@dynamic text; +@synthesize attributedText = _attributedText; +@synthesize inactiveAttributedText = _inactiveAttributedText; +@synthesize renderedAttributedText = _renderedAttributedText; +@synthesize framesetter = _framesetter; +@synthesize highlightFramesetter = _highlightFramesetter; +@synthesize delegate = _delegate; +@synthesize dataDetectorTypes = _dataDetectorTypes; +@synthesize dataDetector = _dataDetector; +@synthesize links = _links; +@synthesize linkAttributes = _linkAttributes; +@synthesize activeLinkAttributes = _activeLinkAttributes; +@synthesize shadowRadius = _shadowRadius; +@synthesize leading = _leading; +@synthesize lineHeightMultiple = _lineHeightMultiple; +@synthesize firstLineIndent = _firstLineIndent; +@synthesize textInsets = _textInsets; +@synthesize verticalAlignment = _verticalAlignment; +@synthesize activeLink = _activeLink; + +- (instancetype)initWithFrame:(CGRect)frame { + self = [super initWithFrame:frame]; + if (!self) { + return nil; + } + + [self commonInit]; + + return self; +} + +- (instancetype)initWithCoder:(NSCoder *)coder { + self = [super initWithCoder:coder]; + if (!self) { + return nil; + } + + [self commonInit]; + + return self; +} + +- (void)commonInit { + self.dataDetectorTypes = UIDataDetectorTypeNone; + self.links = [NSArray array]; + + NSMutableDictionary *mutableLinkAttributes = [NSMutableDictionary dictionary]; + [mutableLinkAttributes setValue:(id)[[UIColor blueColor] CGColor] forKey:(NSString*)kCTForegroundColorAttributeName]; + [mutableLinkAttributes setValue:[NSNumber numberWithBool:YES] forKey:(NSString *)kCTUnderlineStyleAttributeName]; + self.linkAttributes = [NSDictionary dictionaryWithDictionary:mutableLinkAttributes]; + + NSMutableDictionary *mutableActiveLinkAttributes = [NSMutableDictionary dictionary]; + [mutableActiveLinkAttributes setValue:(id)[[UIColor redColor] CGColor] forKey:(NSString*)kCTForegroundColorAttributeName]; + [mutableActiveLinkAttributes setValue:[NSNumber numberWithBool:NO] forKey:(NSString *)kCTUnderlineStyleAttributeName]; + + self.activeLinkAttributes = [NSDictionary dictionaryWithDictionary:mutableActiveLinkAttributes]; + + self.textInsets = UIEdgeInsetsZero; + + self.userInteractionEnabled = YES; + self.multipleTouchEnabled = NO; +} + +- (void)dealloc { + if (_framesetter) CFRelease(_framesetter); + if (_highlightFramesetter) CFRelease(_highlightFramesetter); +} + +#pragma mark - + +- (void)setAttributedText:(NSAttributedString *)text { + if ([text isEqualToAttributedString:_attributedText]) { + return; + } + + [self willChangeValueForKey:@"attributedText"]; + _attributedText = [text copy]; + [self didChangeValueForKey:@"attributedText"]; + + [self setNeedsFramesetter]; +} + +- (void)setNeedsFramesetter { + // Reset the rendered attributed text so it has a chance to regenerate + self.renderedAttributedText = nil; + + _needsFramesetter = YES; +} + +- (CTFramesetterRef)framesetter { + if (_needsFramesetter) { + @synchronized(self) { + if (_framesetter) { + CFRelease(_framesetter); + _framesetter = nil; + } + if (_highlightFramesetter) { + CFRelease(_highlightFramesetter); + _highlightFramesetter = nil; + } + + _framesetter = CTFramesetterCreateWithAttributedString((__bridge CFAttributedStringRef)self.renderedAttributedText); + _needsFramesetter = NO; + } + } + + return _framesetter; +} + +- (NSAttributedString *)renderedAttributedText { + if (!_renderedAttributedText) { + self.renderedAttributedText = NSAttributedStringBySettingColorFromContext(self.attributedText, self.textColor); + } + + return _renderedAttributedText; +} + +#pragma mark - + +- (void)setLinkActive:(BOOL)active withTextCheckingResult:(NSTextCheckingResult *)result { + if (result && [self.activeLinkAttributes count] > 0) { + if (active) { + if (!self.inactiveAttributedText) { + self.inactiveAttributedText = self.attributedText; + } + + NSMutableAttributedString *mutableAttributedString = [self.inactiveAttributedText mutableCopy]; + [mutableAttributedString addAttributes:self.activeLinkAttributes range:result.range]; + self.attributedText = mutableAttributedString; + + [self setNeedsDisplay]; + } else { + if (self.inactiveAttributedText) { + self.attributedText = self.inactiveAttributedText; + self.inactiveAttributedText = nil; + + [self setNeedsDisplay]; + } + } + } +} + +#pragma mark - + +- (void)setDataDetectorTypes:(UIDataDetectorTypes)dataDetectorTypes { + [self willChangeValueForKey:@"dataDetectorTypes"]; + _dataDetectorTypes = dataDetectorTypes; + [self didChangeValueForKey:@"dataDetectorTypes"]; + + if (self.dataDetectorTypes != UIDataDetectorTypeNone) { + self.dataDetector = [NSDataDetector dataDetectorWithTypes:NSTextCheckingTypeFromUIDataDetectorType(self.dataDetectorTypes) error:nil]; + } +} + +- (NSArray *)detectedLinksInString:(NSString *)string range:(NSRange)range error:(NSError **)error { + if (!string || !self.dataDetector) { + return [NSArray array]; + } + + return [self.dataDetector matchesInString:string options:0 range:range]; +} + +- (void)addLinkWithTextCheckingResult:(NSTextCheckingResult *)result attributes:(NSDictionary *)attributes { + self.links = [self.links arrayByAddingObject:result]; + + if (attributes) { + NSMutableAttributedString *mutableAttributedString = [[NSMutableAttributedString alloc] initWithAttributedString:self.attributedText]; + [mutableAttributedString addAttributes:attributes range:result.range]; + self.attributedText = mutableAttributedString; + } +} + +- (void)addLinkWithTextCheckingResult:(NSTextCheckingResult *)result { + [self addLinkWithTextCheckingResult:result attributes:self.linkAttributes]; +} + +- (void)addLinkToURL:(NSURL *)url withRange:(NSRange)range { + [self addLinkWithTextCheckingResult:[NSTextCheckingResult linkCheckingResultWithRange:range URL:url]]; +} + +- (void)addLinkToAddress:(NSDictionary *)addressComponents withRange:(NSRange)range { + [self addLinkWithTextCheckingResult:[NSTextCheckingResult addressCheckingResultWithRange:range components:addressComponents]]; +} + +- (void)addLinkToPhoneNumber:(NSString *)phoneNumber withRange:(NSRange)range { + [self addLinkWithTextCheckingResult:[NSTextCheckingResult phoneNumberCheckingResultWithRange:range phoneNumber:phoneNumber]]; +} + +- (void)addLinkToDate:(NSDate *)date withRange:(NSRange)range { + [self addLinkWithTextCheckingResult:[NSTextCheckingResult dateCheckingResultWithRange:range date:date]]; +} + +- (void)addLinkToDate:(NSDate *)date timeZone:(NSTimeZone *)timeZone duration:(NSTimeInterval)duration withRange:(NSRange)range { + [self addLinkWithTextCheckingResult:[NSTextCheckingResult dateCheckingResultWithRange:range date:date timeZone:timeZone duration:duration]]; +} + +#pragma mark - + +- (NSTextCheckingResult *)linkAtCharacterIndex:(CFIndex)idx { + for (NSTextCheckingResult *result in self.links) { + NSRange range = result.range; + if ((CFIndex)range.location <= idx && idx <= (CFIndex)(range.location + range.length - 1)) { + return result; + } + } + + return nil; +} + +- (NSTextCheckingResult *)linkAtPoint:(CGPoint)p { + CFIndex idx = [self characterIndexAtPoint:p]; + return [self linkAtCharacterIndex:idx]; +} + +- (CFIndex)characterIndexAtPoint:(CGPoint)p { + if (!CGRectContainsPoint(self.bounds, p)) { + return NSNotFound; + } + + CGRect textRect = [self textRectForBounds:self.bounds limitedToNumberOfLines:self.numberOfLines]; + if (!CGRectContainsPoint(textRect, p)) { + return NSNotFound; + } + + // Offset tap coordinates by textRect origin to make them relative to the origin of frame + p = CGPointMake(p.x - textRect.origin.x, p.y - textRect.origin.y); + // Convert tap coordinates (start at top left) to CT coordinates (start at bottom left) + p = CGPointMake(p.x, textRect.size.height - p.y); + + CGMutablePathRef path = CGPathCreateMutable(); + CGPathAddRect(path, NULL, textRect); + CTFrameRef frame = CTFramesetterCreateFrame(self.framesetter, CFRangeMake(0, [self.attributedText length]), path, NULL); + if (frame == NULL) { + CFRelease(path); + return NSNotFound; + } + + CFArrayRef lines = CTFrameGetLines(frame); + NSInteger numberOfLines = self.numberOfLines > 0 ? MIN(self.numberOfLines, CFArrayGetCount(lines)) : CFArrayGetCount(lines); + if (numberOfLines == 0) { + CFRelease(frame); + CFRelease(path); + return NSNotFound; + } + + NSUInteger idx = NSNotFound; + + CGPoint lineOrigins[numberOfLines]; + CTFrameGetLineOrigins(frame, CFRangeMake(0, numberOfLines), lineOrigins); + + for (CFIndex lineIndex = 0; lineIndex < numberOfLines; lineIndex++) { + CGPoint lineOrigin = lineOrigins[lineIndex]; + CTLineRef line = CFArrayGetValueAtIndex(lines, lineIndex); + + // Get bounding information of line + CGFloat ascent, descent, leading, width; + width = CTLineGetTypographicBounds(line, &ascent, &descent, &leading); + CGFloat yMin = floor(lineOrigin.y - descent); + CGFloat yMax = ceil(lineOrigin.y + ascent); + + // Check if we've already passed the line + if (p.y > yMax) { + break; + } + // Check if the point is within this line vertically + if (p.y >= yMin) { + // Check if the point is within this line horizontally + if (p.x >= lineOrigin.x && p.x <= lineOrigin.x + width) { + // Convert CT coordinates to line-relative coordinates + CGPoint relativePoint = CGPointMake(p.x - lineOrigin.x, p.y - lineOrigin.y); + idx = CTLineGetStringIndexForPosition(line, relativePoint); + break; + } + } + } + + CFRelease(frame); + CFRelease(path); + + return idx; +} + +- (void)drawFramesetter:(CTFramesetterRef)framesetter attributedString:(NSAttributedString *)attributedString textRange:(CFRange)textRange inRect:(CGRect)rect context:(CGContextRef)c { + CGMutablePathRef path = CGPathCreateMutable(); + CGPathAddRect(path, NULL, rect); + CTFrameRef frame = CTFramesetterCreateFrame(framesetter, textRange, path, NULL); + + [self drawBackground:frame inRect:rect context:c]; + + CFArrayRef lines = CTFrameGetLines(frame); + NSInteger numberOfLines = self.numberOfLines > 0 ? MIN(self.numberOfLines, CFArrayGetCount(lines)) : CFArrayGetCount(lines); + BOOL truncateLastLine = (self.lineBreakMode == UILineBreakModeHeadTruncation || self.lineBreakMode == UILineBreakModeMiddleTruncation || self.lineBreakMode == UILineBreakModeTailTruncation); + + CGPoint lineOrigins[numberOfLines]; + CTFrameGetLineOrigins(frame, CFRangeMake(0, numberOfLines), lineOrigins); + + for (CFIndex lineIndex = 0; lineIndex < numberOfLines; lineIndex++) { + CGPoint lineOrigin = lineOrigins[lineIndex]; + CGContextSetTextPosition(c, lineOrigin.x, lineOrigin.y); + CTLineRef line = CFArrayGetValueAtIndex(lines, lineIndex); + + if (lineIndex == numberOfLines - 1 && truncateLastLine) { + // Check if the range of text in the last line reaches the end of the full attributed string + CFRange lastLineRange = CTLineGetStringRange(line); + + if (!(lastLineRange.length == 0 && lastLineRange.location == 0) && lastLineRange.location + lastLineRange.length < textRange.location + textRange.length) { + // Get correct truncationType and attribute position + CTLineTruncationType truncationType; + NSUInteger truncationAttributePosition = lastLineRange.location; +#ifdef __IPHONE_6_0 + UILineBreakMode lineBreakMode = UILineBreakModeFromNSLineBreakMode(self.lineBreakMode); +#else + UILineBreakMode lineBreakMode = self.lineBreakMode; +#endif + + // Multiple lines, only use UILineBreakModeTailTruncation + if (numberOfLines != 1) { + lineBreakMode = UILineBreakModeTailTruncation; + } + + switch (lineBreakMode) { + case UILineBreakModeHeadTruncation: + truncationType = kCTLineTruncationStart; + break; + case UILineBreakModeMiddleTruncation: + truncationType = kCTLineTruncationMiddle; + truncationAttributePosition += (lastLineRange.length / 2); + break; + case UILineBreakModeTailTruncation: + default: + truncationType = kCTLineTruncationEnd; + truncationAttributePosition += (lastLineRange.length - 1); + break; + } + + // Get the attributes and use them to create the truncation token string + NSDictionary *tokenAttributes = [attributedString attributesAtIndex:truncationAttributePosition effectiveRange:NULL]; + // \u2026 is the Unicode horizontal ellipsis character code + NSAttributedString *tokenString = [[NSAttributedString alloc] initWithString:@"\u2026" attributes:tokenAttributes]; + CTLineRef truncationToken = CTLineCreateWithAttributedString((__bridge CFAttributedStringRef)tokenString); + + // Append truncationToken to the string + // because if string isn't too long, CT wont add the truncationToken on it's own + // There is no change of a double truncationToken because CT only add the token if it removes characters (and the one we add will go first) + NSMutableAttributedString *truncationString = [[attributedString attributedSubstringFromRange:NSMakeRange(lastLineRange.location, lastLineRange.length)] mutableCopy]; + if (lastLineRange.length > 0) { + // Remove any newline at the end (we don't want newline space between the text and the truncation token). There can only be one, because the second would be on the next line. + unichar lastCharacter = [[truncationString string] characterAtIndex:lastLineRange.length - 1]; + if ([[NSCharacterSet newlineCharacterSet] characterIsMember:lastCharacter]) { + [truncationString deleteCharactersInRange:NSMakeRange(lastLineRange.length - 1, 1)]; + } + } + [truncationString appendAttributedString:tokenString]; + CTLineRef truncationLine = CTLineCreateWithAttributedString((__bridge CFAttributedStringRef)truncationString); + + // Truncate the line in case it is too long. + CTLineRef truncatedLine = CTLineCreateTruncatedLine(truncationLine, rect.size.width, truncationType, truncationToken); + if (!truncatedLine) { + // If the line is not as wide as the truncationToken, truncatedLine is NULL + truncatedLine = CFRetain(truncationToken); + } + + CTLineDraw(truncatedLine, c); + + CFRelease(truncatedLine); + CFRelease(truncationLine); + CFRelease(truncationToken); + } else { + CTLineDraw(line, c); + } + } else { + CTLineDraw(line, c); + } + } + + [self drawStrike:frame inRect:rect context:c]; + + CFRelease(frame); + CFRelease(path); +} + +- (void)drawBackground:(CTFrameRef)frame inRect:(CGRect)rect context:(CGContextRef)c { + NSArray *lines = (__bridge NSArray *)CTFrameGetLines(frame); + CGPoint origins[[lines count]]; + CTFrameGetLineOrigins(frame, CFRangeMake(0, 0), origins); + + CFIndex lineIndex = 0; + for (id line in lines) { + CGRect lineBounds = CTLineGetImageBounds((__bridge CTLineRef)line, c); + lineBounds.origin.x = origins[lineIndex].x; + lineBounds.origin.y = origins[lineIndex].y; + + for (id glyphRun in (__bridge NSArray *)CTLineGetGlyphRuns((__bridge CTLineRef)line)) { + NSDictionary *attributes = (__bridge NSDictionary *)CTRunGetAttributes((__bridge CTRunRef) glyphRun); + CGColorRef strokeColor = (__bridge CGColorRef)[attributes objectForKey:kBITBackgroundStrokeColorAttributeName]; + CGColorRef fillColor = (__bridge CGColorRef)[attributes objectForKey:kBITBackgroundFillColorAttributeName]; + CGFloat cornerRadius = [[attributes objectForKey:kBITBackgroundCornerRadiusAttributeName] floatValue]; + CGFloat lineWidth = [[attributes objectForKey:kBITBackgroundLineWidthAttributeName] floatValue]; + + if (strokeColor || fillColor) { + CGRect runBounds = CGRectZero; + CGFloat ascent = 0.0f; + CGFloat descent = 0.0f; + + runBounds.size.width = CTRunGetTypographicBounds((__bridge CTRunRef)glyphRun, CFRangeMake(0, 0), &ascent, &descent, NULL); + runBounds.size.height = ascent + descent; + + CGFloat xOffset = CTLineGetOffsetForStringIndex((__bridge CTLineRef)line, CTRunGetStringRange((__bridge CTRunRef)glyphRun).location, NULL); + runBounds.origin.x = origins[lineIndex].x + rect.origin.x + xOffset; + runBounds.origin.y = origins[lineIndex].y + rect.origin.y; + runBounds.origin.y -= descent; + + // Don't draw higlightedLinkBackground too far to the right + if (CGRectGetWidth(runBounds) > CGRectGetWidth(lineBounds)) { + runBounds.size.width = CGRectGetWidth(lineBounds); + } + + CGRect newRect = CGRectInset(CGRectInset(runBounds, -1.0f, -3.0f), lineWidth, lineWidth); + CGPathRef path = [[UIBezierPath bezierPathWithRoundedRect:newRect cornerRadius:cornerRadius] CGPath]; + + CGContextSetLineJoin(c, kCGLineJoinRound); + + if (fillColor) { + CGContextSetFillColorWithColor(c, fillColor); + CGContextAddPath(c, path); + CGContextFillPath(c); + } + + if (strokeColor) { + CGContextSetStrokeColorWithColor(c, strokeColor); + CGContextAddPath(c, path); + CGContextStrokePath(c); + } + } + } + + lineIndex++; + } +} + +- (void)drawStrike:(CTFrameRef)frame inRect:(CGRect)rect context:(CGContextRef)c { + NSArray *lines = (__bridge NSArray *)CTFrameGetLines(frame); + CGPoint origins[[lines count]]; + CTFrameGetLineOrigins(frame, CFRangeMake(0, 0), origins); + + CFIndex lineIndex = 0; + for (id line in lines) { + CGRect lineBounds = CTLineGetImageBounds((__bridge CTLineRef)line, c); + lineBounds.origin.x = origins[lineIndex].x; + lineBounds.origin.y = origins[lineIndex].y; + + for (id glyphRun in (__bridge NSArray *)CTLineGetGlyphRuns((__bridge CTLineRef)line)) { + NSDictionary *attributes = (__bridge NSDictionary *)CTRunGetAttributes((__bridge CTRunRef) glyphRun); + BOOL strikeOut = [[attributes objectForKey:kBITStrikeOutAttributeName] boolValue]; + NSInteger superscriptStyle = [[attributes objectForKey:(id)kCTSuperscriptAttributeName] integerValue]; + + if (strikeOut) { + CGRect runBounds = CGRectZero; + CGFloat ascent = 0.0f; + CGFloat descent = 0.0f; + + runBounds.size.width = CTRunGetTypographicBounds((__bridge CTRunRef)glyphRun, CFRangeMake(0, 0), &ascent, &descent, NULL); + runBounds.size.height = ascent + descent; + + CGFloat xOffset = CTLineGetOffsetForStringIndex((__bridge CTLineRef)line, CTRunGetStringRange((__bridge CTRunRef)glyphRun).location, NULL); + runBounds.origin.x = origins[lineIndex].x + rect.origin.x + xOffset; + runBounds.origin.y = origins[lineIndex].y + rect.origin.y; + runBounds.origin.y -= descent; + + // Don't draw strikeout too far to the right + if (CGRectGetWidth(runBounds) > CGRectGetWidth(lineBounds)) { + runBounds.size.width = CGRectGetWidth(lineBounds); + } + + switch (superscriptStyle) { + case 1: + runBounds.origin.y -= ascent * 0.47f; + break; + case -1: + runBounds.origin.y += ascent * 0.25f; + break; + default: + break; + } + + // Use text color, or default to black + id color = [attributes objectForKey:(id)kCTForegroundColorAttributeName]; + + if (color) { + CGContextSetStrokeColorWithColor(c, (__bridge CGColorRef)color); + } else { + CGContextSetGrayStrokeColor(c, 0.0f, 1.0); + } + + CTFontRef font = CTFontCreateWithName((__bridge CFStringRef)self.font.fontName, self.font.pointSize, NULL); + CGContextSetLineWidth(c, CTFontGetUnderlineThickness(font)); + CFRelease(font); + CGFloat y = roundf(runBounds.origin.y + runBounds.size.height / 2.0f); + CGContextMoveToPoint(c, runBounds.origin.x, y); + CGContextAddLineToPoint(c, runBounds.origin.x + runBounds.size.width, y); + + CGContextStrokePath(c); + } + } + + lineIndex++; + } +} + +#pragma mark - TTTAttributedLabel + +- (void)setText:(id)text { + if ([text isKindOfClass:[NSString class]]) { + [self setText:text afterInheritingLabelAttributesAndConfiguringWithBlock:nil]; + return; + } + NSAssert([text isKindOfClass:[NSAttributedString class]], @"TTTAttributedLabel accepts either NSStrings or NSAttributedStrings"); + NSAttributedString *attributedString = text; + self.attributedText = attributedString; + + self.links = [NSArray array]; + if (self.dataDetectorTypes != UIDataDetectorTypeNone) { + for (NSTextCheckingResult *result in [self detectedLinksInString:[self.attributedText string] + range:NSMakeRange(0, [attributedString length]) + error:nil]) { + [self addLinkWithTextCheckingResult:result]; + } + } + + [super setText:[self.attributedText string]]; +} + +- (void)setText:(id)text afterInheritingLabelAttributesAndConfiguringWithBlock:(NSMutableAttributedString *(^)(NSMutableAttributedString *mutableAttributedString))block { + NSMutableAttributedString *mutableAttributedString = nil; + if ([text isKindOfClass:[NSString class]]) { + mutableAttributedString = [[NSMutableAttributedString alloc] initWithString:text attributes:NSAttributedStringAttributesFromLabel(self)]; + } else { + mutableAttributedString = [[NSMutableAttributedString alloc] initWithAttributedString:text]; + [mutableAttributedString addAttributes:NSAttributedStringAttributesFromLabel(self) range:NSMakeRange(0, [mutableAttributedString length])]; + } + + if (block) { + mutableAttributedString = block(mutableAttributedString); + } + + [self setText:mutableAttributedString]; +} + +#pragma mark - UILabel + +- (void)setHighlighted:(BOOL)highlighted { + [super setHighlighted:highlighted]; + [self setNeedsDisplay]; +} + +// Fixes crash when loading from a UIStoryboard +- (UIColor *)textColor { + UIColor *color = [super textColor]; + if (!color) { + color = [UIColor blackColor]; + } + + return color; +} + +- (void)setTextColor:(UIColor *)textColor { + UIColor *oldTextColor = self.textColor; + [super setTextColor:textColor]; + + // Redraw to allow any ColorFromContext attributes a chance to update + if (textColor != oldTextColor) { + [self setNeedsFramesetter]; + [self setNeedsDisplay]; + } +} + +- (CGRect)textRectForBounds:(CGRect)bounds limitedToNumberOfLines:(NSInteger)numberOfLines { + if (!self.attributedText) { + return [super textRectForBounds:bounds limitedToNumberOfLines:numberOfLines]; + } + + CGRect textRect = bounds; + + // Adjust the text to be in the center vertically, if the text size is smaller than bounds + CGSize textSize = CTFramesetterSuggestFrameSizeWithConstraints(self.framesetter, CFRangeMake(0, [self.attributedText length]), NULL, bounds.size, NULL); + textSize = CGSizeMake(ceilf(textSize.width), ceilf(textSize.height)); // Fix for iOS 4, CTFramesetterSuggestFrameSizeWithConstraints sometimes returns fractional sizes + + if (textSize.height < textRect.size.height) { + CGFloat heightChange = (textRect.size.height - textSize.height); + CGFloat yOffset = 0.0f; + switch (self.verticalAlignment) { + case BITAttributedLabelVerticalAlignmentTop: + heightChange = 0.0f; + break; + case BITAttributedLabelVerticalAlignmentCenter: + yOffset = floorf((textRect.size.height - textSize.height) / 2.0f); + break; + case BITAttributedLabelVerticalAlignmentBottom: + yOffset = textRect.size.height - textSize.height; + break; + } + + textRect.origin.y += yOffset; + textRect.size = CGSizeMake(textRect.size.width, textRect.size.height - heightChange + yOffset); + } + + return textRect; +} + +- (void)drawTextInRect:(CGRect)rect { + if (!self.attributedText) { + [super drawTextInRect:rect]; + return; + } + + NSAttributedString *originalAttributedText = nil; + + // Adjust the font size to fit width, if necessary + if (self.adjustsFontSizeToFitWidth && self.numberOfLines > 0) { + CGFloat textWidth = [self sizeThatFits:CGSizeZero].width; + CGFloat availableWidth = self.frame.size.width * self.numberOfLines; + if (self.numberOfLines > 1 && self.lineBreakMode == UILineBreakModeWordWrap) { + textWidth *= kBITLineBreakWordWrapTextWidthScalingFactor; + } + + if (textWidth > availableWidth && textWidth > 0.0f) { + originalAttributedText = [self.attributedText copy]; + self.text = NSAttributedStringByScalingFontSize(self.attributedText, availableWidth / textWidth, self.minimumFontSize); + } + } + + CGContextRef c = UIGraphicsGetCurrentContext(); + CGContextSetTextMatrix(c, CGAffineTransformIdentity); + + // Inverts the CTM to match iOS coordinates (otherwise text draws upside-down; Mac OS's system is different) + CGContextTranslateCTM(c, 0.0f, rect.size.height); + CGContextScaleCTM(c, 1.0f, -1.0f); + + CFRange textRange = CFRangeMake(0, [self.attributedText length]); + + // First, get the text rect (which takes vertical centering into account) + CGRect textRect = [self textRectForBounds:rect limitedToNumberOfLines:self.numberOfLines]; + + // CoreText draws it's text aligned to the bottom, so we move the CTM here to take our vertical offsets into account + CGContextTranslateCTM(c, 0.0f, rect.size.height - textRect.origin.y - textRect.size.height); + + // Second, trace the shadow before the actual text, if we have one + if (self.shadowColor && !self.highlighted) { + CGContextSetShadowWithColor(c, self.shadowOffset, self.shadowRadius, [self.shadowColor CGColor]); + } + + // Finally, draw the text or highlighted text itself (on top of the shadow, if there is one) + if (self.highlightedTextColor && self.highlighted) { + NSMutableAttributedString *highlightAttributedString = [self.renderedAttributedText mutableCopy]; + [highlightAttributedString addAttribute:(NSString *)kCTForegroundColorAttributeName value:(id)[self.highlightedTextColor CGColor] range:NSMakeRange(0, highlightAttributedString.length)]; + + if (!_highlightFramesetter) { + _highlightFramesetter = CTFramesetterCreateWithAttributedString((__bridge CFAttributedStringRef)highlightAttributedString); + } + + [self drawFramesetter:self.highlightFramesetter attributedString:highlightAttributedString textRange:textRange inRect:textRect context:c]; + } else { + [self drawFramesetter:self.framesetter attributedString:self.renderedAttributedText textRange:textRange inRect:textRect context:c]; + } + + // If we adjusted the font size, set it back to its original size + if (originalAttributedText) { + self.text = originalAttributedText; + } +} + +#pragma mark - UIView + +- (CGSize)sizeThatFits:(CGSize)size { + if (!self.attributedText) { + return [super sizeThatFits:size]; + } + + CFRange rangeToSize = CFRangeMake(0, [self.attributedText length]); + CGSize constraints = CGSizeMake(size.width, CGFLOAT_MAX); + + if (self.numberOfLines == 1) { + // If there is one line, the size that fits is the full width of the line + constraints = CGSizeMake(CGFLOAT_MAX, CGFLOAT_MAX); + } else if (self.numberOfLines > 0) { + // If the line count of the label more than 1, limit the range to size to the number of lines that have been set + CGMutablePathRef path = CGPathCreateMutable(); + CGPathAddRect(path, NULL, CGRectMake(0.0f, 0.0f, constraints.width, CGFLOAT_MAX)); + CTFrameRef frame = CTFramesetterCreateFrame(self.framesetter, CFRangeMake(0, 0), path, NULL); + CFArrayRef lines = CTFrameGetLines(frame); + + if (CFArrayGetCount(lines) > 0) { + NSInteger lastVisibleLineIndex = MIN(self.numberOfLines, CFArrayGetCount(lines)) - 1; + CTLineRef lastVisibleLine = CFArrayGetValueAtIndex(lines, lastVisibleLineIndex); + + CFRange rangeToLayout = CTLineGetStringRange(lastVisibleLine); + rangeToSize = CFRangeMake(0, rangeToLayout.location + rangeToLayout.length); + } + + CFRelease(frame); + CFRelease(path); + } + + CGSize suggestedSize = CTFramesetterSuggestFrameSizeWithConstraints(self.framesetter, rangeToSize, NULL, constraints, NULL); + + return CGSizeMake(ceilf(suggestedSize.width), ceilf(suggestedSize.height)); +} + +#pragma mark - UIResponder + +- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event { + UITouch *touch = [touches anyObject]; + + self.activeLink = [self linkAtPoint:[touch locationInView:self]]; + + if (self.activeLink) { + [self setLinkActive:YES withTextCheckingResult:self.activeLink]; + } else { + [super touchesBegan:touches withEvent:event]; + } +} + +- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event { + if (self.activeLink) { + UITouch *touch = [touches anyObject]; + + if (self.activeLink != [self linkAtPoint:[touch locationInView:self]]) { + [self setLinkActive:NO withTextCheckingResult:self.activeLink]; + } else { + [self setLinkActive:YES withTextCheckingResult:self.activeLink]; + } + } else { + [super touchesMoved:touches withEvent:event]; + } +} + +- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event { + NSTextCheckingResult *activeLink = self.activeLink; + if (activeLink) { + UITouch *touch = [touches anyObject]; + if (activeLink == [self linkAtPoint:[touch locationInView:self]]) { + [self setLinkActive:NO withTextCheckingResult:activeLink]; + + if (!self.delegate) { + return; + } + + switch (activeLink.resultType) { + case NSTextCheckingTypeLink: + if ([self.delegate respondsToSelector:@selector(attributedLabel:didSelectLinkWithURL:)]) { + [self.delegate attributedLabel:self didSelectLinkWithURL:activeLink.URL]; + return; + } + break; + case NSTextCheckingTypeAddress: + if ([self.delegate respondsToSelector:@selector(attributedLabel:didSelectLinkWithAddress:)]) { + [self.delegate attributedLabel:self didSelectLinkWithAddress:activeLink.addressComponents]; + return; + } + break; + case NSTextCheckingTypePhoneNumber: + if ([self.delegate respondsToSelector:@selector(attributedLabel:didSelectLinkWithPhoneNumber:)]) { + [self.delegate attributedLabel:self didSelectLinkWithPhoneNumber:activeLink.phoneNumber]; + return; + } + break; + case NSTextCheckingTypeDate: + if (activeLink.timeZone && [self.delegate respondsToSelector:@selector(attributedLabel:didSelectLinkWithDate:timeZone:duration:)]) { + [self.delegate attributedLabel:self didSelectLinkWithDate:activeLink.date timeZone:activeLink.timeZone duration:activeLink.duration]; + return; + } else if ([self.delegate respondsToSelector:@selector(attributedLabel:didSelectLinkWithDate:)]) { + [self.delegate attributedLabel:self didSelectLinkWithDate:activeLink.date]; + return; + } + break; + default: + break; + } + + // Fallback to `attributedLabel:didSelectLinkWithTextCheckingResult:` if no other delegate method matched. + if ([self.delegate respondsToSelector:@selector(attributedLabel:didSelectLinkWithTextCheckingResult:)]) { + [self.delegate attributedLabel:self didSelectLinkWithTextCheckingResult:activeLink]; + } + } + } else { + [super touchesEnded:touches withEvent:event]; + } +} + +- (void)touchesCancelled:(NSSet *)touches withEvent:(UIEvent *)event { + if (self.activeLink) { + [self setLinkActive:NO withTextCheckingResult:self.activeLink]; + } else { + [super touchesCancelled:touches withEvent:event]; + } +} + +@end + +#pragma clang diagnostic pop diff --git a/Pods/HockeySDK/Classes/BITAuthenticationViewController.h b/Pods/HockeySDK/Classes/BITAuthenticationViewController.h new file mode 100644 index 0000000..2eac237 --- /dev/null +++ b/Pods/HockeySDK/Classes/BITAuthenticationViewController.h @@ -0,0 +1,94 @@ +/* + * Author: Stephan Diederich + * + * Copyright (c) 2013-2014 HockeyApp, Bit Stadium GmbH. + * All rights reserved. + * + * Permission is hereby granted, free of charge, to any person + * obtaining a copy of this software and associated documentation + * files (the "Software"), to deal in the Software without + * restriction, including without limitation the rights to use, + * copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following + * conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES + * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + */ + +#import +@protocol BITAuthenticationViewControllerDelegate; +@class BITAuthenticator; +@class BITHockeyAppClient; + +/** + * View controller handling user interaction for `BITAuthenticator` + */ +@interface BITAuthenticationViewController : UITableViewController + +- (instancetype) initWithDelegate:(id) delegate; + +/** + * can be set to YES to show an additional button + description text + * and allowing to login via external website/UDID. + * if this is set to yes, no further email/password options are shown + * + * defaults to NO + */ +@property (nonatomic, assign) BOOL showsLoginViaWebButton; + +/** + * Description shown on top of view. Should tell why this view + * was presented and what's next. + */ +@property (nonatomic, copy) NSString* tableViewTitle; + +/** + * can be set to YES to also require the users password + * + * defaults to NO + */ +@property (nonatomic, assign) BOOL requirePassword; + +@property (nonatomic, weak) id delegate; + +/** + * allows to pre-fill the email-addy + */ +@property (nonatomic, copy) NSString* email; +@end + +/** + * BITAuthenticationViewController protocol + */ +@protocol BITAuthenticationViewControllerDelegate + +- (void) authenticationViewControllerDidTapWebButton:(UIViewController*) viewController; + +/** + * called when the user wants to login + * + * @param viewController the delegating view controller + * @param email the content of the email-field + * @param password the content of the password-field (if existent) + * @param completion Must be called by the delegate once the auth-task completed + * This view controller shows an activity-indicator in between and blocks + * the UI. if succeeded is NO, it shows an alertView presenting the error + * given by the completion block + */ +- (void) authenticationViewController:(UIViewController*) viewController + handleAuthenticationWithEmail:(NSString*) email + password:(NSString*) password + completion:(void(^)(BOOL succeeded, NSError *error)) completion; + +@end diff --git a/Pods/HockeySDK/Classes/BITAuthenticationViewController.m b/Pods/HockeySDK/Classes/BITAuthenticationViewController.m new file mode 100644 index 0000000..8493701 --- /dev/null +++ b/Pods/HockeySDK/Classes/BITAuthenticationViewController.m @@ -0,0 +1,325 @@ +/* + * Author: Stephan Diederich + * + * Copyright (c) 2013-2014 HockeyApp, Bit Stadium GmbH. + * All rights reserved. + * + * Permission is hereby granted, free of charge, to any person + * obtaining a copy of this software and associated documentation + * files (the "Software"), to deal in the Software without + * restriction, including without limitation the rights to use, + * copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following + * conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES + * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + */ + +#import "BITAuthenticationViewController.h" +#import "BITAuthenticator_Private.h" +#import "HockeySDKPrivate.h" +#import "HockeySDK.h" +#import "BITHockeyHelper.h" +#import "BITHockeyAppClient.h" + +@interface BITAuthenticationViewController () { + UIStatusBarStyle _statusBarStyle; + __weak UITextField *_emailField; +} + +@property (nonatomic, copy) NSString *password; + +@end + +@implementation BITAuthenticationViewController + +- (instancetype) initWithDelegate:(id)delegate { + self = [super initWithStyle:UITableViewStyleGrouped]; + if (self) { + self.title = BITHockeyLocalizedString(@"HockeyAuthenticatorViewControllerTitle"); + _delegate = delegate; + } + return self; +} + +#pragma mark - view lifecycle + +- (void)viewDidLoad { + [super viewDidLoad]; + + [self.tableView setScrollEnabled:NO]; + + [self updateWebLoginButton]; +} + +- (void)viewWillAppear:(BOOL)animated { + [super viewWillAppear:animated]; + + _statusBarStyle = [[UIApplication sharedApplication] statusBarStyle]; +#if __IPHONE_OS_VERSION_MAX_ALLOWED > __IPHONE_6_1 + [[UIApplication sharedApplication] setStatusBarStyle:(self.navigationController.navigationBar.barStyle == UIBarStyleDefault) ? UIStatusBarStyleDefault : UIStatusBarStyleLightContent]; +#else + [[UIApplication sharedApplication] setStatusBarStyle:(self.navigationController.navigationBar.barStyle == UIBarStyleDefault) ? UIStatusBarStyleDefault : UIStatusBarStyleBlackOpaque]; +#endif + + [self updateBarButtons]; + + self.navigationItem.rightBarButtonItem.enabled = [self allRequiredFieldsEntered]; +} + +- (void)viewWillDisappear:(BOOL)animated { + [super viewWillDisappear:animated]; + + [[UIApplication sharedApplication] setStatusBarStyle:_statusBarStyle]; +} + +#pragma mark - Property overrides + +- (void) updateBarButtons { + if(self.showsLoginViaWebButton) { + self.navigationItem.rightBarButtonItem = nil; + } else { + self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone + target:self + action:@selector(saveAction:)]; + } +} + +- (void)setShowsLoginViaWebButton:(BOOL)showsLoginViaWebButton { + if(_showsLoginViaWebButton != showsLoginViaWebButton) { + _showsLoginViaWebButton = showsLoginViaWebButton; + if(self.isViewLoaded) { + [self.tableView reloadData]; + [self updateBarButtons]; + [self updateWebLoginButton]; + } + } +} + +- (void) updateWebLoginButton { + if(self.showsLoginViaWebButton) { + static const CGFloat kFooterHeight = 60.f; + UIView *containerView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, + CGRectGetWidth(self.tableView.bounds), + kFooterHeight)]; + UIButton *button = [UIButton buttonWithType:kBITButtonTypeSystem]; + [button setTitle:BITHockeyLocalizedString(@"HockeyAuthenticationViewControllerWebLoginButtonTitle") forState:UIControlStateNormal]; + CGSize buttonSize = [button sizeThatFits:CGSizeMake(CGRectGetWidth(self.tableView.bounds), + kFooterHeight)]; + button.frame = CGRectMake(floorf((CGRectGetWidth(containerView.bounds) - buttonSize.width) / 2.f), + floorf((kFooterHeight - buttonSize.height) / 2.f), + buttonSize.width, + buttonSize.height); + button.autoresizingMask = UIViewAutoresizingFlexibleBottomMargin | UIViewAutoresizingFlexibleTopMargin | UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleRightMargin; + if ([UIButton instancesRespondToSelector:(NSSelectorFromString(@"setTintColor:"))]) { + [button setTitleColor:BIT_RGBCOLOR(0, 122, 255) forState:UIControlStateNormal]; + } + [containerView addSubview:button]; + [button addTarget:self + action:@selector(handleWebLoginButton:) + forControlEvents:UIControlEventTouchUpInside]; + self.tableView.tableFooterView = containerView; + } else { + self.tableView.tableFooterView = nil; + } +} + +- (IBAction) handleWebLoginButton:(id)sender { + [self.delegate authenticationViewControllerDidTapWebButton:self]; +} + +- (void)setEmail:(NSString *)email { + _email = email; + if(self.isViewLoaded) { + _emailField.text = email; + } +} + +- (void)setTableViewTitle:(NSString *)viewDescription { + _tableViewTitle = [viewDescription copy]; + if(self.isViewLoaded) { + [self.tableView reloadData]; + } +} +#pragma mark - UIViewController Rotation + +- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)orientation { + return YES; +} + +#pragma mark - Private methods +- (BOOL)allRequiredFieldsEntered { + if (self.requirePassword && [self.password length] == 0) + return NO; + + if (![self.email length] || !bit_validateEmail(self.email)) + return NO; + + return YES; +} + +#pragma mark - Table view data source + +- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView { + return 2; +} + +- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { + if (section == 0) return 0; + + if(self.showsLoginViaWebButton) { + return 0; + } else { + NSInteger rows = 1; + + if ([self requirePassword]) rows ++; + + return rows; + } +} + +- (NSString *)tableView:(UITableView *)tableView titleForFooterInSection:(NSInteger)section { + if (section == 0) { + return self.tableViewTitle; + } + + return nil; +} + +- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { + static NSString *CellIdentifier = @"InputCell"; + + UITableViewCell *cell = [self.tableView dequeueReusableCellWithIdentifier:CellIdentifier]; + if (cell == nil) { + cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier]; + + cell.accessoryType = UITableViewCellAccessoryNone; + cell.selectionStyle = UITableViewCellSelectionStyleNone; + cell.backgroundColor = [UIColor whiteColor]; + + UITextField *textField = [[UITextField alloc] initWithFrame:CGRectMake(130, 11, self.view.frame.size.width - 130 - 25, 24)]; + if (UI_USER_INTERFACE_IDIOM() != UIUserInterfaceIdiomPad) { + textField.autoresizingMask = UIViewAutoresizingFlexibleWidth; + } + textField.adjustsFontSizeToFitWidth = YES; + textField.textColor = [UIColor blackColor]; + textField.backgroundColor = [UIColor lightGrayColor]; + + if (0 == [indexPath row]) { + textField.placeholder = BITHockeyLocalizedString(@"HockeyAuthenticationViewControllerEmailPlaceholder"); + textField.text = self.email; + _emailField = textField; + + textField.keyboardType = UIKeyboardTypeEmailAddress; + if ([self requirePassword]) + textField.returnKeyType = UIReturnKeyNext; + else + textField.returnKeyType = UIReturnKeyDone; + + [textField addTarget:self action:@selector(userEmailEntered:) forControlEvents:UIControlEventEditingChanged]; + [textField becomeFirstResponder]; + } else { + textField.placeholder = BITHockeyLocalizedString(@"HockeyAuthenticationViewControllerPasswordPlaceholder"); + textField.text = self.password; + + textField.keyboardType = UIKeyboardTypeDefault; + textField.returnKeyType = UIReturnKeyDone; + textField.secureTextEntry = YES; + [textField addTarget:self action:@selector(userPasswordEntered:) forControlEvents:UIControlEventEditingChanged]; + } + + textField.backgroundColor = [UIColor whiteColor]; + textField.autocorrectionType = UITextAutocorrectionTypeNo; + textField.autocapitalizationType = UITextAutocapitalizationTypeNone; + textField.textAlignment = kBITTextLabelAlignmentLeft; + textField.delegate = self; + textField.tag = indexPath.row; + + textField.clearButtonMode = UITextFieldViewModeWhileEditing; + [textField setEnabled: YES]; + + [cell addSubview:textField]; + } + + if (0 == [indexPath row]) { + cell.textLabel.text = BITHockeyLocalizedString(@"HockeyAuthenticationViewControllerEmailDescription"); + } else { + cell.textLabel.text = BITHockeyLocalizedString(@"HockeyAuthenticationViewControllerPasswordDescription"); + } + + return cell; +} + + +- (void)userEmailEntered:(id)sender { + self.email = [(UITextField *)sender text]; + + self.navigationItem.rightBarButtonItem.enabled = [self allRequiredFieldsEntered]; +} + +- (void)userPasswordEntered:(id)sender { + self.password = [(UITextField *)sender text]; + + self.navigationItem.rightBarButtonItem.enabled = [self allRequiredFieldsEntered]; +} + +#pragma mark - UITextFieldDelegate + +- (BOOL)textFieldShouldReturn:(UITextField *)textField { + NSInteger nextTag = textField.tag + 1; + + UIResponder* nextResponder = [self.view viewWithTag:nextTag]; + if (nextResponder) { + [nextResponder becomeFirstResponder]; + } else { + if ([self allRequiredFieldsEntered]) { + if ([textField isFirstResponder]) + [textField resignFirstResponder]; + + [self saveAction:nil]; + } + } + return NO; +} + +#pragma mark - Actions +- (void)saveAction:(id)sender { + [self setLoginUIEnabled:NO]; + + __weak typeof(self) weakSelf = self; + [self.delegate authenticationViewController:self + handleAuthenticationWithEmail:self.email + password:self.password + completion:^(BOOL succeeded, NSError *error) { + if(succeeded) { + //controller should dismiss us shortly.. + } else { + UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:nil + message:error.localizedDescription + delegate:nil + cancelButtonTitle:BITHockeyLocalizedString(@"OK") + otherButtonTitles:nil]; + [alertView show]; + typeof(self) strongSelf = weakSelf; + [strongSelf setLoginUIEnabled:YES]; + } + }]; +} + +- (void) setLoginUIEnabled:(BOOL) enabled { + self.navigationItem.rightBarButtonItem.enabled = enabled; + self.tableView.userInteractionEnabled = enabled; +} + +@end diff --git a/Pods/HockeySDK/Classes/BITAuthenticator.h b/Pods/HockeySDK/Classes/BITAuthenticator.h new file mode 100644 index 0000000..e740a2c --- /dev/null +++ b/Pods/HockeySDK/Classes/BITAuthenticator.h @@ -0,0 +1,385 @@ +/* + * Author: Stephan Diederich, Andreas Linde + * + * Copyright (c) 2013-2014 HockeyApp, Bit Stadium GmbH. + * All rights reserved. + * + * Permission is hereby granted, free of charge, to any person + * obtaining a copy of this software and associated documentation + * files (the "Software"), to deal in the Software without + * restriction, including without limitation the rights to use, + * copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following + * conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES + * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + */ + +#import + +#import "BITHockeyBaseManager.h" + +/** + * Identification Types + */ +typedef NS_ENUM(NSUInteger, BITAuthenticatorIdentificationType) { + /** + * Assigns this app an anonymous user id. + *

+ * The user will not be asked anything and an anonymous ID will be generated. + * This helps identifying this installation being unique but HockeyApp won't be able + * to identify who actually is running this installation and on which device + * the app is installed. + */ + BITAuthenticatorIdentificationTypeAnonymous, + /** + * Ask for the HockeyApp account email + *

+ * This will present a user interface requesting the user to provide their + * HockeyApp user email address. + *

+ * The provided email address has to match an email address of a registered + * HockeyApp user who is a member or tester of the app + */ + BITAuthenticatorIdentificationTypeHockeyAppEmail, + /** + * Ask for the HockeyApp account by email and password + *

+ * This will present a user interface requesting the user to provide their + * HockeyApp user credentials. + *

+ * The provided user account has to match a registered HockeyApp user who is + * a member or tester of the app + */ + BITAuthenticatorIdentificationTypeHockeyAppUser, + /** + * Identifies the current device + *

+ * This will open the HockeyApp web page on the device in Safari and request the user + * to submit the device's unique identifier to the app. If the web page session is not aware + * of the current devices UDID, it will request the user to install the HockeyApp web clip + * which will provide the UDID to users session in the browser. + *

+ * This requires the app to register an URL scheme. See the linked property and methods + * for further documentation on this. + */ + BITAuthenticatorIdentificationTypeDevice, + /** + * Ask for the HockeyApp account email. + *

+ * This will present a user interface requesting the user to start a Safari based + * flow to login to HockeyApp (if not already logged in) and to share the hockeyapp + * account's email. + *

+ * If restrictApplicationUsage is enabled, the provided user account has to match a + * registered HockeyApp user who is a member or tester of the app. + * For identification purpose any HockeyApp user is allowed. + */ + BITAuthenticatorIdentificationTypeWebAuth, +}; + +/** + * Restriction enforcement styles + * + * Specifies how often the Authenticator checks if the user is allowed to use + * this app. + */ +typedef NS_ENUM(NSUInteger, BITAuthenticatorAppRestrictionEnforcementFrequency) { + /** + * Checks if the user is allowed to use the app at the first time a version is started + */ + BITAuthenticatorAppRestrictionEnforcementOnFirstLaunch, + /** + * Checks if the user is allowed to use the app every time the app becomes active + */ + BITAuthenticatorAppRestrictionEnforcementOnAppActive, +}; + +@protocol BITAuthenticatorDelegate; + + +/** + * Identify and authenticate users of Ad-Hoc or Enterprise builds + * + * `BITAuthenticator` serves 2 purposes: + * + * 1. Identifying who is running your Ad-Hoc or Enterprise builds + * `BITAuthenticator` provides an identifier for the rest of the HockeySDK + * to work with, e.g. in-app update checks and crash reports. + * + * 2. Optional regular checking if an identified user is still allowed + * to run this application. The `BITAuthenticator` can be used to make + * sure only users who are testers of your app are allowed to run it. + * + * This module automatically disables itself when running in an App Store build by default! + * + * @warning It is mandatory to call `authenticateInstallation` somewhen after calling + * `[[BITHockeyManager sharedHockeyManager] startManager]` or fully customize the identification + * and validation workflow yourself. + * If your app shows a modal view on startup, make sure to call `authenticateInstallation` + * either once your modal view is fully presented (e.g. its `viewDidLoad:` method is processed) + * or once your modal view is dismissed. + */ +@interface BITAuthenticator : BITHockeyBaseManager + +#pragma mark - Configuration + + +///----------------------------------------------------------------------------- +/// @name Configuration +///----------------------------------------------------------------------------- + + +/** + * Defines the identification mechanism to be used + * + * _Default_: `BITAuthenticatorIdentificationTypeAnonymous` + * + * @see BITAuthenticatorIdentificationType + */ +@property (nonatomic, assign) BITAuthenticatorIdentificationType identificationType; + + +/** + * Enables or disables checking if the user is allowed to run this app + * + * If disabled, the Authenticator never validates, besides initial identification, + * if the user is allowed to run this application. + * + * If enabled, the Authenticator checks depending on `restrictionEnforcementFrequency` + * if the user is allowed to use this application. + * + * Enabling this property and setting `identificationType` to `BITAuthenticatorIdentificationTypeHockeyAppEmail`, + * `BITAuthenticatorIdentificationTypeHockeyAppUser` or `BITAuthenticatorIdentificationTypeWebAuth` also allows + * to remove access for users by removing them from the app's users list on HockeyApp. + * + * _Default_: `NO` + * + * @warning if `identificationType` is set to `BITAuthenticatorIdentificationTypeAnonymous`, + * this property has no effect. + * + * @see BITAuthenticatorIdentificationType + * @see restrictionEnforcementFrequency + */ +@property (nonatomic, assign) BOOL restrictApplicationUsage; + +/** + * Defines how often the BITAuthenticator checks if the user is allowed + * to run this application + * + * This requires `restrictApplicationUsage` to be enabled. + * + * _Default_: `BITAuthenticatorAppRestrictionEnforcementOnFirstLaunch` + * + * @see BITAuthenticatorAppRestrictionEnforcementFrequency + * @see restrictApplicationUsage + */ +@property (nonatomic, assign) BITAuthenticatorAppRestrictionEnforcementFrequency restrictionEnforcementFrequency; + +/** + * The authentication secret from HockeyApp. To find the right secret, + * click on your app on the HockeyApp dashboard, then on Show next to + * "Secret:". + * + * This is only needed if `identificationType` is set to `BITAuthenticatorIdentificationTypeHockeyAppEmail` + * + * @see identificationType + */ +@property (nonatomic, copy) NSString *authenticationSecret; + + +#pragma mark - Device based identification + +///----------------------------------------------------------------------------- +/// @name Device based identification +///----------------------------------------------------------------------------- + + +/** + * The baseURL of the webpage the user is redirected to if `identificationType` is + * set to `BITAuthenticatorIdentificationTypeDevice`; defaults to https://rink.hockeyapp.net. + * + * @see identificationType + */ +@property (nonatomic, strong) NSURL *webpageURL; + +/** + * URL to query the device's id via external webpage + * Built with the baseURL set in `webpageURL`. + */ +- (NSURL*) deviceAuthenticationURL; + +/** + * The url-scheme used to identify via `BITAuthenticatorIdentificationTypeDevice` + * + * Please make sure that the URL scheme is unique and not shared with other apps. + * + * If set to nil, the default scheme is used which is `ha`. + * + * @see identificationType + * @see handleOpenURL:sourceApplication:annotation: + */ +@property (nonatomic, strong) NSString *urlScheme; + +/** + Should be used by the app-delegate to forward handle application:openURL:sourceApplication:annotation: calls. + + This is required if `identificationType` is set to `BITAuthenticatorIdentificationTypeDevice`. + Your app needs to implement the default `ha` URL scheme or register its own scheme + via `urlScheme`. + BITAuthenticator checks if the given URL is actually meant to be parsed by it and will + return NO if it doesn't think so. It does this by checking the 'host'-part of the URL to be 'authorize', as well + as checking the protocol part. + Please make sure that if you're using a custom URL scheme, it does _not_ conflict with BITAuthenticator's. + If BITAuthenticator thinks the URL was meant to be an authorization URL, but could not find a valid token, it will + reset the stored identification token and state. + + Sample usage (in AppDelegate): + + - (BOOL)application:(UIApplication *)application + openURL:(NSURL *)url + sourceApplication:(NSString *)sourceApplication annotation:(id)annotation { + if ([[BITHockeyManager sharedHockeyManager].authenticator handleOpenURL:url + sourceApplication:sourceApplication + annotation:annotation]) { + return YES; + } else { + //do your own URL handling, return appropriate value + } + return NO; + } + + @param url Param `url` that was passed to the app + @param sourceApplication Param `sourceApplication` that was passed to the app + @param annotation Param `annotation` that was passed to the app + + @return YES if the URL request was handled, NO if the URL could not be handled/identified. + + @see identificationType + @see urlScheme + */ +- (BOOL) handleOpenURL:(NSURL *) url + sourceApplication:(NSString *) sourceApplication + annotation:(id) annotation; + +#pragma mark - Authentication + +///----------------------------------------------------------------------------- +/// @name Authentication +///----------------------------------------------------------------------------- + +/** + * Invoked automatic identification and validation + * + * If the `BITAuthenticator` is in automatic mode this will initiate identifying + * the current user according to the type specified in `identificationType` and + * validate if the identified user is allowed to run this application. + * + * If the user is not yet identified it will present a modal view asking the user to + * provide the required information. + * + * If your app provides it's own startup modal screen, e.g. a guide or a login, then + * you might either call this method once that UI is fully presented or once + * the user e.g. did actually login already. + * + * @warning You need to call this method in your code even if automatic mode is enabled! + * + * @see identificationType + */ +- (void) authenticateInstallation; + +/** + * Identifies the user according to the type specified in `identificationType`. + * + * If the `BITAuthenticator` is in manual mode, it's your responsibility to call + * this method. Depending on the `identificationType`, this method + * might present a viewController to let the user enter his/her credentials. + * + * If the Authenticator is in auto-mode, this is called by the authenticator itself + * once needed. + * + * @see identificationType + * @see authenticateInstallation + * @see validateWithCompletion: + * + * @param completion Block being executed once identification completed + */ +- (void) identifyWithCompletion:(void(^)(BOOL identified, NSError *error)) completion; + +/** + * Returns YES if this app is identified according to the setting in `identificationType`. + * + * Since the identification process is done asynchronously (contacting the server), + * you need to observe the value change via KVO. + * + * @see identificationType + */ +@property (nonatomic, assign, readonly, getter = isIdentified) BOOL identified; + +/** + * Validates if the identified user is allowed to run this application. This checks + * with the HockeyApp backend and calls the completion-block once completed. + * + * If the `BITAuthenticator` is in manual mode, it's your responsibility to call + * this method. If the application is not yet identified, validation is not possible + * and the completion-block is called with an error set. + * + * If the `BITAuthenticator` is in auto-mode, this is called by the authenticator itself + * once needed. + * + * @see identificationType + * @see authenticateInstallation + * @see identifyWithCompletion: + * + * @param completion Block being executed once validation completed + */ +- (void) validateWithCompletion:(void(^)(BOOL validated, NSError *error)) completion; + +/** + * Indicates if this installation is validated. + */ +@property (nonatomic, assign, readonly, getter = isValidated) BOOL validated; + +/** + * Removes all previously stored authentication tokens, UDIDs, etc. + */ +- (void) cleanupInternalStorage; + +/** + * Returns different values depending on `identificationType`. This can be used + * by the application to identify the user. + * + * @see identificationType + */ +- (NSString*) publicInstallationIdentifier; +@end + +#pragma mark - Protocol + +/** + * `BITAuthenticator` protocol + */ +@protocol BITAuthenticatorDelegate + +@optional +/** + * If the authentication (or validation) needs to identify the user, + * this delegate method is called with the viewController that we'll present. + * + * @param authenticator `BITAuthenticator` object + * @param viewController `UIViewController` used to identify the user + * + */ +- (void) authenticator:(BITAuthenticator *)authenticator willShowAuthenticationController:(UIViewController*) viewController; +@end diff --git a/Pods/HockeySDK/Classes/BITAuthenticator.m b/Pods/HockeySDK/Classes/BITAuthenticator.m new file mode 100644 index 0000000..3b57c9c --- /dev/null +++ b/Pods/HockeySDK/Classes/BITAuthenticator.m @@ -0,0 +1,910 @@ +/* + * Author: Stephan Diederich + * + * Copyright (c) 2013-2014 HockeyApp, Bit Stadium GmbH. + * All rights reserved. + * + * Permission is hereby granted, free of charge, to any person + * obtaining a copy of this software and associated documentation + * files (the "Software"), to deal in the Software without + * restriction, including without limitation the rights to use, + * copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following + * conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES + * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + */ + + +#import "BITAuthenticator.h" +#import "HockeySDK.h" +#import "HockeySDKPrivate.h" +#import "BITAuthenticator_Private.h" +#import "BITHTTPOperation.h" +#import "BITHockeyAppClient.h" +#import "BITHockeyHelper.h" + +#include + +static NSString* const kBITAuthenticatorUUIDKey = @"BITAuthenticatorUUIDKey"; +static NSString* const kBITAuthenticatorIdentifierKey = @"BITAuthenticatorIdentifierKey"; +static NSString* const kBITAuthenticatorIdentifierTypeKey = @"BITAuthenticatorIdentifierTypeKey"; +static NSString* const kBITAuthenticatorLastAuthenticatedVersionKey = @"BITAuthenticatorLastAuthenticatedVersionKey"; +static NSString* const kBITAuthenticatorUserEmailKey = @"BITAuthenticatorUserEmailKey"; + +//deprecated +static NSString* const kBITAuthenticatorAuthTokenKey = @"BITAuthenticatorAuthTokenKey"; +static NSString* const kBITAuthenticatorAuthTokenTypeKey = @"BITAuthenticatorAuthTokenTypeKey"; + +typedef unsigned int bit_uint32; +static unsigned char kBITPNGHeader[8] = {137, 80, 78, 71, 13, 10, 26, 10}; +static unsigned char kBITPNGEndChunk[4] = {0x49, 0x45, 0x4e, 0x44}; + +@implementation BITAuthenticator { + id _appDidBecomeActiveObserver; + id _appDidEnterBackgroundObserver; + UIViewController *_authenticationController; + + BOOL _isSetup; +} + +- (void)dealloc { + [self unregisterObservers]; +} + +- (instancetype) initWithAppIdentifier:(NSString *)appIdentifier isAppStoreEnvironment:(BOOL)isAppStoreEnvironment { + self = [super initWithAppIdentifier:appIdentifier isAppStoreEnvironment:isAppStoreEnvironment]; + if( self ) { + _webpageURL = [NSURL URLWithString:@"https://rink.hockeyapp.net/"]; + + _identificationType = BITAuthenticatorIdentificationTypeAnonymous; + _isSetup = NO; + _restrictApplicationUsage = NO; + _restrictionEnforcementFrequency = BITAuthenticatorAppRestrictionEnforcementOnFirstLaunch; + } + return self; +} + +#pragma mark - BITHockeyBaseManager overrides +- (void)startManager { + //disabled in the appStore + if([self isAppStoreEnvironment]) return; + + _isSetup = YES; +} + +#pragma mark - +- (void)dismissAuthenticationControllerAnimated:(BOOL)animated completion:(void (^)(void))completion { + if (!_authenticationController) return; + + UIViewController *presentingViewController = [_authenticationController presentingViewController]; + + // If there is no presenting view controller just remove view + if (presentingViewController) { + [_authenticationController dismissViewControllerAnimated:animated completion:completion]; + } else { + [_authenticationController.navigationController.view removeFromSuperview]; + if (completion) { + completion(); + } + } + _authenticationController = nil; +} + +- (void)authenticateInstallation { + //disabled in the appStore + if([self isAppStoreEnvironment]) return; + + // make sure this is called after startManager so all modules are fully setup + if (!_isSetup) { + [NSObject cancelPreviousPerformRequestsWithTarget:self selector:@selector(authenticateInstallation) object:nil]; + [self performSelector:@selector(authenticateInstallation) withObject:nil afterDelay:0.1]; + } else { + switch ([[UIApplication sharedApplication] applicationState]) { + case UIApplicationStateActive: + [self authenticate]; + break; + case UIApplicationStateBackground: + case UIApplicationStateInactive: + // do nothing, wait for active state + break; + } + } + [self registerObservers]; +} + +- (void) authenticate { + [self identifyWithCompletion:^(BOOL identified, NSError *error) { + if(identified) { + if([self needsValidation]) { + [self validate]; + } else { + [self dismissAuthenticationControllerAnimated:YES completion:nil]; + } + } else { + BITHockeyLog(@"Failed to identify. Error: %@", error); + } + }]; +} + +- (BOOL) needsValidation { + if(BITAuthenticatorIdentificationTypeAnonymous == self.identificationType) { + return NO; + } + if(NO == self.restrictApplicationUsage) { + return NO; + } + if(self.restrictionEnforcementFrequency == BITAuthenticatorAppRestrictionEnforcementOnFirstLaunch && + ![self.executableUUID isEqualToString:self.lastAuthenticatedVersion]) { + return YES; + } + if(NO == self.isValidated && self.restrictionEnforcementFrequency == BITAuthenticatorAppRestrictionEnforcementOnAppActive) { + return YES; + } + return NO; +} + +- (void)alertOnFailureStoringTokenInKeychain { + if ([[UIApplication sharedApplication] applicationState] != UIApplicationStateActive) { + return; + } + + NSLog(@"[HockeySDK] ERROR: The authentication token could not be stored due to a keychain error. This is most likely a signing or keychain entitlement issue!"); +} + +- (void) identifyWithCompletion:(void (^)(BOOL identified, NSError *))completion { + if(_authenticationController) { + BITHockeyLog(@"Authentication controller already visible. Ignoring identify request"); + if(completion) completion(NO, nil); + return; + } + //first check if the stored identification type matches the one currently configured + NSString *storedTypeString = [self stringValueFromKeychainForKey:kBITAuthenticatorIdentifierTypeKey]; + NSString *configuredTypeString = [self.class stringForIdentificationType:self.identificationType]; + if(storedTypeString && ![storedTypeString isEqualToString:configuredTypeString]) { + BITHockeyLog(@"Identification type mismatch for stored auth-token. Resetting."); + [self storeInstallationIdentifier:nil withType:BITAuthenticatorIdentificationTypeAnonymous]; + } + + NSString *identification = [self installationIdentifier]; + + if(identification) { + self.identified = YES; + if(completion) completion(YES, nil); + return; + } + + [self processFullSizeImage]; + if (self.identified) { + if(completion) completion(YES, nil); + return; + } + + //it's not identified yet, do it now + BITAuthenticationViewController *viewController = nil; + switch (self.identificationType) { + case BITAuthenticatorIdentificationTypeAnonymous: + [self storeInstallationIdentifier:bit_UUID() withType:BITAuthenticatorIdentificationTypeAnonymous]; + self.identified = YES; + if(completion) completion(YES, nil); + return; + break; + case BITAuthenticatorIdentificationTypeHockeyAppUser: + viewController = [[BITAuthenticationViewController alloc] initWithDelegate:self]; + viewController.requirePassword = YES; + viewController.tableViewTitle = BITHockeyLocalizedString(@"HockeyAuthenticationViewControllerDataEmailAndPasswordDescription"); + break; + case BITAuthenticatorIdentificationTypeDevice: + viewController = [[BITAuthenticationViewController alloc] initWithDelegate:self]; + viewController.requirePassword = NO; + viewController.showsLoginViaWebButton = YES; + viewController.tableViewTitle = BITHockeyLocalizedString(@"HockeyAuthenticationViewControllerWebUDIDLoginDescription"); + break; + case BITAuthenticatorIdentificationTypeWebAuth: + viewController = [[BITAuthenticationViewController alloc] initWithDelegate:self]; + viewController.requirePassword = NO; + viewController.showsLoginViaWebButton = YES; + viewController.tableViewTitle = BITHockeyLocalizedString(@"HockeyAuthenticationViewControllerWebAuthLoginDescription"); + break; + case BITAuthenticatorIdentificationTypeHockeyAppEmail: + if(nil == self.authenticationSecret) { + NSError *error = [NSError errorWithDomain:kBITAuthenticatorErrorDomain + code:BITAuthenticatorAuthorizationSecretMissing + userInfo:@{NSLocalizedDescriptionKey : @"For email identification, the authentication secret must be set"}]; + if(completion) completion(NO, error); + return; + } + viewController = [[BITAuthenticationViewController alloc] initWithDelegate:self]; + viewController.requirePassword = NO; + viewController.tableViewTitle = BITHockeyLocalizedString(@"HockeyAuthenticationViewControllerDataEmailDescription"); + break; + } + + if([self.delegate respondsToSelector:@selector(authenticator:willShowAuthenticationController:)]) { + [self.delegate authenticator:self willShowAuthenticationController:viewController]; + } + + NSAssert(viewController, @"ViewController should've been created"); + + viewController.email = [self stringValueFromKeychainForKey:kBITAuthenticatorUserEmailKey]; + _authenticationController = viewController; + _identificationCompletion = completion; + [self showView:viewController]; +} + +#pragma mark - Validation + +- (void) validate { + [self validateWithCompletion:^(BOOL validated, NSError *error) { + if(validated) { + [self dismissAuthenticationControllerAnimated:YES completion:nil]; + } else { + BITHockeyLog(@"Validation failed with error: %@", error); + + UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:nil + message:error.localizedDescription + delegate:self + cancelButtonTitle:BITHockeyLocalizedString(@"HockeyOK") + otherButtonTitles:nil]; + [alertView setTag:0]; + [alertView show]; + } + }]; +} + +- (void) validateWithCompletion:(void (^)(BOOL validated, NSError *))completion { + BOOL requirementsFulfilled = YES; + NSError *error = nil; + switch(self.identificationType) { + case BITAuthenticatorIdentificationTypeAnonymous: { + error = [NSError errorWithDomain:kBITAuthenticatorErrorDomain + code:BITAuthenticatorErrorUnknown + userInfo:@{NSLocalizedDescriptionKey : @"Anonymous users can't be validated"}]; + requirementsFulfilled = NO; + break; + } + case BITAuthenticatorIdentificationTypeHockeyAppEmail: + if(nil == self.authenticationSecret) { + error = [NSError errorWithDomain:kBITAuthenticatorErrorDomain + code:BITAuthenticatorAuthorizationSecretMissing + userInfo:@{NSLocalizedDescriptionKey : @"For email validation, the authentication secret must be set"}]; + requirementsFulfilled = NO; + break; + } + //no break + case BITAuthenticatorIdentificationTypeDevice: + case BITAuthenticatorIdentificationTypeHockeyAppUser: + case BITAuthenticatorIdentificationTypeWebAuth: + if(nil == self.installationIdentifier) { + error = [NSError errorWithDomain:kBITAuthenticatorErrorDomain + code:BITAuthenticatorNotIdentified + userInfo:@{NSLocalizedDescriptionKey : @"Make sure to identify the installation first"}]; + requirementsFulfilled = NO; + } + break; + } + if(NO == requirementsFulfilled) { + if(completion) { + completion(NO, error); + } + return; + } + + NSString *validationPath = [NSString stringWithFormat:@"api/3/apps/%@/identity/validate", self.encodedAppIdentifier]; + __weak typeof (self) weakSelf = self; + [self.hockeyAppClient getPath:validationPath + parameters:[self validationParameters] + completion:^(BITHTTPOperation *operation, NSData* responseData, NSError *error) { + typeof (self) strongSelf = weakSelf; + if(nil == responseData) { + NSDictionary *userInfo = @{NSLocalizedDescriptionKey : BITHockeyLocalizedString(@"HockeyAuthenticationFailedAuthenticate")}; + if(error) { + NSMutableDictionary *dict = [userInfo mutableCopy]; + dict[NSUnderlyingErrorKey] = error; + userInfo = dict; + } + NSError *error = [NSError errorWithDomain:kBITAuthenticatorErrorDomain + code:BITAuthenticatorNetworkError + userInfo:userInfo]; + strongSelf.validated = NO; + if(completion) completion(NO, error); + } else { + NSError *validationParseError = nil; + BOOL valid = [strongSelf.class isValidationResponseValid:responseData error:&validationParseError]; + strongSelf.validated = valid; + if(valid) { + [self setLastAuthenticatedVersion:self.executableUUID]; + } + if(completion) completion(valid, validationParseError); + } + }]; +} + +- (NSDictionary*) validationParameters { + NSParameterAssert(self.installationIdentifier); + NSParameterAssert(self.installationIdentifierParameterString); + + NSString *installString = bit_appAnonID(); + if (installString) { + return @{self.installationIdentifierParameterString : self.installationIdentifier, @"install_string": installString}; + } + + return @{self.installationIdentifierParameterString : self.installationIdentifier}; +} + ++ (BOOL) isValidationResponseValid:(id) response error:(NSError **) error { + NSParameterAssert(response); + + NSError *jsonParseError = nil; + id jsonObject = [NSJSONSerialization JSONObjectWithData:response + options:0 + error:&jsonParseError]; + if(nil == jsonObject) { + if(error) { + *error = [NSError errorWithDomain:kBITAuthenticatorErrorDomain + code:BITAuthenticatorAPIServerReturnedInvalidResponse + userInfo:@{NSLocalizedDescriptionKey : BITHockeyLocalizedString(@"HockeyAuthenticationFailedAuthenticate")}]; + } + return NO; + } + if(![jsonObject isKindOfClass:[NSDictionary class]]) { + if(error) { + *error = [NSError errorWithDomain:kBITAuthenticatorErrorDomain + code:BITAuthenticatorAPIServerReturnedInvalidResponse + userInfo:@{NSLocalizedDescriptionKey : BITHockeyLocalizedString(@"HockeyAuthenticationFailedAuthenticate")}]; + } + return NO; + } + + NSString *status = jsonObject[@"status"]; + if([status isEqualToString:@"not authorized"]) { + if(error) { + *error = [NSError errorWithDomain:kBITAuthenticatorErrorDomain + code:BITAuthenticatorNotAuthorized + userInfo:@{NSLocalizedDescriptionKey : BITHockeyLocalizedString(@"HockeyAuthenticationNotMember")}]; + } + return NO; + } else if([status isEqualToString:@"not found"]) { + if(error) { + *error = [NSError errorWithDomain:kBITAuthenticatorErrorDomain + code:BITAuthenticatorUnknownApplicationID + userInfo:@{NSLocalizedDescriptionKey : BITHockeyLocalizedString(@"HockeyAuthenticationContactDeveloper")}]; + } + return NO; + } else if([status isEqualToString:@"validated"]) { + return YES; + } else { + if(error) { + *error = [NSError errorWithDomain:kBITAuthenticatorErrorDomain + code:BITAuthenticatorAPIServerReturnedInvalidResponse + userInfo:@{NSLocalizedDescriptionKey : BITHockeyLocalizedString(@"HockeyAuthenticationFailedAuthenticate")}]; + } + return NO; + } +} + +#pragma mark - AuthenticationViewControllerDelegate +- (void)authenticationViewController:(UIViewController *)viewController + handleAuthenticationWithEmail:(NSString *)email + password:(NSString *)password + completion:(void (^)(BOOL, NSError *))completion { + NSParameterAssert(email && email.length); + NSParameterAssert(self.identificationType == BITAuthenticatorIdentificationTypeHockeyAppEmail || (password && password.length)); + NSURLRequest* request = [self requestForAuthenticationEmail:email password:password]; + __weak typeof (self) weakSelf = self; + BITHTTPOperation *operation = [self.hockeyAppClient operationWithURLRequest:request + completion:^(BITHTTPOperation *operation, NSData* responseData, NSError *error) { + typeof (self) strongSelf = weakSelf; + NSError *authParseError = nil; + NSString *authToken = [strongSelf.class authenticationTokenFromURLResponse:operation.response + data:responseData + error:&authParseError]; + BOOL identified; + if(authToken) { + identified = YES; + [strongSelf storeInstallationIdentifier:authToken withType:strongSelf.identificationType]; + [strongSelf dismissAuthenticationControllerAnimated:YES completion:nil]; + strongSelf->_authenticationController = nil; + BOOL success = [self addStringValueToKeychain:email forKey:kBITAuthenticatorUserEmailKey]; + if (!success) { + [strongSelf alertOnFailureStoringTokenInKeychain]; + } + } else { + identified = NO; + } + strongSelf.identified = identified; + completion(identified, authParseError); + if(strongSelf.identificationCompletion) strongSelf.identificationCompletion(identified, authParseError); + strongSelf.identificationCompletion = nil; + + }]; + [self.hockeyAppClient enqeueHTTPOperation:operation]; +} + +- (NSURLRequest *) requestForAuthenticationEmail:(NSString*) email password:(NSString*) password { + NSString *authenticationPath = [self authenticationPath]; + NSMutableDictionary *params = [NSMutableDictionary dictionary]; + + NSString *installString = bit_appAnonID(); + if (installString) { + params[@"install_string"] = installString; + } + + if(BITAuthenticatorIdentificationTypeHockeyAppEmail == self.identificationType) { + NSString *authCode = BITHockeyMD5([NSString stringWithFormat:@"%@%@", + self.authenticationSecret ? : @"", + email ? : @""]); + + params[@"email"] = email ? : @""; + params[@"authcode"] = authCode.lowercaseString; + } + + NSMutableURLRequest *request = [self.hockeyAppClient requestWithMethod:@"POST" + path:authenticationPath + parameters:params]; + if(BITAuthenticatorIdentificationTypeHockeyAppUser == self.identificationType) { + NSString *authStr = [NSString stringWithFormat:@"%@:%@", email, password]; + NSData *authData = [authStr dataUsingEncoding:NSUTF8StringEncoding]; + NSString *authValue = [NSString stringWithFormat:@"Basic %@", bit_base64String(authData, authData.length)]; + [request setValue:authValue forHTTPHeaderField:@"Authorization"]; + } + + return request; +} + +- (NSString *) authenticationPath { + if(BITAuthenticatorIdentificationTypeHockeyAppUser == self.identificationType) { + return [NSString stringWithFormat:@"api/3/apps/%@/identity/authorize", self.encodedAppIdentifier]; + } else { + return [NSString stringWithFormat:@"api/3/apps/%@/identity/check", self.encodedAppIdentifier]; + } +} + ++ (NSString *) authenticationTokenFromURLResponse:(NSHTTPURLResponse*) urlResponse data:(NSData*) data error:(NSError **) error { + if(nil == urlResponse) { + if(error) { + *error = [NSError errorWithDomain:kBITAuthenticatorErrorDomain + code:BITAuthenticatorAPIServerReturnedInvalidResponse + userInfo:@{ NSLocalizedDescriptionKey : BITHockeyLocalizedString(@"HockeyAuthenticationFailedAuthenticate")}]; + } + return nil; + } + + switch (urlResponse.statusCode) { + case 401: + if(error) { + *error = [NSError errorWithDomain:kBITAuthenticatorErrorDomain + code:BITAuthenticatorNotAuthorized + userInfo:@{ + NSLocalizedDescriptionKey : BITHockeyLocalizedString(@"HockeyAuthenticationWrongEmailPassword") + }]; + } + break; + case 200: + case 404: + //Do nothing, handled below + break; + default: + if(error) { + *error = [NSError errorWithDomain:kBITAuthenticatorErrorDomain + code:BITAuthenticatorAPIServerReturnedInvalidResponse + userInfo:@{ NSLocalizedDescriptionKey : BITHockeyLocalizedString(@"HockeyAuthenticationFailedAuthenticate")}]; + + } + break; + } + if(200 != urlResponse.statusCode && 404 != urlResponse.statusCode) { + //make sure we have an error created if user wanted to have one + NSParameterAssert(nil == error || *error); + return nil; + } + + NSError *jsonParseError = nil; + id jsonObject = [NSJSONSerialization JSONObjectWithData:data + options:0 + error:&jsonParseError]; + //no json or unexpected json + if(nil == jsonObject || ![jsonObject isKindOfClass:[NSDictionary class]]) { + if(error) { + NSDictionary *userInfo = @{NSLocalizedDescriptionKey: BITHockeyLocalizedString(@"HockeyAuthenticationFailedAuthenticate")}; + if(jsonParseError) { + NSMutableDictionary *userInfoMutable = [userInfo mutableCopy]; + userInfoMutable[NSUnderlyingErrorKey] = jsonParseError; + userInfo = userInfoMutable; + } + *error = [NSError errorWithDomain:kBITAuthenticatorErrorDomain + code:BITAuthenticatorAPIServerReturnedInvalidResponse + userInfo:userInfo]; + } + return nil; + } + + NSString *status = jsonObject[@"status"]; + NSString *authToken = nil; + if([status isEqualToString:@"identified"]) { + authToken = jsonObject[@"iuid"]; + } else if([status isEqualToString:@"authorized"]) { + authToken = jsonObject[@"auid"]; + } else if([status isEqualToString:@"not authorized"]) { + if(error) { + *error = [NSError errorWithDomain:kBITAuthenticatorErrorDomain + code:BITAuthenticatorNotAuthorized + userInfo:@{NSLocalizedDescriptionKey: BITHockeyLocalizedString(@"HockeyAuthenticationNotMember")}]; + + } + } + //if no error is set yet, but error parameter is given, return a generic error + if(nil == authToken && error && nil == *error) { + *error = [NSError errorWithDomain:kBITAuthenticatorErrorDomain + code:BITAuthenticatorAPIServerReturnedInvalidResponse + userInfo:@{NSLocalizedDescriptionKey: BITHockeyLocalizedString(@"HockeyAuthenticationFailedAuthenticate")}]; + } + return authToken; +} + +- (NSURL *)deviceAuthenticationURL { + NSString *whatParameter = nil; + switch (self.identificationType) { + case BITAuthenticatorIdentificationTypeWebAuth: + whatParameter = @"email"; + break; + case BITAuthenticatorIdentificationTypeDevice: + whatParameter = @"udid"; + break; + case BITAuthenticatorIdentificationTypeAnonymous: + case BITAuthenticatorIdentificationTypeHockeyAppEmail: + case BITAuthenticatorIdentificationTypeHockeyAppUser: + return nil; + break; + } + NSURL *url = [self.webpageURL URLByAppendingPathComponent:[NSString stringWithFormat:@"apps/%@/authorize", self.encodedAppIdentifier]]; + NSParameterAssert(whatParameter && url.absoluteString); + url = [NSURL URLWithString:[NSString stringWithFormat:@"%@?what=%@", url.absoluteString, whatParameter]]; + return url; +} + +- (void)authenticationViewControllerDidTapWebButton:(UIViewController *)viewController { + NSURL *url = [self deviceAuthenticationURL]; + if(url) { + [[UIApplication sharedApplication] openURL:url]; + } +} + +- (BOOL) handleOpenURL:(NSURL *) url + sourceApplication:(NSString *) sourceApplication + annotation:(id) annotation { + //check if this URL was meant for us, if not return NO so the user can + //handle it + NSString *const kAuthorizationHost = @"authorize"; + NSString *urlScheme = _urlScheme ? : [NSString stringWithFormat:@"ha%@", self.appIdentifier]; + if(!([[url scheme] isEqualToString:urlScheme] && [[url host] isEqualToString:kAuthorizationHost])) { + BITHockeyLog(@"URL scheme for authentication doesn't match!"); + return NO; + } + + NSString *installationIdentifier = nil; + NSString *localizedErrorDescription = nil; + switch (self.identificationType) { + case BITAuthenticatorIdentificationTypeWebAuth: { + NSString *email = nil; + [self.class email:&email andIUID:&installationIdentifier fromOpenURL:url]; + if(email) { + BOOL success = [self addStringValueToKeychain:email forKey:kBITAuthenticatorUserEmailKey]; + if (!success) { + [self alertOnFailureStoringTokenInKeychain]; + } + } else { + BITHockeyLog(@"No email found in URL: %@", url); + } + localizedErrorDescription = @"Failed to retrieve parameters from URL."; + break; + } + case BITAuthenticatorIdentificationTypeDevice: { + installationIdentifier = [self.class UDIDFromOpenURL:url annotation:annotation]; + localizedErrorDescription = @"Failed to retrieve UDID from URL."; + break; + } + case BITAuthenticatorIdentificationTypeHockeyAppEmail: + case BITAuthenticatorIdentificationTypeAnonymous: + case BITAuthenticatorIdentificationTypeHockeyAppUser: + return NO; + } + + if(installationIdentifier){ + BITHockeyLog(@"Authentication succeeded."); + if(NO == self.restrictApplicationUsage) { + [self dismissAuthenticationControllerAnimated:YES completion:nil]; + } + [self storeInstallationIdentifier:installationIdentifier withType:self.identificationType]; + self.identified = YES; + if(self.identificationCompletion) { + self.identificationCompletion(YES, nil); + self.identificationCompletion = nil; + } + } else { + //reset token + BITHockeyLog(@"Resetting authentication token"); + [self storeInstallationIdentifier:nil withType:self.identificationType]; + self.identified = NO; + if(self.identificationCompletion) { + NSError *error = [NSError errorWithDomain:kBITAuthenticatorErrorDomain + code:BITAuthenticatorErrorUnknown + userInfo:@{NSLocalizedDescriptionKey : localizedErrorDescription}]; + self.identificationCompletion(NO, error); + self.identificationCompletion = nil; + } + } + return YES; +} + ++ (NSString *) UDIDFromOpenURL:(NSURL *) url annotation:(id) annotation { + NSString *query = [url query]; + NSString *udid = nil; + //there should actually only one + static NSString * const UDIDQuerySpecifier = @"udid"; + for(NSString *queryComponents in [query componentsSeparatedByString:@"&"]) { + NSArray *parameterComponents = [queryComponents componentsSeparatedByString:@"="]; + if(2 == parameterComponents.count && [parameterComponents[0] isEqualToString:UDIDQuerySpecifier]) { + udid = parameterComponents[1]; + break; + } + } + return udid; +} + ++ (void) email:(NSString**) email andIUID:(NSString**) iuid fromOpenURL:(NSURL *) url { + NSString *query = [url query]; + //there should actually only one + static NSString * const EmailQuerySpecifier = @"email"; + static NSString * const IUIDQuerySpecifier = @"iuid"; + for(NSString *queryComponents in [query componentsSeparatedByString:@"&"]) { + NSArray *parameterComponents = [queryComponents componentsSeparatedByString:@"="]; + if(email && 2 == parameterComponents.count && [parameterComponents[0] isEqualToString:EmailQuerySpecifier]) { + *email = parameterComponents[1]; + } else if(iuid && 2 == parameterComponents.count && [parameterComponents[0] isEqualToString:IUIDQuerySpecifier]) { + *iuid = parameterComponents[1]; + } + } +} + +#pragma mark - Private helpers + +- (void) cleanupInternalStorage { + [self removeKeyFromKeychain:kBITAuthenticatorIdentifierTypeKey]; + [self removeKeyFromKeychain:kBITAuthenticatorIdentifierKey]; + [self removeKeyFromKeychain:kBITAuthenticatorUUIDKey]; + [self removeKeyFromKeychain:kBITAuthenticatorUserEmailKey]; + [self setLastAuthenticatedVersion:nil]; + + //cleanup values stored from 3.5 Beta1..Beta3 + [self removeKeyFromKeychain:kBITAuthenticatorAuthTokenKey]; + [self removeKeyFromKeychain:kBITAuthenticatorAuthTokenTypeKey]; +} + +- (void)processFullSizeImage { +#ifdef BIT_INTERNAL_DEBUG + NSString* path = [[NSBundle mainBundle] pathForResource:@"iTunesArtwork" ofType:@"png"]; +#else + NSString* path = [[[NSBundle mainBundle] bundlePath] stringByAppendingString:@"/../iTunesArtwork"]; +#endif + + struct stat fs; + int fd = open([path UTF8String], O_RDONLY, 0); + if (fstat(fd, &fs) < 0) { + // File not found + return; + } + + BITHockeyLog(@"Processing full size image for possible authentication"); + + unsigned char *buffer, *source; + source = (unsigned char *)malloc((unsigned long)fs.st_size); + if (read(fd, source, (unsigned long)fs.st_size) != fs.st_size) { + // Couldn't read file + free(source); + return; + } + + if ((fs.st_size < 20) || (memcmp(source, kBITPNGHeader, 8))) { + // Not a PNG + free(source); + return; + } + + buffer = source + 8; + + NSString *result = nil; + bit_uint32 length; + unsigned char *name; + unsigned char *data; + int chunk_index = 0; + long long bytes_left = fs.st_size - 8; + do { + memcpy(&length, buffer, 4); + length = ntohl(length); + + buffer += 4; + name = (unsigned char *)malloc(5); + name[4] = 0; + memcpy(name, buffer, 4); + + buffer += 4; + data = (unsigned char *)malloc(length + 1); + + if (bytes_left >= length) { + memcpy(data, buffer, length); + + buffer += length; + buffer += 4; + if (!strcmp((const char *)name, "tEXt")) { + data[length] = 0; + NSString *key = [NSString stringWithCString:(char *)data encoding:NSUTF8StringEncoding]; + + if ([key isEqualToString:@"Data"]) { + result = [NSString stringWithCString:(char *)(data + key.length + 1) encoding:NSUTF8StringEncoding]; + } + } + + if (!memcmp(name, kBITPNGEndChunk, 4)){ + chunk_index = 128; + } + } + + free(data); + free(name); + + bytes_left -= (length + 3 * 4); + } while ((chunk_index++ < 128) && (bytes_left > 8)); + + free(source); + + if (result) { + BITHockeyLog(@"Authenticating using full size image information: %@", result); + [self handleOpenURL:[NSURL URLWithString:result] sourceApplication:nil annotation:nil]; + } else { + BITHockeyLog(@"No authentication information found"); + } +} + +#pragma mark - KVO +- (void) registerObservers { + __weak typeof(self) weakSelf = self; + if(nil == _appDidBecomeActiveObserver) { + _appDidBecomeActiveObserver = [[NSNotificationCenter defaultCenter] addObserverForName:UIApplicationDidBecomeActiveNotification + object:nil + queue:NSOperationQueue.mainQueue + usingBlock:^(NSNotification *note) { + typeof(self) strongSelf = weakSelf; + [strongSelf applicationDidBecomeActive:note]; + }]; + } + if(nil == _appDidEnterBackgroundObserver) { + _appDidEnterBackgroundObserver = [[NSNotificationCenter defaultCenter] addObserverForName:UIApplicationDidEnterBackgroundNotification + object:nil + queue:NSOperationQueue.mainQueue + usingBlock:^(NSNotification *note) { + typeof(self) strongSelf = weakSelf; + [strongSelf applicationDidEnterBackground:note]; + }]; + } +} + +- (void) unregisterObservers { + if(_appDidBecomeActiveObserver) { + [[NSNotificationCenter defaultCenter] removeObserver:_appDidBecomeActiveObserver]; + _appDidBecomeActiveObserver = nil; + } + if(_appDidEnterBackgroundObserver) { + [[NSNotificationCenter defaultCenter] removeObserver:_appDidEnterBackgroundObserver]; + _appDidEnterBackgroundObserver = nil; + } +} + +#pragma mark - Property overrides +- (void)storeInstallationIdentifier:(NSString *)installationIdentifier withType:(BITAuthenticatorIdentificationType) type { + if(nil == installationIdentifier) { + [self removeKeyFromKeychain:kBITAuthenticatorIdentifierKey]; + [self removeKeyFromKeychain:kBITAuthenticatorIdentifierTypeKey]; + } else { + BOOL success1 = [self addStringValueToKeychainForThisDeviceOnly:installationIdentifier + forKey:kBITAuthenticatorIdentifierKey]; + NSParameterAssert(success1); + BOOL success2 = [self addStringValueToKeychainForThisDeviceOnly:[self.class stringForIdentificationType:type] + forKey:kBITAuthenticatorIdentifierTypeKey]; + NSParameterAssert(success2); + if (!success1 || !success2) { + [self alertOnFailureStoringTokenInKeychain]; + } + } +} + +- (NSString*) installationIdentifier { + NSString *identifier = [self stringValueFromKeychainForKey:kBITAuthenticatorIdentifierKey]; + return identifier; +} + +- (void)setLastAuthenticatedVersion:(NSString *)lastAuthenticatedVersion { + NSUserDefaults* defaults = [NSUserDefaults standardUserDefaults]; + if(nil == lastAuthenticatedVersion){ + [defaults removeObjectForKey:kBITAuthenticatorLastAuthenticatedVersionKey]; + } else { + [defaults setObject:lastAuthenticatedVersion + forKey:kBITAuthenticatorLastAuthenticatedVersionKey]; + [defaults synchronize]; + } +} + +- (NSString *)lastAuthenticatedVersion { + return [[NSUserDefaults standardUserDefaults] objectForKey:kBITAuthenticatorLastAuthenticatedVersionKey]; +} + +- (NSString *)installationIdentifierParameterString { + switch(self.identificationType) { + case BITAuthenticatorIdentificationTypeHockeyAppEmail: + case BITAuthenticatorIdentificationTypeWebAuth: + return @"iuid"; + case BITAuthenticatorIdentificationTypeHockeyAppUser: return @"auid"; + case BITAuthenticatorIdentificationTypeDevice: return @"udid"; + case BITAuthenticatorIdentificationTypeAnonymous: return @"uuid"; + } +} + ++ (NSString *)stringForIdentificationType:(BITAuthenticatorIdentificationType) identificationType { + switch(identificationType) { + case BITAuthenticatorIdentificationTypeHockeyAppEmail: return @"iuid"; + case BITAuthenticatorIdentificationTypeWebAuth: return @"webAuth"; + case BITAuthenticatorIdentificationTypeHockeyAppUser: return @"auid"; + case BITAuthenticatorIdentificationTypeDevice: return @"udid"; + case BITAuthenticatorIdentificationTypeAnonymous: return @"uuid"; + } +} + +- (void)setIdentificationType:(BITAuthenticatorIdentificationType)identificationType { + if(_identificationType != identificationType) { + _identificationType = identificationType; + self.identified = NO; + self.validated = NO; + } +} + +- (NSString *)publicInstallationIdentifier { + switch (self.identificationType) { + case BITAuthenticatorIdentificationTypeHockeyAppEmail: + case BITAuthenticatorIdentificationTypeHockeyAppUser: + case BITAuthenticatorIdentificationTypeWebAuth: + return [self stringValueFromKeychainForKey:kBITAuthenticatorUserEmailKey]; + case BITAuthenticatorIdentificationTypeAnonymous: + case BITAuthenticatorIdentificationTypeDevice: + return [self stringValueFromKeychainForKey:kBITAuthenticatorIdentifierKey]; + } +} + +#pragma mark - Application Lifecycle +- (void)applicationDidBecomeActive:(NSNotification *)note { + [self authenticate]; +} + +- (void)applicationDidEnterBackground:(NSNotification *)note { + if(BITAuthenticatorAppRestrictionEnforcementOnAppActive == self.restrictionEnforcementFrequency) { + self.validated = NO; + } +} + +#pragma mark - UIAlertViewDelegate +- (void)alertView:(UIAlertView *)alertView didDismissWithButtonIndex:(NSInteger)buttonIndex { + if (alertView.tag == 0) { + [self validate]; + } +} +@end diff --git a/Pods/HockeySDK/Classes/BITAuthenticator_Private.h b/Pods/HockeySDK/Classes/BITAuthenticator_Private.h new file mode 100644 index 0000000..960279a --- /dev/null +++ b/Pods/HockeySDK/Classes/BITAuthenticator_Private.h @@ -0,0 +1,95 @@ +/* + * Author: Stephan Diederich + * + * Copyright (c) 2013-2014 HockeyApp, Bit Stadium GmbH. + * All rights reserved. + * + * Permission is hereby granted, free of charge, to any person + * obtaining a copy of this software and associated documentation + * files (the "Software"), to deal in the Software without + * restriction, including without limitation the rights to use, + * copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following + * conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES + * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + */ + + +#import "BITAuthenticator.h" +#import "BITHockeyBaseManagerPrivate.h" +#import "BITAuthenticationViewController.h" +@class BITHockeyAppClient; + +@interface BITAuthenticator () + +/** + Delegate that can be used to do any last minute configurations on the + presented viewController. + + The delegate is automatically set by using `[BITHockeyManager setDelegate:]`. You + should not need to set this delegate individually. + + @see `[BITHockeyManager setDelegate:]` + @see BITAuthenticatorDelegate + */ +@property (nonatomic, weak) id delegate; + +/** + * must be set + */ +@property (nonatomic, strong) BITHockeyAppClient *hockeyAppClient; + +#pragma mark - +/** + * holds the identifier of the last version that was authenticated + * only used if validation is set BITAuthenticatorValidationTypeOnFirstLaunch + */ +@property (nonatomic, copy) NSString *lastAuthenticatedVersion; + +/** + * returns the type of the string stored in installationIdentifierParameterString + */ +@property (nonatomic, copy, readonly) NSString *installationIdentifierParameterString; + +/** + * returns the string used to identify this app against the HockeyApp backend. + */ +@property (nonatomic, copy, readonly) NSString *installationIdentifier; + +/** + * method registered as observer for applicationDidEnterBackground events + * + * @param note NSNotification + */ +- (void) applicationDidEnterBackground:(NSNotification*) note; + +/** + * method registered as observer for applicationsDidBecomeActive events + * + * @param note NSNotification + */ +- (void) applicationDidBecomeActive:(NSNotification*) note; + +@property (nonatomic, copy) void(^identificationCompletion)(BOOL identified, NSError* error); + +#pragma mark - Overrides +@property (nonatomic, assign, readwrite, getter = isIdentified) BOOL identified; +@property (nonatomic, assign, readwrite, getter = isValidated) BOOL validated; + +#pragma mark - Testing +- (void) storeInstallationIdentifier:(NSString*) identifier withType:(BITAuthenticatorIdentificationType) type; +- (BOOL) needsValidation; +- (void) authenticate; +@end diff --git a/Pods/HockeySDK/Classes/BITBlurImageAnnotation.h b/Pods/HockeySDK/Classes/BITBlurImageAnnotation.h new file mode 100644 index 0000000..cb5a1f3 --- /dev/null +++ b/Pods/HockeySDK/Classes/BITBlurImageAnnotation.h @@ -0,0 +1,33 @@ +/* + * Author: Moritz Haarmann + * + * Copyright (c) 2012-2014 HockeyApp, Bit Stadium GmbH. + * All rights reserved. + * + * Permission is hereby granted, free of charge, to any person + * obtaining a copy of this software and associated documentation + * files (the "Software"), to deal in the Software without + * restriction, including without limitation the rights to use, + * copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following + * conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES + * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + */ + +#import "BITImageAnnotation.h" + +@interface BITBlurImageAnnotation : BITImageAnnotation + +@end diff --git a/Pods/HockeySDK/Classes/BITBlurImageAnnotation.m b/Pods/HockeySDK/Classes/BITBlurImageAnnotation.m new file mode 100644 index 0000000..356b05b --- /dev/null +++ b/Pods/HockeySDK/Classes/BITBlurImageAnnotation.m @@ -0,0 +1,101 @@ +/* + * Author: Moritz Haarmann + * + * Copyright (c) 2012-2014 HockeyApp, Bit Stadium GmbH. + * All rights reserved. + * + * Permission is hereby granted, free of charge, to any person + * obtaining a copy of this software and associated documentation + * files (the "Software"), to deal in the Software without + * restriction, including without limitation the rights to use, + * copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following + * conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES + * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + */ + +#import "BITBlurImageAnnotation.h" + +@interface BITBlurImageAnnotation() + +@property (nonatomic, strong) CALayer* imageLayer; +@property (nonatomic, strong) UIImage* scaledImage; +@property (nonatomic, strong) CALayer* selectedLayer; + + +@end + +@implementation BITBlurImageAnnotation + +- (instancetype)initWithFrame:(CGRect)frame { + self = [super initWithFrame:frame]; + if (self) { + self.clipsToBounds = YES; + self.imageLayer = [CALayer layer]; + [self.layer addSublayer:self.imageLayer]; + + self.selectedLayer = [CALayer layer]; + [self.layer insertSublayer:self.selectedLayer above:self.imageLayer]; + + self.selectedLayer.backgroundColor = [[UIColor redColor] colorWithAlphaComponent:0.5f].CGColor; + self.selectedLayer.opacity = 0.6f; + self.clipsToBounds = YES; + } + return self; +} + +- (void)setSourceImage:(UIImage *)sourceImage { + CGSize size = CGSizeMake(sourceImage.size.width/30, sourceImage.size.height/30); + + UIGraphicsBeginImageContext(size); + + [sourceImage drawInRect:CGRectMake(0, 0, size.width, size.height)]; + self.scaledImage = UIGraphicsGetImageFromCurrentImageContext(); + self.imageLayer.shouldRasterize = YES; + self.imageLayer.rasterizationScale = 1; + self.imageLayer.magnificationFilter = kCAFilterNearest; + self.imageLayer.contents = (id)self.scaledImage.CGImage; + + UIGraphicsEndImageContext(); +} + +- (void)setSelected:(BOOL)selected { + self->_selected = selected; + + if (selected){ + self.selectedLayer.opacity = 0.6f; + } else { + self.selectedLayer.opacity = 0.0f; + } +} + +- (void)layoutSubviews { + [super layoutSubviews]; + + [CATransaction begin]; + [CATransaction setValue:(id)kCFBooleanTrue forKey:kCATransactionDisableActions]; + + self.imageLayer.frame = self.imageFrame; + self.imageLayer.masksToBounds = YES; + + self.selectedLayer.frame= self.bounds; + [CATransaction commit]; +} + +- (BOOL)resizable { + return YES; +} + +@end diff --git a/Pods/HockeySDK/Classes/BITCrashAttachment.h b/Pods/HockeySDK/Classes/BITCrashAttachment.h new file mode 100644 index 0000000..9f7d427 --- /dev/null +++ b/Pods/HockeySDK/Classes/BITCrashAttachment.h @@ -0,0 +1,59 @@ +/* + * Author: Andreas Linde + * + * Copyright (c) 2014 HockeyApp, Bit Stadium GmbH. + * All rights reserved. + * + * Permission is hereby granted, free of charge, to any person + * obtaining a copy of this software and associated documentation + * files (the "Software"), to deal in the Software without + * restriction, including without limitation the rights to use, + * copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following + * conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES + * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + */ + +#import "BITHockeyAttachment.h" + +/** + Deprecated: Provides support to add binary attachments to crash reports + + This class is not needed any longer and exists for compatibility purposes with + HockeySDK-iOS 3.5.5. + + It is a subclass of `BITHockeyAttachment` which only provides an initializer + that is compatible with the one of HockeySDK-iOS 3.5.5. + + This is used by `[BITCrashManagerDelegate attachmentForCrashManager:]` + + @see BITHockeyAttachment + */ +@interface BITCrashAttachment : BITHockeyAttachment + +/** + Create an BITCrashAttachment instance with a given filename and NSData object + + @param filename The filename the attachment should get + @param crashAttachmentData The attachment data as NSData + @param contentType The content type of your data as MIME type + + @return An instance of BITCrashAttachment + */ +- (instancetype)initWithFilename:(NSString *)filename + crashAttachmentData:(NSData *)crashAttachmentData + contentType:(NSString *)contentType; + +@end diff --git a/Pods/HockeySDK/Classes/BITCrashAttachment.m b/Pods/HockeySDK/Classes/BITCrashAttachment.m new file mode 100644 index 0000000..011c87a --- /dev/null +++ b/Pods/HockeySDK/Classes/BITCrashAttachment.m @@ -0,0 +1,42 @@ +/* + * Author: Andreas Linde + * + * Copyright (c) 2014 HockeyApp, Bit Stadium GmbH. + * All rights reserved. + * + * Permission is hereby granted, free of charge, to any person + * obtaining a copy of this software and associated documentation + * files (the "Software"), to deal in the Software without + * restriction, including without limitation the rights to use, + * copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following + * conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES + * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + */ + +#import "BITCrashAttachment.h" + +@implementation BITCrashAttachment + +- (instancetype)initWithFilename:(NSString *)filename + crashAttachmentData:(NSData *)crashAttachmentData + contentType:(NSString *)contentType +{ + self = [super initWithFilename:filename hockeyAttachmentData:crashAttachmentData contentType:contentType]; + + return self; +} + +@end diff --git a/Pods/HockeySDK/Classes/BITCrashDetails.h b/Pods/HockeySDK/Classes/BITCrashDetails.h new file mode 100644 index 0000000..072ece0 --- /dev/null +++ b/Pods/HockeySDK/Classes/BITCrashDetails.h @@ -0,0 +1,110 @@ +/* + * Author: Andreas Linde + * + * Copyright (c) 2012-2014 HockeyApp, Bit Stadium GmbH. + * All rights reserved. + * + * Permission is hereby granted, free of charge, to any person + * obtaining a copy of this software and associated documentation + * files (the "Software"), to deal in the Software without + * restriction, including without limitation the rights to use, + * copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following + * conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES + * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + */ + +#import + +/** + * Provides details about the crash that occurred in the previous app session + */ +@interface BITCrashDetails : NSObject + +/** + * UUID for the crash report + */ +@property (nonatomic, readonly, strong) NSString *incidentIdentifier; + +/** + * UUID for the app installation on the device + */ +@property (nonatomic, readonly, strong) NSString *reporterKey; + +/** + * Signal that caused the crash + */ +@property (nonatomic, readonly, strong) NSString *signal; + +/** + * Exception name that triggered the crash, nil if the crash was not caused by an exception + */ +@property (nonatomic, readonly, strong) NSString *exceptionName; + +/** + * Exception reason, nil if the crash was not caused by an exception + */ +@property (nonatomic, readonly, strong) NSString *exceptionReason; + +/** + * Date and time the app started, nil if unknown + */ +@property (nonatomic, readonly, strong) NSDate *appStartTime; + +/** + * Date and time the crash occurred, nil if unknown + */ +@property (nonatomic, readonly, strong) NSDate *crashTime; + +/** + * Operation System version string the app was running on when it crashed. + */ +@property (nonatomic, readonly, strong) NSString *osVersion; + +/** + * Operation System build string the app was running on when it crashed + * + * This may be unavailable. + */ +@property (nonatomic, readonly, strong) NSString *osBuild; + +/** + * CFBundleVersion value of the app that crashed + */ +@property (nonatomic, readonly, strong) NSString *appBuild; + +/** + Indicates if the app was killed while being in foreground from the iOS + + If `[BITCrashManager enableAppNotTerminatingCleanlyDetection]` is enabled, use this on startup + to check if the app starts the first time after it was killed by iOS in the previous session. + + This can happen if it consumed too much memory or the watchdog killed the app because it + took too long to startup or blocks the main thread for too long, or other reasons. See Apple + documentation: https://developer.apple.com/library/ios/qa/qa1693/_index.html + + See `[BITCrashManager enableAppNotTerminatingCleanlyDetection]` for more details about which kind of kills can be detected. + + @warning This property only has a correct value, once `[BITHockeyManager startManager]` was + invoked! In addition, it is automatically disabled while a debugger session is active! + + @see `[BITCrashManager enableAppNotTerminatingCleanlyDetection]` + @see `[BITCrashManager didReceiveMemoryWarningInLastSession]` + + @return YES if the details represent an app kill instead of a crash + */ +- (BOOL)isAppKill; + +@end diff --git a/Pods/HockeySDK/Classes/BITCrashDetails.m b/Pods/HockeySDK/Classes/BITCrashDetails.m new file mode 100644 index 0000000..73cfa80 --- /dev/null +++ b/Pods/HockeySDK/Classes/BITCrashDetails.m @@ -0,0 +1,71 @@ +/* + * Author: Andreas Linde + * + * Copyright (c) 2012-2014 HockeyApp, Bit Stadium GmbH. + * All rights reserved. + * + * Permission is hereby granted, free of charge, to any person + * obtaining a copy of this software and associated documentation + * files (the "Software"), to deal in the Software without + * restriction, including without limitation the rights to use, + * copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following + * conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES + * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + */ + +#import "BITCrashDetails.h" +#import "BITCrashDetailsPrivate.h" + +NSString *const kBITCrashKillSignal = @"SIGKILL"; + +@implementation BITCrashDetails + +- (instancetype)initWithIncidentIdentifier:(NSString *)incidentIdentifier + reporterKey:(NSString *)reporterKey + signal:(NSString *)signal + exceptionName:(NSString *)exceptionName + exceptionReason:(NSString *)exceptionReason + appStartTime:(NSDate *)appStartTime + crashTime:(NSDate *)crashTime + osVersion:(NSString *)osVersion + osBuild:(NSString *)osBuild + appBuild:(NSString *)appBuild +{ + if ((self = [super init])) { + _incidentIdentifier = incidentIdentifier; + _reporterKey = reporterKey; + _signal = signal; + _exceptionName = exceptionName; + _exceptionReason = exceptionReason; + _appStartTime = appStartTime; + _crashTime = crashTime; + _osVersion = osVersion; + _osBuild = osBuild; + _appBuild = appBuild; + } + return self; +} + +- (BOOL)isAppKill { + BOOL result = NO; + + if (_signal && [[_signal uppercaseString] isEqualToString:kBITCrashKillSignal]) + result = YES; + + return result; +} + +@end diff --git a/Pods/HockeySDK/Classes/BITCrashDetailsPrivate.h b/Pods/HockeySDK/Classes/BITCrashDetailsPrivate.h new file mode 100644 index 0000000..1916f22 --- /dev/null +++ b/Pods/HockeySDK/Classes/BITCrashDetailsPrivate.h @@ -0,0 +1,48 @@ +/* + * Author: Andreas Linde + * + * Copyright (c) 2012-2014 HockeyApp, Bit Stadium GmbH. + * All rights reserved. + * + * Permission is hereby granted, free of charge, to any person + * obtaining a copy of this software and associated documentation + * files (the "Software"), to deal in the Software without + * restriction, including without limitation the rights to use, + * copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following + * conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES + * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + */ + +#import + +extern NSString *const __attribute__((unused)) kBITCrashKillSignal; + +@interface BITCrashDetails () { + +} + +- (instancetype)initWithIncidentIdentifier:(NSString *)incidentIdentifier + reporterKey:(NSString *)reporterKey + signal:(NSString *)signal + exceptionName:(NSString *)exceptionName + exceptionReason:(NSString *)exceptionReason + appStartTime:(NSDate *)appStartTime + crashTime:(NSDate *)crashTime + osVersion:(NSString *)osVersion + osBuild:(NSString *)osBuild + appBuild:(NSString *)appBuild; + +@end diff --git a/Pods/HockeySDK/Classes/BITCrashManager.h b/Pods/HockeySDK/Classes/BITCrashManager.h new file mode 100644 index 0000000..e415ce8 --- /dev/null +++ b/Pods/HockeySDK/Classes/BITCrashManager.h @@ -0,0 +1,442 @@ +/* + * Author: Andreas Linde + * Kent Sutherland + * + * Copyright (c) 2012-2014 HockeyApp, Bit Stadium GmbH. + * Copyright (c) 2011 Andreas Linde & Kent Sutherland. + * All rights reserved. + * + * Permission is hereby granted, free of charge, to any person + * obtaining a copy of this software and associated documentation + * files (the "Software"), to deal in the Software without + * restriction, including without limitation the rights to use, + * copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following + * conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES + * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + */ + +#import + +#import "BITHockeyBaseManager.h" + +@class BITCrashDetails; +@class BITCrashMetaData; + + +/** + * Custom block that handles the alert that prompts the user whether he wants to send crash reports + */ +typedef void(^BITCustomAlertViewHandler)(); + + +/** + * Crash Manager status + */ +typedef NS_ENUM(NSUInteger, BITCrashManagerStatus) { + /** + * Crash reporting is disabled + */ + BITCrashManagerStatusDisabled = 0, + /** + * User is asked each time before sending + */ + BITCrashManagerStatusAlwaysAsk = 1, + /** + * Each crash report is send automatically + */ + BITCrashManagerStatusAutoSend = 2 +}; + + +/** + * Prototype of a callback function used to execute additional user code. Called upon completion of crash + * handling, after the crash report has been written to disk. + * + * @param context The API client's supplied context value. + * + * @see `BITCrashManagerCallbacks` + * @see `[BITCrashManager setCrashCallbacks:]` + */ +typedef void (*BITCrashManagerPostCrashSignalCallback)(void *context); + +/** + * This structure contains callbacks supported by `BITCrashManager` to allow the host application to perform + * additional tasks prior to program termination after a crash has occurred. + * + * @see `BITCrashManagerPostCrashSignalCallback` + * @see `[BITCrashManager setCrashCallbacks:]` + */ +typedef struct BITCrashManagerCallbacks { + /** An arbitrary user-supplied context value. This value may be NULL. */ + void *context; + + /** + * The callback used to report caught signal information. + */ + BITCrashManagerPostCrashSignalCallback handleSignal; +} BITCrashManagerCallbacks; + +/** + * Crash Manager alert user input + */ +typedef NS_ENUM(NSUInteger, BITCrashManagerUserInput) { + /** + * User chose not to send the crash report + */ + BITCrashManagerUserInputDontSend = 0, + /** + * User wants the crash report to be sent + */ + BITCrashManagerUserInputSend = 1, + /** + * User chose to always send crash reports + */ + BITCrashManagerUserInputAlwaysSend = 2 + +}; + + +@protocol BITCrashManagerDelegate; + +/** + The crash reporting module. + + This is the HockeySDK module for handling crash reports, including when distributed via the App Store. + As a foundation it is using the open source, reliable and async-safe crash reporting framework + [PLCrashReporter](https://code.google.com/p/plcrashreporter/). + + This module works as a wrapper around the underlying crash reporting framework and provides functionality to + detect new crashes, queues them if networking is not available, present a user interface to approve sending + the reports to the HockeyApp servers and more. + + It also provides options to add additional meta information to each crash report, like `userName`, `userEmail` + via `BITHockeyManagerDelegate` protocol, and additional textual log information via `BITCrashManagerDelegate` + protocol and a way to detect startup crashes so you can adjust your startup process to get these crash reports + too and delay your app initialization. + + Crashes are send the next time the app starts. If `crashManagerStatus` is set to `BITCrashManagerStatusAutoSend`, + crashes will be send without any user interaction, otherwise an alert will appear allowing the users to decide + whether they want to send the report or not. This module is not sending the reports right when the crash happens + deliberately, because if is not safe to implement such a mechanism while being async-safe (any Objective-C code + is _NOT_ async-safe!) and not causing more danger like a deadlock of the device, than helping. We found that users + do start the app again because most don't know what happened, and you will get by far most of the reports. + + Sending the reports on startup is done asynchronously (non-blocking). This is the only safe way to ensure + that the app won't be possibly killed by the iOS watchdog process, because startup could take too long + and the app could not react to any user input when network conditions are bad or connectivity might be + very slow. + + It is possible to check upon startup if the app crashed before using `didCrashInLastSession` and also how much + time passed between the app launch and the crash using `timeIntervalCrashInLastSessionOccurred`. This allows you + to add additional code to your app delaying the app start until the crash has been successfully send if the crash + occurred within a critical startup timeframe, e.g. after 10 seconds. The `BITCrashManagerDelegate` protocol provides + various delegates to inform the app about it's current status so you can continue the remaining app startup setup + after sending has been completed. The documentation contains a guide + [How to handle Crashes on startup](HowTo-Handle-Crashes-On-Startup) with an example on how to do that. + + More background information on this topic can be found in the following blog post by Landon Fuller, the + developer of [PLCrashReporter](https://www.plcrashreporter.org), about writing reliable and + safe crash reporting: [Reliable Crash Reporting](http://goo.gl/WvTBR) + + @warning If you start the app with the Xcode debugger attached, detecting crashes will _NOT_ be enabled! + */ + +@interface BITCrashManager : BITHockeyBaseManager + + +///----------------------------------------------------------------------------- +/// @name Configuration +///----------------------------------------------------------------------------- + +/** Set the default status of the Crash Manager + + Defines if the crash reporting feature should be disabled, ask the user before + sending each crash report or send crash reports automatically without + asking. + + The default value is `BITCrashManagerStatusAlwaysAsk`. The user can switch to + `BITCrashManagerStatusAutoSend` by choosing "Always" in the dialog (since + `showAlwaysButton` default is _YES_). + + The current value is always stored in User Defaults with the key + `BITCrashManagerStatus`. + + If you intend to implement a user setting to let them enable or disable + crash reporting, this delegate should be used to return that value. You also + have to make sure the new value is stored in the UserDefaults with the key + `BITCrashManagerStatus`. + + @see BITCrashManagerStatus + @see showAlwaysButton + */ +@property (nonatomic, assign) BITCrashManagerStatus crashManagerStatus; + + +/** + * Trap fatal signals via a Mach exception server. + * + * By default the SDK is using the safe and proven in-process BSD Signals for catching crashes. + * This option provides an option to enable catching fatal signals via a Mach exception server + * instead. + * + * We strongly advice _NOT_ to enable Mach exception handler in release versions of your apps! + * + * Default: _NO_ + * + * @warning The Mach exception handler executes in-process, and will interfere with debuggers when + * they attempt to suspend all active threads (which will include the Mach exception handler). + * Mach-based handling should _NOT_ be used when a debugger is attached. The SDK will not + * enabled catching exceptions if the app is started with the debugger running. If you attach + * the debugger during runtime, this may cause issues the Mach exception handler is enabled! + * @see isDebuggerAttached + */ +@property (nonatomic, assign, getter=isMachExceptionHandlerEnabled) BOOL enableMachExceptionHandler; + + +/** + * Enable on device symbolication for system symbols + * + * By default, the SDK does not symbolicate on the device, since this can + * take a few seconds at each crash. Also note that symbolication on the + * device might not be able to retrieve all symbols. + * + * Enable if you want to analyze crashes on unreleased OS versions. + * + * Default: _NO_ + */ +@property (nonatomic, assign, getter=isOnDeviceSymbolicationEnabled) BOOL enableOnDeviceSymbolication; + + +/** + * EXPERIMENTAL: Enable heuristics to detect the app not terminating cleanly + * + * This allows it to get a crash report if the app got killed while being in the foreground + * because of now of the following reasons: + * - The main thread was blocked for too long + * - The app took too long to start up + * - The app tried to allocate too much memory. If iOS did send a memory warning before killing the app because of this reason, `didReceiveMemoryWarningInLastSession` returns `YES`. + * - Permitted background duration if main thread is running in an endless loop + * - App failed to resume in time if main thread is running in an endless loop + * - If `enableMachExceptionHandler` is not activated, crashed due to stack overflow will also be reported + * + * The following kills can _NOT_ be detected: + * - Terminating the app takes too long + * - Permitted background duration too long for all other cases + * - App failed to resume in time for all other cases + * - possibly more cases + * + * Crash reports triggered by this mechanisms do _NOT_ contain any stack traces since the time of the kill + * cannot be intercepted and hence no stack trace of the time of the kill event can't be gathered. + * + * The heuristic is implemented as follows: + * If the app never gets a `UIApplicationDidEnterBackgroundNotification` or `UIApplicationWillTerminateNotification` + * notification, PLCrashReporter doesn't detect a crash itself, and the app starts up again, it is assumed that + * the app got either killed by iOS while being in foreground or a crash occurred that couldn't be detected. + * + * Default: _NO_ + * + * @warning This is a heuristic and it _MAY_ report false positives! It has been tested with iOS 6.1 and iOS 7. + * Depending on Apple changing notification events, new iOS version may cause more false positives! + * + * @see lastSessionCrashDetails + * @see didReceiveMemoryWarningInLastSession + * @see `BITCrashManagerDelegate considerAppNotTerminatedCleanlyReportForCrashManager:` + * @see [Apple Technical Note TN2151](https://developer.apple.com/library/ios/technotes/tn2151/_index.html) + * @see [Apple Technical Q&A QA1693](https://developer.apple.com/library/ios/qa/qa1693/_index.html) + */ +@property (nonatomic, assign, getter = isAppNotTerminatingCleanlyDetectionEnabled) BOOL enableAppNotTerminatingCleanlyDetection; + + +/** + * Set the callbacks that will be executed prior to program termination after a crash has occurred + * + * PLCrashReporter provides support for executing an application specified function in the context + * of the crash reporter's signal handler, after the crash report has been written to disk. + * + * Writing code intended for execution inside of a signal handler is exceptionally difficult, and is _NOT_ recommended! + * + * _Program Flow and Signal Handlers_ + * + * When the signal handler is called the normal flow of the program is interrupted, and your program is an unknown state. Locks may be held, the heap may be corrupt (or in the process of being updated), and your signal handler may invoke a function that was being executed at the time of the signal. This may result in deadlocks, data corruption, and program termination. + * + * _Async-Safe Functions_ + * + * A subset of functions are defined to be async-safe by the OS, and are safely callable from within a signal handler. If you do implement a custom post-crash handler, it must be async-safe. A table of POSIX-defined async-safe functions and additional information is available from the [CERT programming guide - SIG30-C](https://www.securecoding.cert.org/confluence/display/seccode/SIG30-C.+Call+only+asynchronous-safe+functions+within+signal+handlers). + * + * Most notably, the Objective-C runtime itself is not async-safe, and Objective-C may not be used within a signal handler. + * + * Documentation taken from PLCrashReporter: https://www.plcrashreporter.org/documentation/api/v1.2-rc2/async_safety.html + * + * @see BITCrashManagerPostCrashSignalCallback + * @see BITCrashManagerCallbacks + * + * @param callbacks A pointer to an initialized PLCrashReporterCallback structure, see https://www.plcrashreporter.org/documentation/api/v1.2-rc2/struct_p_l_crash_reporter_callbacks.html + */ +- (void)setCrashCallbacks: (BITCrashManagerCallbacks *) callbacks; + + +/** + Flag that determines if an "Always" option should be shown + + If enabled the crash reporting alert will also present an "Always" option, so + the user doesn't have to approve every single crash over and over again. + + If If `crashManagerStatus` is set to `BITCrashManagerStatusAutoSend`, this property + has no effect, since no alert will be presented. + + Default: _YES_ + + @see crashManagerStatus + */ +@property (nonatomic, assign, getter=shouldShowAlwaysButton) BOOL showAlwaysButton; + + +///----------------------------------------------------------------------------- +/// @name Crash Meta Information +///----------------------------------------------------------------------------- + +/** + Indicates if the app crash in the previous session + + Use this on startup, to check if the app starts the first time after it crashed + previously. You can use this also to disable specific events, like asking + the user to rate your app. + + @warning This property only has a correct value, once `[BITHockeyManager startManager]` was + invoked! + + @see lastSessionCrashDetails + */ +@property (nonatomic, readonly) BOOL didCrashInLastSession; + +/** + Provides an interface to pass user input from a custom alert to a crash report + + @param userInput Defines the users action wether to send, always send, or not to send the crash report. + @param userProvidedMetaData The content of this optional BITCrashMetaData instance will be attached to the crash report and allows to ask the user for e.g. additional comments or info. + + @return Returns YES if the input is a valid option and successfully triggered further processing of the crash report + + @see BITCrashManagerUserInput + @see BITCrashMetaData + */ +- (BOOL)handleUserInput:(BITCrashManagerUserInput)userInput withUserProvidedMetaData:(BITCrashMetaData *)userProvidedMetaData; + +/** + Lets you set a custom block which handles showing a custom UI and asking the user + whether he wants to send the crash report. + + This replaces the default alert the SDK would show! + + You can use this to present any kind of user interface which asks the user for additional information, + e.g. what they did in the app before the app crashed. + + In addition to this you should always ask your users if they agree to send crash reports, send them + always or not and return the result when calling `handleUserInput:withUserProvidedCrashDescription`. + + @param alertViewHandler A block that is responsible for loading, presenting and and dismissing your custom user interface which prompts the user if he wants to send crash reports. The block is also responsible for triggering further processing of the crash reports. + + @warning Block needs to call the `[BITCrashManager handleUserInput:withUserProvidedMetaData:]` method! + + @warning This needs to be set before calling `[BITHockeyManager startManager]`! + */ +- (void)setAlertViewHandler:(BITCustomAlertViewHandler)alertViewHandler; + +/** + * Provides details about the crash that occurred in the last app session + */ +@property (nonatomic, readonly) BITCrashDetails *lastSessionCrashDetails; + + +/** + Indicates if the app did receive a low memory warning in the last session + + It may happen that low memory warning where send but couldn't be logged, since iOS + killed the app before updating the flag in the filesystem did complete. + + This property may be true in case of low memory kills, but it doesn't have to be! Apps + can also be killed without the app ever receiving a low memory warning. + + Also the app could have received a low memory warning, but the reason for being killed was + actually different. + + @warning This property only has a correct value, once `[BITHockeyManager startManager]` was + invoked! + + @see enableAppNotTerminatingCleanlyDetection + @see lastSessionCrashDetails + */ +@property (nonatomic, readonly) BOOL didReceiveMemoryWarningInLastSession; + + +/** + Provides the time between startup and crash in seconds + + Use this in together with `didCrashInLastSession` to detect if the app crashed very + early after startup. This can be used to delay app initialization until the crash + report has been sent to the server or if you want to do any other actions like + cleaning up some cache data etc. + + Note that sending a crash reports starts as early as 1.5 seconds after the application + did finish launching! + + The `BITCrashManagerDelegate` protocol provides some delegates to inform if sending + a crash report was finished successfully, ended in error or was cancelled by the user. + + *Default*: _-1_ + @see didCrashInLastSession + @see BITCrashManagerDelegate + */ +@property (nonatomic, readonly) NSTimeInterval timeIntervalCrashInLastSessionOccurred; + + +///----------------------------------------------------------------------------- +/// @name Helper +///----------------------------------------------------------------------------- + +/** + * Detect if a debugger is attached to the app process + * + * This is only invoked once on app startup and can not detect if the debugger is being + * attached during runtime! + * + * @return BOOL if the debugger is attached on app startup + */ +- (BOOL)isDebuggerAttached; + + +/** + * Lets the app crash for easy testing of the SDK + * + * The best way to use this is to trigger the crash with a button action. + * + * Make sure not to let the app crash in `applicationDidFinishLaunching` or any other + * startup method! Since otherwise the app would crash before the SDK could process it. + * + * Note that our SDK provides support for handling crashes that happen early on startup. + * Check the documentation for more information on how to use this. + * + * If the SDK detects an App Store environment, it will _NOT_ cause the app to crash! + */ +- (void)generateTestCrash; + +///----------------------------------------------------------------------------- +/// @name Deprecated +///----------------------------------------------------------------------------- + +@property (nonatomic, readonly) NSTimeInterval timeintervalCrashInLastSessionOccured DEPRECATED_MSG_ATTRIBUTE("Use the properly spelled property `timeIntervalCrashInLastSessionOccurred` instead."); + +@end diff --git a/Pods/HockeySDK/Classes/BITCrashManager.m b/Pods/HockeySDK/Classes/BITCrashManager.m new file mode 100644 index 0000000..9922668 --- /dev/null +++ b/Pods/HockeySDK/Classes/BITCrashManager.m @@ -0,0 +1,1535 @@ +/* + * Author: Andreas Linde + * Kent Sutherland + * + * Copyright (c) 2012-2014 HockeyApp, Bit Stadium GmbH. + * Copyright (c) 2011 Andreas Linde & Kent Sutherland. + * All rights reserved. + * + * Permission is hereby granted, free of charge, to any person + * obtaining a copy of this software and associated documentation + * files (the "Software"), to deal in the Software without + * restriction, including without limitation the rights to use, + * copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following + * conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES + * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + */ + +#import "HockeySDK.h" + +#if HOCKEYSDK_FEATURE_CRASH_REPORTER + +#import +#import + +#import "HockeySDKPrivate.h" +#import "BITHockeyHelper.h" +#import "BITHockeyAppClient.h" + +#import "BITCrashAttachment.h" +#import "BITHockeyBaseManagerPrivate.h" +#import "BITCrashManagerPrivate.h" +#import "BITCrashReportTextFormatter.h" +#import "BITCrashDetailsPrivate.h" + +#include + +// stores the set of crashreports that have been approved but aren't sent yet +#define kBITCrashApprovedReports @"HockeySDKCrashApprovedReports" + +// keys for meta information associated to each crash +#define kBITCrashMetaUserName @"BITCrashMetaUserName" +#define kBITCrashMetaUserEmail @"BITCrashMetaUserEmail" +#define kBITCrashMetaUserID @"BITCrashMetaUserID" +#define kBITCrashMetaApplicationLog @"BITCrashMetaApplicationLog" +#define kBITCrashMetaAttachment @"BITCrashMetaAttachment" + +// internal keys +NSString *const KBITAttachmentDictIndex = @"index"; +NSString *const KBITAttachmentDictAttachment = @"attachment"; + +NSString *const kBITCrashManagerStatus = @"BITCrashManagerStatus"; + +NSString *const kBITAppWentIntoBackgroundSafely = @"BITAppWentIntoBackgroundSafely"; +NSString *const kBITAppDidReceiveLowMemoryNotification = @"BITAppDidReceiveLowMemoryNotification"; +NSString *const kBITAppVersion = @"BITAppVersion"; +NSString *const kBITAppOSVersion = @"BITAppOSVersion"; +NSString *const kBITAppOSBuild = @"BITAppOSBuild"; +NSString *const kBITAppUUIDs = @"BITAppUUIDs"; + +NSString *const kBITFakeCrashUUID = @"BITFakeCrashUUID"; +NSString *const kBITFakeCrashAppVersion = @"BITFakeCrashAppVersion"; +NSString *const kBITFakeCrashAppBundleIdentifier = @"BITFakeCrashAppBundleIdentifier"; +NSString *const kBITFakeCrashOSVersion = @"BITFakeCrashOSVersion"; +NSString *const kBITFakeCrashDeviceModel = @"BITFakeCrashDeviceModel"; +NSString *const kBITFakeCrashAppBinaryUUID = @"BITFakeCrashAppBinaryUUID"; +NSString *const kBITFakeCrashReport = @"BITFakeCrashAppString"; + + +static BITCrashManagerCallbacks bitCrashCallbacks = { + .context = NULL, + .handleSignal = NULL +}; + +// proxy implementation for PLCrashReporter to keep our interface stable while this can change +static void plcr_post_crash_callback (siginfo_t *info, ucontext_t *uap, void *context) { + if (bitCrashCallbacks.handleSignal != NULL) + bitCrashCallbacks.handleSignal(context); +} + +static PLCrashReporterCallbacks plCrashCallbacks = { + .version = 0, + .context = NULL, + .handleSignal = plcr_post_crash_callback +}; + + +@implementation BITCrashManager { + NSMutableDictionary *_approvedCrashReports; + + NSMutableArray *_crashFiles; + NSString *_lastCrashFilename; + NSString *_settingsFile; + NSString *_analyzerInProgressFile; + NSFileManager *_fileManager; + + PLCrashReporterCallbacks *_crashCallBacks; + + BOOL _crashIdenticalCurrentVersion; + + BOOL _sendingInProgress; + BOOL _isSetup; + + BOOL _didLogLowMemoryWarning; + + id _appDidBecomeActiveObserver; + id _appWillTerminateObserver; + id _appDidEnterBackgroundObserver; + id _appWillEnterForegroundObserver; + id _appDidReceiveLowMemoryWarningObserver; + id _networkDidBecomeReachableObserver; +} + + +- (instancetype)init { + if ((self = [super init])) { + _delegate = nil; + _showAlwaysButton = YES; + _isSetup = NO; + + _plCrashReporter = nil; + _exceptionHandler = nil; + _crashCallBacks = nil; + + _crashIdenticalCurrentVersion = YES; + + _didCrashInLastSession = NO; + _timeIntervalCrashInLastSessionOccurred = -1; + _didLogLowMemoryWarning = NO; + + _approvedCrashReports = [[NSMutableDictionary alloc] init]; + _alertViewHandler = nil; + + _fileManager = [[NSFileManager alloc] init]; + _crashFiles = [[NSMutableArray alloc] init]; + + _crashManagerStatus = BITCrashManagerStatusAlwaysAsk; + + NSString *testValue = [[NSUserDefaults standardUserDefaults] stringForKey:kBITCrashManagerStatus]; + if (testValue) { + _crashManagerStatus = (BITCrashManagerStatus) [[NSUserDefaults standardUserDefaults] integerForKey:kBITCrashManagerStatus]; + } else { + // migrate previous setting if available + if ([[NSUserDefaults standardUserDefaults] boolForKey:@"BITCrashAutomaticallySendReports"]) { + _crashManagerStatus = BITCrashManagerStatusAutoSend; + [[NSUserDefaults standardUserDefaults] removeObjectForKey:@"BITCrashAutomaticallySendReports"]; + } + [[NSUserDefaults standardUserDefaults] setInteger:_crashManagerStatus forKey:kBITCrashManagerStatus]; + } + + _crashesDir = bit_settingsDir(); + _settingsFile = [_crashesDir stringByAppendingPathComponent:BITHOCKEY_CRASH_SETTINGS]; + _analyzerInProgressFile = [_crashesDir stringByAppendingPathComponent:BITHOCKEY_CRASH_ANALYZER]; + + if ([_fileManager fileExistsAtPath:_analyzerInProgressFile]) { + NSError *error = nil; + [_fileManager removeItemAtPath:_analyzerInProgressFile error:&error]; + } + + if (!BITHockeyBundle() && !bit_isRunningInAppExtension()) { + NSLog(@"[HockeySDK] WARNING: %@ is missing, will send reports automatically!", BITHOCKEYSDK_BUNDLE); + } + } + return self; +} + + +- (void) dealloc { + [self unregisterObservers]; +} + + +- (void)setCrashManagerStatus:(BITCrashManagerStatus)crashManagerStatus { + _crashManagerStatus = crashManagerStatus; + + [[NSUserDefaults standardUserDefaults] setInteger:crashManagerStatus forKey:kBITCrashManagerStatus]; +} + + +#pragma mark - Private + +/** + * Save all settings + * + * This saves the list of approved crash reports + */ +- (void)saveSettings { + NSError *error = nil; + + NSMutableDictionary *rootObj = [NSMutableDictionary dictionaryWithCapacity:2]; + if (_approvedCrashReports && [_approvedCrashReports count] > 0) { + [rootObj setObject:_approvedCrashReports forKey:kBITCrashApprovedReports]; + } + + NSData *plist = [NSPropertyListSerialization dataWithPropertyList:(id)rootObj format:NSPropertyListBinaryFormat_v1_0 options:0 error:&error]; + + if (plist) { + [plist writeToFile:_settingsFile atomically:YES]; + } else { + BITHockeyLog(@"ERROR: Writing settings. %@", [error description]); + } +} + +/** + * Load all settings + * + * This contains the list of approved crash reports + */ +- (void)loadSettings { + NSError *error = nil; + NSPropertyListFormat format; + + if (![_fileManager fileExistsAtPath:_settingsFile]) + return; + + NSData *plist = [NSData dataWithContentsOfFile:_settingsFile]; + if (plist) { + NSDictionary *rootObj = (NSDictionary *)[NSPropertyListSerialization + propertyListWithData:plist + options:NSPropertyListMutableContainersAndLeaves + format:&format + error:&error]; + + if ([rootObj objectForKey:kBITCrashApprovedReports]) + [_approvedCrashReports setDictionary:[rootObj objectForKey:kBITCrashApprovedReports]]; + } else { + BITHockeyLog(@"ERROR: Reading crash manager settings."); + } +} + + +/** + * Remove a cached crash report + * + * @param filename The base filename of the crash report + */ +- (void)cleanCrashReportWithFilename:(NSString *)filename { + if (!filename) return; + + NSError *error = NULL; + + [_fileManager removeItemAtPath:filename error:&error]; + [_fileManager removeItemAtPath:[filename stringByAppendingString:@".data"] error:&error]; + [_fileManager removeItemAtPath:[filename stringByAppendingString:@".meta"] error:&error]; + [_fileManager removeItemAtPath:[filename stringByAppendingString:@".desc"] error:&error]; + + NSString *cacheFilename = [filename lastPathComponent]; + [self removeKeyFromKeychain:[NSString stringWithFormat:@"%@.%@", cacheFilename, kBITCrashMetaUserName]]; + [self removeKeyFromKeychain:[NSString stringWithFormat:@"%@.%@", cacheFilename, kBITCrashMetaUserEmail]]; + [self removeKeyFromKeychain:[NSString stringWithFormat:@"%@.%@", cacheFilename, kBITCrashMetaUserID]]; + + [_crashFiles removeObject:filename]; + [_approvedCrashReports removeObjectForKey:filename]; + + [self saveSettings]; +} + +/** + * Remove all crash reports and stored meta data for each from the file system and keychain + * + * This is currently only used as a helper method for tests + */ +- (void)cleanCrashReports { + for (NSUInteger i=0; i < [_crashFiles count]; i++) { + [self cleanCrashReportWithFilename:[_crashFiles objectAtIndex:i]]; + } +} + +- (void)persistAttachment:(BITHockeyAttachment *)attachment withFilename:(NSString *)filename { + NSString *attachmentFilename = [filename stringByAppendingString:@".data"]; + NSMutableData *data = [[NSMutableData alloc] init]; + NSKeyedArchiver *archiver = [[NSKeyedArchiver alloc] initForWritingWithMutableData:data]; + + [archiver encodeObject:attachment forKey:kBITCrashMetaAttachment]; + + [archiver finishEncoding]; + + [data writeToFile:attachmentFilename atomically:YES]; +} + +- (void)persistUserProvidedMetaData:(BITCrashMetaData *)userProvidedMetaData { + if (!userProvidedMetaData) return; + + if (userProvidedMetaData.userDescription && [userProvidedMetaData.userDescription length] > 0) { + NSError *error; + [userProvidedMetaData.userDescription writeToFile:[NSString stringWithFormat:@"%@.desc", [_crashesDir stringByAppendingPathComponent: _lastCrashFilename]] atomically:YES encoding:NSUTF8StringEncoding error:&error]; + } + + if (userProvidedMetaData.userName && [userProvidedMetaData.userName length] > 0) { + [self addStringValueToKeychain:userProvidedMetaData.userName forKey:[NSString stringWithFormat:@"%@.%@", _lastCrashFilename, kBITCrashMetaUserName]]; + + } + + if (userProvidedMetaData.userEmail && [userProvidedMetaData.userEmail length] > 0) { + [self addStringValueToKeychain:userProvidedMetaData.userEmail forKey:[NSString stringWithFormat:@"%@.%@", _lastCrashFilename, kBITCrashMetaUserEmail]]; + } + + if (userProvidedMetaData.userID && [userProvidedMetaData.userID length] > 0) { + [self addStringValueToKeychain:userProvidedMetaData.userID forKey:[NSString stringWithFormat:@"%@.%@", _lastCrashFilename, kBITCrashMetaUserID]]; + + } +} + +/** + * Read the attachment data from the stored file + * + * @param filename The crash report file path + * + * @return an BITHockeyAttachment instance or nil + */ +- (BITHockeyAttachment *)attachmentForCrashReport:(NSString *)filename { + NSString *attachmentFilename = [filename stringByAppendingString:@".data"]; + + if (![_fileManager fileExistsAtPath:attachmentFilename]) + return nil; + + + NSData *codedData = [[NSData alloc] initWithContentsOfFile:attachmentFilename]; + if (!codedData) + return nil; + + NSKeyedUnarchiver *unarchiver = nil; + + @try { + unarchiver = [[NSKeyedUnarchiver alloc] initForReadingWithData:codedData]; + } + @catch (NSException *exception) { + return nil; + } + + if ([unarchiver containsValueForKey:kBITCrashMetaAttachment]) { + BITHockeyAttachment *attachment = [unarchiver decodeObjectForKey:kBITCrashMetaAttachment]; + return attachment; + } + + return nil; +} + +/** + * Extract all app specific UUIDs from the crash reports + * + * This allows us to send the UUIDs in the XML construct to the server, so the server does not need to parse the crash report for this data. + * The app specific UUIDs help to identify which dSYMs are needed to symbolicate this crash report. + * + * @param report The crash report from PLCrashReporter + * + * @return XML structure with the app specific UUIDs + */ +- (NSString *) extractAppUUIDs:(BITPLCrashReport *)report { + NSMutableString *uuidString = [NSMutableString string]; + NSArray *uuidArray = [BITCrashReportTextFormatter arrayOfAppUUIDsForCrashReport:report]; + + for (NSDictionary *element in uuidArray) { + if ([element objectForKey:kBITBinaryImageKeyUUID] && [element objectForKey:kBITBinaryImageKeyArch] && [element objectForKey:kBITBinaryImageKeyUUID]) { + [uuidString appendFormat:@"%@", + [element objectForKey:kBITBinaryImageKeyType], + [element objectForKey:kBITBinaryImageKeyArch], + [element objectForKey:kBITBinaryImageKeyUUID] + ]; + } + } + + return uuidString; +} + +- (void) registerObservers { + __weak typeof(self) weakSelf = self; + + if(nil == _appDidBecomeActiveObserver) { + _appDidBecomeActiveObserver = [[NSNotificationCenter defaultCenter] addObserverForName:UIApplicationDidBecomeActiveNotification + object:nil + queue:NSOperationQueue.mainQueue + usingBlock:^(NSNotification *note) { + typeof(self) strongSelf = weakSelf; + [strongSelf triggerDelayedProcessing]; + }]; + } + + if(nil == _networkDidBecomeReachableObserver) { + _networkDidBecomeReachableObserver = [[NSNotificationCenter defaultCenter] addObserverForName:BITHockeyNetworkDidBecomeReachableNotification + object:nil + queue:NSOperationQueue.mainQueue + usingBlock:^(NSNotification *note) { + typeof(self) strongSelf = weakSelf; + [strongSelf triggerDelayedProcessing]; + }]; + } + + if (nil == _appWillTerminateObserver) { + _appWillTerminateObserver = [[NSNotificationCenter defaultCenter] addObserverForName:UIApplicationWillTerminateNotification + object:nil + queue:NSOperationQueue.mainQueue + usingBlock:^(NSNotification *note) { + typeof(self) strongSelf = weakSelf; + [strongSelf leavingAppSafely]; + }]; + } + + if (nil == _appDidEnterBackgroundObserver) { + _appDidEnterBackgroundObserver = [[NSNotificationCenter defaultCenter] addObserverForName:UIApplicationDidEnterBackgroundNotification + object:nil + queue:NSOperationQueue.mainQueue + usingBlock:^(NSNotification *note) { + typeof(self) strongSelf = weakSelf; + [strongSelf leavingAppSafely]; + }]; + } + + if (nil == _appWillEnterForegroundObserver) { + _appWillEnterForegroundObserver = [[NSNotificationCenter defaultCenter] addObserverForName:UIApplicationWillEnterForegroundNotification + object:nil + queue:NSOperationQueue.mainQueue + usingBlock:^(NSNotification *note) { + typeof(self) strongSelf = weakSelf; + [strongSelf appEnteredForeground]; + }]; + } + + if (nil == _appDidReceiveLowMemoryWarningObserver) { + _appDidReceiveLowMemoryWarningObserver = [[NSNotificationCenter defaultCenter] addObserverForName:UIApplicationDidReceiveMemoryWarningNotification + object:nil + queue:NSOperationQueue.mainQueue + usingBlock:^(NSNotification *note) { + // we only need to log this once + if (!_didLogLowMemoryWarning) { + [[NSUserDefaults standardUserDefaults] setBool:YES forKey:kBITAppDidReceiveLowMemoryNotification]; + [[NSUserDefaults standardUserDefaults] synchronize]; + _didLogLowMemoryWarning = YES; + } + }]; + } +} + +- (void) unregisterObservers { + [self unregisterObserver:_appDidBecomeActiveObserver]; + [self unregisterObserver:_appWillTerminateObserver]; + [self unregisterObserver:_appDidEnterBackgroundObserver]; + [self unregisterObserver:_appWillEnterForegroundObserver]; + [self unregisterObserver:_appDidReceiveLowMemoryWarningObserver]; + + [self unregisterObserver:_networkDidBecomeReachableObserver]; +} + +- (void) unregisterObserver:(id)observer { + if (observer) { + [[NSNotificationCenter defaultCenter] removeObserver:observer]; + observer = nil; + } +} + +- (void)leavingAppSafely { + if (self.isAppNotTerminatingCleanlyDetectionEnabled) + [[NSUserDefaults standardUserDefaults] setBool:YES forKey:kBITAppWentIntoBackgroundSafely]; +} + +- (void)appEnteredForeground { + // we disable kill detection while the debugger is running, since we'd get only false positives if the app is terminated by the user using the debugger + if (self.isDebuggerAttached) { + [[NSUserDefaults standardUserDefaults] setBool:YES forKey:kBITAppWentIntoBackgroundSafely]; + } else if (self.isAppNotTerminatingCleanlyDetectionEnabled) { + [[NSUserDefaults standardUserDefaults] setBool:NO forKey:kBITAppWentIntoBackgroundSafely]; + + static dispatch_once_t predAppData; + + dispatch_once(&predAppData, ^{ + id bundleVersion = [[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleVersion"]; + if (bundleVersion && [bundleVersion isKindOfClass:[NSString class]]) + [[NSUserDefaults standardUserDefaults] setObject:bundleVersion forKey:kBITAppVersion]; + [[NSUserDefaults standardUserDefaults] setObject:[[UIDevice currentDevice] systemVersion] forKey:kBITAppOSVersion]; + [[NSUserDefaults standardUserDefaults] setObject:[self osBuild] forKey:kBITAppOSBuild]; + + NSString *uuidString =[NSString stringWithFormat:@"%@", + [self deviceArchitecture], + [self executableUUID] + ]; + + [[NSUserDefaults standardUserDefaults] setObject:uuidString forKey:kBITAppUUIDs]; + }); + } +} + +- (NSString *)deviceArchitecture { + NSString *archName = @"???"; + + size_t size; + cpu_type_t type; + cpu_subtype_t subtype; + size = sizeof(type); + if (sysctlbyname("hw.cputype", &type, &size, NULL, 0)) + return archName; + + size = sizeof(subtype); + if (sysctlbyname("hw.cpusubtype", &subtype, &size, NULL, 0)) + return archName; + + archName = [BITCrashReportTextFormatter bit_archNameFromCPUType:type subType:subtype] ?: @"???"; + + return archName; +} + +- (NSString *)osBuild { + size_t size; + sysctlbyname("kern.osversion", NULL, &size, NULL, 0); + char *answer = (char*)malloc(size); + if (answer == NULL) + return nil; + sysctlbyname("kern.osversion", answer, &size, NULL, 0); + NSString *osBuild = [NSString stringWithCString:answer encoding: NSUTF8StringEncoding]; + free(answer); + return osBuild; +} + +/** + * Get the userID from the delegate which should be stored with the crash report + * + * @return The userID value + */ +- (NSString *)userIDForCrashReport { + // first check the global keychain storage + NSString *userID = [self stringValueFromKeychainForKey:kBITHockeyMetaUserID] ?: @""; + +#if HOCKEYSDK_FEATURE_AUTHENTICATOR + // if we have an identification from BITAuthenticator, use this as a default. + if (( + self.installationIdentificationType == BITAuthenticatorIdentificationTypeAnonymous || + self.installationIdentificationType == BITAuthenticatorIdentificationTypeDevice + ) && + self.installationIdentification) { + userID = self.installationIdentification; + } +#endif + + if ([BITHockeyManager sharedHockeyManager].delegate && + [[BITHockeyManager sharedHockeyManager].delegate respondsToSelector:@selector(userIDForHockeyManager:componentManager:)]) { + userID = [[BITHockeyManager sharedHockeyManager].delegate + userIDForHockeyManager:[BITHockeyManager sharedHockeyManager] + componentManager:self] ?: @""; + } + + return userID; +} + +/** + * Get the userName from the delegate which should be stored with the crash report + * + * @return The userName value + */ +- (NSString *)userNameForCrashReport { + // first check the global keychain storage + NSString *username = [self stringValueFromKeychainForKey:kBITHockeyMetaUserName] ?: @""; + + if (self.delegate && [self.delegate respondsToSelector:@selector(userNameForCrashManager:)]) { + username = [self.delegate userNameForCrashManager:self] ?: @""; + } + if ([BITHockeyManager sharedHockeyManager].delegate && + [[BITHockeyManager sharedHockeyManager].delegate respondsToSelector:@selector(userNameForHockeyManager:componentManager:)]) { + username = [[BITHockeyManager sharedHockeyManager].delegate + userNameForHockeyManager:[BITHockeyManager sharedHockeyManager] + componentManager:self] ?: @""; + } + + return username; +} + +/** + * Get the userEmail from the delegate which should be stored with the crash report + * + * @return The userEmail value + */ +- (NSString *)userEmailForCrashReport { + // first check the global keychain storage + NSString *useremail = [self stringValueFromKeychainForKey:kBITHockeyMetaUserEmail] ?: @""; + +#if HOCKEYSDK_FEATURE_AUTHENTICATOR + // if we have an identification from BITAuthenticator, use this as a default. + if (( + self.installationIdentificationType == BITAuthenticatorIdentificationTypeHockeyAppEmail || + self.installationIdentificationType == BITAuthenticatorIdentificationTypeHockeyAppUser || + self.installationIdentificationType == BITAuthenticatorIdentificationTypeWebAuth + ) && + self.installationIdentification) { + useremail = self.installationIdentification; + } +#endif + + if (self.delegate && [self.delegate respondsToSelector:@selector(userEmailForCrashManager:)]) { + useremail = [self.delegate userEmailForCrashManager:self] ?: @""; + } + if ([BITHockeyManager sharedHockeyManager].delegate && + [[BITHockeyManager sharedHockeyManager].delegate respondsToSelector:@selector(userEmailForHockeyManager:componentManager:)]) { + useremail = [[BITHockeyManager sharedHockeyManager].delegate + userEmailForHockeyManager:[BITHockeyManager sharedHockeyManager] + componentManager:self] ?: @""; + } + + return useremail; +} + + +#pragma mark - Public + + +/** + * Set the callback for PLCrashReporter + * + * @param callbacks BITCrashManagerCallbacks instance + */ +- (void)setCrashCallbacks: (BITCrashManagerCallbacks *) callbacks { + if (!callbacks) return; + + // set our proxy callback struct + bitCrashCallbacks.context = callbacks->context; + bitCrashCallbacks.handleSignal = callbacks->handleSignal; + + // set the PLCrashReporterCallbacks struct + plCrashCallbacks.context = callbacks->context; + + _crashCallBacks = &plCrashCallbacks; +} + + +- (void)setAlertViewHandler:(BITCustomAlertViewHandler)alertViewHandler{ + _alertViewHandler = alertViewHandler; +} + +/** + * Check if the debugger is attached + * + * Taken from https://github.com/plausiblelabs/plcrashreporter/blob/2dd862ce049e6f43feb355308dfc710f3af54c4d/Source/Crash%20Demo/main.m#L96 + * + * @return `YES` if the debugger is attached to the current process, `NO` otherwise + */ +- (BOOL)isDebuggerAttached { + static BOOL debuggerIsAttached = NO; + + static dispatch_once_t debuggerPredicate; + dispatch_once(&debuggerPredicate, ^{ + struct kinfo_proc info; + size_t info_size = sizeof(info); + int name[4]; + + name[0] = CTL_KERN; + name[1] = KERN_PROC; + name[2] = KERN_PROC_PID; + name[3] = getpid(); + + if (sysctl(name, 4, &info, &info_size, NULL, 0) == -1) { + NSLog(@"[HockeySDK] ERROR: Checking for a running debugger via sysctl() failed: %s", strerror(errno)); + debuggerIsAttached = false; + } + + if (!debuggerIsAttached && (info.kp_proc.p_flag & P_TRACED) != 0) + debuggerIsAttached = true; + }); + + return debuggerIsAttached; +} + + +- (void)generateTestCrash { + if (![self isAppStoreEnvironment]) { + + if ([self isDebuggerAttached]) { + NSLog(@"[HockeySDK] WARNING: The debugger is attached. The following crash cannot be detected by the SDK!"); + } + + __builtin_trap(); + } +} + +/** + * Write a meta file for a new crash report + * + * @param filename the crash reports temp filename + */ +- (void)storeMetaDataForCrashReportFilename:(NSString *)filename { + NSError *error = NULL; + NSMutableDictionary *metaDict = [NSMutableDictionary dictionaryWithCapacity:4]; + NSString *applicationLog = @""; + + [self addStringValueToKeychain:[self userNameForCrashReport] forKey:[NSString stringWithFormat:@"%@.%@", filename, kBITCrashMetaUserName]]; + [self addStringValueToKeychain:[self userEmailForCrashReport] forKey:[NSString stringWithFormat:@"%@.%@", filename, kBITCrashMetaUserEmail]]; + [self addStringValueToKeychain:[self userIDForCrashReport] forKey:[NSString stringWithFormat:@"%@.%@", filename, kBITCrashMetaUserID]]; + + if (self.delegate != nil && [self.delegate respondsToSelector:@selector(applicationLogForCrashManager:)]) { + applicationLog = [self.delegate applicationLogForCrashManager:self] ?: @""; + } + [metaDict setObject:applicationLog forKey:kBITCrashMetaApplicationLog]; + + if (self.delegate != nil && [self.delegate respondsToSelector:@selector(attachmentForCrashManager:)]) { + BITHockeyAttachment *attachment = [self.delegate attachmentForCrashManager:self]; + + if (attachment && attachment.hockeyAttachmentData) { + [self persistAttachment:attachment withFilename:[_crashesDir stringByAppendingPathComponent: filename]]; + } + } + + NSData *plist = [NSPropertyListSerialization dataWithPropertyList:(id)metaDict + format:NSPropertyListBinaryFormat_v1_0 + options:0 + error:&error]; + if (plist) { + [plist writeToFile:[_crashesDir stringByAppendingPathComponent: [filename stringByAppendingPathExtension:@"meta"]] atomically:YES]; + } else { + BITHockeyLog(@"ERROR: Writing crash meta data failed. %@", error); + } +} + +- (BOOL)handleUserInput:(BITCrashManagerUserInput)userInput withUserProvidedMetaData:(BITCrashMetaData *)userProvidedMetaData { + switch (userInput) { + case BITCrashManagerUserInputDontSend: + if (self.delegate != nil && [self.delegate respondsToSelector:@selector(crashManagerWillCancelSendingCrashReport:)]) { + [self.delegate crashManagerWillCancelSendingCrashReport:self]; + } + + if (_lastCrashFilename) + [self cleanCrashReportWithFilename:[_crashesDir stringByAppendingPathComponent: _lastCrashFilename]]; + + return YES; + + case BITCrashManagerUserInputSend: + if (userProvidedMetaData) + [self persistUserProvidedMetaData:userProvidedMetaData]; + + [self sendNextCrashReport]; + return YES; + + case BITCrashManagerUserInputAlwaysSend: + _crashManagerStatus = BITCrashManagerStatusAutoSend; + [[NSUserDefaults standardUserDefaults] setInteger:_crashManagerStatus forKey:kBITCrashManagerStatus]; + [[NSUserDefaults standardUserDefaults] synchronize]; + if (self.delegate != nil && [self.delegate respondsToSelector:@selector(crashManagerWillSendCrashReportsAlways:)]) { + [self.delegate crashManagerWillSendCrashReportsAlways:self]; + } + + if (userProvidedMetaData) + [self persistUserProvidedMetaData:userProvidedMetaData]; + + [self sendNextCrashReport]; + return YES; + + default: + return NO; + } + +} + +#pragma mark - PLCrashReporter + +/** + * Process new crash reports provided by PLCrashReporter + * + * Parse the new crash report and gather additional meta data from the app which will be stored along the crash report + */ +- (void) handleCrashReport { + NSError *error = NULL; + + if (!self.plCrashReporter) return; + + // check if the next call ran successfully the last time + if (![_fileManager fileExistsAtPath:_analyzerInProgressFile]) { + // mark the start of the routine + [_fileManager createFileAtPath:_analyzerInProgressFile contents:nil attributes:nil]; + + [self saveSettings]; + + // Try loading the crash report + NSData *crashData = [[NSData alloc] initWithData:[self.plCrashReporter loadPendingCrashReportDataAndReturnError: &error]]; + + NSString *cacheFilename = [NSString stringWithFormat: @"%.0f", [NSDate timeIntervalSinceReferenceDate]]; + _lastCrashFilename = cacheFilename; + + if (crashData == nil) { + BITHockeyLog(@"ERROR: Could not load crash report: %@", error); + } else { + // get the startup timestamp from the crash report, and the file timestamp to calculate the timeinterval when the crash happened after startup + BITPLCrashReport *report = [[BITPLCrashReport alloc] initWithData:crashData error:&error]; + + if (report == nil) { + BITHockeyLog(@"WARNING: Could not parse crash report"); + } else { + NSDate *appStartTime = nil; + NSDate *appCrashTime = nil; + if ([report.processInfo respondsToSelector:@selector(processStartTime)]) { + if (report.systemInfo.timestamp && report.processInfo.processStartTime) { + appStartTime = report.processInfo.processStartTime; + appCrashTime =report.systemInfo.timestamp; + _timeIntervalCrashInLastSessionOccurred = [report.systemInfo.timestamp timeIntervalSinceDate:report.processInfo.processStartTime]; + } + } + + [crashData writeToFile:[_crashesDir stringByAppendingPathComponent: cacheFilename] atomically:YES]; + + NSString *incidentIdentifier = @"???"; + if (report.uuidRef != NULL) { + incidentIdentifier = (NSString *) CFBridgingRelease(CFUUIDCreateString(NULL, report.uuidRef)); + } + + NSString *reporterKey = bit_appAnonID() ?: @""; + + _lastSessionCrashDetails = [[BITCrashDetails alloc] initWithIncidentIdentifier:incidentIdentifier + reporterKey:reporterKey + signal:report.signalInfo.name + exceptionName:report.exceptionInfo.exceptionName + exceptionReason:report.exceptionInfo.exceptionReason + appStartTime:appStartTime + crashTime:appCrashTime + osVersion:report.systemInfo.operatingSystemVersion + osBuild:report.systemInfo.operatingSystemBuild + appBuild:report.applicationInfo.applicationVersion + ]; + + // fetch and store the meta data after setting _lastSessionCrashDetails, so the property can be used in the protocol methods + [self storeMetaDataForCrashReportFilename:cacheFilename]; + } + } + } + + // Purge the report + // mark the end of the routine + if ([_fileManager fileExistsAtPath:_analyzerInProgressFile]) { + [_fileManager removeItemAtPath:_analyzerInProgressFile error:&error]; + } + + [self saveSettings]; + + [self.plCrashReporter purgePendingCrashReport]; +} + +/** + Get the filename of the first not approved crash report + + @return NSString Filename of the first found not approved crash report + */ +- (NSString *)firstNotApprovedCrashReport { + if ((!_approvedCrashReports || [_approvedCrashReports count] == 0) && [_crashFiles count] > 0) { + return [_crashFiles objectAtIndex:0]; + } + + for (NSUInteger i=0; i < [_crashFiles count]; i++) { + NSString *filename = [_crashFiles objectAtIndex:i]; + + if (![_approvedCrashReports objectForKey:filename]) return filename; + } + + return nil; +} + +/** + * Check if there are any new crash reports that are not yet processed + * + * @return `YES` if there is at least one new crash report found, `NO` otherwise + */ +- (BOOL)hasPendingCrashReport { + if (_crashManagerStatus == BITCrashManagerStatusDisabled) return NO; + + if ([self.fileManager fileExistsAtPath:_crashesDir]) { + NSError *error = NULL; + + NSArray *dirArray = [self.fileManager contentsOfDirectoryAtPath:_crashesDir error:&error]; + + for (NSString *file in dirArray) { + NSString *filePath = [_crashesDir stringByAppendingPathComponent:file]; + + NSDictionary *fileAttributes = [self.fileManager attributesOfItemAtPath:filePath error:&error]; + if ([[fileAttributes objectForKey:NSFileType] isEqualToString:NSFileTypeRegular] && + [[fileAttributes objectForKey:NSFileSize] intValue] > 0 && + ![file hasSuffix:@".DS_Store"] && + ![file hasSuffix:@".analyzer"] && + ![file hasSuffix:@".plist"] && + ![file hasSuffix:@".data"] && + ![file hasSuffix:@".meta"] && + ![file hasSuffix:@".desc"]) { + [_crashFiles addObject:filePath]; + } + } + } + + if ([_crashFiles count] > 0) { + BITHockeyLog(@"INFO: %lu pending crash reports found.", (unsigned long)[_crashFiles count]); + return YES; + } else { + if (_didCrashInLastSession) { + if (self.delegate != nil && [self.delegate respondsToSelector:@selector(crashManagerWillCancelSendingCrashReport:)]) { + [self.delegate crashManagerWillCancelSendingCrashReport:self]; + } + + _didCrashInLastSession = NO; + } + + return NO; + } +} + + +#pragma mark - Crash Report Processing + +- (void)triggerDelayedProcessing { + [NSObject cancelPreviousPerformRequestsWithTarget:self selector:@selector(invokeDelayedProcessing) object:nil]; + [self performSelector:@selector(invokeDelayedProcessing) withObject:nil afterDelay:0.5]; +} + +/** + * Delayed startup processing for everything that does not to be done in the app startup runloop + * + * - Checks if there is another exception handler installed that may block ours + * - Present UI if the user has to approve new crash reports + * - Send pending approved crash reports + */ +- (void)invokeDelayedProcessing { + if (!bit_isRunningInAppExtension() && + [[UIApplication sharedApplication] applicationState] != UIApplicationStateActive) { + return; + } + + BITHockeyLog(@"INFO: Start delayed CrashManager processing"); + + // was our own exception handler successfully added? + if (self.exceptionHandler) { + // get the current top level error handler + NSUncaughtExceptionHandler *currentHandler = NSGetUncaughtExceptionHandler(); + + // If the top level error handler differs from our own, then at least another one was added. + // This could cause exception crashes not to be reported to HockeyApp. See log message for details. + if (self.exceptionHandler != currentHandler) { + BITHockeyLog(@"[HockeySDK] WARNING: Another exception handler was added. If this invokes any kind exit() after processing the exception, which causes any subsequent error handler not to be invoked, these crashes will NOT be reported to HockeyApp!"); + } + } + + if (!_sendingInProgress && [self hasPendingCrashReport]) { + _sendingInProgress = YES; + + NSString *notApprovedReportFilename = [self firstNotApprovedCrashReport]; + + // this can happen in case there is a non approved crash report but it didn't happen in the previous app session + if (notApprovedReportFilename && !_lastCrashFilename) { + _lastCrashFilename = [notApprovedReportFilename lastPathComponent]; + } + + if (!BITHockeyBundle() || bit_isRunningInAppExtension()) { + [self sendNextCrashReport]; + } else if (_crashManagerStatus != BITCrashManagerStatusAutoSend && notApprovedReportFilename) { + + if (self.delegate != nil && [self.delegate respondsToSelector:@selector(crashManagerWillShowSubmitCrashReportAlert:)]) { + [self.delegate crashManagerWillShowSubmitCrashReportAlert:self]; + } + + NSString *appName = bit_appName(BITHockeyLocalizedString(@"HockeyAppNamePlaceholder")); + NSString *alertDescription = [NSString stringWithFormat:BITHockeyLocalizedString(@"CrashDataFoundAnonymousDescription"), appName]; + + // the crash report is not anonymous any more if username or useremail are not nil + NSString *userid = [self userIDForCrashReport]; + NSString *username = [self userNameForCrashReport]; + NSString *useremail = [self userEmailForCrashReport]; + + if ((userid && [userid length] > 0) || + (username && [username length] > 0) || + (useremail && [useremail length] > 0)) { + alertDescription = [NSString stringWithFormat:BITHockeyLocalizedString(@"CrashDataFoundDescription"), appName]; + } + + if (_alertViewHandler) { + _alertViewHandler(); + } else { + UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:[NSString stringWithFormat:BITHockeyLocalizedString(@"CrashDataFoundTitle"), appName] + message:alertDescription + delegate:self + cancelButtonTitle:BITHockeyLocalizedString(@"CrashDontSendReport") + otherButtonTitles:BITHockeyLocalizedString(@"CrashSendReport"), nil]; + + if (self.shouldShowAlwaysButton) { + [alertView addButtonWithTitle:BITHockeyLocalizedString(@"CrashSendReportAlways")]; + } + + [alertView show]; + } + } else { + [self sendNextCrashReport]; + } + } +} + +/** + * Main startup sequence initializing PLCrashReporter if it wasn't disabled + */ +- (void)startManager { + if (_crashManagerStatus == BITCrashManagerStatusDisabled) return; + + [self registerObservers]; + + [self loadSettings]; + + if (!_isSetup) { + static dispatch_once_t plcrPredicate; + dispatch_once(&plcrPredicate, ^{ + /* Configure our reporter */ + + PLCrashReporterSignalHandlerType signalHandlerType = PLCrashReporterSignalHandlerTypeBSD; + if (self.isMachExceptionHandlerEnabled) { + signalHandlerType = PLCrashReporterSignalHandlerTypeMach; + } + + PLCrashReporterSymbolicationStrategy symbolicationStrategy = PLCrashReporterSymbolicationStrategyNone; + if (self.isOnDeviceSymbolicationEnabled) { + symbolicationStrategy = PLCrashReporterSymbolicationStrategyAll; + } + + BITPLCrashReporterConfig *config = [[BITPLCrashReporterConfig alloc] initWithSignalHandlerType: signalHandlerType + symbolicationStrategy: symbolicationStrategy]; + self.plCrashReporter = [[BITPLCrashReporter alloc] initWithConfiguration: config]; + + // Check if we previously crashed + if ([self.plCrashReporter hasPendingCrashReport]) { + _didCrashInLastSession = YES; + [self handleCrashReport]; + } + + // The actual signal and mach handlers are only registered when invoking `enableCrashReporterAndReturnError` + // So it is safe enough to only disable the following part when a debugger is attached no matter which + // signal handler type is set + // We only check for this if we are not in the App Store environment + + BOOL debuggerIsAttached = NO; + if (![self isAppStoreEnvironment]) { + if ([self isDebuggerAttached]) { + debuggerIsAttached = YES; + NSLog(@"[HockeySDK] WARNING: Detecting crashes is NOT enabled due to running the app with a debugger attached."); + } + } + + if (!debuggerIsAttached) { + // Multiple exception handlers can be set, but we can only query the top level error handler (uncaught exception handler). + // + // To check if PLCrashReporter's error handler is successfully added, we compare the top + // level one that is set before and the one after PLCrashReporter sets up its own. + // + // With delayed processing we can then check if another error handler was set up afterwards + // and can show a debug warning log message, that the dev has to make sure the "newer" error handler + // doesn't exit the process itself, because then all subsequent handlers would never be invoked. + // + // Note: ANY error handler setup BEFORE HockeySDK initialization will not be processed! + + // get the current top level error handler + NSUncaughtExceptionHandler *initialHandler = NSGetUncaughtExceptionHandler(); + + // PLCrashReporter may only be initialized once. So make sure the developer + // can't break this + NSError *error = NULL; + + // set any user defined callbacks, hopefully the users knows what they do + if (_crashCallBacks) { + [self.plCrashReporter setCrashCallbacks:_crashCallBacks]; + } + + // Enable the Crash Reporter + if (![self.plCrashReporter enableCrashReporterAndReturnError: &error]) + NSLog(@"[HockeySDK] WARNING: Could not enable crash reporter: %@", [error localizedDescription]); + + // get the new current top level error handler, which should now be the one from PLCrashReporter + NSUncaughtExceptionHandler *currentHandler = NSGetUncaughtExceptionHandler(); + + // do we have a new top level error handler? then we were successful + if (currentHandler && currentHandler != initialHandler) { + self.exceptionHandler = currentHandler; + + BITHockeyLog(@"INFO: Exception handler successfully initialized."); + } else { + // this should never happen, theoretically only if NSSetUncaugtExceptionHandler() has some internal issues + NSLog(@"[HockeySDK] ERROR: Exception handler could not be set. Make sure there is no other exception handler set up!"); + } + } + _isSetup = YES; + }); + } + + if ([[NSUserDefaults standardUserDefaults] valueForKey:kBITAppDidReceiveLowMemoryNotification]) + _didReceiveMemoryWarningInLastSession = [[NSUserDefaults standardUserDefaults] boolForKey:kBITAppDidReceiveLowMemoryNotification]; + + if (!_didCrashInLastSession && self.isAppNotTerminatingCleanlyDetectionEnabled) { + BOOL didAppSwitchToBackgroundSafely = YES; + + if ([[NSUserDefaults standardUserDefaults] valueForKey:kBITAppWentIntoBackgroundSafely]) + didAppSwitchToBackgroundSafely = [[NSUserDefaults standardUserDefaults] boolForKey:kBITAppWentIntoBackgroundSafely]; + + if (!didAppSwitchToBackgroundSafely) { + BOOL considerReport = YES; + + if (self.delegate && + [self.delegate respondsToSelector:@selector(considerAppNotTerminatedCleanlyReportForCrashManager:)]) { + considerReport = [self.delegate considerAppNotTerminatedCleanlyReportForCrashManager:self]; + } + + if (considerReport) { + [self createCrashReportForAppKill]; + + _didCrashInLastSession = YES; + } + } + } + + if ([[UIApplication sharedApplication] applicationState] == UIApplicationStateActive) { + [self appEnteredForeground]; + } + + [[NSUserDefaults standardUserDefaults] setBool:NO forKey:kBITAppDidReceiveLowMemoryNotification]; + [[NSUserDefaults standardUserDefaults] synchronize]; + + [self triggerDelayedProcessing]; +} + +/** + * Creates a fake crash report because the app was killed while being in foreground + */ +- (void)createCrashReportForAppKill { + NSString *fakeReportUUID = bit_UUID(); + NSString *fakeReporterKey = bit_appAnonID() ?: @"???"; + + NSString *fakeReportAppVersion = [[NSUserDefaults standardUserDefaults] objectForKey:kBITAppVersion]; + if (!fakeReportAppVersion) + return; + + NSString *fakeReportOSVersion = [[NSUserDefaults standardUserDefaults] objectForKey:kBITAppOSVersion] ?: [[UIDevice currentDevice] systemVersion]; + NSString *fakeReportOSVersionString = fakeReportOSVersion; + NSString *fakeReportOSBuild = [[NSUserDefaults standardUserDefaults] objectForKey:kBITAppOSBuild] ?: [self osBuild]; + if (fakeReportOSBuild) { + fakeReportOSVersionString = [NSString stringWithFormat:@"%@ (%@)", fakeReportOSVersion, fakeReportOSBuild]; + } + + NSString *fakeReportAppBundleIdentifier = [[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleIdentifier"]; + NSString *fakeReportDeviceModel = [self getDevicePlatform] ?: @"Unknown"; + NSString *fakeReportAppUUIDs = [[NSUserDefaults standardUserDefaults] objectForKey:kBITAppUUIDs] ?: @""; + + NSString *fakeSignalName = kBITCrashKillSignal; + + NSMutableString *fakeReportString = [NSMutableString string]; + + [fakeReportString appendFormat:@"Incident Identifier: %@\n", fakeReportUUID]; + [fakeReportString appendFormat:@"CrashReporter Key: %@\n", fakeReporterKey]; + [fakeReportString appendFormat:@"Hardware Model: %@\n", fakeReportDeviceModel]; + [fakeReportString appendFormat:@"Identifier: %@\n", fakeReportAppBundleIdentifier]; + [fakeReportString appendFormat:@"Version: %@\n", fakeReportAppVersion]; + [fakeReportString appendString:@"Code Type: ARM\n"]; + [fakeReportString appendString:@"\n"]; + + NSLocale *enUSPOSIXLocale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US_POSIX"]; + NSDateFormatter *rfc3339Formatter = [[NSDateFormatter alloc] init]; + [rfc3339Formatter setLocale:enUSPOSIXLocale]; + [rfc3339Formatter setDateFormat:@"yyyy'-'MM'-'dd'T'HH':'mm':'ss'Z'"]; + [rfc3339Formatter setTimeZone:[NSTimeZone timeZoneForSecondsFromGMT:0]]; + NSString *fakeCrashTimestamp = [rfc3339Formatter stringFromDate:[NSDate date]]; + + // we use the current date, since we don't know when the kill actually happened + [fakeReportString appendFormat:@"Date/Time: %@\n", fakeCrashTimestamp]; + [fakeReportString appendFormat:@"OS Version: %@\n", fakeReportOSVersionString]; + [fakeReportString appendString:@"Report Version: 104\n"]; + [fakeReportString appendString:@"\n"]; + [fakeReportString appendFormat:@"Exception Type: %@\n", fakeSignalName]; + [fakeReportString appendString:@"Exception Codes: 00000020 at 0x8badf00d\n"]; + [fakeReportString appendString:@"\n"]; + [fakeReportString appendString:@"Application Specific Information:\n"]; + [fakeReportString appendString:@"The application did not terminate cleanly but no crash occured."]; + if (self.didReceiveMemoryWarningInLastSession) { + [fakeReportString appendString:@" The app received at least one Low Memory Warning."]; + } + [fakeReportString appendString:@"\n\n"]; + + NSString *fakeReportFilename = [NSString stringWithFormat: @"%.0f", [NSDate timeIntervalSinceReferenceDate]]; + + NSError *error = nil; + + NSMutableDictionary *rootObj = [NSMutableDictionary dictionaryWithCapacity:2]; + [rootObj setObject:fakeReportUUID forKey:kBITFakeCrashUUID]; + [rootObj setObject:fakeReportAppVersion forKey:kBITFakeCrashAppVersion]; + [rootObj setObject:fakeReportAppBundleIdentifier forKey:kBITFakeCrashAppBundleIdentifier]; + [rootObj setObject:fakeReportOSVersion forKey:kBITFakeCrashOSVersion]; + [rootObj setObject:fakeReportDeviceModel forKey:kBITFakeCrashDeviceModel]; + [rootObj setObject:fakeReportAppUUIDs forKey:kBITFakeCrashAppBinaryUUID]; + [rootObj setObject:fakeReportString forKey:kBITFakeCrashReport]; + + _lastSessionCrashDetails = [[BITCrashDetails alloc] initWithIncidentIdentifier:fakeReportUUID + reporterKey:fakeReporterKey + signal:fakeSignalName + exceptionName:nil + exceptionReason:nil + appStartTime:nil + crashTime:nil + osVersion:fakeReportOSVersion + osBuild:fakeReportOSBuild + appBuild:fakeReportAppVersion + ]; + + NSData *plist = [NSPropertyListSerialization dataWithPropertyList:(id)rootObj + format:NSPropertyListBinaryFormat_v1_0 + options:0 + error:&error]; + if (plist) { + if ([plist writeToFile:[_crashesDir stringByAppendingPathComponent:[fakeReportFilename stringByAppendingPathExtension:@"fake"]] atomically:YES]) { + [self storeMetaDataForCrashReportFilename:fakeReportFilename]; + } + } else { + BITHockeyLog(@"ERROR: Writing fake crash report. %@", [error description]); + } +} + +/** + * Send all approved crash reports + * + * Gathers all collected data and constructs the XML structure and starts the sending process + */ +- (void)sendNextCrashReport { + NSError *error = NULL; + + _crashIdenticalCurrentVersion = NO; + + if ([_crashFiles count] == 0) + return; + + NSString *crashXML = nil; + BITHockeyAttachment *attachment = nil; + + NSString *filename = [_crashFiles objectAtIndex:0]; + NSString *cacheFilename = [filename lastPathComponent]; + NSData *crashData = [NSData dataWithContentsOfFile:filename]; + + if ([crashData length] > 0) { + BITPLCrashReport *report = nil; + NSString *crashUUID = @""; + NSString *installString = nil; + NSString *crashLogString = nil; + NSString *appBundleIdentifier = nil; + NSString *appBundleVersion = nil; + NSString *osVersion = nil; + NSString *deviceModel = nil; + NSString *appBinaryUUIDs = nil; + NSString *metaFilename = nil; + + NSPropertyListFormat format; + + if ([[cacheFilename pathExtension] isEqualToString:@"fake"]) { + NSDictionary *fakeReportDict = (NSDictionary *)[NSPropertyListSerialization + propertyListWithData:crashData + options:NSPropertyListMutableContainersAndLeaves + format:&format + error:&error]; + + crashLogString = [fakeReportDict objectForKey:kBITFakeCrashReport]; + crashUUID = [fakeReportDict objectForKey:kBITFakeCrashUUID]; + appBundleIdentifier = [fakeReportDict objectForKey:kBITFakeCrashAppBundleIdentifier]; + appBundleVersion = [fakeReportDict objectForKey:kBITFakeCrashAppVersion]; + appBinaryUUIDs = [fakeReportDict objectForKey:kBITFakeCrashAppBinaryUUID]; + deviceModel = [fakeReportDict objectForKey:kBITFakeCrashDeviceModel]; + osVersion = [fakeReportDict objectForKey:kBITFakeCrashOSVersion]; + + metaFilename = [cacheFilename stringByReplacingOccurrencesOfString:@".fake" withString:@".meta"]; + if ([appBundleVersion compare:[[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleVersion"]] == NSOrderedSame) { + _crashIdenticalCurrentVersion = YES; + } + + } else { + report = [[BITPLCrashReport alloc] initWithData:crashData error:&error]; + } + + if (report == nil && crashLogString == nil) { + BITHockeyLog(@"WARNING: Could not parse crash report"); + // we cannot do anything with this report, so delete it + [self cleanCrashReportWithFilename:filename]; + // we don't continue with the next report here, even if there are to prevent calling sendCrashReports from itself again + // the next crash will be automatically send on the next app start/becoming active event + return; + } + + installString = bit_appAnonID() ?: @""; + + if (report) { + if (report.uuidRef != NULL) { + crashUUID = (NSString *) CFBridgingRelease(CFUUIDCreateString(NULL, report.uuidRef)); + } + metaFilename = [cacheFilename stringByAppendingPathExtension:@"meta"]; + crashLogString = [BITCrashReportTextFormatter stringValueForCrashReport:report crashReporterKey:installString]; + appBundleIdentifier = report.applicationInfo.applicationIdentifier; + appBundleVersion = report.applicationInfo.applicationVersion; + osVersion = report.systemInfo.operatingSystemVersion; + deviceModel = [self getDevicePlatform]; + appBinaryUUIDs = [self extractAppUUIDs:report]; + if ([report.applicationInfo.applicationVersion compare:[[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleVersion"]] == NSOrderedSame) { + _crashIdenticalCurrentVersion = YES; + } + } + + if ([report.applicationInfo.applicationVersion compare:[[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleVersion"]] == NSOrderedSame) { + _crashIdenticalCurrentVersion = YES; + } + + NSString *username = @""; + NSString *useremail = @""; + NSString *userid = @""; + NSString *applicationLog = @""; + NSString *description = @""; + + NSData *plist = [NSData dataWithContentsOfFile:[_crashesDir stringByAppendingPathComponent:metaFilename]]; + if (plist) { + NSDictionary *metaDict = (NSDictionary *)[NSPropertyListSerialization + propertyListWithData:plist + options:NSPropertyListMutableContainersAndLeaves + format:&format + error:&error]; + + username = [self stringValueFromKeychainForKey:[NSString stringWithFormat:@"%@.%@", cacheFilename, kBITCrashMetaUserName]] ?: @""; + useremail = [self stringValueFromKeychainForKey:[NSString stringWithFormat:@"%@.%@", cacheFilename, kBITCrashMetaUserEmail]] ?: @""; + userid = [self stringValueFromKeychainForKey:[NSString stringWithFormat:@"%@.%@", cacheFilename, kBITCrashMetaUserID]] ?: @""; + applicationLog = [metaDict objectForKey:kBITCrashMetaApplicationLog] ?: @""; + description = [NSString stringWithContentsOfFile:[NSString stringWithFormat:@"%@.desc", [_crashesDir stringByAppendingPathComponent: cacheFilename]] encoding:NSUTF8StringEncoding error:&error]; + attachment = [self attachmentForCrashReport:filename]; + } else { + BITHockeyLog(@"ERROR: Reading crash meta data. %@", error); + } + + if ([applicationLog length] > 0) { + if ([description length] > 0) { + description = [NSString stringWithFormat:@"%@\n\nLog:\n%@", description, applicationLog]; + } else { + description = [NSString stringWithFormat:@"Log:\n%@", applicationLog]; + } + } + + crashXML = [NSString stringWithFormat:@"%@%@%@%@%@%@%@%@%@%@%@", + [[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleExecutable"], + appBinaryUUIDs, + appBundleIdentifier, + osVersion, + deviceModel, + [[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleVersion"], + appBundleVersion, + crashUUID, + [crashLogString stringByReplacingOccurrencesOfString:@"]]>" withString:@"]]" @"]]>" options:NSLiteralSearch range:NSMakeRange(0,crashLogString.length)], + userid, + username, + useremail, + installString, + [description stringByReplacingOccurrencesOfString:@"]]>" withString:@"]]" @"]]>" options:NSLiteralSearch range:NSMakeRange(0,description.length)]]; + + // store this crash report as user approved, so if it fails it will retry automatically + [_approvedCrashReports setObject:[NSNumber numberWithBool:YES] forKey:filename]; + + [self saveSettings]; + + BITHockeyLog(@"INFO: Sending crash reports:\n%@", crashXML); + [self sendCrashReportWithFilename:filename xml:crashXML attachment:attachment]; + } else { + // we cannot do anything with this report, so delete it + [self cleanCrashReportWithFilename:filename]; + } +} + + +#pragma mark - UIAlertView Delegate + +- (void)alertView:(UIAlertView *)alertView didDismissWithButtonIndex:(NSInteger)buttonIndex { + switch (buttonIndex) { + case 0: + [self handleUserInput:BITCrashManagerUserInputDontSend withUserProvidedMetaData:nil]; + break; + case 1: + [self handleUserInput:BITCrashManagerUserInputSend withUserProvidedMetaData:nil]; + break; + case 2: + [self handleUserInput:BITCrashManagerUserInputAlwaysSend withUserProvidedMetaData:nil]; + break; + } +} + + + + +#pragma mark - Networking + +- (NSURLRequest *)requestWithXML:(NSString*)xml attachment:(BITHockeyAttachment *)attachment { + NSString *postCrashPath = [NSString stringWithFormat:@"api/2/apps/%@/crashes", self.encodedAppIdentifier]; + + NSMutableURLRequest *request = [self.hockeyAppClient requestWithMethod:@"POST" + path:postCrashPath + parameters:nil]; + + [request setCachePolicy: NSURLRequestReloadIgnoringLocalCacheData]; + [request setValue:@"HockeySDK/iOS" forHTTPHeaderField:@"User-Agent"]; + [request setValue:@"gzip" forHTTPHeaderField:@"Accept-Encoding"]; + + NSString *boundary = @"----FOO"; + NSString *contentType = [NSString stringWithFormat:@"multipart/form-data; boundary=%@", boundary]; + [request setValue:contentType forHTTPHeaderField:@"Content-type"]; + + NSMutableData *postBody = [NSMutableData data]; + + [postBody appendData:[BITHockeyAppClient dataWithPostValue:BITHOCKEY_NAME + forKey:@"sdk" + boundary:boundary]]; + + [postBody appendData:[BITHockeyAppClient dataWithPostValue:BITHOCKEY_VERSION + forKey:@"sdk_version" + boundary:boundary]]; + + [postBody appendData:[BITHockeyAppClient dataWithPostValue:@"no" + forKey:@"feedbackEnabled" + boundary:boundary]]; + + [postBody appendData:[BITHockeyAppClient dataWithPostValue:[xml dataUsingEncoding:NSUTF8StringEncoding] + forKey:@"xml" + contentType:@"text/xml" + boundary:boundary + filename:@"crash.xml"]]; + + if (attachment && attachment.hockeyAttachmentData) { + NSString *attachmentFilename = attachment.filename; + if (!attachmentFilename) { + attachmentFilename = @"Attachment_0"; + } + [postBody appendData:[BITHockeyAppClient dataWithPostValue:attachment.hockeyAttachmentData + forKey:@"attachment0" + contentType:attachment.contentType + boundary:boundary + filename:attachmentFilename]]; + } + + [postBody appendData:[[NSString stringWithFormat:@"\r\n--%@--\r\n", boundary] dataUsingEncoding:NSUTF8StringEncoding]]; + + [request setHTTPBody:postBody]; + + return request; +} + +/** + * Send the XML data to the server + * + * Wraps the XML structure into a POST body and starts sending the data asynchronously + * + * @param xml The XML data that needs to be send to the server + */ +- (void)sendCrashReportWithFilename:(NSString *)filename xml:(NSString*)xml attachment:(BITHockeyAttachment *)attachment { + + NSURLRequest* request = [self requestWithXML:xml attachment:attachment]; + + __weak typeof (self) weakSelf = self; + BITHTTPOperation *operation = [self.hockeyAppClient + operationWithURLRequest:request + completion:^(BITHTTPOperation *operation, NSData* responseData, NSError *error) { + typeof (self) strongSelf = weakSelf; + + _sendingInProgress = NO; + + NSInteger statusCode = [operation.response statusCode]; + + if (nil == error) { + if (nil == responseData || [responseData length] == 0) { + error = [NSError errorWithDomain:kBITCrashErrorDomain + code:BITCrashAPIReceivedEmptyResponse + userInfo:@{ + NSLocalizedDescriptionKey: @"Sending failed with an empty response!" + } + ]; + } else if (statusCode >= 200 && statusCode < 400) { + [strongSelf cleanCrashReportWithFilename:filename]; + + // HockeyApp uses PList XML format + NSMutableDictionary *response = [NSPropertyListSerialization propertyListWithData:responseData + options:NSPropertyListMutableContainersAndLeaves + format:nil + error:&error]; + BITHockeyLog(@"INFO: Received API response: %@", response); + + if (strongSelf.delegate != nil && + [strongSelf.delegate respondsToSelector:@selector(crashManagerDidFinishSendingCrashReport:)]) { + [strongSelf.delegate crashManagerDidFinishSendingCrashReport:self]; + } + + // only if sending the crash report went successfully, continue with the next one (if there are more) + [strongSelf sendNextCrashReport]; + } else if (statusCode == 400) { + [strongSelf cleanCrashReportWithFilename:filename]; + + error = [NSError errorWithDomain:kBITCrashErrorDomain + code:BITCrashAPIAppVersionRejected + userInfo:@{ + NSLocalizedDescriptionKey: @"The server rejected receiving crash reports for this app version!" + } + ]; + } else { + error = [NSError errorWithDomain:kBITCrashErrorDomain + code:BITCrashAPIErrorWithStatusCode + userInfo:@{ + NSLocalizedDescriptionKey: [NSString stringWithFormat:@"Sending failed with status code: %li", (long)statusCode] + } + ]; + } + } + + if (error) { + if (strongSelf.delegate != nil && + [strongSelf.delegate respondsToSelector:@selector(crashManager:didFailWithError:)]) { + [strongSelf.delegate crashManager:self didFailWithError:error]; + } + + BITHockeyLog(@"ERROR: %@", [error localizedDescription]); + } + + }]; + + if (self.delegate != nil && [self.delegate respondsToSelector:@selector(crashManagerWillSendCrashReport:)]) { + [self.delegate crashManagerWillSendCrashReport:self]; + } + + BITHockeyLog(@"INFO: Sending crash reports started."); + + [self.hockeyAppClient enqeueHTTPOperation:operation]; +} + +- (NSTimeInterval)timeintervalCrashInLastSessionOccured { + return self.timeIntervalCrashInLastSessionOccurred; +} + +@end + +#endif /* HOCKEYSDK_FEATURE_CRASH_REPORTER */ + diff --git a/Pods/HockeySDK/Classes/BITCrashManagerDelegate.h b/Pods/HockeySDK/Classes/BITCrashManagerDelegate.h new file mode 100644 index 0000000..ab4d7b5 --- /dev/null +++ b/Pods/HockeySDK/Classes/BITCrashManagerDelegate.h @@ -0,0 +1,183 @@ +/* + * Author: Andreas Linde + * + * Copyright (c) 2012-2014 HockeyApp, Bit Stadium GmbH. + * All rights reserved. + * + * Permission is hereby granted, free of charge, to any person + * obtaining a copy of this software and associated documentation + * files (the "Software"), to deal in the Software without + * restriction, including without limitation the rights to use, + * copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following + * conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES + * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + */ + +#import + +@class BITCrashManager; +@class BITHockeyAttachment; + +/** + The `BITCrashManagerDelegate` formal protocol defines methods further configuring + the behaviour of `BITCrashManager`. + */ + +@protocol BITCrashManagerDelegate + +@optional + + +///----------------------------------------------------------------------------- +/// @name Additional meta data +///----------------------------------------------------------------------------- + +/** Return any log string based data the crash report being processed should contain + + @param crashManager The `BITCrashManager` instance invoking this delegate + @see attachmentForCrashManager: + @see userNameForCrashManager: + @see userEmailForCrashManager: + */ +-(NSString *)applicationLogForCrashManager:(BITCrashManager *)crashManager; + + +/** Return a BITHockeyAttachment object providing an NSData object the crash report + being processed should contain + + Please limit your attachments to reasonable files to avoid high traffic costs for your users. + + Example implementation: + + - (BITHockeyAttachment *)attachmentForCrashManager:(BITCrashManager *)crashManager { + NSData *data = [NSData dataWithContentsOfURL:@"mydatafile"]; + + BITHockeyAttachment *attachment = [[BITHockeyAttachment alloc] initWithFilename:@"myfile.data" + hockeyAttachmentData:data + contentType:@"'application/octet-stream"]; + return attachment; + } + + @param crashManager The `BITCrashManager` instance invoking this delegate + @see BITHockeyAttachment + @see applicationLogForCrashManager: + @see userNameForCrashManager: + @see userEmailForCrashManager: + */ +-(BITHockeyAttachment *)attachmentForCrashManager:(BITCrashManager *)crashManager; + + + +/** Return the user name or userid that should be send along each crash report + + @param crashManager The `BITCrashManager` instance invoking this delegate + @see applicationLogForCrashManager: + @see attachmentForCrashManager: + @see userEmailForCrashManager: + @deprecated Please use `BITHockeyManagerDelegate userNameForHockeyManager:componentManager:` instead + @warning When returning a non nil value, crash reports are not anonymous any + more and the alerts will not show the "anonymous" word! + */ +-(NSString *)userNameForCrashManager:(BITCrashManager *)crashManager DEPRECATED_ATTRIBUTE; + + + +/** Return the users email address that should be send along each crash report + + @param crashManager The `BITCrashManager` instance invoking this delegate + @see applicationLogForCrashManager: + @see attachmentForCrashManager: + @see userNameForCrashManager: + @deprecated Please use `BITHockeyManagerDelegate userEmailForHockeyManager:componentManager:` instead + @warning When returning a non nil value, crash reports are not anonymous any + more and the alerts will not show the "anonymous" word! + */ +-(NSString *)userEmailForCrashManager:(BITCrashManager *)crashManager DEPRECATED_ATTRIBUTE; + + + +///----------------------------------------------------------------------------- +/// @name Alert +///----------------------------------------------------------------------------- + +/** Invoked before the user is asked to send a crash report, so you can do additional actions. + E.g. to make sure not to ask the user for an app rating :) + + @param crashManager The `BITCrashManager` instance invoking this delegate + */ +-(void)crashManagerWillShowSubmitCrashReportAlert:(BITCrashManager *)crashManager; + + +/** Invoked after the user did choose _NOT_ to send a crash in the alert + + @param crashManager The `BITCrashManager` instance invoking this delegate + */ +-(void)crashManagerWillCancelSendingCrashReport:(BITCrashManager *)crashManager; + + +/** Invoked after the user did choose to send crashes always in the alert + + @param crashManager The `BITCrashManager` instance invoking this delegate + */ +-(void)crashManagerWillSendCrashReportsAlways:(BITCrashManager *)crashManager; + + +///----------------------------------------------------------------------------- +/// @name Networking +///----------------------------------------------------------------------------- + +/** Invoked right before sending crash reports will start + + @param crashManager The `BITCrashManager` instance invoking this delegate + */ +- (void)crashManagerWillSendCrashReport:(BITCrashManager *)crashManager; + +/** Invoked after sending crash reports failed + + @param crashManager The `BITCrashManager` instance invoking this delegate + @param error The error returned from the NSURLConnection call or `kBITCrashErrorDomain` + with reason of type `BITCrashErrorReason`. + */ +- (void)crashManager:(BITCrashManager *)crashManager didFailWithError:(NSError *)error; + +/** Invoked after sending crash reports succeeded + + @param crashManager The `BITCrashManager` instance invoking this delegate + */ +- (void)crashManagerDidFinishSendingCrashReport:(BITCrashManager *)crashManager; + +///----------------------------------------------------------------------------- +/// @name Experimental +///----------------------------------------------------------------------------- + +/** Define if a report should be considered as a crash report + + Due to the risk, that these reports may be false positives, this delegates allows the + developer to influence which reports detected by the heuristic should actually be reported. + + The developer can use the following property to get more information about the crash scenario: + - `[BITCrashManager didReceiveMemoryWarningInLastSession]`: Did the app receive a low memory warning + + This allows only reports to be considered where at least one low memory warning notification was + received by the app to reduce to possibility of having false positives. + + @param crashManager The `BITCrashManager` instance invoking this delegate + @return `YES` if the heuristic based detected report should be reported, otherwise `NO` + @see `[BITCrashManager didReceiveMemoryWarningInLastSession]` + */ +-(BOOL)considerAppNotTerminatedCleanlyReportForCrashManager:(BITCrashManager *)crashManager; + +@end diff --git a/Pods/HockeySDK/Classes/BITCrashManagerPrivate.h b/Pods/HockeySDK/Classes/BITCrashManagerPrivate.h new file mode 100644 index 0000000..c1b6362 --- /dev/null +++ b/Pods/HockeySDK/Classes/BITCrashManagerPrivate.h @@ -0,0 +1,109 @@ +/* + * Author: Andreas Linde + * + * Copyright (c) 2013-2014 HockeyApp, Bit Stadium GmbH. + * All rights reserved. + * + * Permission is hereby granted, free of charge, to any person + * obtaining a copy of this software and associated documentation + * files (the "Software"), to deal in the Software without + * restriction, including without limitation the rights to use, + * copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following + * conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES + * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + */ + + +#import "HockeySDK.h" + +#if HOCKEYSDK_FEATURE_CRASH_REPORTER + +#import + +@class BITHockeyAppClient; + +@interface BITCrashManager () { +} + + +///----------------------------------------------------------------------------- +/// @name Delegate +///----------------------------------------------------------------------------- + +/** + Sets the optional `BITCrashManagerDelegate` delegate. + + The delegate is automatically set by using `[BITHockeyManager setDelegate:]`. You + should not need to set this delegate individually. + + @see `[BITHockeyManager setDelegate:]` + */ +@property (nonatomic, weak) id delegate; + +/** + * must be set + */ +@property (nonatomic, strong) BITHockeyAppClient *hockeyAppClient; + +@property (nonatomic) NSUncaughtExceptionHandler *exceptionHandler; + +@property (nonatomic, strong) NSFileManager *fileManager; + +@property (nonatomic, strong) BITPLCrashReporter *plCrashReporter; + +@property (nonatomic) NSString *lastCrashFilename; + +@property (nonatomic, copy, setter = setAlertViewHandler:) BITCustomAlertViewHandler alertViewHandler; + +@property (nonatomic, strong) NSString *crashesDir; + +#if HOCKEYSDK_FEATURE_AUTHENTICATOR + +// Only set via BITAuthenticator +@property (nonatomic, strong) NSString *installationIdentification; + +// Only set via BITAuthenticator +@property (nonatomic) BITAuthenticatorIdentificationType installationIdentificationType; + +// Only set via BITAuthenticator +@property (nonatomic) BOOL installationIdentified; + +#endif /* HOCKEYSDK_FEATURE_AUTHENTICATOR */ + +- (void)cleanCrashReports; + +- (NSString *)userIDForCrashReport; +- (NSString *)userEmailForCrashReport; +- (NSString *)userNameForCrashReport; + +- (void)handleCrashReport; +- (BOOL)hasPendingCrashReport; +- (NSString *)firstNotApprovedCrashReport; + +- (void)persistUserProvidedMetaData:(BITCrashMetaData *)userProvidedMetaData; +- (void)persistAttachment:(BITHockeyAttachment *)attachment withFilename:(NSString *)filename; + +- (BITHockeyAttachment *)attachmentForCrashReport:(NSString *)filename; + +- (void)invokeDelayedProcessing; +- (void)sendNextCrashReport; + +- (void)setLastCrashFilename:(NSString *)lastCrashFilename; + +@end + + +#endif /* HOCKEYSDK_FEATURE_CRASH_REPORTER */ diff --git a/Pods/HockeySDK/Classes/BITCrashMetaData.h b/Pods/HockeySDK/Classes/BITCrashMetaData.h new file mode 100644 index 0000000..a7c5a96 --- /dev/null +++ b/Pods/HockeySDK/Classes/BITCrashMetaData.h @@ -0,0 +1,57 @@ +/* + * Author: Andreas Linde + * + * Copyright (c) 2012-2014 HockeyApp, Bit Stadium GmbH. + * All rights reserved. + * + * Permission is hereby granted, free of charge, to any person + * obtaining a copy of this software and associated documentation + * files (the "Software"), to deal in the Software without + * restriction, including without limitation the rights to use, + * copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following + * conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES + * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + */ + +#import + + +/** + * This class provides properties that can be attached to a crash report via a custom alert view flow + */ +@interface BITCrashMetaData : NSObject + +/** + * User provided description that should be attached to the crash report as plain text + */ +@property (nonatomic, copy) NSString *userDescription; + +/** + * User name that should be attached to the crash report + */ +@property (nonatomic, copy) NSString *userName; + +/** + * User email that should be attached to the crash report + */ +@property (nonatomic, copy) NSString *userEmail; + +/** + * User ID that should be attached to the crash report + */ +@property (nonatomic, copy) NSString *userID; + +@end diff --git a/Pods/HockeySDK/Classes/BITCrashMetaData.m b/Pods/HockeySDK/Classes/BITCrashMetaData.m new file mode 100644 index 0000000..824d149 --- /dev/null +++ b/Pods/HockeySDK/Classes/BITCrashMetaData.m @@ -0,0 +1,34 @@ +/* + * Author: Andreas Linde + * + * Copyright (c) 2012-2014 HockeyApp, Bit Stadium GmbH. + * All rights reserved. + * + * Permission is hereby granted, free of charge, to any person + * obtaining a copy of this software and associated documentation + * files (the "Software"), to deal in the Software without + * restriction, including without limitation the rights to use, + * copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following + * conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES + * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + */ + +#import "BITCrashMetaData.h" + + +@implementation BITCrashMetaData + +@end diff --git a/Pods/HockeySDK/Classes/BITCrashReportTextFormatter.h b/Pods/HockeySDK/Classes/BITCrashReportTextFormatter.h new file mode 100644 index 0000000..c75d93c --- /dev/null +++ b/Pods/HockeySDK/Classes/BITCrashReportTextFormatter.h @@ -0,0 +1,75 @@ +/* + * Authors: + * Landon Fuller + * Damian Morris + * Andreas Linde + * + * Copyright (c) 2008-2013 Plausible Labs Cooperative, Inc. + * Copyright (c) 2010 MOSO Corporation, Pty Ltd. + * Copyright (c) 2012-2014 HockeyApp, Bit Stadium GmbH. + * All rights reserved. + * + * Permission is hereby granted, free of charge, to any person + * obtaining a copy of this software and associated documentation + * files (the "Software"), to deal in the Software without + * restriction, including without limitation the rights to use, + * copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following + * conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES + * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + */ + + +#import + +@class PLCrashReport; + + +// Dictionary keys for array elements returned by arrayOfAppUUIDsForCrashReport: +#ifndef kBITBinaryImageKeyUUID +#define kBITBinaryImageKeyUUID @"uuid" +#define kBITBinaryImageKeyArch @"arch" +#define kBITBinaryImageKeyType @"type" +#endif + + +/** + * HockeySDK Crash Reporter error domain + */ +typedef NS_ENUM (NSInteger, BITBinaryImageType) { + /** + * App binary + */ + BITBinaryImageTypeAppBinary, + /** + * App provided framework + */ + BITBinaryImageTypeAppFramework, + /** + * Image not related to the app + */ + BITBinaryImageTypeOther +}; + + +@interface BITCrashReportTextFormatter : NSObject { +} + ++ (NSString *)stringValueForCrashReport:(PLCrashReport *)report crashReporterKey:(NSString *)crashReporterKey; ++ (NSArray *)arrayOfAppUUIDsForCrashReport:(PLCrashReport *)report; ++ (NSString *)bit_archNameFromCPUType:(uint64_t)cpuType subType:(uint64_t)subType; ++ (BITBinaryImageType)bit_imageTypeForImagePath:(NSString *)imagePath processPath:(NSString *)processPath; + +@end diff --git a/Pods/HockeySDK/Classes/BITCrashReportTextFormatter.m b/Pods/HockeySDK/Classes/BITCrashReportTextFormatter.m new file mode 100644 index 0000000..3c95c1a --- /dev/null +++ b/Pods/HockeySDK/Classes/BITCrashReportTextFormatter.m @@ -0,0 +1,852 @@ +/* + * Authors: + * Landon Fuller + * Damian Morris + * Andreas Linde + * + * Copyright (c) 2008-2013 Plausible Labs Cooperative, Inc. + * Copyright (c) 2010 MOSO Corporation, Pty Ltd. + * Copyright (c) 2012-2014 HockeyApp, Bit Stadium GmbH. + * All rights reserved. + * + * Permission is hereby granted, free of charge, to any person + * obtaining a copy of this software and associated documentation + * files (the "Software"), to deal in the Software without + * restriction, including without limitation the rights to use, + * copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following + * conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES + * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + */ + +#import + +#import +#import +#import +#import +#import + +#if defined(__OBJC2__) +#define SEL_NAME_SECT "__objc_methname" +#else +#define SEL_NAME_SECT "__cstring" +#endif + +#import "BITCrashReportTextFormatter.h" + +/* + * XXX: The ARM64 CPU type, and ARM_V7S and ARM_V8 Mach-O CPU subtypes are not + * defined in the Mac OS X 10.8 headers. + */ +#ifndef CPU_SUBTYPE_ARM_V7S +# define CPU_SUBTYPE_ARM_V7S 11 +#endif + +#ifndef CPU_TYPE_ARM64 +#define CPU_TYPE_ARM64 (CPU_TYPE_ARM | CPU_ARCH_ABI64) +#endif + +#ifndef CPU_SUBTYPE_ARM_V8 +# define CPU_SUBTYPE_ARM_V8 13 +#endif + + +/** + * Sort PLCrashReportBinaryImageInfo instances by their starting address. + */ +static NSInteger bit_binaryImageSort(id binary1, id binary2, void *context) { + uint64_t addr1 = [binary1 imageBaseAddress]; + uint64_t addr2 = [binary2 imageBaseAddress]; + + if (addr1 < addr2) + return NSOrderedAscending; + else if (addr1 > addr2) + return NSOrderedDescending; + else + return NSOrderedSame; +} + +/** + * Validates that the given @a string terminates prior to @a limit. + */ +static const char *safer_string_read (const char *string, const char *limit) { + const char *p = string; + do { + if (p >= limit || p+1 >= limit) { + return NULL; + } + p++; + } while (*p != '\0'); + + return string; +} + +/* + * The relativeAddress should be ` - `, extracted from the crash report's thread + * and binary image list. + * + * For the (architecture-specific) registers to attempt, see: + * http://sealiesoftware.com/blog/archive/2008/09/22/objc_explain_So_you_crashed_in_objc_msgSend.html + */ +static const char *findSEL (const char *imageName, NSString *imageUUID, uint64_t relativeAddress) { + unsigned int images_count = _dyld_image_count(); + for (unsigned int i = 0; i < images_count; ++i) { + intptr_t slide = _dyld_get_image_vmaddr_slide(i); + const struct mach_header *header = _dyld_get_image_header(i); + const struct mach_header_64 *header64 = (const struct mach_header_64 *) header; + const char *name = _dyld_get_image_name(i); + + /* Image disappeared? */ + if (name == NULL || header == NULL) + continue; + + /* Check if this is the correct image. If we were being even more careful, we'd check the LC_UUID */ + if (strcmp(name, imageName) != 0) + continue; + + /* Determine whether this is a 64-bit or 32-bit Mach-O file */ + BOOL m64 = NO; + if (header->magic == MH_MAGIC_64) + m64 = YES; + + NSString *uuidString = nil; + const uint8_t *command; + uint32_t ncmds; + + if (m64) { + command = (const uint8_t *)(header64 + 1); + ncmds = header64->ncmds; + } else { + command = (const uint8_t *)(header + 1); + ncmds = header->ncmds; + } + for (uint32_t idx = 0; idx < ncmds; ++idx) { + const struct load_command *load_command = (const struct load_command *)command; + if (load_command->cmd == LC_UUID) { + const struct uuid_command *uuid_command = (const struct uuid_command *)command; + const uint8_t *uuid = uuid_command->uuid; + uuidString = [[NSString stringWithFormat:@"%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X", + uuid[0], uuid[1], uuid[2], uuid[3], + uuid[4], uuid[5], uuid[6], uuid[7], + uuid[8], uuid[9], uuid[10], uuid[11], + uuid[12], uuid[13], uuid[14], uuid[15]] + lowercaseString]; + break; + } else { + command += load_command->cmdsize; + } + } + + // Check if this is the correct image by comparing the UUIDs + if (!uuidString || ![uuidString isEqualToString:imageUUID]) + continue; + + /* Fetch the __objc_methname section */ + const char *methname_sect; + uint64_t methname_sect_size; + if (m64) { + methname_sect = getsectdatafromheader_64(header64, SEG_TEXT, SEL_NAME_SECT, &methname_sect_size); + } else { + uint32_t meth_size_32; + methname_sect = getsectdatafromheader(header, SEG_TEXT, SEL_NAME_SECT, &meth_size_32); + methname_sect_size = meth_size_32; + } + + /* Apply the slide, as per getsectdatafromheader(3) */ + methname_sect += slide; + + if (methname_sect == NULL) { + return NULL; + } + + /* Calculate the target address within this image, and verify that it is within __objc_methname */ + const char *target = ((const char *)header) + relativeAddress; + const char *limit = methname_sect + methname_sect_size; + if (target < methname_sect || target >= limit) { + return NULL; + } + + /* Read the actual method name */ + return safer_string_read(target, limit); + } + + return NULL; +} + +/** + * Formats PLCrashReport data as human-readable text. + */ +@implementation BITCrashReportTextFormatter + + +/** + * Formats the provided @a report as human-readable text in the given @a textFormat, and return + * the formatted result as a string. + * + * @param report The report to format. + * @param textFormat The text format to use. + * + * @return Returns the formatted result on success, or nil if an error occurs. + */ ++ (NSString *)stringValueForCrashReport:(BITPLCrashReport *)report crashReporterKey:(NSString *)crashReporterKey { + NSMutableString* text = [NSMutableString string]; + boolean_t lp64 = true; // quiesce GCC uninitialized value warning + + /* Header */ + + /* Map to apple style OS name */ + NSString *osName; + switch (report.systemInfo.operatingSystem) { + case PLCrashReportOperatingSystemMacOSX: + osName = @"Mac OS X"; + break; + case PLCrashReportOperatingSystemiPhoneOS: + osName = @"iPhone OS"; + break; + case PLCrashReportOperatingSystemiPhoneSimulator: + osName = @"Mac OS X"; + break; + default: + osName = [NSString stringWithFormat: @"Unknown (%d)", report.systemInfo.operatingSystem]; + break; + } + + /* Map to Apple-style code type, and mark whether architecture is LP64 (64-bit) */ + NSString *codeType = nil; + { + /* Attempt to derive the code type from the binary images */ + for (BITPLCrashReportBinaryImageInfo *image in report.images) { + /* Skip images with no specified type */ + if (image.codeType == nil) + continue; + + /* Skip unknown encodings */ + if (image.codeType.typeEncoding != PLCrashReportProcessorTypeEncodingMach) + continue; + + switch (image.codeType.type) { + case CPU_TYPE_ARM: + codeType = @"ARM"; + lp64 = false; + break; + + case CPU_TYPE_ARM64: + codeType = @"ARM-64"; + lp64 = true; + break; + + case CPU_TYPE_X86: + codeType = @"X86"; + lp64 = false; + break; + + case CPU_TYPE_X86_64: + codeType = @"X86-64"; + lp64 = true; + break; + + case CPU_TYPE_POWERPC: + codeType = @"PPC"; + lp64 = false; + break; + + default: + // Do nothing, handled below. + break; + } + + /* Stop immediately if code type was discovered */ + if (codeType != nil) + break; + } + + /* If we were unable to determine the code type, fall back on the legacy architecture value. */ + if (codeType == nil) { + switch (report.systemInfo.architecture) { + case PLCrashReportArchitectureARMv6: + case PLCrashReportArchitectureARMv7: + codeType = @"ARM"; + lp64 = false; + break; + case PLCrashReportArchitectureX86_32: + codeType = @"X86"; + lp64 = false; + break; + case PLCrashReportArchitectureX86_64: + codeType = @"X86-64"; + lp64 = true; + break; + case PLCrashReportArchitecturePPC: + codeType = @"PPC"; + lp64 = false; + break; + default: + codeType = [NSString stringWithFormat: @"Unknown (%d)", report.systemInfo.architecture]; + lp64 = true; + break; + } + } + } + + { + NSString *reporterKey = @"???"; + if (crashReporterKey && [crashReporterKey length] > 0) + reporterKey = crashReporterKey; + + NSString *hardwareModel = @"???"; + if (report.hasMachineInfo && report.machineInfo.modelName != nil) + hardwareModel = report.machineInfo.modelName; + + NSString *incidentIdentifier = @"???"; + if (report.uuidRef != NULL) { + incidentIdentifier = (NSString *) CFBridgingRelease(CFUUIDCreateString(NULL, report.uuidRef)); + } + + [text appendFormat: @"Incident Identifier: %@\n", incidentIdentifier]; + [text appendFormat: @"CrashReporter Key: %@\n", reporterKey]; + [text appendFormat: @"Hardware Model: %@\n", hardwareModel]; + } + + /* Application and process info */ + { + NSString *unknownString = @"???"; + + NSString *processName = unknownString; + NSString *processId = unknownString; + NSString *processPath = unknownString; + NSString *parentProcessName = unknownString; + NSString *parentProcessId = unknownString; + + /* Process information was not available in earlier crash report versions */ + if (report.hasProcessInfo) { + /* Process Name */ + if (report.processInfo.processName != nil) + processName = report.processInfo.processName; + + /* PID */ + processId = [[NSNumber numberWithUnsignedInteger: report.processInfo.processID] stringValue]; + + /* Process Path */ + if (report.processInfo.processPath != nil) { + processPath = report.processInfo.processPath; + + /* Remove username from the path */ + if ([processPath length] > 0) + processPath = [processPath stringByAbbreviatingWithTildeInPath]; + if ([processPath length] > 0 && [[processPath substringToIndex:1] isEqualToString:@"~"]) + processPath = [NSString stringWithFormat:@"/Users/USER%@", [processPath substringFromIndex:1]]; + } + + /* Parent Process Name */ + if (report.processInfo.parentProcessName != nil) + parentProcessName = report.processInfo.parentProcessName; + + /* Parent Process ID */ + parentProcessId = [@(report.processInfo.parentProcessID) stringValue]; + } + + [text appendFormat: @"Process: %@ [%@]\n", processName, processId]; + [text appendFormat: @"Path: %@\n", processPath]; + [text appendFormat: @"Identifier: %@\n", report.applicationInfo.applicationIdentifier]; + [text appendFormat: @"Version: %@\n", report.applicationInfo.applicationVersion]; + [text appendFormat: @"Code Type: %@\n", codeType]; + [text appendFormat: @"Parent Process: %@ [%@]\n", parentProcessName, parentProcessId]; + } + + [text appendString: @"\n"]; + + /* System info */ + { + NSString *osBuild = @"???"; + if (report.systemInfo.operatingSystemBuild != nil) + osBuild = report.systemInfo.operatingSystemBuild; + + NSLocale *enUSPOSIXLocale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US_POSIX"]; + NSDateFormatter *rfc3339Formatter = [[NSDateFormatter alloc] init]; + [rfc3339Formatter setLocale:enUSPOSIXLocale]; + [rfc3339Formatter setDateFormat:@"yyyy'-'MM'-'dd'T'HH':'mm':'ss'Z'"]; + [rfc3339Formatter setTimeZone:[NSTimeZone timeZoneForSecondsFromGMT:0]]; + + [text appendFormat: @"Date/Time: %@\n", [rfc3339Formatter stringFromDate:report.systemInfo.timestamp]]; + if ([report.processInfo respondsToSelector:@selector(processStartTime)]) { + if (report.systemInfo.timestamp && report.processInfo.processStartTime) { + [text appendFormat: @"Launch Time: %@\n", [rfc3339Formatter stringFromDate:report.processInfo.processStartTime]]; + } + } + [text appendFormat: @"OS Version: %@ %@ (%@)\n", osName, report.systemInfo.operatingSystemVersion, osBuild]; + [text appendFormat: @"Report Version: 104\n"]; + } + + [text appendString: @"\n"]; + + /* Exception code */ + [text appendFormat: @"Exception Type: %@\n", report.signalInfo.name]; + [text appendFormat: @"Exception Codes: %@ at 0x%" PRIx64 "\n", report.signalInfo.code, report.signalInfo.address]; + + for (BITPLCrashReportThreadInfo *thread in report.threads) { + if (thread.crashed) { + [text appendFormat: @"Crashed Thread: %ld\n", (long) thread.threadNumber]; + break; + } + } + + [text appendString: @"\n"]; + + BITPLCrashReportThreadInfo *crashed_thread = nil; + for (BITPLCrashReportThreadInfo *thread in report.threads) { + if (thread.crashed) { + crashed_thread = thread; + break; + } + } + + /* Uncaught Exception */ + if (report.hasExceptionInfo) { + [text appendFormat: @"Application Specific Information:\n"]; + [text appendFormat: @"*** Terminating app due to uncaught exception '%@', reason: '%@'\n", + report.exceptionInfo.exceptionName, report.exceptionInfo.exceptionReason]; + + [text appendString: @"\n"]; + } else if (crashed_thread != nil) { + // try to find the selector in case this was a crash in obj_msgSend + // we search this whether the crash happened in obj_msgSend or not since we don't have the symbol! + + NSString *foundSelector = nil; + + // search the registers value for the current arch +#if TARGET_IPHONE_SIMULATOR + if (lp64) { + foundSelector = [[self class] selectorForRegisterWithName:@"rsi" ofThread:crashed_thread report:report]; + if (foundSelector == NULL) + foundSelector = [[self class] selectorForRegisterWithName:@"rdx" ofThread:crashed_thread report:report]; + } else { + foundSelector = [[self class] selectorForRegisterWithName:@"ecx" ofThread:crashed_thread report:report]; + } +#else + if (lp64) { + foundSelector = [[self class] selectorForRegisterWithName:@"x1" ofThread:crashed_thread report:report]; + } else { + foundSelector = [[self class] selectorForRegisterWithName:@"r1" ofThread:crashed_thread report:report]; + if (foundSelector == NULL) + foundSelector = [[self class] selectorForRegisterWithName:@"r2" ofThread:crashed_thread report:report]; + } +#endif + + if (foundSelector) { + [text appendFormat: @"Application Specific Information:\n"]; + [text appendFormat: @"Selector name found in current argument registers: %@\n", foundSelector]; + [text appendString: @"\n"]; + } + } + + /* If an exception stack trace is available, output an Apple-compatible backtrace. */ + if (report.exceptionInfo != nil && report.exceptionInfo.stackFrames != nil && [report.exceptionInfo.stackFrames count] > 0) { + BITPLCrashReportExceptionInfo *exception = report.exceptionInfo; + + /* Create the header. */ + [text appendString: @"Last Exception Backtrace:\n"]; + + /* Write out the frames. In raw reports, Apple writes this out as a simple list of PCs. In the minimally + * post-processed report, Apple writes this out as full frame entries. We use the latter format. */ + for (NSUInteger frame_idx = 0; frame_idx < [exception.stackFrames count]; frame_idx++) { + BITPLCrashReportStackFrameInfo *frameInfo = [exception.stackFrames objectAtIndex: frame_idx]; + [text appendString: [[self class] bit_formatStackFrame: frameInfo frameIndex: frame_idx report: report lp64: lp64]]; + } + [text appendString: @"\n"]; + } + + /* Threads */ + NSInteger maxThreadNum = 0; + for (BITPLCrashReportThreadInfo *thread in report.threads) { + if (thread.crashed) { + [text appendFormat: @"Thread %ld Crashed:\n", (long) thread.threadNumber]; + } else { + [text appendFormat: @"Thread %ld:\n", (long) thread.threadNumber]; + } + for (NSUInteger frame_idx = 0; frame_idx < [thread.stackFrames count]; frame_idx++) { + BITPLCrashReportStackFrameInfo *frameInfo = [thread.stackFrames objectAtIndex: frame_idx]; + [text appendString: [[self class] bit_formatStackFrame: frameInfo frameIndex: frame_idx report: report lp64: lp64]]; + } + [text appendString: @"\n"]; + + /* Track the highest thread number */ + maxThreadNum = MAX(maxThreadNum, thread.threadNumber); + } + + /* Registers */ + if (crashed_thread != nil) { + [text appendFormat: @"Thread %ld crashed with %@ Thread State:\n", (long) crashed_thread.threadNumber, codeType]; + + int regColumn = 0; + for (BITPLCrashReportRegisterInfo *reg in crashed_thread.registers) { + NSString *reg_fmt; + + /* Use 32-bit or 64-bit fixed width format for the register values */ + if (lp64) + reg_fmt = @"%6s: 0x%016" PRIx64 " "; + else + reg_fmt = @"%6s: 0x%08" PRIx64 " "; + + /* Remap register names to match Apple's crash reports */ + NSString *regName = reg.registerName; + if (report.machineInfo != nil && report.machineInfo.processorInfo.typeEncoding == PLCrashReportProcessorTypeEncodingMach) { + BITPLCrashReportProcessorInfo *pinfo = report.machineInfo.processorInfo; + cpu_type_t arch_type = pinfo.type & ~CPU_ARCH_MASK; + + /* Apple uses 'ip' rather than 'r12' on ARM */ + if (arch_type == CPU_TYPE_ARM && [regName isEqual: @"r12"]) { + regName = @"ip"; + } + } + [text appendFormat: reg_fmt, [regName UTF8String], reg.registerValue]; + + regColumn++; + if (regColumn == 4) { + [text appendString: @"\n"]; + regColumn = 0; + } + } + + if (regColumn != 0) + [text appendString: @"\n"]; + + [text appendString: @"\n"]; + } + + /* Images. The iPhone crash report format sorts these in ascending order, by the base address */ + [text appendString: @"Binary Images:\n"]; + for (BITPLCrashReportBinaryImageInfo *imageInfo in [report.images sortedArrayUsingFunction: bit_binaryImageSort context: nil]) { + NSString *uuid; + /* Fetch the UUID if it exists */ + if (imageInfo.hasImageUUID) + uuid = imageInfo.imageUUID; + else + uuid = @"???"; + + /* Determine the architecture string */ + NSString *archName = [[self class] bit_archNameFromImageInfo:imageInfo]; + + /* Determine if this is the main executable or an app specific framework*/ + NSString *binaryDesignator = @" "; + BITBinaryImageType imageType = [[self class] bit_imageTypeForImagePath:imageInfo.imageName + processPath:report.processInfo.processPath]; + if (imageType != BITBinaryImageTypeOther) { + binaryDesignator = @"+"; + } + + /* base_address - terminating_address [designator]file_name arch file_path */ + NSString *fmt = nil; + if (lp64) { + fmt = @"%18#" PRIx64 " - %18#" PRIx64 " %@%@ %@ <%@> %@\n"; + } else { + fmt = @"%10#" PRIx64 " - %10#" PRIx64 " %@%@ %@ <%@> %@\n"; + } + + /* Remove username from the image path */ + NSString *imageName = @""; + if (imageInfo.imageName && [imageInfo.imageName length] > 0) + imageName = [imageInfo.imageName stringByAbbreviatingWithTildeInPath]; + if ([imageName length] > 0 && [[imageName substringToIndex:1] isEqualToString:@"~"]) + imageName = [NSString stringWithFormat:@"/Users/USER%@", [imageName substringFromIndex:1]]; + + [text appendFormat: fmt, + imageInfo.imageBaseAddress, + imageInfo.imageBaseAddress + (MAX(1, imageInfo.imageSize) - 1), // The Apple format uses an inclusive range + binaryDesignator, + [imageInfo.imageName lastPathComponent], + archName, + uuid, + imageName]; + } + + + return text; +} + +/** + * Return the selector string of a given register name + * + * @param regName The name of the register to use for getting the address + * @param thread The crashed thread + * @param images NSArray of binary images + * + * @return The selector as a C string or NULL if no selector was found + */ ++ (NSString *)selectorForRegisterWithName:(NSString *)regName ofThread:(BITPLCrashReportThreadInfo *)thread report:(BITPLCrashReport *)report { + // get the address for the register + uint64_t regAddress = 0; + + for (BITPLCrashReportRegisterInfo *reg in thread.registers) { + if ([reg.registerName isEqualToString:regName]) { + regAddress = reg.registerValue; + break; + } + } + + if (regAddress == 0) + return nil; + + BITPLCrashReportBinaryImageInfo *imageForRegAddress = [report imageForAddress:regAddress]; + if (imageForRegAddress) { + // get the SEL + const char *foundSelector = findSEL([imageForRegAddress.imageName UTF8String], imageForRegAddress.imageUUID, regAddress - (uint64_t)imageForRegAddress.imageBaseAddress); + + if (foundSelector != NULL) { + return [NSString stringWithUTF8String:foundSelector]; + } + } + + return nil; +} + + +/** + * Returns an array of app UUIDs and their architecture + * As a dictionary for each element + * + * @param report The report to format. + * + * @return Returns the formatted result on success, or nil if an error occurs. + */ ++ (NSArray *)arrayOfAppUUIDsForCrashReport:(BITPLCrashReport *)report { + NSMutableArray* appUUIDs = [NSMutableArray array]; + + /* Images. The iPhone crash report format sorts these in ascending order, by the base address */ + for (BITPLCrashReportBinaryImageInfo *imageInfo in [report.images sortedArrayUsingFunction: bit_binaryImageSort context: nil]) { + NSString *uuid; + /* Fetch the UUID if it exists */ + if (imageInfo.hasImageUUID) + uuid = imageInfo.imageUUID; + else + uuid = @"???"; + + /* Determine the architecture string */ + NSString *archName = [[self class] bit_archNameFromImageInfo:imageInfo]; + + /* Determine if this is the app executable or app specific framework */ + BITBinaryImageType imageType = [[self class] bit_imageTypeForImagePath:imageInfo.imageName + processPath:report.processInfo.processPath]; + NSString *imageTypeString = @""; + + if (imageType != BITBinaryImageTypeOther) { + if (imageType == BITBinaryImageTypeAppBinary) { + imageTypeString = @"app"; + } else { + imageTypeString = @"framework"; + } + + [appUUIDs addObject:@{kBITBinaryImageKeyUUID: uuid, + kBITBinaryImageKeyArch: archName, + kBITBinaryImageKeyType: imageTypeString} + ]; + } + } + + return appUUIDs; +} + +/* Determine if in binary image is the app executable or app specific framework */ ++ (BITBinaryImageType)bit_imageTypeForImagePath:(NSString *)imagePath processPath:(NSString *)processPath { + BITBinaryImageType imageType = BITBinaryImageTypeOther; + + NSString *standardizedImagePath = [[imagePath stringByStandardizingPath] lowercaseString]; + imagePath = [imagePath lowercaseString]; + processPath = [processPath lowercaseString]; + + NSRange appRange = [standardizedImagePath rangeOfString: @".app/"]; + + // Exclude iOS swift dylibs. These are provided as part of the app binary by Xcode for now, but we never get a dSYM for those. + NSRange swiftLibRange = [standardizedImagePath rangeOfString:@"frameworks/libswift"]; + BOOL dylibSuffix = [standardizedImagePath hasSuffix:@".dylib"]; + + if (appRange.location != NSNotFound && !(swiftLibRange.location != NSNotFound && dylibSuffix)) { + NSString *appBundleContentsPath = [standardizedImagePath substringToIndex:appRange.location + 5]; + + if ([standardizedImagePath isEqual: processPath] || + // Fix issue with iOS 8 `stringByStandardizingPath` removing leading `/private` path (when not running in the debugger or simulator only) + [imagePath hasPrefix:processPath]) { + imageType = BITBinaryImageTypeAppBinary; + } else if ([standardizedImagePath hasPrefix:appBundleContentsPath] || + // Fix issue with iOS 8 `stringByStandardizingPath` removing leading `/private` path (when not running in the debugger or simulator only) + [imagePath hasPrefix:appBundleContentsPath]) { + imageType = BITBinaryImageTypeAppFramework; + } + } + + return imageType; +} + ++ (NSString *)bit_archNameFromImageInfo:(BITPLCrashReportBinaryImageInfo *)imageInfo +{ + NSString *archName = @"???"; + if (imageInfo.codeType != nil && imageInfo.codeType.typeEncoding == PLCrashReportProcessorTypeEncodingMach) { + archName = [BITCrashReportTextFormatter bit_archNameFromCPUType:imageInfo.codeType.type subType:imageInfo.codeType.subtype]; + } + + return archName; +} + ++ (NSString *)bit_archNameFromCPUType:(uint64_t)cpuType subType:(uint64_t)subType { + NSString *archName = @"???"; + switch (cpuType) { + case CPU_TYPE_ARM: + /* Apple includes subtype for ARM binaries. */ + switch (subType) { + case CPU_SUBTYPE_ARM_V6: + archName = @"armv6"; + break; + + case CPU_SUBTYPE_ARM_V7: + archName = @"armv7"; + break; + + case CPU_SUBTYPE_ARM_V7S: + archName = @"armv7s"; + break; + + default: + archName = @"arm-unknown"; + break; + } + break; + + case CPU_TYPE_ARM64: + /* Apple includes subtype for ARM64 binaries. */ + switch (subType) { + case CPU_SUBTYPE_ARM_ALL: + archName = @"arm64"; + break; + + case CPU_SUBTYPE_ARM_V8: + archName = @"arm64"; + break; + + default: + archName = @"arm64-unknown"; + break; + } + break; + + case CPU_TYPE_X86: + archName = @"i386"; + break; + + case CPU_TYPE_X86_64: + archName = @"x86_64"; + break; + + case CPU_TYPE_POWERPC: + archName = @"powerpc"; + break; + + default: + // Use the default archName value (initialized above). + break; + } + + return archName; +} + + +/** + * Format a stack frame for display in a thread backtrace. + * + * @param frameInfo The stack frame to format + * @param frameIndex The frame's index + * @param report The report from which this frame was acquired. + * @param lp64 If YES, the report was generated by an LP64 system. + * + * @return Returns a formatted frame line. + */ ++ (NSString *)bit_formatStackFrame: (BITPLCrashReportStackFrameInfo *) frameInfo + frameIndex: (NSUInteger) frameIndex + report: (BITPLCrashReport *) report + lp64: (BOOL) lp64 +{ + /* Base image address containing instrumentation pointer, offset of the IP from that base + * address, and the associated image name */ + uint64_t baseAddress = 0x0; + uint64_t pcOffset = 0x0; + NSString *imageName = @"\?\?\?"; + NSString *symbolString = nil; + + BITPLCrashReportBinaryImageInfo *imageInfo = [report imageForAddress: frameInfo.instructionPointer]; + if (imageInfo != nil) { + imageName = [imageInfo.imageName lastPathComponent]; + baseAddress = imageInfo.imageBaseAddress; + pcOffset = frameInfo.instructionPointer - imageInfo.imageBaseAddress; + } + + /* Make sure UTF8/16 characters are handled correctly */ + NSInteger offset = 0; + NSInteger index = 0; + for (index = 0; index < [imageName length]; index++) { + NSRange range = [imageName rangeOfComposedCharacterSequenceAtIndex:index]; + if (range.length > 1) { + offset += range.length - 1; + index += range.length - 1; + } + if (index > 32) { + imageName = [NSString stringWithFormat:@"%@... ", [imageName substringToIndex:index - 1]]; + index += 3; + break; + } + } + if (index-offset < 36) { + imageName = [imageName stringByPaddingToLength:36+offset withString:@" " startingAtIndex:0]; + } + + /* If symbol info is available, the format used in Apple's reports is Sym + OffsetFromSym. Otherwise, + * the format used is imageBaseAddress + offsetToIP */ + BITBinaryImageType imageType = [[self class] bit_imageTypeForImagePath:imageInfo.imageName + processPath:report.processInfo.processPath]; + if (frameInfo.symbolInfo != nil && imageType == BITBinaryImageTypeOther) { + NSString *symbolName = frameInfo.symbolInfo.symbolName; + + /* Apple strips the _ symbol prefix in their reports. Only OS X makes use of an + * underscore symbol prefix by default. */ + if ([symbolName rangeOfString: @"_"].location == 0 && [symbolName length] > 1) { + switch (report.systemInfo.operatingSystem) { + case PLCrashReportOperatingSystemMacOSX: + case PLCrashReportOperatingSystemiPhoneOS: + case PLCrashReportOperatingSystemiPhoneSimulator: + symbolName = [symbolName substringFromIndex: 1]; + break; + + default: + NSLog(@"Symbol prefix rules are unknown for this OS!"); + break; + } + } + + + uint64_t symOffset = frameInfo.instructionPointer - frameInfo.symbolInfo.startAddress; + symbolString = [NSString stringWithFormat: @"%@ + %" PRId64, symbolName, symOffset]; + } else { + symbolString = [NSString stringWithFormat: @"0x%" PRIx64 " + %" PRId64, baseAddress, pcOffset]; + } + + /* Note that width specifiers are ignored for %@, but work for C strings. + * UTF-8 is not correctly handled with %s (it depends on the system encoding), but + * UTF-16 is supported via %S, so we use it here */ + return [NSString stringWithFormat: @"%-4ld%-35S 0x%0*" PRIx64 " %@\n", + (long) frameIndex, + (const uint16_t *)[imageName cStringUsingEncoding: NSUTF16StringEncoding], + lp64 ? 16 : 8, frameInfo.instructionPointer, + symbolString]; +} + +@end diff --git a/Pods/HockeySDK/Classes/BITFeedbackActivity.h b/Pods/HockeySDK/Classes/BITFeedbackActivity.h new file mode 100644 index 0000000..f9289c8 --- /dev/null +++ b/Pods/HockeySDK/Classes/BITFeedbackActivity.h @@ -0,0 +1,75 @@ +/* + * Author: Andreas Linde + * + * Copyright (c) 2012-2014 HockeyApp, Bit Stadium GmbH. + * All rights reserved. + * + * Permission is hereby granted, free of charge, to any person + * obtaining a copy of this software and associated documentation + * files (the "Software"), to deal in the Software without + * restriction, including without limitation the rights to use, + * copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following + * conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES + * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + */ + +#import + +#import "BITFeedbackComposeViewControllerDelegate.h" + +/** + UIActivity subclass allowing to use the feedback interface to share content with the developer + + This activity can be added into an UIActivityViewController and it will use the activity data + objects to prefill the content of `BITFeedbackComposeViewController`. + + This can be useful if you present some data that users can not only share but also + report back to the developer because they have some problems, e.g. webcams not working + any more. + + The activity provide a default title and image that can be further customized + via `customActivityImage` and `customActivityTitle`. + + */ + +@interface BITFeedbackActivity : UIActivity + +///----------------------------------------------------------------------------- +/// @name BITFeedbackActivity customisation +///----------------------------------------------------------------------------- + + +/** + Define the image shown when using `BITFeedbackActivity` + + If not set a default icon is being used. + + @see customActivityTitle + */ +@property (nonatomic, strong) UIImage *customActivityImage; + + +/** + Define the title shown when using `BITFeedbackActivity` + + If not set, a default string is shown by using the apps name + and adding the localized string "Feedback" to it. + + @see customActivityImage + */ +@property (nonatomic, strong) NSString *customActivityTitle; + +@end diff --git a/Pods/HockeySDK/Classes/BITFeedbackActivity.m b/Pods/HockeySDK/Classes/BITFeedbackActivity.m new file mode 100644 index 0000000..7d609e4 --- /dev/null +++ b/Pods/HockeySDK/Classes/BITFeedbackActivity.m @@ -0,0 +1,150 @@ +/* + * Author: Andreas Linde + * + * Copyright (c) 2012-2014 HockeyApp, Bit Stadium GmbH. + * All rights reserved. + * + * Permission is hereby granted, free of charge, to any person + * obtaining a copy of this software and associated documentation + * files (the "Software"), to deal in the Software without + * restriction, including without limitation the rights to use, + * copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following + * conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES + * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + */ + +#import "HockeySDK.h" + +#if HOCKEYSDK_FEATURE_FEEDBACK + +#import "HockeySDKPrivate.h" + +#import "BITFeedbackActivity.h" + +#import "BITHockeyHelper.h" +#import "BITFeedbackManagerPrivate.h" + +#import "BITHockeyBaseManagerPrivate.h" +#import "BITHockeyAttachment.h" + + +@interface BITFeedbackActivity() + +@property (nonatomic, strong) NSMutableArray *items; + +@end + + +@implementation BITFeedbackActivity +{ + UIViewController *_activityViewController; +} + +#pragma mark - NSObject + +- (instancetype)init { + if ((self = [super init])) { + _customActivityImage = nil; + _customActivityTitle = nil; + + _items = [NSMutableArray array]; + } + + return self; +} + + + +#pragma mark - UIActivity + +- (NSString *)activityType { + return @"UIActivityTypePostToHockeySDKFeedback"; +} + +- (NSString *)activityTitle { + if (self.customActivityTitle) + return self.customActivityTitle; + + NSString *appName = bit_appName(BITHockeyLocalizedString(@"HockeyFeedbackActivityAppPlaceholder")); + + return [NSString stringWithFormat:BITHockeyLocalizedString(@"HockeyFeedbackActivityButtonTitle"), appName]; +} + +- (UIImage *)activityImage { + if (self.customActivityImage) + return self.customActivityImage; + + return bit_imageNamed(@"feedbackActivity.png", BITHOCKEYSDK_BUNDLE); +} + + +- (BOOL)canPerformWithActivityItems:(NSArray *)activityItems { + if ([BITHockeyManager sharedHockeyManager].disableFeedbackManager) return NO; + + for (UIActivityItemProvider *item in activityItems) { + if ([item isKindOfClass:[NSString class]]) { + return YES; + } else if ([item isKindOfClass:[UIImage class]]) { + return YES; + } else if ([item isKindOfClass:[NSData class]]) { + return YES; + } else if ([item isKindOfClass:[BITHockeyAttachment class]]) { + return YES; + } else if ([item isKindOfClass:[NSURL class]]) { + return YES; + } + } + return NO; +} + +- (void)prepareWithActivityItems:(NSArray *)activityItems { + for (id item in activityItems) { + if ([item isKindOfClass:[NSString class]] || + [item isKindOfClass:[UIImage class]] || + [item isKindOfClass:[NSData class]] || + [item isKindOfClass:[BITHockeyAttachment class]] || + [item isKindOfClass:[NSURL class]]) { + [_items addObject:item]; + } else { + BITHockeyLog(@"Unknown item type %@", item); + } + } +} + +- (UIViewController *)activityViewController { + if (!_activityViewController) { + // TODO: return compose controller with activity content added + BITFeedbackManager *manager = [BITHockeyManager sharedHockeyManager].feedbackManager; + + BITFeedbackComposeViewController *composeViewController = [manager feedbackComposeViewController]; + composeViewController.delegate = self; + [composeViewController prepareWithItems:_items]; + + _activityViewController = [manager customNavigationControllerWithRootViewController:composeViewController + presentationStyle:UIModalPresentationFormSheet]; + _activityViewController.modalTransitionStyle = UIModalTransitionStyleCrossDissolve; + } + return _activityViewController; +} + +- (void)feedbackComposeViewController:(BITFeedbackComposeViewController *)composeViewController didFinishWithResult:(BITFeedbackComposeResult)composeResult { + [self activityDidFinish:composeResult == BITFeedbackComposeResultSubmitted]; +} + + +@end + +#endif /* HOCKEYSDK_FEATURE_FEEDBACK */ diff --git a/Pods/HockeySDK/Classes/BITFeedbackComposeViewController.h b/Pods/HockeySDK/Classes/BITFeedbackComposeViewController.h new file mode 100644 index 0000000..a10090f --- /dev/null +++ b/Pods/HockeySDK/Classes/BITFeedbackComposeViewController.h @@ -0,0 +1,89 @@ +/* + * Author: Andreas Linde + * + * Copyright (c) 2012-2014 HockeyApp, Bit Stadium GmbH. + * All rights reserved. + * + * Permission is hereby granted, free of charge, to any person + * obtaining a copy of this software and associated documentation + * files (the "Software"), to deal in the Software without + * restriction, including without limitation the rights to use, + * copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following + * conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES + * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + */ + + +#import + +#import "BITFeedbackComposeViewControllerDelegate.h" + +/** + View controller allowing the user to write and send new feedback + + To add this view controller to your own app and push it onto a navigation stack, + don't create the instance yourself, but use the following code to get a correct instance: + + [[BITHockeyManager sharedHockeyManager].feedbackManager feedbackComposeViewController] + + To show it modally, use the following code instead: + + [[BITHockeyManager sharedHockeyManager].feedbackManager showFeedbackComposeView] + + */ + +@interface BITFeedbackComposeViewController : UIViewController + + +///----------------------------------------------------------------------------- +/// @name Delegate +///----------------------------------------------------------------------------- + + +/** + Sets the `BITFeedbackComposeViewControllerDelegate` delegate. + + The delegate is automatically set by using `[BITHockeyManager setDelegate:]`. You + should not need to set this delegate individually. + + @see `[BITHockeyManager setDelegate:`] + */ +@property (nonatomic, weak) id delegate; + + +///----------------------------------------------------------------------------- +/// @name Presetting content +///----------------------------------------------------------------------------- + + +/** + An array of data objects that should be used to prefill the compose view content + + The following data object classes are currently supported: + - NSString + - NSURL + - UIImage + - NSData + - `BITHockeyAttachment` + + These are automatically concatenated to one text string, while any images and NSData + objects are added as attachments to the feedback. + + @param items Array of data objects to prefill the feedback text message. + */ +- (void)prepareWithItems:(NSArray *)items; + +@end diff --git a/Pods/HockeySDK/Classes/BITFeedbackComposeViewController.m b/Pods/HockeySDK/Classes/BITFeedbackComposeViewController.m new file mode 100644 index 0000000..f49010d --- /dev/null +++ b/Pods/HockeySDK/Classes/BITFeedbackComposeViewController.m @@ -0,0 +1,635 @@ +/* + * Author: Andreas Linde + * + * Copyright (c) 2012-2014 HockeyApp, Bit Stadium GmbH. + * All rights reserved. + * + * Permission is hereby granted, free of charge, to any person + * obtaining a copy of this software and associated documentation + * files (the "Software"), to deal in the Software without + * restriction, including without limitation the rights to use, + * copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following + * conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES + * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + */ + + +#import "HockeySDK.h" + +#if HOCKEYSDK_FEATURE_FEEDBACK + +#import "HockeySDKPrivate.h" + +#import "BITFeedbackManagerPrivate.h" +#import "BITFeedbackMessageAttachment.h" +#import "BITFeedbackComposeViewController.h" +#import "BITFeedbackUserDataViewController.h" + +#import "BITHockeyBaseManagerPrivate.h" + +#import "BITHockeyHelper.h" + +#import "BITImageAnnotationViewController.h" +#import "BITHockeyAttachment.h" + + +@interface BITFeedbackComposeViewController () { + UIStatusBarStyle _statusBarStyle; +} + +@property (nonatomic, weak) BITFeedbackManager *manager; +@property (nonatomic, strong) UITextView *textView; +@property (nonatomic, strong) UIView *contentViewContainer; +@property (nonatomic, strong) UIScrollView *attachmentScrollView; +@property (nonatomic, strong) NSMutableArray *attachmentScrollViewImageViews; + +@property (nonatomic, strong) UIButton *addPhotoButton; + +@property (nonatomic, strong) NSString *text; + +@property (nonatomic, strong) NSMutableArray *attachments; +@property (nonatomic, strong) NSMutableArray *imageAttachments; + +@property (nonatomic, strong) UIView *textAccessoryView; +@property (nonatomic) NSInteger selectedAttachmentIndex; +@property (nonatomic, strong) UITapGestureRecognizer *tapRecognizer; + +/** + * Workaround for UIImagePickerController bug. + * The statusBar shows up when the UIImagePickerController opens. + * The status bar does not disappear again when the UIImagePickerController is dismissed. + * Therefore store the state when UIImagePickerController is shown and restore when viewWillAppear gets called. + */ +@property (nonatomic, strong) NSNumber *isStatusBarHiddenBeforeShowingPhotoPicker; + +@end + + +@implementation BITFeedbackComposeViewController { + BOOL _blockUserDataScreen; + + BOOL _actionSheetVisible; +} + + +#pragma mark - NSObject + +- (instancetype)init { + self = [super init]; + if (self) { + _blockUserDataScreen = NO; + _actionSheetVisible = NO; + _delegate = nil; + _manager = [BITHockeyManager sharedHockeyManager].feedbackManager; + _attachments = [NSMutableArray new]; + _imageAttachments = [NSMutableArray new]; + _attachmentScrollViewImageViews = [NSMutableArray new]; + _tapRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(scrollViewTapped:)]; + [_attachmentScrollView addGestureRecognizer:self.tapRecognizer]; + + _text = nil; + } + + return self; +} + + +#pragma mark - Public + +- (void)prepareWithItems:(NSArray *)items { + for (id item in items) { + if ([item isKindOfClass:[NSString class]]) { + self.text = [(self.text ? self.text : @"") stringByAppendingFormat:@"%@%@", (self.text ? @" " : @""), item]; + } else if ([item isKindOfClass:[NSURL class]]) { + self.text = [(self.text ? self.text : @"") stringByAppendingFormat:@"%@%@", (self.text ? @" " : @""), [(NSURL *)item absoluteString]]; + } else if ([item isKindOfClass:[UIImage class]]) { + UIImage *image = item; + BITFeedbackMessageAttachment *attachment = [BITFeedbackMessageAttachment attachmentWithData:UIImageJPEGRepresentation(image, 0.7f) contentType:@"image/jpeg"]; + attachment.originalFilename = [NSString stringWithFormat:@"Image_%li.jpg", (unsigned long)[self.attachments count]]; + [self.attachments addObject:attachment]; + [self.imageAttachments addObject:attachment]; + } else if ([item isKindOfClass:[NSData class]]) { + BITFeedbackMessageAttachment *attachment = [BITFeedbackMessageAttachment attachmentWithData:item contentType:@"application/octet-stream"]; + attachment.originalFilename = [NSString stringWithFormat:@"Attachment_%li.data", (unsigned long)[self.attachments count]]; + [self.attachments addObject:attachment]; + } else if ([item isKindOfClass:[BITHockeyAttachment class]]) { + BITHockeyAttachment *sourceAttachment = (BITHockeyAttachment *)item; + + if (!sourceAttachment.hockeyAttachmentData) { + BITHockeyLog(@"BITHockeyAttachment instance doesn't contain any data."); + continue; + } + + NSString *filename = [NSString stringWithFormat:@"Attachment_%li.data", (unsigned long)[self.attachments count]]; + if (sourceAttachment.filename) { + filename = sourceAttachment.filename; + } + + BITFeedbackMessageAttachment *attachment = [BITFeedbackMessageAttachment attachmentWithData:sourceAttachment.hockeyAttachmentData contentType:sourceAttachment.contentType]; + attachment.originalFilename = filename; + [self.attachments addObject:attachment]; + } else { + BITHockeyLog(@"Unknown item type %@", item); + } + } +} + + +#pragma mark - Keyboard + +- (void)keyboardWasShown:(NSNotification*)aNotification { + NSDictionary* info = [aNotification userInfo]; + CGSize kbSize = [[info objectForKey:UIKeyboardFrameBeginUserInfoKey] CGRectValue].size; + + BOOL isPortraitOrientation = NO; + +#if __IPHONE_OS_VERSION_MIN_REQUIRED >= __IPHONE_8_0 + isPortraitOrientation = UIInterfaceOrientationIsPortrait([[UIApplication sharedApplication] statusBarOrientation]); +#else + isPortraitOrientation = UIInterfaceOrientationIsPortrait(self.interfaceOrientation); +#endif + + CGRect frame = CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height); + if (UI_USER_INTERFACE_IDIOM() != UIUserInterfaceIdiomPad) { + if (!bit_isPreiOS8Environment() || isPortraitOrientation) { + frame.size.height -= kbSize.height; + } else { + frame.size.height -= kbSize.width; + } + } else { + CGSize windowSize = [[UIScreen mainScreen] bounds].size; + CGFloat windowHeight = windowSize.height - 20; + CGFloat navBarHeight = self.navigationController.navigationBar.frame.size.height; + + if (!bit_isPreiOS8Environment() || isPortraitOrientation) { + CGFloat modalGap = (windowHeight - self.view.bounds.size.height) / 2; + frame.size.height = windowHeight - navBarHeight - kbSize.height; + if (bit_isPreiOS8Environment()) { + frame.size.height -= modalGap; + } + } else { + windowHeight = windowSize.width - 20; + CGFloat modalGap = 0.0f; + if (windowHeight - kbSize.width < self.view.bounds.size.height) { + modalGap = 30; + } else { + modalGap = (windowHeight - self.view.bounds.size.height) / 2; + } + frame.size.height = windowSize.width - navBarHeight - modalGap - kbSize.width; + } + } + [self.contentViewContainer setFrame:frame]; + + [self performSelector:@selector(refreshAttachmentScrollview) withObject:nil afterDelay:0.0f]; + +} + +- (void)keyboardWillBeHidden:(NSNotification*)aNotification { + CGRect frame = CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height); + [self.contentViewContainer setFrame:frame]; +} + + +#pragma mark - View lifecycle + +- (void)viewDidLoad { + [super viewDidLoad]; + + self.title = BITHockeyLocalizedString(@"HockeyFeedbackComposeTitle"); + self.view.backgroundColor = [UIColor whiteColor]; + + // Do any additional setup after loading the view. + self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemCancel + target:self + action:@selector(dismissAction:)]; + self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:BITHockeyLocalizedString(@"HockeyFeedbackComposeSend") + style:UIBarButtonItemStyleDone + target:self + action:@selector(sendAction:)]; + + // Container that contains both the textfield and eventually the photo scroll view on the right side + self.contentViewContainer = [[UIView alloc] initWithFrame:self.view.bounds]; + self.contentViewContainer.autoresizingMask = UIViewAutoresizingFlexibleWidth|UIViewAutoresizingFlexibleHeight; + + [self.view addSubview:self.contentViewContainer]; + + // message input textfield + self.textView = [[UITextView alloc] initWithFrame:self.view.bounds]; + self.textView.font = [UIFont systemFontOfSize:17]; + self.textView.delegate = self; + self.textView.backgroundColor = [UIColor whiteColor]; + self.textView.returnKeyType = UIReturnKeyDefault; + self.textView.autoresizingMask = UIViewAutoresizingFlexibleWidth|UIViewAutoresizingFlexibleHeight; + + [self.contentViewContainer addSubview:self.textView]; + + // Add Photo Button + Container that's displayed above the keyboard. + self.textAccessoryView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, CGRectGetWidth(self.view.frame), 44)]; + self.textAccessoryView.backgroundColor = [UIColor colorWithRed:0.9f green:0.9f blue:0.9f alpha:1.0f]; + self.addPhotoButton = [UIButton buttonWithType:UIButtonTypeCustom]; + [self.addPhotoButton setTitle:BITHockeyLocalizedString(@"HockeyFeedbackComposeAttachmentAddImage") forState:UIControlStateNormal]; + [self.addPhotoButton setTitleColor:[UIColor darkGrayColor] forState:UIControlStateNormal]; + [self.addPhotoButton setTitleColor:[UIColor lightGrayColor] forState:UIControlStateDisabled]; + self.addPhotoButton.frame = CGRectMake(0, 0, CGRectGetWidth(self.view.frame), 44); + [self.addPhotoButton addTarget:self action:@selector(addPhotoAction:) forControlEvents:UIControlEventTouchUpInside]; + + [self.textAccessoryView addSubview:self.addPhotoButton]; + + self.textView.inputAccessoryView = self.textAccessoryView; + + // This could be a subclass, yet + self.attachmentScrollView = [[UIScrollView alloc] initWithFrame:CGRectZero]; + self.attachmentScrollView.scrollEnabled = YES; + self.attachmentScrollView.bounces = YES; + self.attachmentScrollView.autoresizesSubviews = NO; + self.attachmentScrollView.autoresizingMask = UIViewAutoresizingFlexibleHeight|UIViewAutoresizingFlexibleRightMargin; + + [self.contentViewContainer addSubview:self.attachmentScrollView]; +} + +- (void)viewWillAppear:(BOOL)animated { + [[NSNotificationCenter defaultCenter] addObserver:self + selector:@selector(keyboardWasShown:) + name:UIKeyboardDidShowNotification object:nil]; + + [[NSNotificationCenter defaultCenter] addObserver:self + selector:@selector(keyboardWillBeHidden:) + name:UIKeyboardWillHideNotification object:nil]; + + self.manager.currentFeedbackComposeViewController = self; + + [super viewWillAppear:animated]; + + _statusBarStyle = [[UIApplication sharedApplication] statusBarStyle]; +#if __IPHONE_OS_VERSION_MAX_ALLOWED > __IPHONE_6_1 + [[UIApplication sharedApplication] setStatusBarStyle:(self.navigationController.navigationBar.barStyle == UIBarStyleDefault) ? UIStatusBarStyleDefault : UIStatusBarStyleLightContent]; +#else + [[UIApplication sharedApplication] setStatusBarStyle:(self.navigationController.navigationBar.barStyle == UIBarStyleDefault) ? UIStatusBarStyleDefault : UIStatusBarStyleBlackOpaque]; +#endif + + if (_text && self.textView.text.length == 0) { + self.textView.text = _text; + } + + if (self.isStatusBarHiddenBeforeShowingPhotoPicker) { + [[UIApplication sharedApplication] setStatusBarHidden:self.isStatusBarHiddenBeforeShowingPhotoPicker.boolValue]; + } + + self.isStatusBarHiddenBeforeShowingPhotoPicker = nil; + + [self updateBarButtonState]; +} + +- (void)viewDidAppear:(BOOL)animated { + [super viewDidAppear:animated]; + + if ([self.manager askManualUserDataAvailable] && + ([self.manager requireManualUserDataMissing] || + ![self.manager didAskUserData]) + ) { + if (!_blockUserDataScreen) + [self setUserDataAction]; + } else { + // Invoke delayed to fix iOS 7 iPad landscape bug, where this view will be moved if not called delayed + [self.textView performSelector:@selector(becomeFirstResponder) withObject:nil afterDelay:0.0]; + } +} + +- (void)viewWillDisappear:(BOOL)animated { + [[NSNotificationCenter defaultCenter] removeObserver:self name:UIKeyboardDidShowNotification object:nil]; + [[NSNotificationCenter defaultCenter] removeObserver:self name:UIKeyboardWillHideNotification object:nil]; + + self.manager.currentFeedbackComposeViewController = nil; + + [super viewWillDisappear:animated]; + + [[UIApplication sharedApplication] setStatusBarStyle:_statusBarStyle]; +} + +- (void)viewDidDisappear:(BOOL)animated { + [super viewDidDisappear:animated]; +} + +- (void)refreshAttachmentScrollview { + CGFloat scrollViewWidth = 0; + + if (self.imageAttachments.count){ + scrollViewWidth = 100; + } + + CGRect textViewFrame = self.textView.frame; + + CGRect scrollViewFrame = self.attachmentScrollView.frame; + + BOOL alreadySetup = CGRectGetWidth(scrollViewFrame) > 0; + + if (alreadySetup && self.imageAttachments.count == 0) { + textViewFrame.size.width += 100; + self.textView.frame = textViewFrame; + scrollViewFrame.size.width = 0; + self.attachmentScrollView.frame = scrollViewFrame; + return; + } + + if (!alreadySetup) { + textViewFrame.size.width -= scrollViewWidth; + // height has to be identical to the textview! + scrollViewFrame = CGRectMake(CGRectGetMaxX(textViewFrame), self.view.frame.origin.y, scrollViewWidth, CGRectGetHeight(self.textView.bounds)); + self.textView.frame = textViewFrame; + self.attachmentScrollView.frame = scrollViewFrame; + self.attachmentScrollView.contentInset = self.textView.contentInset; + } + + if (self.imageAttachments.count > self.attachmentScrollViewImageViews.count){ + NSInteger numberOfViewsToCreate = self.imageAttachments.count - self.attachmentScrollViewImageViews.count; + for (int i = 0; i 0 ) { + self.navigationItem.rightBarButtonItem.enabled = YES; + } else { + self.navigationItem.rightBarButtonItem.enabled = NO; + } + + if (self.imageAttachments.count > 2){ + [self.addPhotoButton setEnabled:NO]; + } else { + [self.addPhotoButton setEnabled:YES]; + } +} + +- (void)removeAttachmentScrollView { + CGRect frame = self.attachmentScrollView.frame; + frame.size.width = 0; + self.attachmentScrollView.frame = frame; + + frame = self.textView.frame; + frame.size.width += 100; + self.textView.frame = frame; +} + + +#pragma mark - UIViewController Rotation + +- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)orientation { + return YES; +} + +- (void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation { + [self removeAttachmentScrollView]; + + [self refreshAttachmentScrollview]; +} + + +#pragma mark - Private methods + +- (void)setUserDataAction { + BITFeedbackUserDataViewController *userController = [[BITFeedbackUserDataViewController alloc] initWithStyle:UITableViewStyleGrouped]; + userController.delegate = self; + + UINavigationController *navController = [self.manager customNavigationControllerWithRootViewController:userController + presentationStyle:UIModalPresentationFormSheet]; + + [self presentViewController:navController animated:YES completion:nil]; +} + +#pragma mark - Actions + +- (void)dismissAction:(id)sender { + for (BITFeedbackMessageAttachment *attachment in self.attachments){ + [attachment deleteContents]; + } + + [self dismissWithResult:BITFeedbackComposeResultCancelled]; +} + +- (void)sendAction:(id)sender { + if ([self.textView isFirstResponder]) + [self.textView resignFirstResponder]; + + NSString *text = self.textView.text; + + [self.manager submitMessageWithText:text andAttachments:self.attachments]; + + [self dismissWithResult:BITFeedbackComposeResultSubmitted]; +} + +- (void)dismissWithResult:(BITFeedbackComposeResult) result { + if(self.delegate && [self.delegate respondsToSelector:@selector(feedbackComposeViewController:didFinishWithResult:)]) { + [self.delegate feedbackComposeViewController:self didFinishWithResult:result]; + } else if (self.delegate && [self.delegate respondsToSelector:@selector(feedbackComposeViewControllerDidFinish:)]) { +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated" + [self.delegate feedbackComposeViewControllerDidFinish:self]; +#pragma clang diagnostic pop + } else { + [self dismissViewControllerAnimated:YES completion:nil]; + } +} + +- (void)addPhotoAction:(id)sender { + if (_actionSheetVisible) return; + + self.isStatusBarHiddenBeforeShowingPhotoPicker = @([[UIApplication sharedApplication] isStatusBarHidden]); + + // add photo. + UIImagePickerController *pickerController = [[UIImagePickerController alloc] init]; + pickerController.sourceType = UIImagePickerControllerSourceTypePhotoLibrary; + pickerController.delegate = self; + pickerController.editing = NO; + [self presentViewController:pickerController animated:YES completion:nil]; +} + +- (void)scrollViewTapped:(id)unused { + UIMenuController *menuController = [UIMenuController sharedMenuController]; + [menuController setTargetRect:CGRectMake([self.tapRecognizer locationInView:self.view].x, [self.tapRecognizer locationInView:self.view].x, 1, 1) inView:self.view]; + [menuController setMenuVisible:YES animated:YES]; +} + +- (void)paste:(id)sender { + +} + +#pragma mark - UIImagePickerControllerDelegate + +- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info { + UIImage *pickedImage = info[UIImagePickerControllerOriginalImage]; + + if (pickedImage){ + NSData *imageData = UIImageJPEGRepresentation(pickedImage, 0.7f); + BITFeedbackMessageAttachment *newAttachment = [BITFeedbackMessageAttachment attachmentWithData:imageData contentType:@"image/jpeg"]; + NSURL *imagePath = [info objectForKey:@"UIImagePickerControllerReferenceURL"]; + NSString *imageName = [imagePath lastPathComponent]; + newAttachment.originalFilename = imageName; + [self.attachments addObject:newAttachment]; + [self.imageAttachments addObject:newAttachment]; + } + + [picker dismissViewControllerAnimated:YES completion:nil]; +} + +- (void)imagePickerControllerDidCancel:(UIImagePickerController *)picker { + [picker dismissViewControllerAnimated:YES completion:nil]; +} + +- (void)imageButtonAction:(UIButton *)sender { + // determine the index of the feedback + NSInteger index = [self.attachmentScrollViewImageViews indexOfObject:sender]; + + self.selectedAttachmentIndex = (self.attachmentScrollViewImageViews.count - index - 1); + + UIActionSheet *actionSheet = [[UIActionSheet alloc] initWithTitle: nil + delegate: self + cancelButtonTitle: BITHockeyLocalizedString(@"HockeyFeedbackComposeAttachmentCancel") + destructiveButtonTitle: BITHockeyLocalizedString(@"HockeyFeedbackComposeAttachmentDelete") + otherButtonTitles: BITHockeyLocalizedString(@"HockeyFeedbackComposeAttachmentEdit"), nil]; + + [actionSheet showFromRect: sender.frame inView: self.attachmentScrollView animated: YES]; + + _actionSheetVisible = YES; + if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) { + [self.textView resignFirstResponder]; + } +} + + +#pragma mark - BITFeedbackUserDataDelegate + +- (void)userDataUpdateCancelled { + _blockUserDataScreen = YES; + + if ([self.manager requireManualUserDataMissing]) { + if ([self.navigationController respondsToSelector:@selector(dismissViewControllerAnimated:completion:)]) { + [self.navigationController dismissViewControllerAnimated:YES + completion:^(void) { + [self dismissViewControllerAnimated:YES completion:nil]; + }]; + } else { + [self dismissViewControllerAnimated:YES completion:nil]; + [self performSelector:@selector(dismissAction:) withObject:nil afterDelay:0.4]; + } + } else { + [self.navigationController dismissViewControllerAnimated:YES completion:nil]; + } +} + +- (void)userDataUpdateFinished { + [self.manager saveMessages]; + + [self.navigationController dismissViewControllerAnimated:YES completion:nil]; +} + + +#pragma mark - UITextViewDelegate + +- (void)textViewDidChange:(UITextView *)textView { + [self updateBarButtonState]; +} + + +#pragma mark - UIActionSheet Delegate + +- (void)actionSheet:(UIActionSheet *)actionSheet didDismissWithButtonIndex:(NSInteger)buttonIndex { + if (buttonIndex == [actionSheet destructiveButtonIndex]) { + + if (self.selectedAttachmentIndex != NSNotFound){ + UIButton *imageButton = self.attachmentScrollViewImageViews[self.selectedAttachmentIndex]; + BITFeedbackMessageAttachment *attachment = self.imageAttachments[self.selectedAttachmentIndex]; + [attachment deleteContents]; // mandatory call to delete the files associated. + [self.imageAttachments removeObject:attachment]; + [self.attachments removeObject:attachment]; + [imageButton removeFromSuperview]; + [self.attachmentScrollViewImageViews removeObject:imageButton]; + } + self.selectedAttachmentIndex = NSNotFound; + + [self refreshAttachmentScrollview]; + + if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) { + [self.textView becomeFirstResponder]; + } + } else if (buttonIndex != [actionSheet cancelButtonIndex]) { + if (self.selectedAttachmentIndex != NSNotFound){ + BITFeedbackMessageAttachment *attachment = self.imageAttachments[self.selectedAttachmentIndex]; + BITImageAnnotationViewController *annotationEditor = [[BITImageAnnotationViewController alloc ] init]; + annotationEditor.delegate = self; + UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:annotationEditor]; + annotationEditor.image = attachment.imageRepresentation; + [self presentViewController:navController animated:YES completion:nil]; + } + } else { + if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) { + [self.textView becomeFirstResponder]; + } + } + _actionSheetVisible = NO; +} + + +#pragma mark - Image Annotation Delegate + +- (void)annotationController:(BITImageAnnotationViewController *)annotationController didFinishWithImage:(UIImage *)image { + if (self.selectedAttachmentIndex != NSNotFound){ + BITFeedbackMessageAttachment *attachment = self.imageAttachments[self.selectedAttachmentIndex]; + [attachment replaceData:UIImageJPEGRepresentation(image, 0.7f)]; + } + + self.selectedAttachmentIndex = NSNotFound; +} + +- (void)annotationControllerDidCancel:(BITImageAnnotationViewController *)annotationController { + self.selectedAttachmentIndex = NSNotFound; +} + +@end + +#endif /* HOCKEYSDK_FEATURE_FEEDBACK */ diff --git a/Pods/HockeySDK/Classes/BITFeedbackComposeViewControllerDelegate.h b/Pods/HockeySDK/Classes/BITFeedbackComposeViewControllerDelegate.h new file mode 100644 index 0000000..58438d4 --- /dev/null +++ b/Pods/HockeySDK/Classes/BITFeedbackComposeViewControllerDelegate.h @@ -0,0 +1,80 @@ +/* + * Author: Andreas Linde + * + * Copyright (c) 2012-2014 HockeyApp, Bit Stadium GmbH. + * All rights reserved. + * + * Permission is hereby granted, free of charge, to any person + * obtaining a copy of this software and associated documentation + * files (the "Software"), to deal in the Software without + * restriction, including without limitation the rights to use, + * copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following + * conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES + * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + */ + +#import + +/** + * The users action when composing a message + */ +typedef NS_ENUM(NSUInteger, BITFeedbackComposeResult) { + /** + * user hit cancel + */ + BITFeedbackComposeResultCancelled, + /** + * user hit submit + */ + BITFeedbackComposeResultSubmitted, +}; + +@class BITFeedbackComposeViewController; + +/** + * The `BITFeedbackComposeViewControllerDelegate` formal protocol defines methods further configuring + * the behaviour of `BITFeedbackComposeViewController`. + */ + +@protocol BITFeedbackComposeViewControllerDelegate + +@optional + +///----------------------------------------------------------------------------- +/// @name View Controller Management +///----------------------------------------------------------------------------- + +/** + * Invoked once the compose screen is finished via send or cancel + * + * If this is implemented, it's the responsibility of this method to dismiss the presented + * `BITFeedbackComposeViewController` + * + * @param composeViewController The `BITFeedbackComposeViewController` instance invoking this delegate + * @param composeResult The user action the lead to closing the compose view + */ +- (void)feedbackComposeViewController:(BITFeedbackComposeViewController *)composeViewController + didFinishWithResult:(BITFeedbackComposeResult) composeResult; + +#pragma mark - Deprecated methods + +/** + * This method is deprecated. If feedbackComposeViewController:didFinishWithResult: is implemented, this will not be called + * + * @param composeViewController The `BITFeedbackComposeViewController` instance invoking this delegate + */ +- (void)feedbackComposeViewControllerDidFinish:(BITFeedbackComposeViewController *)composeViewController __attribute__((deprecated("Use feedbackComposeViewController:didFinishWithResult: instead"))); +@end diff --git a/Pods/HockeySDK/Classes/BITFeedbackListViewCell.h b/Pods/HockeySDK/Classes/BITFeedbackListViewCell.h new file mode 100644 index 0000000..4320b27 --- /dev/null +++ b/Pods/HockeySDK/Classes/BITFeedbackListViewCell.h @@ -0,0 +1,97 @@ +/* + * Author: Andreas Linde + * + * Copyright (c) 2012-2014 HockeyApp, Bit Stadium GmbH. + * All rights reserved. + * + * Permission is hereby granted, free of charge, to any person + * obtaining a copy of this software and associated documentation + * files (the "Software"), to deal in the Software without + * restriction, including without limitation the rights to use, + * copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following + * conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES + * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + */ + + +#import +#import "BITFeedbackMessage.h" +#import "BITAttributedLabel.h" + +@class BITFeedbackMessageAttachment; + +@protocol BITFeedbackListViewCellDelegate + +- (void)listCell:(id)cell didSelectAttachment:(BITFeedbackMessageAttachment *)attachment; + +@end + + +/** + * Cell style depending on the iOS version + */ +typedef NS_ENUM(NSUInteger, BITFeedbackListViewCellPresentationStyle) { + /** + * Default is iOS 6 style + */ + BITFeedbackListViewCellPresentationStyleDefault = 0, + /** + * Draw cells in the iOS 7 style + */ + BITFeedbackListViewCellPresentationStyleOS7 = 1 +}; + +/** + * Cell background style + */ +typedef NS_ENUM(NSUInteger, BITFeedbackListViewCellBackgroundStyle) { + /** + * For even rows + */ + BITFeedbackListViewCellBackgroundStyleNormal = 0, + /** + * For uneven rows + */ + BITFeedbackListViewCellBackgroundStyleAlternate = 1 +}; + + +@interface BITFeedbackListViewCell : UITableViewCell + +@property (nonatomic, strong) BITFeedbackMessage *message; + +@property (nonatomic) BITFeedbackListViewCellPresentationStyle style; + +@property (nonatomic) BITFeedbackListViewCellBackgroundStyle backgroundStyle; + +@property (nonatomic, strong) BITAttributedLabel *labelText; + +@property (nonatomic, weak) id delegate; + ++ (CGFloat) heightForRowWithMessage:(BITFeedbackMessage *)message tableViewWidth:(CGFloat)width; + +- (void)setAttachments:(NSArray *)attachments; + +///----------------------------------------------------------------------------- +/// @name Deprecated +///----------------------------------------------------------------------------- + +typedef DEPRECATED_MSG_ATTRIBUTE("Use the properly spelled enum `BITFeedbackListViewCellPresentationStyle` instead.") NS_ENUM(NSUInteger, BITFeedbackListViewCellPresentatationStyle) { + BITFeedbackListViewCellPresentatationStyleDefault DEPRECATED_MSG_ATTRIBUTE("Use the properly spelled constant `BITFeedbackListViewCellPresentationStyleDefault` instead.") = 0, + BITFeedbackListViewCellPresentatationStyleOS7 DEPRECATED_MSG_ATTRIBUTE("Use the properly spelled constant `BITFeedbackListViewCellPresentationStyleOS7` instead.") = 1 +}; + +@end diff --git a/Pods/HockeySDK/Classes/BITFeedbackListViewCell.m b/Pods/HockeySDK/Classes/BITFeedbackListViewCell.m new file mode 100644 index 0000000..b82fe90 --- /dev/null +++ b/Pods/HockeySDK/Classes/BITFeedbackListViewCell.m @@ -0,0 +1,377 @@ +/* + * Author: Andreas Linde + * + * Copyright (c) 2012-2014 HockeyApp, Bit Stadium GmbH. + * All rights reserved. + * + * Permission is hereby granted, free of charge, to any person + * obtaining a copy of this software and associated documentation + * files (the "Software"), to deal in the Software without + * restriction, including without limitation the rights to use, + * copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following + * conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES + * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + */ + +#import "HockeySDK.h" + +#if HOCKEYSDK_FEATURE_FEEDBACK + +#import "HockeySDKPrivate.h" + +#import "BITFeedbackListViewCell.h" +#import "BITFeedbackMessageAttachment.h" +#import "BITActivityIndicatorButton.h" +#import "BITFeedbackManagerPrivate.h" + +#define BACKGROUNDCOLOR_DEFAULT BIT_RGBCOLOR(245, 245, 245) +#define BACKGROUNDCOLOR_ALTERNATE BIT_RGBCOLOR(235, 235, 235) + +#define BACKGROUNDCOLOR_DEFAULT_OS7 BIT_RGBCOLOR(255, 255, 255) +#define BACKGROUNDCOLOR_ALTERNATE_OS7 BIT_RGBCOLOR(255, 255, 255) + +#define TEXTCOLOR_TITLE BIT_RGBCOLOR(75, 75, 75) + +#define TEXTCOLOR_DEFAULT BIT_RGBCOLOR(25, 25, 25) +#define TEXTCOLOR_PENDING BIT_RGBCOLOR(75, 75, 75) + +#define TITLE_FONTSIZE 12 +#define TEXT_FONTSIZE 15 + +#define FRAME_SIDE_BORDER 10 +#define FRAME_TOP_BORDER 8 +#define FRAME_BOTTOM_BORDER 5 +#define FRAME_LEFT_RESPONSE_BORDER 20 + +#define LABEL_TITLE_Y 3 +#define LABEL_TITLE_HEIGHT 15 + +#define LABEL_TEXT_Y 25 + +#define ATTACHMENT_SIZE 45 + + +@interface BITFeedbackListViewCell () + +@property (nonatomic, strong) NSDateFormatter *dateFormatter; +@property (nonatomic, strong) NSDateFormatter *timeFormatter; + +@property (nonatomic, strong) UILabel *labelTitle; + +@property (nonatomic, strong) NSMutableArray *attachmentViews; + +@property (nonatomic, strong) UIView *accessoryBackgroundView; + +@property (nonatomic, strong) id updateAttachmentNotification; + +@end + + +@implementation BITFeedbackListViewCell + + +- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier { + self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]; + if (self) { + // Initialization code + _backgroundStyle = BITFeedbackListViewCellBackgroundStyleNormal; + _style = BITFeedbackListViewCellPresentationStyleDefault; + + _message = nil; + + _dateFormatter = [[NSDateFormatter alloc] init]; + [_dateFormatter setTimeStyle:NSDateFormatterNoStyle]; + [_dateFormatter setDateStyle:NSDateFormatterMediumStyle]; + [_dateFormatter setLocale:[NSLocale currentLocale]]; + [_dateFormatter setDoesRelativeDateFormatting:YES]; + + _timeFormatter = [[NSDateFormatter alloc] init]; + [_timeFormatter setTimeStyle:NSDateFormatterShortStyle]; + [_timeFormatter setDateStyle:NSDateFormatterNoStyle]; + [_timeFormatter setLocale:[NSLocale currentLocale]]; + [_timeFormatter setDoesRelativeDateFormatting:YES]; + + _labelTitle = [[UILabel alloc] init]; + _labelTitle.font = [UIFont systemFontOfSize:TITLE_FONTSIZE]; + + _labelText = [[BITAttributedLabel alloc] init]; + _labelText.font = [UIFont systemFontOfSize:TEXT_FONTSIZE]; + _labelText.numberOfLines = 0; + _labelText.textAlignment = kBITTextLabelAlignmentLeft; + _labelText.dataDetectorTypes = UIDataDetectorTypeAll; + + _attachmentViews = [NSMutableArray new]; + [self registerObservers]; + } + return self; +} + +- (void)dealloc { + [self unregisterObservers]; +} + + +#pragma mark - Private + +- (void) registerObservers { + __weak typeof(self) weakSelf = self; + if (nil == _updateAttachmentNotification) { + _updateAttachmentNotification = [[NSNotificationCenter defaultCenter] addObserverForName:kBITFeedbackUpdateAttachmentThumbnail + object:nil + queue:NSOperationQueue.mainQueue + usingBlock:^(NSNotification *note) { + typeof(self) strongSelf = weakSelf; + [strongSelf updateAttachmentFromNotification:note]; + }]; + } +} + +- (void) unregisterObservers { + if (_updateAttachmentNotification) { + [[NSNotificationCenter defaultCenter] removeObserver:_updateAttachmentNotification]; + _updateAttachmentNotification = nil; + } +} + +- (void) updateAttachmentFromNotification:(NSNotification *)note { + if (!self.message) return; + if (!self.message.attachments) return; + if (self.message.attachments.count == 0) return; + if (!note.object) return; + if (![note.object isKindOfClass:[BITFeedbackMessageAttachment class]]) return; + + BITFeedbackMessageAttachment *attachment = (BITFeedbackMessageAttachment *)note.object; + if (![self.message.attachments containsObject:attachment]) return; + + // The attachment is part of the message used for this cell, so lets update it. + [self setAttachments:self.message.previewableAttachments]; + [self setNeedsLayout]; +} + +- (UIColor *)backgroundColor { + + if (self.backgroundStyle == BITFeedbackListViewCellBackgroundStyleNormal) { + if (self.style == BITFeedbackListViewCellPresentationStyleDefault) { + return BACKGROUNDCOLOR_DEFAULT; + } else { + return BACKGROUNDCOLOR_DEFAULT_OS7; + } + } else { + if (self.style == BITFeedbackListViewCellPresentationStyleDefault) { + return BACKGROUNDCOLOR_ALTERNATE; + } else { + return BACKGROUNDCOLOR_ALTERNATE_OS7; + } + } +} + +- (BOOL)isSameDayWithDate1:(NSDate*)date1 date2:(NSDate*)date2 { + NSCalendar* calendar = [NSCalendar currentCalendar]; + +#if __IPHONE_OS_VERSION_MIN_REQUIRED >= __IPHONE_8_0 + unsigned unitFlags = NSCalendarUnitYear | NSCalendarUnitMonth | NSCalendarUnitDay; +#else + unsigned unitFlags = NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit; +#endif + + NSDateComponents *dateComponent1 = [calendar components:unitFlags fromDate:date1]; + NSDateComponents *dateComponent2 = [calendar components:unitFlags fromDate:date2]; + + return ([dateComponent1 day] == [dateComponent2 day] && + [dateComponent1 month] == [dateComponent2 month] && + [dateComponent1 year] == [dateComponent2 year]); +} + + +#pragma mark - Layout + ++ (CGFloat) heightForRowWithMessage:(BITFeedbackMessage *)message tableViewWidth:(CGFloat)width { + + CGFloat baseHeight = [self heightForTextInRowWithMessage:message tableViewWidth:width]; + + CGFloat attachmentsPerRow = floorf(width / (FRAME_SIDE_BORDER + ATTACHMENT_SIZE)); + + CGFloat calculatedHeight = baseHeight + (FRAME_TOP_BORDER + ATTACHMENT_SIZE) * ceil([message previewableAttachments].count / attachmentsPerRow); + + return ceil(calculatedHeight); +} + + + ++ (CGFloat) heightForTextInRowWithMessage:(BITFeedbackMessage *)message tableViewWidth:(CGFloat)width { + CGFloat calculatedHeight; + +#if __IPHONE_OS_VERSION_MAX_ALLOWED > __IPHONE_6_1 + if ([message.text respondsToSelector:@selector(boundingRectWithSize:options:attributes:context:)]) { + CGRect calculatedRect = [message.text boundingRectWithSize:CGSizeMake(width - (2 * FRAME_SIDE_BORDER), CGFLOAT_MAX) + options:NSStringDrawingUsesLineFragmentOrigin | NSStringDrawingUsesFontLeading + attributes:@{NSFontAttributeName:[UIFont systemFontOfSize:TEXT_FONTSIZE]} + context:nil]; + calculatedHeight = calculatedRect.size.height + FRAME_TOP_BORDER + LABEL_TEXT_Y + FRAME_BOTTOM_BORDER; + + // added to make space for the images. + + + } else { +#endif +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" + calculatedHeight = [message.text sizeWithFont:[UIFont systemFontOfSize:TEXT_FONTSIZE] + constrainedToSize:CGSizeMake(width - (2 * FRAME_SIDE_BORDER), CGFLOAT_MAX) + ].height + FRAME_TOP_BORDER + LABEL_TEXT_Y + FRAME_BOTTOM_BORDER; + +#pragma clang diagnostic pop +#if __IPHONE_OS_VERSION_MAX_ALLOWED > __IPHONE_6_1 + } +#endif + + return ceil(calculatedHeight); +} + +- (void)setAttachments:(NSArray *)attachments { + for (UIView *view in self.attachmentViews){ + [view removeFromSuperview]; + } + + [self.attachmentViews removeAllObjects]; + + for (BITFeedbackMessageAttachment *attachment in attachments){ + if (attachment.localURL || attachment.sourceURL) { + BITActivityIndicatorButton *imageView = [BITActivityIndicatorButton buttonWithType:UIButtonTypeCustom]; + + if (attachment.localURL){ + [imageView setImage:[attachment thumbnailWithSize:CGSizeMake(ATTACHMENT_SIZE, ATTACHMENT_SIZE)] forState:UIControlStateNormal]; + [imageView setShowsActivityIndicator:NO]; + } else { + [imageView setImage:nil forState:UIControlStateNormal]; + [imageView setShowsActivityIndicator:YES]; + } + [imageView setContentMode:UIViewContentModeScaleAspectFit]; + [imageView addTarget:self action:@selector(imageButtonPressed:) forControlEvents:UIControlEventTouchUpInside]; + + [self.attachmentViews addObject:imageView]; + } + } +} + + +- (void)layoutSubviews { + if (!self.accessoryBackgroundView){ + self.accessoryBackgroundView = [[UIView alloc] initWithFrame:CGRectMake(0, 2, self.frame.size.width * 2, self.frame.size.height - 2)]; + self.accessoryBackgroundView.autoresizingMask = UIViewAutoresizingFlexibleHeight; + self.accessoryBackgroundView.clipsToBounds = YES; + + // colors + self.accessoryBackgroundView.backgroundColor = [self backgroundColor]; + } + + if (self.style == BITFeedbackListViewCellPresentationStyleDefault) { + [self addSubview:self.accessoryBackgroundView]; + } else if (self.accessoryBackgroundView.superview){ + [self.accessoryBackgroundView removeFromSuperview]; + } + self.contentView.backgroundColor = [self backgroundColor]; + self.labelTitle.backgroundColor = [self backgroundColor]; + self.labelText.backgroundColor = [self backgroundColor]; + + self.labelTitle.textColor = TEXTCOLOR_TITLE; + if (_message.status == BITFeedbackMessageStatusSendPending || _message.status == BITFeedbackMessageStatusSendInProgress) { + [self.labelText setTextColor:TEXTCOLOR_PENDING]; + } else { + [self.labelText setTextColor:TEXTCOLOR_DEFAULT]; + } + + // background for deletion accessory view + + + // header + NSString *dateString = @""; + if (_message.status == BITFeedbackMessageStatusSendPending || _message.status == BITFeedbackMessageStatusSendInProgress) { + dateString = BITHockeyLocalizedString(@"Pending"); + } else if (_message.date) { + if ([self isSameDayWithDate1:[NSDate date] date2:_message.date]) { + dateString = [self.timeFormatter stringFromDate:_message.date]; + } else { + dateString = [self.dateFormatter stringFromDate:_message.date]; + } + } + [self.labelTitle setText:dateString]; + [self.labelTitle setFrame:CGRectMake(FRAME_SIDE_BORDER, FRAME_TOP_BORDER + LABEL_TITLE_Y, self.frame.size.width - (2 * FRAME_SIDE_BORDER), LABEL_TITLE_HEIGHT)]; + + if (_message.userMessage) { + self.labelTitle.textAlignment = kBITTextLabelAlignmentRight; + self.labelText.textAlignment = kBITTextLabelAlignmentRight; + } else { + self.labelTitle.textAlignment = kBITTextLabelAlignmentLeft; + self.labelText.textAlignment = kBITTextLabelAlignmentLeft; + } + + [self addSubview:self.labelTitle]; + + // text + [self.labelText setText:_message.text]; + CGSize sizeForTextLabel = CGSizeMake(self.frame.size.width - (2 * FRAME_SIDE_BORDER), + [[self class] heightForTextInRowWithMessage:_message tableViewWidth:self.frame.size.width] - LABEL_TEXT_Y - FRAME_BOTTOM_BORDER); + + [self.labelText setFrame:CGRectMake(FRAME_SIDE_BORDER, LABEL_TEXT_Y, sizeForTextLabel.width, sizeForTextLabel.height)]; + + [self addSubview:self.labelText]; + + CGFloat baseOffsetOfText = CGRectGetMaxY(self.labelText.frame); + + + int i = 0; + + CGFloat attachmentsPerRow = floorf(self.frame.size.width / (FRAME_SIDE_BORDER + ATTACHMENT_SIZE)); + + for (BITActivityIndicatorButton *imageButton in self.attachmentViews) { + imageButton.contentMode = UIViewContentModeScaleAspectFit; + imageButton.imageView.contentMode = UIViewContentModeScaleAspectFill; + + if (!_message.userMessage) { + imageButton.frame = CGRectMake(FRAME_SIDE_BORDER + (FRAME_SIDE_BORDER + ATTACHMENT_SIZE) * (i%(int)attachmentsPerRow) , floor(i/attachmentsPerRow)*(FRAME_SIDE_BORDER + ATTACHMENT_SIZE) + baseOffsetOfText , ATTACHMENT_SIZE, ATTACHMENT_SIZE); + } else { + imageButton.frame = CGRectMake(self.frame.size.width - FRAME_SIDE_BORDER - ATTACHMENT_SIZE - ((FRAME_SIDE_BORDER + ATTACHMENT_SIZE) * (i%(int)attachmentsPerRow) ), floor(i/attachmentsPerRow)*(FRAME_SIDE_BORDER + ATTACHMENT_SIZE) + baseOffsetOfText , ATTACHMENT_SIZE, ATTACHMENT_SIZE); + } + + if (!imageButton.superview) { + if (self.accessoryBackgroundView.superview) { + [self insertSubview:imageButton aboveSubview:self.accessoryBackgroundView]; + } else { + [self addSubview:imageButton]; + } + } + + i++; + } + + [super layoutSubviews]; +} + +- (void)imageButtonPressed:(id)sender { + if ([self.delegate respondsToSelector:@selector(listCell:didSelectAttachment:)]) { + NSInteger index = [self.attachmentViews indexOfObject:sender]; + if (index != NSNotFound && [self.message previewableAttachments].count > index) { + BITFeedbackMessageAttachment *attachment = [self.message previewableAttachments][index]; + [self.delegate listCell:self didSelectAttachment:attachment]; + } + } +} + + +@end + +#endif diff --git a/Pods/HockeySDK/Classes/BITFeedbackListViewController.h b/Pods/HockeySDK/Classes/BITFeedbackListViewController.h new file mode 100644 index 0000000..4687d38 --- /dev/null +++ b/Pods/HockeySDK/Classes/BITFeedbackListViewController.h @@ -0,0 +1,61 @@ +/* + * Author: Andreas Linde + * + * Copyright (c) 2012-2014 HockeyApp, Bit Stadium GmbH. + * All rights reserved. + * + * Permission is hereby granted, free of charge, to any person + * obtaining a copy of this software and associated documentation + * files (the "Software"), to deal in the Software without + * restriction, including without limitation the rights to use, + * copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following + * conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES + * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + */ + + +#import +#import + +#import "BITHockeyBaseViewController.h" + +/** + View controller providing a default interface to manage feedback + + The message list interface contains options to locally delete single messages + by swiping over them, or deleting all messages. This will not delete the messages + on the server though! + + It is also integrates actions to invoke the user interface to compose a new messages, + reload the list content from the server and changing the users name or email if these + are allowed to be set. + + To add this view controller to your own app and push it onto a navigation stack, + don't create the instance yourself, but use the following code to get a correct instance: + + [[BITHockeyManager sharedHockeyManager].feedbackManager feedbackListViewController:NO] + + To show it modally, use the following code instead: + + [[BITHockeyManager sharedHockeyManager].feedbackManager feedbackListViewController:YES] + + This ensures that the presentation on iOS 6 and iOS 7 will use the current design on each OS Version. + */ + +@interface BITFeedbackListViewController : BITHockeyBaseViewController { +} + +@end diff --git a/Pods/HockeySDK/Classes/BITFeedbackListViewController.m b/Pods/HockeySDK/Classes/BITFeedbackListViewController.m new file mode 100644 index 0000000..dbfa2b6 --- /dev/null +++ b/Pods/HockeySDK/Classes/BITFeedbackListViewController.m @@ -0,0 +1,878 @@ +/* + * Author: Andreas Linde + * + * Copyright (c) 2012-2014 HockeyApp, Bit Stadium GmbH. + * All rights reserved. + * + * Permission is hereby granted, free of charge, to any person + * obtaining a copy of this software and associated documentation + * files (the "Software"), to deal in the Software without + * restriction, including without limitation the rights to use, + * copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following + * conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES + * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + */ + + +#import "HockeySDK.h" + +#if HOCKEYSDK_FEATURE_FEEDBACK + +#import "HockeySDKPrivate.h" + +#import "BITFeedbackManagerPrivate.h" +#import "BITFeedbackManager.h" +#import "BITFeedbackListViewController.h" +#import "BITFeedbackListViewCell.h" +#import "BITFeedbackComposeViewController.h" +#import "BITFeedbackUserDataViewController.h" +#import "BITFeedbackMessage.h" +#import "BITFeedbackMessageAttachment.h" +#import "BITAttributedLabel.h" + +#import "BITHockeyBaseManagerPrivate.h" + +#import "BITHockeyHelper.h" +#import +#import + + +#define DEFAULT_BACKGROUNDCOLOR BIT_RGBCOLOR(245, 245, 245) +#define DEFAULT_BACKGROUNDCOLOR_OS7 BIT_RGBCOLOR(255, 255, 255) +#define DEFAULT_TEXTCOLOR BIT_RGBCOLOR(75, 75, 75) + +#define BUTTON_BORDERCOLOR BIT_RGBCOLOR(175, 175, 175) +#define BUTTON_BACKGROUNDCOLOR BIT_RGBCOLOR(225, 225, 225) +#define BUTTON_TEXTCOLOR BIT_RGBCOLOR(58, 58, 58) +#define BUTTON_TEXTCOLOR_SHADOW BIT_RGBCOLOR(255, 255, 255) + +#define BUTTON_DELETE_BORDERCOLOR BIT_RGBCOLOR(61, 61, 61) +#define BUTTON_DELETE_BACKGROUNDCOLOR BIT_RGBCOLOR(225, 0, 0) +#define BUTTON_DELETE_TEXTCOLOR BIT_RGBCOLOR(240, 240, 240) +#define BUTTON_DELETE_TEXTCOLOR_SHADOW BIT_RGBCOLOR(125, 0, 0) + +#define BORDER_COLOR BIT_RGBCOLOR(215, 215, 215) + + +@interface BITFeedbackListViewController () + +@property (nonatomic, weak) BITFeedbackManager *manager; +@property (nonatomic, strong) NSDateFormatter *lastUpdateDateFormatter; +@property (nonatomic) BOOL userDataComposeFlow; +@property (nonatomic, strong) NSArray *cachedPreviewItems; +@property (nonatomic, strong) NSOperationQueue *thumbnailQueue; + +@end + + +@implementation BITFeedbackListViewController { + NSInteger _deleteButtonSection; + NSInteger _userButtonSection; +} + +- (instancetype)initWithStyle:(UITableViewStyle)style { + if ((self = [super initWithStyle:style])) { + _manager = [BITHockeyManager sharedHockeyManager].feedbackManager; + + _deleteButtonSection = -1; + _userButtonSection = -1; + _userDataComposeFlow = NO; + + _lastUpdateDateFormatter = [[NSDateFormatter alloc] init]; + [_lastUpdateDateFormatter setDateStyle:NSDateFormatterShortStyle]; + [_lastUpdateDateFormatter setTimeStyle:NSDateFormatterShortStyle]; + _lastUpdateDateFormatter.locale = [NSLocale currentLocale]; + + _thumbnailQueue = [NSOperationQueue new]; + } + return self; +} + + +- (void)dealloc { + [[NSNotificationCenter defaultCenter] removeObserver:self name:BITHockeyFeedbackMessagesLoadingStarted object:nil]; + [[NSNotificationCenter defaultCenter] removeObserver:self name:BITHockeyFeedbackMessagesLoadingFinished object:nil]; + + [NSObject cancelPreviousPerformRequestsWithTarget:self selector:@selector(showDelayedUserDataViewController) object:nil]; +} + + +#pragma mark - View lifecycle + +- (void)viewDidLoad { + [super viewDidLoad]; + + [[NSNotificationCenter defaultCenter] addObserver:self + selector:@selector(startLoadingIndicator) + name:BITHockeyFeedbackMessagesLoadingStarted + object:nil]; + + [[NSNotificationCenter defaultCenter] addObserver:self + selector:@selector(updateList) + name:BITHockeyFeedbackMessagesLoadingFinished + object:nil]; + + self.title = BITHockeyLocalizedString(@"HockeyFeedbackListTitle"); + + self.tableView.delegate = self; + self.tableView.dataSource = self; + self.tableView.separatorStyle = UITableViewCellSeparatorStyleNone; + [self.tableView setAutoresizingMask:UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleWidth]; + if ([self.manager isPreiOS7Environment]) { + [self.tableView setBackgroundColor:[UIColor colorWithRed:0.82 green:0.84 blue:0.84 alpha:1]]; + [self.tableView setSeparatorColor:[UIColor colorWithRed:0.79 green:0.79 blue:0.79 alpha:1]]; + } else { + // [self.tableView setBackgroundColor:[UIColor colorWithRed:1.0 green:1.0 blue:1.0 alpha:1]]; + } + + if ([self.manager isPreiOS7Environment]) { + self.view.backgroundColor = DEFAULT_BACKGROUNDCOLOR; + } else { + // self.view.backgroundColor = DEFAULT_BACKGROUNDCOLOR_OS7; + } + + id refreshClass = NSClassFromString(@"UIRefreshControl"); + if (refreshClass) { + self.refreshControl = [[UIRefreshControl alloc] init]; + [self.refreshControl addTarget:self action:@selector(reloadList) forControlEvents:UIControlEventValueChanged]; + } else { + self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemRefresh + target:self + action:@selector(reloadList)]; + } +} + +- (void)startLoadingIndicator { + id refreshClass = NSClassFromString(@"UIRefreshControl"); + if (refreshClass) { + [self.refreshControl beginRefreshing]; + } else { + self.navigationItem.rightBarButtonItem.enabled = NO; + } +} + +- (void)stopLoadingIndicator { + id refreshClass = NSClassFromString(@"UIRefreshControl"); + if (refreshClass) { + [self.refreshControl endRefreshing]; + } else { + self.navigationItem.rightBarButtonItem.enabled = YES; + } +} + +- (BOOL)isRefreshingWithNewControl { + id refreshClass = NSClassFromString(@"UIRefreshControl"); + if (refreshClass) { + return [self.refreshControl isRefreshing]; + } + return NO; +} + +- (void)reloadList { + [self startLoadingIndicator]; + + [self.manager updateMessagesList]; +} + +- (void)updateList { + CGSize contentSize = self.tableView.contentSize; + CGPoint contentOffset = self.tableView.contentOffset; + + [self refreshPreviewItems]; + [self.tableView reloadData]; + + if (contentSize.height > 0 && + self.tableView.contentSize.height > self.tableView.frame.size.height && + self.tableView.contentSize.height > contentSize.height && + ![self isRefreshingWithNewControl]) + [self.tableView setContentOffset:CGPointMake(contentOffset.x, self.tableView.contentSize.height - contentSize.height + contentOffset.y) animated:NO]; + + [self stopLoadingIndicator]; + + [self.tableView flashScrollIndicators]; +} + +- (void)viewDidAppear:(BOOL)animated { + if (self.userDataComposeFlow) { + self.userDataComposeFlow = NO; + } + self.manager.currentFeedbackListViewController = self; + + [self.manager updateMessagesListIfRequired]; + + if ([self.manager numberOfMessages] == 0 && + [self.manager askManualUserDataAvailable] && + [self.manager requireManualUserDataMissing] && + ![self.manager didAskUserData] + ) { + self.userDataComposeFlow = YES; + + if ([self.manager showFirstRequiredPresentationModal]) { + [self setUserDataAction:nil]; + } else { + // In case of presenting the feedback in a UIPopoverController it appears + // that the animation is not yet finished (though it should) and pushing + // the user data view on top of the navigation stack right away will + // cause the following warning to appear in the console: + // "nested push animation can result in corrupted navigation bar" + [self performSelector:@selector(showDelayedUserDataViewController) withObject:nil afterDelay:0.0]; + } + } else { + [self.tableView reloadData]; + } + + [super viewDidAppear:animated]; +} + +- (void)viewWillDisappear:(BOOL)animated { + self.manager.currentFeedbackListViewController = nil; + + [super viewWillDisappear:animated]; +} + + +#pragma mark - Private methods + +- (void)showDelayedUserDataViewController { + BITFeedbackUserDataViewController *userController = [[BITFeedbackUserDataViewController alloc] initWithStyle:UITableViewStyleGrouped]; + userController.delegate = self; + + [self.navigationController pushViewController:userController animated:YES]; +} + +- (void)setUserDataAction:(id)sender { + BITFeedbackUserDataViewController *userController = [[BITFeedbackUserDataViewController alloc] initWithStyle:UITableViewStyleGrouped]; + userController.delegate = self; + + UINavigationController *navController = [self.manager customNavigationControllerWithRootViewController:userController + presentationStyle:UIModalPresentationFormSheet]; + + [self presentViewController:navController animated:YES completion:nil]; +} + +- (void)newFeedbackAction:(id)sender { + BITFeedbackComposeViewController *composeController = [self.manager feedbackComposeViewController]; + + UINavigationController *navController = [self.manager customNavigationControllerWithRootViewController:composeController + presentationStyle:UIModalPresentationFormSheet]; + + [self presentViewController:navController animated:YES completion:nil]; +} + +- (void)deleteAllMessages { + [_manager deleteAllMessages]; + [self refreshPreviewItems]; + + [self.tableView reloadData]; +} + +- (void)deleteAllMessagesAction:(id)sender { + if (UI_USER_INTERFACE_IDIOM() != UIUserInterfaceIdiomPad) { + UIActionSheet *deleteAction = [[UIActionSheet alloc] initWithTitle:BITHockeyLocalizedString(@"HockeyFeedbackListDeleteAllTitle") + delegate:self + cancelButtonTitle:BITHockeyLocalizedString(@"HockeyFeedbackListDeleteAllCancel") + destructiveButtonTitle:BITHockeyLocalizedString(@"HockeyFeedbackListDeleteAllDelete") + otherButtonTitles:nil + ]; + [deleteAction setTag:0]; + [deleteAction setActionSheetStyle:UIActionSheetStyleBlackTranslucent]; + [deleteAction showInView:[self viewForShowingActionSheetOnPhone]]; + } else { + UIAlertView *deleteAction = [[UIAlertView alloc] initWithTitle:BITHockeyLocalizedString(@"HockeyFeedbackListButtonDeleteAllMessages") + message:BITHockeyLocalizedString(@"HockeyFeedbackListDeleteAllTitle") + delegate:self + cancelButtonTitle:BITHockeyLocalizedString(@"HockeyFeedbackListDeleteAllCancel") + otherButtonTitles:BITHockeyLocalizedString(@"HockeyFeedbackListDeleteAllDelete"), nil]; + + [deleteAction setTag:0]; + [deleteAction show]; + } +} + +- (UIView*) viewForShowingActionSheetOnPhone { + //find the topmost presented view controller + //and use its view + UIViewController* topMostPresentedViewController = self.view.window.rootViewController; + while(topMostPresentedViewController.presentedViewController) { + topMostPresentedViewController = topMostPresentedViewController.presentedViewController; + } + UIView* view = topMostPresentedViewController.view; + + if(nil == view) { + //hope for the best. Should work + //on simple view(controller) hierarchies + view = self.view; + } + + return view; +} + +#pragma mark - BITFeedbackUserDataDelegate + +-(void)userDataUpdateCancelled { + if (self.userDataComposeFlow) { + if ([self.manager showFirstRequiredPresentationModal]) { + __weak typeof(self) weakSelf = self; + [self dismissViewControllerAnimated:YES completion:^(void){ + typeof(self) strongSelf = weakSelf; + [strongSelf.tableView reloadData]; + }]; + } else { + [self.navigationController popToViewController:self animated:YES]; + } + } else { + [self dismissViewControllerAnimated:YES completion:^(void){}]; + } +} + +-(void)userDataUpdateFinished { + [self.manager saveMessages]; + [self refreshPreviewItems]; + + if (self.userDataComposeFlow) { + if ([self.manager showFirstRequiredPresentationModal]) { + __weak typeof(self) weakSelf = self; + [self dismissViewControllerAnimated:YES completion:^(void){ + typeof(self) strongSelf = weakSelf; + [strongSelf newFeedbackAction:nil]; + }]; + } else { + BITFeedbackComposeViewController *composeController = [[BITFeedbackComposeViewController alloc] init]; + composeController.delegate = self; + + [self.navigationController pushViewController:composeController animated:YES]; + } + } else { + [self dismissViewControllerAnimated:YES completion:^(void){}]; + } +} + + +#pragma mark - BITFeedbackComposeViewControllerDelegate + +- (void)feedbackComposeViewController:(BITFeedbackComposeViewController *)composeViewController + didFinishWithResult:(BITFeedbackComposeResult)composeResult { + if (self.userDataComposeFlow) { + if ([self.manager showFirstRequiredPresentationModal]) { + __weak typeof(self) weakSelf = self; + [self dismissViewControllerAnimated:YES completion:^(void){ + typeof(self) strongSelf = weakSelf; + [strongSelf.tableView reloadData]; + }]; + } else { + [self.navigationController popToViewController:self animated:YES]; + } + } else { + [self dismissViewControllerAnimated:YES completion:^(void){}]; + } + + if (self.manager.delegate && + [self.manager.delegate respondsToSelector:@selector(feedbackComposeViewController:didFinishWithResult:)]) { + [self.manager.delegate feedbackComposeViewController:composeViewController didFinishWithResult:composeResult]; + } else if (self.manager.delegate && [self.manager.delegate respondsToSelector:@selector(feedbackComposeViewControllerDidFinish:)]) { +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated" + [self.manager.delegate feedbackComposeViewControllerDidFinish:composeViewController]; +#pragma clang diagnostic pop + } +} + + +#pragma mark - UIViewController Rotation + +- (void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration { + [self.tableView beginUpdates]; + [self.tableView endUpdates]; +} + +- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)orientation { + return YES; +} + + +#pragma mark - Table view data source + +- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView { + NSInteger sections = 2; + _deleteButtonSection = -1; + _userButtonSection = -1; + + if ([self.manager isManualUserDataAvailable] || [self.manager didAskUserData]) { + _userButtonSection = sections; + sections++; + } + + if ([self.manager numberOfMessages] > 0) { + _deleteButtonSection = sections; + sections++; + } + + return sections; +} + +- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { + if (section == 1) { + return [self.manager numberOfMessages]; + } else { + return 1; + } +} + +- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section { + if (![self.manager isPreiOS7Environment]) { + if (section == 0) { + return 30; + } + } + + return [super tableView:tableView heightForHeaderInSection:section]; +} + +- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section { + if (![self.manager isPreiOS7Environment] && section == 0) { + UIView *containerView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, 30.0f)]; + UILabel *textLabel = [[UILabel alloc] initWithFrame:CGRectMake(16.0f, 5.0f, self.view.frame.size.width - 32.0f, 25.0f)]; + textLabel.text = [NSString stringWithFormat:BITHockeyLocalizedString(@"HockeyFeedbackListLastUpdated"), + [self.manager lastCheck] ? [self.lastUpdateDateFormatter stringFromDate:[self.manager lastCheck]] : BITHockeyLocalizedString(@"HockeyFeedbackListNeverUpdated")]; + textLabel.font = [UIFont systemFontOfSize:10]; + textLabel.textColor = DEFAULT_TEXTCOLOR; + [containerView addSubview:textLabel]; + + return containerView; + } + + return [super tableView:tableView viewForHeaderInSection:section]; +} + +- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { + static NSString *CellIdentifier = @"MessageCell"; + static NSString *LastUpdateIdentifier = @"LastUpdateCell"; + static NSString *ButtonTopIdentifier = @"ButtonTopCell"; + static NSString *ButtonBottomIdentifier = @"ButtonBottomCell"; + static NSString *ButtonDeleteIdentifier = @"ButtonDeleteCell"; + + if (indexPath.section == 0 && indexPath.row == 1 && ![self.manager isPreiOS7Environment]) { + UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:LastUpdateIdentifier]; + + if (!cell) { + cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:LastUpdateIdentifier]; + cell.textLabel.font = [UIFont systemFontOfSize:10]; + cell.textLabel.textColor = DEFAULT_TEXTCOLOR; + cell.accessoryType = UITableViewCellAccessoryNone; + cell.selectionStyle = UITableViewCellSelectionStyleNone; + cell.textLabel.textAlignment = kBITTextLabelAlignmentCenter; + } + + cell.textLabel.text = [NSString stringWithFormat:BITHockeyLocalizedString(@"HockeyFeedbackListLastUpdated"), + [self.manager lastCheck] ? [self.lastUpdateDateFormatter stringFromDate:[self.manager lastCheck]] : BITHockeyLocalizedString(@"HockeyFeedbackListNeverUpdated")]; + + return cell; + } else if (indexPath.section == 0 || indexPath.section >= 2) { + CGFloat topGap = 0.0f; + + UITableViewCell *cell = nil; + + NSString *identifier = nil; + + if (indexPath.section == 0) { + identifier = ButtonTopIdentifier; + } else if (indexPath.section == _userButtonSection) { + identifier = ButtonBottomIdentifier; + } else { + identifier = ButtonDeleteIdentifier; + } + + cell = [tableView dequeueReusableCellWithIdentifier:identifier]; + + if (!cell) { + cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:identifier]; + + cell.textLabel.font = [UIFont systemFontOfSize:14]; + cell.textLabel.numberOfLines = 0; + cell.accessoryType = UITableViewCellAccessoryNone; + + if ([self.manager isPreiOS7Environment]) { + cell.selectionStyle = UITableViewCellSelectionStyleNone; + } else { + cell.selectionStyle = UITableViewCellSelectionStyleGray; + } + } + + // button + NSString *titleString = nil; + SEL actionSelector = nil; + + UIColor *titleColor = BIT_RGBCOLOR(35, 111, 251); + if ([self.view respondsToSelector:@selector(tintColor)]){ + titleColor = self.view.tintColor; + } + + UIButton *button = nil; + if ([self.manager isPreiOS7Environment]) { + button = [UIButton buttonWithType:UIButtonTypeCustom]; + button.autoresizingMask = UIViewAutoresizingFlexibleWidth; + UIImage *stretchableButton = [bit_imageNamed(@"buttonRoundedRegular.png", BITHOCKEYSDK_BUNDLE) stretchableImageWithLeftCapWidth:10 topCapHeight:0]; + UIImage *stretchableHighlightedButton = [bit_imageNamed(@"buttonRoundedRegularHighlighted.png", BITHOCKEYSDK_BUNDLE) stretchableImageWithLeftCapWidth:10 topCapHeight:0]; + [button setBackgroundImage:stretchableButton forState:UIControlStateNormal]; + [button setBackgroundImage:stretchableHighlightedButton forState:UIControlStateHighlighted]; + + [[button titleLabel] setShadowOffset:CGSizeMake(0, 1)]; + [[button titleLabel] setFont:[UIFont boldSystemFontOfSize:14.0]]; + + [button setTitleColor:BUTTON_TEXTCOLOR forState:UIControlStateNormal]; + [button setTitleShadowColor:BUTTON_TEXTCOLOR_SHADOW forState:UIControlStateNormal]; + } + + if (indexPath.section == 0) { + topGap = 22; + if ([self.manager numberOfMessages] == 0) { + titleString = BITHockeyLocalizedString(@"HockeyFeedbackListButtonWriteFeedback"); + } else { + titleString = BITHockeyLocalizedString(@"HockeyFeedbackListButtonWriteResponse"); + } + actionSelector = @selector(newFeedbackAction:); + } else if (indexPath.section == _userButtonSection) { + topGap = 6.0f; + if ([self.manager requireUserName] == BITFeedbackUserDataElementRequired || + ([self.manager requireUserName] == BITFeedbackUserDataElementOptional && [self.manager userName] != nil) + ) { + titleString = [NSString stringWithFormat:BITHockeyLocalizedString(@"HockeyFeedbackListButtonUserDataWithName"), [self.manager userName] ?: @"-"]; + } else if ([self.manager requireUserEmail] == BITFeedbackUserDataElementRequired || + ([self.manager requireUserEmail] == BITFeedbackUserDataElementOptional && [self.manager userEmail] != nil) + ) { + titleString = [NSString stringWithFormat:BITHockeyLocalizedString(@"HockeyFeedbackListButtonUserDataWithEmail"), [self.manager userEmail] ?: @"-"]; + } else if ([self.manager requireUserName] == BITFeedbackUserDataElementOptional) { + titleString = BITHockeyLocalizedString(@"HockeyFeedbackListButtonUserDataSetName"); + } else { + titleString = BITHockeyLocalizedString(@"HockeyFeedbackListButtonUserDataSetEmail"); + } + actionSelector = @selector(setUserDataAction:); + } else { + topGap = 0.0f; + if ([self.manager isPreiOS7Environment]) { + [[button titleLabel] setShadowOffset:CGSizeMake(0, -1)]; + UIImage *stretchableDeleteButton = [bit_imageNamed(@"buttonRoundedDelete.png", BITHOCKEYSDK_BUNDLE) stretchableImageWithLeftCapWidth:10 topCapHeight:0]; + UIImage *stretchableDeleteHighlightedButton = [bit_imageNamed(@"buttonRoundedDeleteHighlighted.png", BITHOCKEYSDK_BUNDLE) stretchableImageWithLeftCapWidth:10 topCapHeight:0]; + [button setBackgroundImage:stretchableDeleteButton forState:UIControlStateNormal]; + [button setBackgroundImage:stretchableDeleteHighlightedButton forState:UIControlStateHighlighted]; + + [button setTitleColor:BUTTON_DELETE_TEXTCOLOR forState:UIControlStateNormal]; + [button setTitleShadowColor:BUTTON_DELETE_TEXTCOLOR_SHADOW forState:UIControlStateNormal]; + } + + titleString = BITHockeyLocalizedString(@"HockeyFeedbackListButtonDeleteAllMessages"); + titleColor = BIT_RGBCOLOR(251, 35, 35); + actionSelector = @selector(deleteAllMessagesAction:); + } + + if ([self.manager isPreiOS7Environment]) { + if (titleString) + [button setTitle:titleString forState:UIControlStateNormal]; + if (actionSelector) + [button addTarget:self action:actionSelector forControlEvents:UIControlEventTouchUpInside]; + + [button setFrame: CGRectMake( 10.0f, topGap + 12.0f, cell.frame.size.width - 20.0f, 42.0f)]; + [cell addSubview:button]; + } else { + cell.textLabel.text = titleString; + cell.textLabel.textColor = titleColor; + } + + if ([self.manager isPreiOS7Environment]) { + // status label or shadow lines + if (indexPath.section == 0) { + UILabel *statusLabel = [[UILabel alloc] initWithFrame:CGRectMake(0, 6, cell.frame.size.width, 28)]; + + statusLabel.font = [UIFont systemFontOfSize:10]; + statusLabel.textColor = DEFAULT_TEXTCOLOR; + statusLabel.textAlignment = kBITTextLabelAlignmentCenter; + if ([self.manager isPreiOS7Environment]) { + statusLabel.backgroundColor = DEFAULT_BACKGROUNDCOLOR; + } else { + statusLabel.backgroundColor = DEFAULT_BACKGROUNDCOLOR_OS7; + } + statusLabel.autoresizingMask = UIViewAutoresizingFlexibleWidth; + + statusLabel.text = [NSString stringWithFormat:BITHockeyLocalizedString(@"HockeyFeedbackListLastUpdated"), + [self.manager lastCheck] ? [self.lastUpdateDateFormatter stringFromDate:[self.manager lastCheck]] : BITHockeyLocalizedString(@"HockeyFeedbackListNeverUpdated")]; + + [cell addSubview:statusLabel]; + } else if (indexPath.section == 2) { + UIView *lineView1 = [[UIView alloc] initWithFrame:CGRectMake(0, 0, cell.frame.size.width, 1)]; + lineView1.backgroundColor = BORDER_COLOR; + lineView1.autoresizingMask = UIViewAutoresizingFlexibleWidth; + [cell addSubview:lineView1]; + } + } + + return cell; + } else { + BITFeedbackListViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier]; + + if (!cell) { + cell = [[BITFeedbackListViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier]; + cell.accessoryType = UITableViewCellAccessoryNone; + cell.selectionStyle = UITableViewCellSelectionStyleNone; + } + + if (indexPath.row == 0 || indexPath.row % 2 == 0) { + cell.backgroundStyle = BITFeedbackListViewCellBackgroundStyleAlternate; + } else { + cell.backgroundStyle = BITFeedbackListViewCellBackgroundStyleNormal; + } + + if ([self.manager isPreiOS7Environment]) { + cell.style = BITFeedbackListViewCellPresentationStyleDefault; + } else { + cell.style = BITFeedbackListViewCellPresentationStyleOS7; + } + + BITFeedbackMessage *message = [self.manager messageAtIndex:indexPath.row]; + cell.message = message; + cell.labelText.delegate = self; + cell.labelText.userInteractionEnabled = YES; + cell.delegate = self; + [cell setAttachments:message.previewableAttachments]; + + for (BITFeedbackMessageAttachment *attachment in message.attachments){ + if (attachment.needsLoadingFromURL && !attachment.isLoading){ + attachment.isLoading = YES; + NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:attachment.sourceURL]]; + [NSURLConnection sendAsynchronousRequest:request queue:self.thumbnailQueue completionHandler:^(NSURLResponse *response, NSData *responseData, NSError *err) { + attachment.isLoading = NO; + if (responseData.length) { + dispatch_async(dispatch_get_main_queue(), ^{ + [attachment replaceData:responseData]; + [[NSNotificationCenter defaultCenter] postNotificationName:kBITFeedbackUpdateAttachmentThumbnail object:attachment]; + [[BITHockeyManager sharedHockeyManager].feedbackManager saveMessages]; + }); + } + }]; + } + } + + if ( + [self.manager isPreiOS7Environment] || + (![self.manager isPreiOS7Environment] && indexPath.row != 0) + ) { + UIView *lineView1 = [[UIView alloc] initWithFrame:CGRectMake(0, 0, cell.frame.size.width, 1)]; + lineView1.backgroundColor = BORDER_COLOR; + lineView1.autoresizingMask = UIViewAutoresizingFlexibleWidth; + [cell addSubview:lineView1]; + } + + return cell; + } +} + + +- (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath { + if (indexPath.section == 1) + return YES; + + return NO; +} + +- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath { + if (editingStyle == UITableViewCellEditingStyleDelete) { + BITFeedbackMessage *message = [self.manager messageAtIndex:indexPath.row]; + BOOL messageHasAttachments = ([message attachments].count > 0); + + if ([_manager deleteMessageAtIndex:indexPath.row]) { + if ([_manager numberOfMessages] > 0) { + [tableView deleteRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationAutomatic]; + } else { + [tableView reloadData]; + } + + if (messageHasAttachments) { + [self refreshPreviewItems]; + } + } + } +} + + +#pragma mark - Table view delegate + +- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath { + if (indexPath.section == 0 ) { + if ([self.manager isPreiOS7Environment]) + return 87; + else + return 44; + } + if (indexPath.section >= 2) { + if ([self.manager isPreiOS7Environment]) + return 65; + else + return 44; + } + + BITFeedbackMessage *message = [self.manager messageAtIndex:indexPath.row]; + if (!message) return 44; + + return [BITFeedbackListViewCell heightForRowWithMessage:message tableViewWidth:self.view.frame.size.width]; +} + +- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { + if (![self.manager isPreiOS7Environment]) { + if (indexPath.section == 0) { + [self newFeedbackAction:self]; + } else if (indexPath.section == _userButtonSection) { + [self setUserDataAction:self]; + } else if (indexPath.section == _deleteButtonSection) { + [self deleteAllMessagesAction:self]; + } + } +} + +#pragma mark - BITAttributedLabelDelegate + +- (void)attributedLabel:(BITAttributedLabel *)label didSelectLinkWithURL:(NSURL *)url { + if (UI_USER_INTERFACE_IDIOM() != UIUserInterfaceIdiomPad) { + UIActionSheet *linkAction = [[UIActionSheet alloc] initWithTitle:[url absoluteString] + delegate:self + cancelButtonTitle:BITHockeyLocalizedString(@"HockeyFeedbackListLinkActionCancel") + destructiveButtonTitle:nil + otherButtonTitles:BITHockeyLocalizedString(@"HockeyFeedbackListLinkActionOpen"), BITHockeyLocalizedString(@"HockeyFeedbackListLinkActionCopy"), nil + ]; + [linkAction setTag:1]; + [linkAction setActionSheetStyle:UIActionSheetStyleBlackTranslucent]; + [linkAction showInView:[self viewForShowingActionSheetOnPhone]]; + } else { + UIAlertView *linkAction = [[UIAlertView alloc] initWithTitle:[url absoluteString] + message:nil + delegate:self + cancelButtonTitle:BITHockeyLocalizedString(@"HockeyFeedbackListLinkActionCancel") + otherButtonTitles:BITHockeyLocalizedString(@"HockeyFeedbackListLinkActionOpen"), BITHockeyLocalizedString(@"HockeyFeedbackListLinkActionCopy"), nil + ]; + + [linkAction setTag:1]; + [linkAction show]; + } +} + + +#pragma mark - UIAlertViewDelegate + +- (void)alertView:(UIAlertView *)alertView didDismissWithButtonIndex:(NSInteger)buttonIndex { + if (buttonIndex == alertView.cancelButtonIndex) { + return; + } + + if ([alertView tag] == 0) { + if (buttonIndex == [alertView firstOtherButtonIndex]) { + [self deleteAllMessages]; + } + } else { + if (buttonIndex == [alertView firstOtherButtonIndex]) { + [[UIApplication sharedApplication] openURL:[NSURL URLWithString:alertView.title]]; + } else { + UIPasteboard *pasteboard = [UIPasteboard generalPasteboard]; + pasteboard.URL = [NSURL URLWithString:alertView.title]; + } + } +} + + +#pragma mark - UIActionSheetDelegate + +- (void)actionSheet:(UIActionSheet *)actionSheet didDismissWithButtonIndex:(NSInteger)buttonIndex { + if (buttonIndex == actionSheet.cancelButtonIndex) { + return; + } + + if ([actionSheet tag] == 0) { + if (buttonIndex == [actionSheet destructiveButtonIndex]) { + [self deleteAllMessages]; + } + } else { + if (buttonIndex == [actionSheet firstOtherButtonIndex]) { + [[UIApplication sharedApplication] openURL:[NSURL URLWithString:actionSheet.title]]; + } else { + UIPasteboard *pasteboard = [UIPasteboard generalPasteboard]; + pasteboard.URL = [NSURL URLWithString:actionSheet.title]; + } + } +} + + +#pragma mark - ListViewCellDelegate + +- (void)listCell:(id)cell didSelectAttachment:(BITFeedbackMessageAttachment *)attachment { + QLPreviewController *previewController = [[QLPreviewController alloc] init]; + previewController.dataSource = self; + + [self presentViewController:previewController animated:YES completion:nil]; + + if (self.cachedPreviewItems.count > [self.cachedPreviewItems indexOfObject:attachment]) { + [previewController setCurrentPreviewItemIndex:[self.cachedPreviewItems indexOfObject:attachment]]; + } +} + +- (void)refreshPreviewItems { + self.cachedPreviewItems = nil; + NSMutableArray *collectedAttachments = [NSMutableArray new]; + + for (int i = 0; i < self.manager.numberOfMessages; i++) { + BITFeedbackMessage *message = [self.manager messageAtIndex:i]; + [collectedAttachments addObjectsFromArray:message.previewableAttachments]; + } + + self.cachedPreviewItems = collectedAttachments; +} + +- (NSInteger)numberOfPreviewItemsInPreviewController:(QLPreviewController *)controller { + if (!self.cachedPreviewItems){ + [self refreshPreviewItems]; + } + + return self.cachedPreviewItems.count; +} + +- (id )previewController:(QLPreviewController *)controller previewItemAtIndex:(NSInteger)index { + if (index >= 0) { + __weak QLPreviewController* blockController = controller; + BITFeedbackMessageAttachment *attachment = self.cachedPreviewItems[index]; + + if (attachment.needsLoadingFromURL && !attachment.isLoading) { + attachment.isLoading = YES; + NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:attachment.sourceURL]]; + [NSURLConnection sendAsynchronousRequest:request queue:self.thumbnailQueue completionHandler:^(NSURLResponse *response, NSData *responseData, NSError *err) { + attachment.isLoading = NO; + if (responseData.length) { + [attachment replaceData:responseData]; + [blockController reloadData]; + + [[BITHockeyManager sharedHockeyManager].feedbackManager saveMessages]; + } else { + [blockController reloadData]; + } + }]; + + return attachment; + } else { + return self.cachedPreviewItems[index]; + } + } + + return nil; +} + +@end + +#endif /* HOCKEYSDK_FEATURE_FEEDBACK */ diff --git a/Pods/HockeySDK/Classes/BITFeedbackManager.h b/Pods/HockeySDK/Classes/BITFeedbackManager.h new file mode 100644 index 0000000..20423e1 --- /dev/null +++ b/Pods/HockeySDK/Classes/BITFeedbackManager.h @@ -0,0 +1,339 @@ +/* + * Author: Andreas Linde + * + * Copyright (c) 2012-2014 HockeyApp, Bit Stadium GmbH. + * All rights reserved. + * + * Permission is hereby granted, free of charge, to any person + * obtaining a copy of this software and associated documentation + * files (the "Software"), to deal in the Software without + * restriction, including without limitation the rights to use, + * copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following + * conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES + * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + */ + + +#import + +#import "BITHockeyBaseManager.h" +#import "BITFeedbackListViewController.h" +#import "BITFeedbackComposeViewController.h" + + +// Notification message which tells that loading messages finished +#define BITHockeyFeedbackMessagesLoadingStarted @"BITHockeyFeedbackMessagesLoadingStarted" + +// Notification message which tells that loading messages finished +#define BITHockeyFeedbackMessagesLoadingFinished @"BITHockeyFeedbackMessagesLoadingFinished" + + +/** + * Defines behavior of the user data field + */ +typedef NS_ENUM(NSInteger, BITFeedbackUserDataElement) { + /** + * don't ask for this user data element at all + */ + BITFeedbackUserDataElementDontShow = 0, + /** + * the user may provide it, but does not have to + */ + BITFeedbackUserDataElementOptional = 1, + /** + * the user has to provide this to continue + */ + BITFeedbackUserDataElementRequired = 2 +}; + +/** + * Available modes for opening the feedback compose interface with a screenshot attached + */ +typedef NS_ENUM(NSInteger, BITFeedbackObservationMode) { + /** + * No SDK provided trigger is active. + */ + BITFeedbackObservationNone = 0, + /** + * Triggers when the user takes a screenshot. This will grab the latest image from the camera roll. Requires iOS 7 or later! + */ + BITFeedbackObservationModeOnScreenshot = 1, + /** + * Triggers when the user taps with three fingers on the screen. + */ + BITFeedbackObservationModeThreeFingerTap = 2 +}; + + +@class BITFeedbackMessage; +@protocol BITFeedbackManagerDelegate; + +/** + The feedback module. + + This is the HockeySDK module for letting your users communicate directly with you via + the app and an integrated user interface. It provides a single threaded + discussion with a user running your app. + + You should never create your own instance of `BITFeedbackManager` but use the one provided + by the `[BITHockeyManager sharedHockeyManager]`: + + [BITHockeyManager sharedHockeyManager].feedbackManager + + The user interface provides a list view than can be presented modally using + `[BITFeedbackManager showFeedbackListView]` or adding + `[BITFeedbackManager feedbackListViewController:]` to push onto a navigation stack. + This list integrates all features to load new messages, write new messages, view messages + and ask the user for additional (optional) data like name and email. + + If the user provides the email address, all responses from the server will also be sent + to the user via email and the user is also able to respond directly via email, too. + + The message list interface also contains options to locally delete single messages + by swiping over them, or deleting all messages. This will not delete the messages + on the server, though! + + It also integrates actions to invoke the user interface to compose a new message, + reload the list content from the server and change the users name or email if these + are allowed to be set. + + It is also possible to invoke the user interface to compose a new message in your + own code, by calling `[BITFeedbackManager showFeedbackComposeView]` modally or adding + `[BITFeedbackManager feedbackComposeViewController]` to push onto a navigation stack. + + If new messages are written while the device is offline, the SDK automatically retries to + send them once the app starts again or gets active again, or if the notification + `BITHockeyNetworkDidBecomeReachableNotification` is fired. + + A third option is to include the `BITFeedbackActivity` into an UIActivityViewController. + This can be useful if you present some data that users can not only share but also + report back to the developer because they have some problems, e.g. webcams not working + any more. The activity provides a default title and image that can also be customized. + + New messages are automatically loaded on startup, when the app becomes active again + or when the notification `BITHockeyNetworkDidBecomeReachableNotification` is fired. This + only happens if the user ever did initiate a conversation by writing the first + feedback message. + + Implementing the `BITFeedbackManagerDelegate` protocol will notify your app when a new + message was received from the server. The `BITFeedbackComposeViewControllerDelegate` + protocol informs your app about events related to sending feedback messages. + + */ + +@interface BITFeedbackManager : BITHockeyBaseManager + +///----------------------------------------------------------------------------- +/// @name General settings +///----------------------------------------------------------------------------- + + +/** + Define if a name has to be provided by the user when providing feedback + + - `BITFeedbackUserDataElementDontShow`: Don't ask for this user data element at all + - `BITFeedbackUserDataElementOptional`: The user may provide it, but does not have to + - `BITFeedbackUserDataElementRequired`: The user has to provide this to continue + + The default value is `BITFeedbackUserDataElementOptional`. + + @warning If you provide a non nil value for the `BITFeedbackManager` class via + `[BITHockeyManagerDelegate userNameForHockeyManager:componentManager:]` then this + property will automatically be set to `BITFeedbackUserDataElementDontShow` + + @see BITFeedbackUserDataElement + @see requireUserEmail + @see `[BITHockeyManagerDelegate userNameForHockeyManager:componentManager:]` + */ +@property (nonatomic, readwrite) BITFeedbackUserDataElement requireUserName; + + +/** + Define if an email address has to be provided by the user when providing feedback + + If the user provides the email address, all responses from the server will also be send + to the user via email and the user is also able to respond directly via email too. + + - `BITFeedbackUserDataElementDontShow`: Don't ask for this user data element at all + - `BITFeedbackUserDataElementOptional`: The user may provide it, but does not have to + - `BITFeedbackUserDataElementRequired`: The user has to provide this to continue + + The default value is `BITFeedbackUserDataElementOptional`. + + @warning If you provide a non nil value for the `BITFeedbackManager` class via + `[BITHockeyManagerDelegate userEmailForHockeyManager:componentManager:]` then this + property will automatically be set to `BITFeedbackUserDataElementDontShow` + + @see BITFeedbackUserDataElement + @see requireUserName + @see `[BITHockeyManagerDelegate userEmailForHockeyManager:componentManager:]` + */ +@property (nonatomic, readwrite) BITFeedbackUserDataElement requireUserEmail; + + +/** + Indicates if an alert should be shown when new messages have arrived + + This lets the user view the new feedback by choosing the appropriate option + in the alert sheet, and the `BITFeedbackListViewController` will be shown. + + The alert is only shown, if the newest message didn't originate from the current user. + This requires the users email address to be present! The optional userid property + cannot be used, because users could also answer via email and then this information + is not available. + + Default is `YES` + @see feedbackListViewController: + @see requireUserEmail + @see `[BITHockeyManagerDelegate userEmailForHockeyManager:componentManager:]` + */ +@property (nonatomic, readwrite) BOOL showAlertOnIncomingMessages; + + +/** + Define the trigger that opens the feedback composer and attaches a screenshot + + The following modes are available: + + - `BITFeedbackObservationNone`: No SDK based trigger is active. You can implement your + own trigger and then call `[[BITHockeyManager sharedHockeyManager].feedbackManager showFeedbackComposeViewWithGeneratedScreenshot];` to handle your custom events + that should trigger this. + - `BITFeedbackObservationModeOnScreenshot`: Triggers when the user takes a screenshot. + This will grab the latest image from the camera roll. Requires iOS 7 or later! + - `BITFeedbackObservationModeThreeFingerTap`: Triggers when the user taps on the screen for three seconds with three fingers. + + Default is `BITFeedbackObservationNone` + + @see showFeedbackComposeViewWithGeneratedScreenshot + */ +@property (nonatomic, readwrite) BITFeedbackObservationMode feedbackObservationMode; + + +/** + Prefill feedback compose message user interface with the items given. + + All NSString-Content in the array will be concatenated and result in the message, + while all UIImage and NSData-instances will be turned into attachments. + + @param items an NSArray with objects that should be attached + @see `[BITFeedbackComposeViewController prepareWithItems:]` + */ +@property (nonatomic, copy) NSArray *feedbackComposerPreparedItems; + + +///----------------------------------------------------------------------------- +/// @name User Interface +///----------------------------------------------------------------------------- + + +/** + Indicates if a forced user data UI presentation is shown modal + + If `requireUserName` and/or `requireUserEmail` are enabled, the first presentation + of `feedbackListViewController:` and subsequent `feedbackComposeViewController:` + will automatically present a UI that lets the user provide this data and compose + a message. By default this is shown (since SDK 3.1) as a modal sheet. + + If you want the SDK to push this UI onto the navigation stack in this specific scenario, + then change the property to `NO`. + + @warning If you are presenting the `BITFeedbackListViewController` in a popover, this property should not be changed! + + Default is `YES` + @see requireUserName + @see requireUserEmail + @see showFeedbackComposeView + @see feedbackComposeViewController + @see showFeedbackListView + @see feedbackListViewController: + */ +@property (nonatomic, readwrite) BOOL showFirstRequiredPresentationModal; + + +/** + Return a screenshot UIImage instance from the current visible screen + + @return UIImage instance containing a screenshot of the current screen + */ +- (UIImage *)screenshot; + + +/** + Present the modal feedback list user interface. + */ +- (void)showFeedbackListView; + + +/** + Create an feedback list view + + @param modal Return a view ready for modal presentation with integrated navigation bar + @return `BITFeedbackListViewController` The feedback list view controller, + e.g. to push it onto a navigation stack. + */ +- (BITFeedbackListViewController *)feedbackListViewController:(BOOL)modal; + + +/** + Present the modal feedback compose message user interface. + */ +- (void)showFeedbackComposeView; + +/** + Present the modal feedback compose message user interface with the items given. + + All NSString-Content in the array will be concatenated and result in the message, + while all UIImage and NSData-instances will be turned into attachments. + + @param items an NSArray with objects that should be attached + @see `[BITFeedbackComposeViewController prepareWithItems:]` + */ +- (void)showFeedbackComposeViewWithPreparedItems:(NSArray *)items; + +/** + Presents a modal feedback compose interface with a screenshot attached which is taken at the time of calling this method. + + This should be used when your own trigger fires. The following code should be used: + + [[BITHockeyManager sharedHockeyManager].feedbackManager showFeedbackComposeViewWithGeneratedScreenshot]; + + @see feedbackObservationMode + */ +- (void)showFeedbackComposeViewWithGeneratedScreenshot; + + +/** + Create a feedback compose view + + Example to show a modal feedback compose UI with prefilled text + + BITFeedbackComposeViewController *feedbackCompose = [[BITHockeyManager sharedHockeyManager].feedbackManager feedbackComposeViewController]; + + [feedbackCompose prepareWithItems: + @[@"Adding some example default text and also adding a link.", + [NSURL URLWithString:@"http://hockeayyp.net/"]]]; + + UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:feedbackCompose]; + navController.modalPresentationStyle = UIModalPresentationFormSheet; + [self presentViewController:navController animated:YES completion:nil]; + + @return `BITFeedbackComposeViewController` The compose feedback view controller, + e.g. to push it onto a navigation stack. + */ +- (BITFeedbackComposeViewController *)feedbackComposeViewController; + + +@end diff --git a/Pods/HockeySDK/Classes/BITFeedbackManager.m b/Pods/HockeySDK/Classes/BITFeedbackManager.m new file mode 100644 index 0000000..160ed3f --- /dev/null +++ b/Pods/HockeySDK/Classes/BITFeedbackManager.m @@ -0,0 +1,1156 @@ +/* + * Author: Andreas Linde + * + * Copyright (c) 2012-2014 HockeyApp, Bit Stadium GmbH. + * All rights reserved. + * + * Permission is hereby granted, free of charge, to any person + * obtaining a copy of this software and associated documentation + * files (the "Software"), to deal in the Software without + * restriction, including without limitation the rights to use, + * copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following + * conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES + * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + */ + + +#import "HockeySDK.h" + +#if HOCKEYSDK_FEATURE_FEEDBACK + +#import + +#import "HockeySDKPrivate.h" + +#import "BITFeedbackManager.h" +#import "BITFeedbackMessageAttachment.h" +#import "BITFeedbackManagerPrivate.h" +#import "BITHockeyBaseManagerPrivate.h" + +#import "BITHockeyHelper.h" +#import "BITHockeyAppClient.h" + +#define kBITFeedbackUserDataAsked @"HockeyFeedbackUserDataAsked" +#define kBITFeedbackDateOfLastCheck @"HockeyFeedbackDateOfLastCheck" +#define kBITFeedbackMessages @"HockeyFeedbackMessages" +#define kBITFeedbackToken @"HockeyFeedbackToken" +#define kBITFeedbackUserID @"HockeyFeedbackuserID" +#define kBITFeedbackName @"HockeyFeedbackName" +#define kBITFeedbackEmail @"HockeyFeedbackEmail" +#define kBITFeedbackLastMessageID @"HockeyFeedbackLastMessageID" +#define kBITFeedbackAppID @"HockeyFeedbackAppID" + +NSString *const kBITFeedbackUpdateAttachmentThumbnail = @"BITFeedbackUpdateAttachmentThumbnail"; + +@interface BITFeedbackManager() + +@property (nonatomic, strong) UITapGestureRecognizer *tapRecognizer; +@property (nonatomic) BOOL screenshotNotificationEnabled; + +@end + +@implementation BITFeedbackManager { + NSFileManager *_fileManager; + NSString *_settingsFile; + + id _appDidBecomeActiveObserver; + id _appDidEnterBackgroundObserver; + id _networkDidBecomeReachableObserver; + + BOOL _incomingMessagesAlertShowing; + BOOL _didEnterBackgroundState; + BOOL _networkRequestInProgress; + + BITFeedbackObservationMode _observationMode; +} + +#pragma mark - Initialization + +- (instancetype)init { + if ((self = [super init])) { + _currentFeedbackListViewController = nil; + _currentFeedbackComposeViewController = nil; + _didAskUserData = NO; + + _requireUserName = BITFeedbackUserDataElementOptional; + _requireUserEmail = BITFeedbackUserDataElementOptional; + _showAlertOnIncomingMessages = YES; + _showFirstRequiredPresentationModal = YES; + + _disableFeedbackManager = NO; + _networkRequestInProgress = NO; + _incomingMessagesAlertShowing = NO; + _lastCheck = nil; + _token = nil; + _lastMessageID = nil; + + _feedbackList = [NSMutableArray array]; + + _fileManager = [[NSFileManager alloc] init]; + + _settingsFile = [bit_settingsDir() stringByAppendingPathComponent:BITHOCKEY_FEEDBACK_SETTINGS]; + + _userID = nil; + _userName = nil; + _userEmail = nil; + } + return self; +} + +- (void)dealloc { + [self unregisterObservers]; +} + + +- (void)didBecomeActiveActions { + if ([self isFeedbackManagerDisabled]) return; + if (!_didEnterBackgroundState) return; + + _didEnterBackgroundState = NO; + + if ([_feedbackList count] == 0) { + [self loadMessages]; + } else { + [self updateAppDefinedUserData]; + } + [self updateMessagesList]; +} + +- (void)didEnterBackgroundActions { + _didEnterBackgroundState = NO; + + if ([[UIApplication sharedApplication] applicationState] == UIApplicationStateBackground) { + _didEnterBackgroundState = YES; + } +} + +#pragma mark - Observers +- (void) registerObservers { + __weak typeof(self) weakSelf = self; + if(nil == _appDidEnterBackgroundObserver) { + _appDidEnterBackgroundObserver = [[NSNotificationCenter defaultCenter] addObserverForName:UIApplicationDidEnterBackgroundNotification + object:nil + queue:NSOperationQueue.mainQueue + usingBlock:^(NSNotification *note) { + typeof(self) strongSelf = weakSelf; + [strongSelf didEnterBackgroundActions]; + }]; + } + if(nil == _appDidBecomeActiveObserver) { + _appDidBecomeActiveObserver = [[NSNotificationCenter defaultCenter] addObserverForName:UIApplicationDidBecomeActiveNotification + object:nil + queue:NSOperationQueue.mainQueue + usingBlock:^(NSNotification *note) { + typeof(self) strongSelf = weakSelf; + [strongSelf didBecomeActiveActions]; + }]; + } + if(nil == _networkDidBecomeReachableObserver) { + _networkDidBecomeReachableObserver = [[NSNotificationCenter defaultCenter] addObserverForName:BITHockeyNetworkDidBecomeReachableNotification + object:nil + queue:NSOperationQueue.mainQueue + usingBlock:^(NSNotification *note) { + typeof(self) strongSelf = weakSelf; + [strongSelf didBecomeActiveActions]; + }]; + } +} + +- (void) unregisterObservers { + if(_appDidEnterBackgroundObserver) { + [[NSNotificationCenter defaultCenter] removeObserver:_appDidEnterBackgroundObserver]; + _appDidEnterBackgroundObserver = nil; + } + if(_appDidBecomeActiveObserver) { + [[NSNotificationCenter defaultCenter] removeObserver:_appDidBecomeActiveObserver]; + _appDidBecomeActiveObserver = nil; + } + if(_networkDidBecomeReachableObserver) { + [[NSNotificationCenter defaultCenter] removeObserver:_networkDidBecomeReachableObserver]; + _networkDidBecomeReachableObserver = nil; + } +} + +#pragma mark - Private methods + +- (NSString *)uuidString { + CFUUIDRef theToken = CFUUIDCreate(NULL); + NSString *stringUUID = (__bridge_transfer NSString *)CFUUIDCreateString(NULL, theToken); + CFRelease(theToken); + + return stringUUID; +} + +- (NSString *)uuidAsLowerCaseAndShortened { + return [[[self uuidString] lowercaseString] stringByReplacingOccurrencesOfString:@"-" withString:@""]; +} + +#pragma mark - Feedback Modal UI + +- (UIImage *)screenshot { + return bit_screenshot(); +} + +- (BITFeedbackListViewController *)feedbackListViewController:(BOOL)modal { + if ([self isPreiOS7Environment]) { + return [[BITFeedbackListViewController alloc] initWithModalStyle:modal]; + } else { + return [[BITFeedbackListViewController alloc] initWithStyle:UITableViewStyleGrouped modal:modal]; + } +} + +- (void)showFeedbackListView { + if (_currentFeedbackListViewController) { + BITHockeyLog(@"INFO: update view already visible, aborting"); + return; + } + + [self showView:[self feedbackListViewController:YES]]; +} + + +- (BITFeedbackComposeViewController *)feedbackComposeViewController { + BITFeedbackComposeViewController *composeViewController = [[BITFeedbackComposeViewController alloc] init]; + [composeViewController prepareWithItems:self.feedbackComposerPreparedItems]; + + // by default set the delegate to be identical to the one of BITFeedbackManager + [composeViewController setDelegate:self.delegate]; + return composeViewController; +} + +- (void)showFeedbackComposeView { + [self showFeedbackComposeViewWithPreparedItems:nil]; +} + +- (void)showFeedbackComposeViewWithPreparedItems:(NSArray *)items{ + if (_currentFeedbackComposeViewController) { + BITHockeyLog(@"INFO: update view already visible, aborting"); + return; + } + BITFeedbackComposeViewController *composeView = [self feedbackComposeViewController]; + [composeView prepareWithItems:items]; + + [self showView:composeView]; + +} + +- (void)showFeedbackComposeViewWithGeneratedScreenshot { + UIImage *screenshot = bit_screenshot(); + [self showFeedbackComposeViewWithPreparedItems:@[screenshot]]; +} + +#pragma mark - Manager Control + +- (void)startManager { + if ([self isFeedbackManagerDisabled]) return; + + [self registerObservers]; + + // we are already delayed, so the notification already came in and this won't invoked twice + switch ([[UIApplication sharedApplication] applicationState]) { + case UIApplicationStateActive: + // we did startup, so yes we are coming from background + _didEnterBackgroundState = YES; + + [self didBecomeActiveActions]; + break; + case UIApplicationStateBackground: + case UIApplicationStateInactive: + // do nothing, wait for active state + break; + } +} + +- (void)updateMessagesList { + if (_networkRequestInProgress) return; + + NSArray *pendingMessages = [self messagesWithStatus:BITFeedbackMessageStatusSendPending]; + if ([pendingMessages count] > 0) { + [self submitPendingMessages]; + } else { + [self fetchMessageUpdates]; + } +} + +- (void)updateMessagesListIfRequired { + double now = [[NSDate date] timeIntervalSince1970]; + if ((now - [_lastCheck timeIntervalSince1970] > 30)) { + [self updateMessagesList]; + } +} + +- (BOOL)updateUserIDUsingKeychainAndDelegate { + BOOL availableViaDelegate = NO; + + NSString *userID = [self stringValueFromKeychainForKey:kBITHockeyMetaUserID]; + + if ([BITHockeyManager sharedHockeyManager].delegate && + [[BITHockeyManager sharedHockeyManager].delegate respondsToSelector:@selector(userIDForHockeyManager:componentManager:)]) { + userID = [[BITHockeyManager sharedHockeyManager].delegate + userIDForHockeyManager:[BITHockeyManager sharedHockeyManager] + componentManager:self]; + } + + if (userID) { + availableViaDelegate = YES; + self.userID = userID; + } + + return availableViaDelegate; +} + +- (BOOL)updateUserNameUsingKeychainAndDelegate { + BOOL availableViaDelegate = NO; + + NSString *userName = [self stringValueFromKeychainForKey:kBITHockeyMetaUserName]; + + if ([BITHockeyManager sharedHockeyManager].delegate && + [[BITHockeyManager sharedHockeyManager].delegate respondsToSelector:@selector(userNameForHockeyManager:componentManager:)]) { + userName = [[BITHockeyManager sharedHockeyManager].delegate + userNameForHockeyManager:[BITHockeyManager sharedHockeyManager] + componentManager:self]; + } + + if (userName) { + availableViaDelegate = YES; + self.userName = userName; + self.requireUserName = BITFeedbackUserDataElementDontShow; + } + + return availableViaDelegate; +} + +- (BOOL)updateUserEmailUsingKeychainAndDelegate { + BOOL availableViaDelegate = NO; + + NSString *userEmail = [self stringValueFromKeychainForKey:kBITHockeyMetaUserEmail]; + + if ([BITHockeyManager sharedHockeyManager].delegate && + [[BITHockeyManager sharedHockeyManager].delegate respondsToSelector:@selector(userEmailForHockeyManager:componentManager:)]) { + userEmail = [[BITHockeyManager sharedHockeyManager].delegate + userEmailForHockeyManager:[BITHockeyManager sharedHockeyManager] + componentManager:self]; + } + + if (userEmail) { + availableViaDelegate = YES; + self.userEmail = userEmail; + self.requireUserEmail = BITFeedbackUserDataElementDontShow; + } + + return availableViaDelegate; +} + +- (void)updateAppDefinedUserData { + [self updateUserIDUsingKeychainAndDelegate]; + [self updateUserNameUsingKeychainAndDelegate]; + [self updateUserEmailUsingKeychainAndDelegate]; + + // if both values are shown via the delegates, we never ever did ask and will never ever ask for user data + if (self.requireUserName == BITFeedbackUserDataElementDontShow && + self.requireUserEmail == BITFeedbackUserDataElementDontShow) { + self.didAskUserData = NO; + } +} + +#pragma mark - Local Storage + +- (void)loadMessages { + BOOL userIDViaDelegate = [self updateUserIDUsingKeychainAndDelegate]; + BOOL userNameViaDelegate = [self updateUserNameUsingKeychainAndDelegate]; + BOOL userEmailViaDelegate = [self updateUserEmailUsingKeychainAndDelegate]; + + if (![_fileManager fileExistsAtPath:_settingsFile]) + return; + + NSData *codedData = [[NSData alloc] initWithContentsOfFile:_settingsFile]; + if (codedData == nil) return; + + NSKeyedUnarchiver *unarchiver = nil; + + @try { + unarchiver = [[NSKeyedUnarchiver alloc] initForReadingWithData:codedData]; + } + @catch (NSException *exception) { + return; + } + + if (!userIDViaDelegate) { + if ([unarchiver containsValueForKey:kBITFeedbackUserID]) { + self.userID = [unarchiver decodeObjectForKey:kBITFeedbackUserID]; + [self addStringValueToKeychain:self.userID forKey:kBITFeedbackUserID]; + } + self.userID = [self stringValueFromKeychainForKey:kBITFeedbackUserID]; + } + + if (!userNameViaDelegate) { + if ([unarchiver containsValueForKey:kBITFeedbackName]) { + self.userName = [unarchiver decodeObjectForKey:kBITFeedbackName]; + [self addStringValueToKeychain:self.userName forKey:kBITFeedbackName]; + } + self.userName = [self stringValueFromKeychainForKey:kBITFeedbackName]; + } + + if (!userEmailViaDelegate) { + if ([unarchiver containsValueForKey:kBITFeedbackEmail]) { + self.userEmail = [unarchiver decodeObjectForKey:kBITFeedbackEmail]; + [self addStringValueToKeychain:self.userEmail forKey:kBITFeedbackEmail]; + } + self.userEmail = [self stringValueFromKeychainForKey:kBITFeedbackEmail]; + } + + if ([unarchiver containsValueForKey:kBITFeedbackUserDataAsked]) + _didAskUserData = YES; + + if ([unarchiver containsValueForKey:kBITFeedbackToken]) { + self.token = [unarchiver decodeObjectForKey:kBITFeedbackToken]; + [self addStringValueToKeychain:self.token forKey:kBITFeedbackToken]; + } + self.token = [self stringValueFromKeychainForKey:kBITFeedbackToken]; + + if ([unarchiver containsValueForKey:kBITFeedbackAppID]) { + NSString *appID = [unarchiver decodeObjectForKey:kBITFeedbackAppID]; + + // the stored thread is from another application identifier, so clear the token + // which will cause the new posts to create a new thread on the server for the + // current app identifier + if ([appID compare:self.appIdentifier] != NSOrderedSame) { + self.token = nil; + } + } + + if ([unarchiver containsValueForKey:kBITFeedbackDateOfLastCheck]) + self.lastCheck = [unarchiver decodeObjectForKey:kBITFeedbackDateOfLastCheck]; + + if ([unarchiver containsValueForKey:kBITFeedbackLastMessageID]) + self.lastMessageID = [unarchiver decodeObjectForKey:kBITFeedbackLastMessageID]; + + if ([unarchiver containsValueForKey:kBITFeedbackMessages]) { + [self.feedbackList setArray:[unarchiver decodeObjectForKey:kBITFeedbackMessages]]; + + [self sortFeedbackList]; + + // inform the UI to update its data in case the list is already showing + [[NSNotificationCenter defaultCenter] postNotificationName:BITHockeyFeedbackMessagesLoadingFinished object:nil]; + } + + [unarchiver finishDecoding]; + + if (!self.lastCheck) { + self.lastCheck = [NSDate distantPast]; + } +} + + +- (void)saveMessages { + [self sortFeedbackList]; + + NSMutableData *data = [[NSMutableData alloc] init]; + NSKeyedArchiver *archiver = [[NSKeyedArchiver alloc] initForWritingWithMutableData:data]; + + if (_didAskUserData) + [archiver encodeObject:[NSNumber numberWithBool:YES] forKey:kBITFeedbackUserDataAsked]; + + if (self.token) + [self addStringValueToKeychain:self.token forKey:kBITFeedbackToken]; + + if (self.appIdentifier) + [archiver encodeObject:self.appIdentifier forKey:kBITFeedbackAppID]; + + if (self.userID) + [self addStringValueToKeychain:self.userID forKey:kBITFeedbackUserID]; + + if (self.userName) + [self addStringValueToKeychain:self.userName forKey:kBITFeedbackName]; + + if (self.userEmail) + [self addStringValueToKeychain:self.userEmail forKey:kBITFeedbackEmail]; + + if (self.lastCheck) + [archiver encodeObject:self.lastCheck forKey:kBITFeedbackDateOfLastCheck]; + + if (self.lastMessageID) + [archiver encodeObject:self.lastMessageID forKey:kBITFeedbackLastMessageID]; + + [archiver encodeObject:self.feedbackList forKey:kBITFeedbackMessages]; + + [archiver finishEncoding]; + [data writeToFile:_settingsFile atomically:YES]; +} + + +- (void)updateDidAskUserData { + if (!_didAskUserData) { + _didAskUserData = YES; + + [self saveMessages]; + } +} + +#pragma mark - Messages + +- (void)sortFeedbackList { + [_feedbackList sortUsingComparator:^(BITFeedbackMessage *obj1, BITFeedbackMessage *obj2) { + NSDate *date1 = [obj1 date]; + NSDate *date2 = [obj2 date]; + + // not send, in conflict and send in progress messages on top, sorted by date + // read and unread on bottom, sorted by date + // archived on the very bottom + + if ([obj1 status] >= BITFeedbackMessageStatusSendInProgress && [obj2 status] < BITFeedbackMessageStatusSendInProgress) { + return NSOrderedDescending; + } else if ([obj1 status] < BITFeedbackMessageStatusSendInProgress && [obj2 status] >= BITFeedbackMessageStatusSendInProgress) { + return NSOrderedAscending; + } else if ([obj1 status] == BITFeedbackMessageStatusArchived && [obj2 status] < BITFeedbackMessageStatusArchived) { + return NSOrderedDescending; + } else if ([obj1 status] < BITFeedbackMessageStatusArchived && [obj2 status] == BITFeedbackMessageStatusArchived) { + return NSOrderedAscending; + } else { + return (NSInteger)[date2 compare:date1]; + } + }]; +} + +- (NSUInteger)numberOfMessages { + return [_feedbackList count]; +} + +- (BITFeedbackMessage *)messageAtIndex:(NSUInteger)index { + if ([_feedbackList count] > index) { + return [_feedbackList objectAtIndex:index]; + } + + return nil; +} + +- (BITFeedbackMessage *)messageWithID:(NSNumber *)messageID { + __block BITFeedbackMessage *message = nil; + + [_feedbackList enumerateObjectsUsingBlock:^(BITFeedbackMessage *objMessage, NSUInteger messagesIdx, BOOL *stop) { + if ([[objMessage identifier] isEqualToNumber:messageID]) { + message = objMessage; + *stop = YES; + } + }]; + + return message; +} + +- (NSArray *)messagesWithStatus:(BITFeedbackMessageStatus)status { + NSMutableArray *resultMessages = [[NSMutableArray alloc] initWithCapacity:[_feedbackList count]]; + + [_feedbackList enumerateObjectsUsingBlock:^(BITFeedbackMessage *objMessage, NSUInteger messagesIdx, BOOL *stop) { + if ([objMessage status] == status) { + [resultMessages addObject: objMessage]; + } + }]; + + return [NSArray arrayWithArray:resultMessages];; +} + +- (BITFeedbackMessage *)lastMessageHavingID { + __block BITFeedbackMessage *message = nil; + + [_feedbackList enumerateObjectsUsingBlock:^(BITFeedbackMessage *objMessage, NSUInteger messagesIdx, BOOL *stop) { + if ([[objMessage identifier] integerValue] != 0) { + message = objMessage; + *stop = YES; + } + }]; + + return message; +} + +- (void)markSendInProgressMessagesAsPending { + // make sure message that may have not been send successfully, get back into the right state to be send again + [_feedbackList enumerateObjectsUsingBlock:^(id objMessage, NSUInteger messagesIdx, BOOL *stop) { + if ([(BITFeedbackMessage *)objMessage status] == BITFeedbackMessageStatusSendInProgress) + [(BITFeedbackMessage *)objMessage setStatus:BITFeedbackMessageStatusSendPending]; + }]; +} + +- (void)markSendInProgressMessagesAsInConflict { + // make sure message that may have not been send successfully, get back into the right state to be send again + [_feedbackList enumerateObjectsUsingBlock:^(id objMessage, NSUInteger messagesIdx, BOOL *stop) { + if ([(BITFeedbackMessage *)objMessage status] == BITFeedbackMessageStatusSendInProgress) + [(BITFeedbackMessage *)objMessage setStatus:BITFeedbackMessageStatusInConflict]; + }]; +} + +- (void)updateLastMessageID { + BITFeedbackMessage *lastMessageHavingID = [self lastMessageHavingID]; + if (lastMessageHavingID) { + if (!self.lastMessageID || [self.lastMessageID compare:[lastMessageHavingID identifier]] != NSOrderedSame) + self.lastMessageID = [lastMessageHavingID identifier]; + } +} + +- (BOOL)deleteMessageAtIndex:(NSUInteger)index { + if (_feedbackList && [_feedbackList count] > index && [_feedbackList objectAtIndex:index]) { + BITFeedbackMessage *message = _feedbackList[index]; + [message deleteContents]; + [_feedbackList removeObjectAtIndex:index]; + + [self saveMessages]; + return YES; + } + + return NO; +} + +- (void)deleteAllMessages { + [_feedbackList removeAllObjects]; + + [self saveMessages]; +} + + +#pragma mark - User + +- (BOOL)askManualUserDataAvailable { + [self updateAppDefinedUserData]; + + if (self.requireUserName == BITFeedbackUserDataElementDontShow && + self.requireUserEmail == BITFeedbackUserDataElementDontShow) + return NO; + + return YES; +} + +- (BOOL)requireManualUserDataMissing { + [self updateAppDefinedUserData]; + + if (self.requireUserName == BITFeedbackUserDataElementRequired && !self.userName) + return YES; + + if (self.requireUserEmail == BITFeedbackUserDataElementRequired && !self.userEmail) + return YES; + + return NO; +} + +- (BOOL)isManualUserDataAvailable { + [self updateAppDefinedUserData]; + + if ((self.requireUserName != BITFeedbackUserDataElementDontShow && self.userName) || + (self.requireUserEmail != BITFeedbackUserDataElementDontShow && self.userEmail)) + return YES; + + return NO; +} + + +#pragma mark - Networking + +- (void)updateMessageListFromResponse:(NSDictionary *)jsonDictionary { + if (!jsonDictionary) { + // nil is used when the server returns 404, so we need to mark all existing threads as archives and delete the discussion token + + NSArray *messagesSendInProgress = [self messagesWithStatus:BITFeedbackMessageStatusSendInProgress]; + NSInteger pendingMessagesCount = [messagesSendInProgress count] + [[self messagesWithStatus:BITFeedbackMessageStatusSendPending] count]; + + [self markSendInProgressMessagesAsPending]; + + [_feedbackList enumerateObjectsUsingBlock:^(id objMessage, NSUInteger messagesIdx, BOOL *stop) { + if ([(BITFeedbackMessage *)objMessage status] != BITFeedbackMessageStatusSendPending) + [(BITFeedbackMessage *)objMessage setStatus:BITFeedbackMessageStatusArchived]; + }]; + + if ([self token]) { + self.token = nil; + } + + NSInteger pendingMessagesCountAfterProcessing = [[self messagesWithStatus:BITFeedbackMessageStatusSendPending] count]; + + [self saveMessages]; + + // check if this request was successful and we have more messages pending and continue if positive + if (pendingMessagesCount > pendingMessagesCountAfterProcessing && pendingMessagesCountAfterProcessing > 0) { + [self performSelector:@selector(submitPendingMessages) withObject:nil afterDelay:0.1]; + } + + return; + } + + NSDictionary *feedback = [jsonDictionary objectForKey:@"feedback"]; + NSString *token = [jsonDictionary objectForKey:@"token"]; + NSDictionary *feedbackObject = [jsonDictionary objectForKey:@"feedback"]; + if (feedback && token && feedbackObject) { + // update the thread token, which is not available until the 1st message was successfully sent + self.token = token; + + self.lastCheck = [NSDate date]; + + // add all new messages + NSArray *feedMessages = [feedbackObject objectForKey:@"messages"]; + + // get the message that was currently sent if available + NSArray *messagesSendInProgress = [self messagesWithStatus:BITFeedbackMessageStatusSendInProgress]; + + NSInteger pendingMessagesCount = [messagesSendInProgress count] + [[self messagesWithStatus:BITFeedbackMessageStatusSendPending] count]; + + __block BOOL newMessage = NO; + NSMutableSet *returnedMessageIDs = [[NSMutableSet alloc] init]; + + [feedMessages enumerateObjectsUsingBlock:^(id objMessage, NSUInteger messagesIdx, BOOL *stop) { + if ([(NSDictionary *)objMessage objectForKey:@"id"]) { + NSNumber *messageID = [(NSDictionary *)objMessage objectForKey:@"id"]; + [returnedMessageIDs addObject:messageID]; + + BITFeedbackMessage *thisMessage = [self messageWithID:messageID]; + if (!thisMessage) { + // check if this is a message that was sent right now + __block BITFeedbackMessage *matchingSendInProgressOrInConflictMessage = nil; + + // TODO: match messages in state conflict + + [messagesSendInProgress enumerateObjectsUsingBlock:^(id objSendInProgressMessage, NSUInteger messagesSendInProgressIdx, BOOL *stop2) { + if ([[(NSDictionary *)objMessage objectForKey:@"token"] isEqualToString:[(BITFeedbackMessage *)objSendInProgressMessage token]]) { + matchingSendInProgressOrInConflictMessage = objSendInProgressMessage; + *stop2 = YES; + } + }]; + + if (matchingSendInProgressOrInConflictMessage) { + matchingSendInProgressOrInConflictMessage.date = [self parseRFC3339Date:[(NSDictionary *)objMessage objectForKey:@"created_at"]]; + matchingSendInProgressOrInConflictMessage.identifier = messageID; + matchingSendInProgressOrInConflictMessage.status = BITFeedbackMessageStatusRead; + NSArray *feedbackAttachments =[(NSDictionary *)objMessage objectForKey:@"attachments"]; + if (matchingSendInProgressOrInConflictMessage.attachments.count == feedbackAttachments.count) { + int attachmentIndex = 0; + for (BITFeedbackMessageAttachment* attachment in matchingSendInProgressOrInConflictMessage.attachments){ + attachment.identifier =feedbackAttachments[attachmentIndex][@"id"]; + attachmentIndex++; + } + } + } else { + if ([(NSDictionary *)objMessage objectForKey:@"clean_text"] || [(NSDictionary *)objMessage objectForKey:@"text"] || [(NSDictionary *)objMessage objectForKey:@"attachments"]) { + BITFeedbackMessage *message = [[BITFeedbackMessage alloc] init]; + message.text = [(NSDictionary *)objMessage objectForKey:@"clean_text"] ?: [(NSDictionary *)objMessage objectForKey:@"text"] ?: @""; + message.name = [(NSDictionary *)objMessage objectForKey:@"name"] ?: @""; + message.email = [(NSDictionary *)objMessage objectForKey:@"email"] ?: @""; + + message.date = [self parseRFC3339Date:[(NSDictionary *)objMessage objectForKey:@"created_at"]] ?: [NSDate date]; + message.identifier = [(NSDictionary *)objMessage objectForKey:@"id"]; + message.status = BITFeedbackMessageStatusUnread; + + for (NSDictionary *attachmentData in objMessage[@"attachments"]) { + BITFeedbackMessageAttachment *newAttachment = [BITFeedbackMessageAttachment new]; + newAttachment.originalFilename = attachmentData[@"file_name"]; + newAttachment.identifier = attachmentData[@"id"]; + newAttachment.sourceURL = attachmentData[@"url"]; + newAttachment.contentType = attachmentData[@"content_type"]; + [message addAttachmentsObject:newAttachment]; + } + + [_feedbackList addObject:message]; + + newMessage = YES; + } + } + } else { + // we should never get any messages back that are already stored locally, + // since we add the last_message_id to the request + } + } + }]; + + [self markSendInProgressMessagesAsPending]; + + [self sortFeedbackList]; + [self updateLastMessageID]; + + // we got a new incoming message, trigger user notification system + if (newMessage) { + // check if the latest message is from the users own email address, then don't show an alert since he answered using his own email + BOOL latestMessageFromUser = NO; + + BITFeedbackMessage *latestMessage = [self lastMessageHavingID]; + if (self.userEmail && latestMessage.email && [self.userEmail compare:latestMessage.email] == NSOrderedSame) + latestMessageFromUser = YES; + + if (!latestMessageFromUser) { + if([self.delegate respondsToSelector:@selector(feedbackManagerDidReceiveNewFeedback:)]) { + [self.delegate feedbackManagerDidReceiveNewFeedback:self]; + } + + if(self.showAlertOnIncomingMessages && !self.currentFeedbackListViewController && !self.currentFeedbackComposeViewController) { + UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:BITHockeyLocalizedString(@"HockeyFeedbackNewMessageTitle") + message:BITHockeyLocalizedString(@"HockeyFeedbackNewMessageText") + delegate:self + cancelButtonTitle:BITHockeyLocalizedString(@"HockeyFeedbackIgnore") + otherButtonTitles:BITHockeyLocalizedString(@"HockeyFeedbackShow"), nil + ]; + [alertView setTag:0]; + [alertView show]; + _incomingMessagesAlertShowing = YES; + } + } + } + + NSInteger pendingMessagesCountAfterProcessing = [[self messagesWithStatus:BITFeedbackMessageStatusSendPending] count]; + + // check if this request was successful and we have more messages pending and continue if positive + if (pendingMessagesCount > pendingMessagesCountAfterProcessing && pendingMessagesCountAfterProcessing > 0) { + [self performSelector:@selector(submitPendingMessages) withObject:nil afterDelay:0.1]; + } + + } else { + [self markSendInProgressMessagesAsPending]; + } + + [self saveMessages]; + + return; +} + + +- (void)sendNetworkRequestWithHTTPMethod:(NSString *)httpMethod withMessage:(BITFeedbackMessage *)message completionHandler:(void (^)(NSError *err))completionHandler { + NSString *boundary = @"----FOO"; + + _networkRequestInProgress = YES; + // inform the UI to update its data in case the list is already showing + [[NSNotificationCenter defaultCenter] postNotificationName:BITHockeyFeedbackMessagesLoadingStarted object:nil]; + + NSString *tokenParameter = @""; + if ([self token]) { + tokenParameter = [NSString stringWithFormat:@"/%@", [self token]]; + } + NSMutableString *parameter = [NSMutableString stringWithFormat:@"api/2/apps/%@/feedback%@", [self encodedAppIdentifier], tokenParameter]; + + NSString *lastMessageID = @""; + if (!self.lastMessageID) { + [self updateLastMessageID]; + } + if (self.lastMessageID) { + lastMessageID = [NSString stringWithFormat:@"&last_message_id=%li", (long)[self.lastMessageID integerValue]]; + } + + [parameter appendFormat:@"?format=json&bundle_version=%@&sdk=%@&sdk_version=%@%@", + bit_URLEncodedString([[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleVersion"]), + BITHOCKEY_NAME, + BITHOCKEY_VERSION, + lastMessageID + ]; + + // build request & send + NSString *url = [NSString stringWithFormat:@"%@%@", self.serverURL, parameter]; + BITHockeyLog(@"INFO: sending api request to %@", url); + + NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:url] cachePolicy:1 timeoutInterval:10.0]; + [request setHTTPMethod:httpMethod]; + [request setValue:@"Hockey/iOS" forHTTPHeaderField:@"User-Agent"]; + [request setValue:@"gzip" forHTTPHeaderField:@"Accept-Encoding"]; + + if (message) { + NSString *contentType = [NSString stringWithFormat:@"multipart/form-data; boundary=%@", boundary]; + [request setValue:contentType forHTTPHeaderField:@"Content-type"]; + + NSMutableData *postBody = [NSMutableData data]; + + [postBody appendData:[BITHockeyAppClient dataWithPostValue:@"Apple" forKey:@"oem" boundary:boundary]]; + [postBody appendData:[BITHockeyAppClient dataWithPostValue:[[UIDevice currentDevice] systemVersion] forKey:@"os_version" boundary:boundary]]; + [postBody appendData:[BITHockeyAppClient dataWithPostValue:[self getDevicePlatform] forKey:@"model" boundary:boundary]]; + [postBody appendData:[BITHockeyAppClient dataWithPostValue:[[[NSBundle mainBundle] preferredLocalizations] objectAtIndex:0] forKey:@"lang" boundary:boundary]]; + [postBody appendData:[BITHockeyAppClient dataWithPostValue:[[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleVersion"] forKey:@"bundle_version" boundary:boundary]]; + [postBody appendData:[BITHockeyAppClient dataWithPostValue:[message text] forKey:@"text" boundary:boundary]]; + [postBody appendData:[BITHockeyAppClient dataWithPostValue:[message token] forKey:@"message_token" boundary:boundary]]; + + NSString *installString = bit_appAnonID(); + if (installString) { + [postBody appendData:[BITHockeyAppClient dataWithPostValue:installString forKey:@"install_string" boundary:boundary]]; + } + + if (self.userID) { + [postBody appendData:[BITHockeyAppClient dataWithPostValue:self.userID forKey:@"user_string" boundary:boundary]]; + } + if (self.userName) { + [postBody appendData:[BITHockeyAppClient dataWithPostValue:self.userName forKey:@"name" boundary:boundary]]; + } + if (self.userEmail) { + [postBody appendData:[BITHockeyAppClient dataWithPostValue:self.userEmail forKey:@"email" boundary:boundary]]; + } + + + NSInteger photoIndex = 0; + + for (BITFeedbackMessageAttachment *attachment in message.attachments){ + NSString *key = [NSString stringWithFormat:@"attachment%ld", (long)photoIndex]; + + NSString *filename = attachment.originalFilename; + + if (!filename) { + filename = [NSString stringWithFormat:@"Attachment %ld", (long)photoIndex]; + } + + [postBody appendData:[BITHockeyAppClient dataWithPostValue:attachment.data forKey:key contentType:attachment.contentType boundary:boundary filename:filename]]; + + photoIndex++; + } + + [postBody appendData:[[NSString stringWithFormat:@"--%@--\r\n", boundary] dataUsingEncoding:NSUTF8StringEncoding]]; + + + [request setHTTPBody:postBody]; + } + + [NSURLConnection sendAsynchronousRequest:request queue:[NSOperationQueue mainQueue] completionHandler:^(NSURLResponse *response, NSData *responseData, NSError *err) { + _networkRequestInProgress = NO; + + if (err) { + [self reportError:err]; + [self markSendInProgressMessagesAsPending]; + completionHandler(err); + } else { + NSInteger statusCode = [(NSHTTPURLResponse *)response statusCode]; + if (statusCode == 404) { + // thread has been deleted, we archive it + [self updateMessageListFromResponse:nil]; + } else if (statusCode == 409) { + // we submitted a message that is already on the server, mark it as being in conflict and resolve it with another fetch + + if (!self.token) { + // set the token to the first message token, since this is identical + __block NSString *token = nil; + + [_feedbackList enumerateObjectsUsingBlock:^(id objMessage, NSUInteger messagesIdx, BOOL *stop) { + if ([(BITFeedbackMessage *)objMessage status] == BITFeedbackMessageStatusSendInProgress) { + token = [(BITFeedbackMessage *)objMessage token]; + *stop = YES; + } + }]; + + if (token) { + self.token = token; + } + } + + [self markSendInProgressMessagesAsInConflict]; + [self saveMessages]; + [self performSelector:@selector(fetchMessageUpdates) withObject:nil afterDelay:0.2]; + } else if ([responseData length]) { + NSString *responseString = [[NSString alloc] initWithBytes:[responseData bytes] length:[responseData length] encoding: NSUTF8StringEncoding]; + BITHockeyLog(@"INFO: Received API response: %@", responseString); + + if (responseString && [responseString dataUsingEncoding:NSUTF8StringEncoding]) { + NSError *error = NULL; + + NSDictionary *feedDict = (NSDictionary *)[NSJSONSerialization JSONObjectWithData:[responseString dataUsingEncoding:NSUTF8StringEncoding] options:0 error:&error]; + + // server returned empty response? + if (error) { + [self reportError:error]; + } else if (![feedDict count]) { + [self reportError:[NSError errorWithDomain:kBITFeedbackErrorDomain + code:BITFeedbackAPIServerReturnedEmptyResponse + userInfo:[NSDictionary dictionaryWithObjectsAndKeys:@"Server returned empty response.", NSLocalizedDescriptionKey, nil]]]; + } else { + BITHockeyLog(@"INFO: Received API response: %@", responseString); + NSString *status = [feedDict objectForKey:@"status"]; + if ([status compare:@"success"] != NSOrderedSame) { + [self reportError:[NSError errorWithDomain:kBITFeedbackErrorDomain + code:BITFeedbackAPIServerReturnedInvalidStatus + userInfo:[NSDictionary dictionaryWithObjectsAndKeys:@"Server returned invalid status.", NSLocalizedDescriptionKey, nil]]]; + } else { + [self updateMessageListFromResponse:feedDict]; + } + } + } + } + + [self markSendInProgressMessagesAsPending]; + completionHandler(err); + } + }]; +} + +- (void)fetchMessageUpdates { + if ([_feedbackList count] == 0 && !self.token) { + // inform the UI to update its data in case the list is already showing + [[NSNotificationCenter defaultCenter] postNotificationName:BITHockeyFeedbackMessagesLoadingFinished object:nil]; + + return; + } + + [self sendNetworkRequestWithHTTPMethod:@"GET" + withMessage:nil + completionHandler:^(NSError *err){ + // inform the UI to update its data in case the list is already showing + [[NSNotificationCenter defaultCenter] postNotificationName:BITHockeyFeedbackMessagesLoadingFinished object:nil]; + }]; +} + +- (void)submitPendingMessages { + if (_networkRequestInProgress) { + [[self class] cancelPreviousPerformRequestsWithTarget:self selector:@selector(submitPendingMessages) object:nil]; + [self performSelector:@selector(submitPendingMessages) withObject:nil afterDelay:2.0f]; + return; + } + + // app defined user data may have changed, update it + [self updateAppDefinedUserData]; + [self saveMessages]; + + NSArray *pendingMessages = [self messagesWithStatus:BITFeedbackMessageStatusSendPending]; + + if ([pendingMessages count] > 0) { + // we send one message at a time + BITFeedbackMessage *messageToSend = [pendingMessages objectAtIndex:0]; + + [messageToSend setStatus:BITFeedbackMessageStatusSendInProgress]; + if (self.userID) + [messageToSend setUserID:self.userID]; + if (self.userName) + [messageToSend setName:self.userName]; + if (self.userEmail) + [messageToSend setEmail:self.userEmail]; + + NSString *httpMethod = @"POST"; + if ([self token]) { + httpMethod = @"PUT"; + } + + [self sendNetworkRequestWithHTTPMethod:httpMethod + withMessage:messageToSend + completionHandler:^(NSError *err){ + if (err) { + [self markSendInProgressMessagesAsPending]; + [self saveMessages]; + } + + // inform the UI to update its data in case the list is already showing + [[NSNotificationCenter defaultCenter] postNotificationName:BITHockeyFeedbackMessagesLoadingFinished object:nil]; + }]; + } +} + +- (void)submitMessageWithText:(NSString *)text andAttachments:(NSArray *)attachments { + BITFeedbackMessage *message = [[BITFeedbackMessage alloc] init]; + message.text = text; + [message setStatus:BITFeedbackMessageStatusSendPending]; + [message setToken:[self uuidAsLowerCaseAndShortened]]; + [message setAttachments:attachments]; + [message setUserMessage:YES]; + + [_feedbackList addObject:message]; + + [self submitPendingMessages]; +} + + +#pragma mark - UIAlertViewDelegate + +// invoke the selected action from the action sheet for a location element +- (void)alertView:(UIAlertView *)alertView didDismissWithButtonIndex:(NSInteger)buttonIndex { + + _incomingMessagesAlertShowing = NO; + if (buttonIndex == [alertView firstOtherButtonIndex]) { + // Show button has been clicked + [self showFeedbackListView]; + } +} + +#pragma mark - Observation Handling + +- (void)setFeedbackObservationMode:(BITFeedbackObservationMode)feedbackObservationMode { + if (feedbackObservationMode != _feedbackObservationMode) { + _feedbackObservationMode = feedbackObservationMode; + + if (feedbackObservationMode == BITFeedbackObservationModeOnScreenshot){ + if (NSFoundationVersionNumber > NSFoundationVersionNumber_iOS_6_1){ + [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(screenshotNotificationReceived:) name:UIApplicationUserDidTakeScreenshotNotification object:nil]; + } else { + BITHockeyLog("WARNING: BITFeedbackObservationModeOnScreenshot requires iOS 7 or later."); + } + + self.screenshotNotificationEnabled = YES; + + if (self.tapRecognizer){ + [[[UIApplication sharedApplication] keyWindow] removeGestureRecognizer:self.tapRecognizer]; + self.tapRecognizer = nil; + } + } + + if (feedbackObservationMode == BITFeedbackObservationModeThreeFingerTap){ + if (!self.tapRecognizer){ + self.tapRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(screenshotTripleTap:)]; + self.tapRecognizer.numberOfTouchesRequired = 3; + self.tapRecognizer.delegate = self; + + dispatch_async(dispatch_get_main_queue(), ^{ + if (self.tapRecognizer) { + [[UIApplication sharedApplication].keyWindow addGestureRecognizer:self.tapRecognizer]; + } + }); + } + + if (self.screenshotNotificationEnabled){ + if (NSFoundationVersionNumber > NSFoundationVersionNumber_iOS_6_1){ + [[NSNotificationCenter defaultCenter] removeObserver:self name:UIApplicationUserDidTakeScreenshotNotification object:nil]; + self.screenshotNotificationEnabled = NO; + } + } + } + } +} + +-(void)screenshotNotificationReceived:(NSNotification *)notification { + double amountOfSeconds = 0.5; + dispatch_time_t delayTime = dispatch_time(DISPATCH_TIME_NOW, (int64_t)(amountOfSeconds * NSEC_PER_SEC)); + + dispatch_after(delayTime, dispatch_get_main_queue(), ^{ + [self extractLastPictureFromLibraryAndLaunchFeedback]; + }); +} + +-(void)extractLastPictureFromLibraryAndLaunchFeedback { + ALAssetsLibrary *library = [[ALAssetsLibrary alloc] init]; + + [library enumerateGroupsWithTypes:ALAssetsGroupSavedPhotos usingBlock:^(ALAssetsGroup *group, BOOL *stop) { + + [group setAssetsFilter:[ALAssetsFilter allPhotos]]; + + [group enumerateAssetsWithOptions:NSEnumerationReverse usingBlock:^(ALAsset *alAsset, NSUInteger index, BOOL *innerStop) { + + if (alAsset) { + ALAssetRepresentation *representation = [alAsset defaultRepresentation]; + UIImage *latestPhoto = [UIImage imageWithCGImage:[representation fullScreenImage]]; + + *stop = YES; + *innerStop = YES; + + [self showFeedbackComposeViewWithPreparedItems:@[latestPhoto]]; + } + }]; + } failureBlock: nil]; +} + +- (void)screenshotTripleTap:(UITapGestureRecognizer *)tapRecognizer { + if (tapRecognizer.state == UIGestureRecognizerStateRecognized){ + [self showFeedbackComposeViewWithGeneratedScreenshot]; + } +} + +- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer { + return YES; +} + +@end + + + +#endif /* HOCKEYSDK_FEATURE_FEEDBACK */ diff --git a/Pods/HockeySDK/Classes/BITFeedbackManagerDelegate.h b/Pods/HockeySDK/Classes/BITFeedbackManagerDelegate.h new file mode 100644 index 0000000..61b4c39 --- /dev/null +++ b/Pods/HockeySDK/Classes/BITFeedbackManagerDelegate.h @@ -0,0 +1,50 @@ +/* + * Author: Stephan Diederich + * + * Copyright (c) 2013-2014 HockeyApp, Bit Stadium GmbH. + * All rights reserved. + * + * Permission is hereby granted, free of charge, to any person + * obtaining a copy of this software and associated documentation + * files (the "Software"), to deal in the Software without + * restriction, including without limitation the rights to use, + * copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following + * conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES + * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + */ + +#import + +@class BITFeedbackManager; +@protocol BITFeedbackComposeViewControllerDelegate; + +/** + * Delegate protocol which is notified about changes in the feedbackManager + * @TODO + * * move shouldShowUpdateAlert from feedbackManager here + */ +@protocol BITFeedbackManagerDelegate + +@optional + +/** + * can be implemented to know when new feedback from the server arrived + * + * @param feedbackManager The feedbackManager which did detect the new messages + */ +- (void) feedbackManagerDidReceiveNewFeedback:(BITFeedbackManager*) feedbackManager; + +@end diff --git a/Pods/HockeySDK/Classes/BITFeedbackManagerPrivate.h b/Pods/HockeySDK/Classes/BITFeedbackManagerPrivate.h new file mode 100644 index 0000000..54c5ded --- /dev/null +++ b/Pods/HockeySDK/Classes/BITFeedbackManagerPrivate.h @@ -0,0 +1,122 @@ +/* + * Author: Andreas Linde + * Kent Sutherland + * + * Copyright (c) 2012-2014 HockeyApp, Bit Stadium GmbH. + * Copyright (c) 2011 Andreas Linde & Kent Sutherland. + * All rights reserved. + * + * Permission is hereby granted, free of charge, to any person + * obtaining a copy of this software and associated documentation + * files (the "Software"), to deal in the Software without + * restriction, including without limitation the rights to use, + * copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following + * conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES + * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + */ + +#if HOCKEYSDK_FEATURE_FEEDBACK + +extern NSString *const kBITFeedbackUpdateAttachmentThumbnail; + +#import "BITFeedbackMessage.h" + +@interface BITFeedbackManager () { +} + + +///----------------------------------------------------------------------------- +/// @name Delegate +///----------------------------------------------------------------------------- + +/** + Sets the `BITFeedbackManagerDelegate` delegate. + + Can be set to be notified when new feedback is received from the server. + + The delegate is automatically set by using `[BITHockeyManager setDelegate:]`. You + should not need to set this delegate individually. + + @see `[BITHockeyManager setDelegate:]` + */ +@property (nonatomic, weak) id delegate; + + +@property (nonatomic, strong) NSMutableArray *feedbackList; +@property (nonatomic, strong) NSString *token; + + +// used by BITHockeyManager if disable status is changed +@property (nonatomic, getter = isFeedbackManagerDisabled) BOOL disableFeedbackManager; + +@property (nonatomic, strong) BITFeedbackListViewController *currentFeedbackListViewController; +@property (nonatomic, strong) BITFeedbackComposeViewController *currentFeedbackComposeViewController; +@property (nonatomic) BOOL didAskUserData; + +@property (nonatomic, strong) NSDate *lastCheck; + +@property (nonatomic, strong) NSNumber *lastMessageID; + +@property (nonatomic, copy) NSString *userID; +@property (nonatomic, copy) NSString *userName; +@property (nonatomic, copy) NSString *userEmail; + + +// Fetch user meta data +- (BOOL)updateUserIDUsingKeychainAndDelegate; +- (BOOL)updateUserNameUsingKeychainAndDelegate; +- (BOOL)updateUserEmailUsingKeychainAndDelegate; + +// load new messages from the server +- (void)updateMessagesList; + +// load new messages from the server if the last request is too long ago +- (void)updateMessagesListIfRequired; + +- (NSUInteger)numberOfMessages; +- (BITFeedbackMessage *)messageAtIndex:(NSUInteger)index; + +- (void)submitMessageWithText:(NSString *)text andAttachments:(NSArray *)photos; +- (void)submitPendingMessages; + +// Returns YES if manual user data can be entered, required or optional +- (BOOL)askManualUserDataAvailable; + +// Returns YES if required user data is missing? +- (BOOL)requireManualUserDataMissing; + +// Returns YES if user data is available and can be edited +- (BOOL)isManualUserDataAvailable; + +// used in the user data screen +- (void)updateDidAskUserData; + + +- (BITFeedbackMessage *)messageWithID:(NSNumber *)messageID; + +- (NSArray *)messagesWithStatus:(BITFeedbackMessageStatus)status; + +- (void)saveMessages; + +- (void)fetchMessageUpdates; +- (void)updateMessageListFromResponse:(NSDictionary *)jsonDictionary; + +- (BOOL)deleteMessageAtIndex:(NSUInteger)index; +- (void)deleteAllMessages; + +@end + +#endif /* HOCKEYSDK_FEATURE_FEEDBACK */ diff --git a/Pods/HockeySDK/Classes/BITFeedbackMessage.h b/Pods/HockeySDK/Classes/BITFeedbackMessage.h new file mode 100644 index 0000000..c33caa9 --- /dev/null +++ b/Pods/HockeySDK/Classes/BITFeedbackMessage.h @@ -0,0 +1,102 @@ +/* + * Author: Andreas Linde + * + * Copyright (c) 2012-2014 HockeyApp, Bit Stadium GmbH. + * All rights reserved. + * + * Permission is hereby granted, free of charge, to any person + * obtaining a copy of this software and associated documentation + * files (the "Software"), to deal in the Software without + * restriction, including without limitation the rights to use, + * copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following + * conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES + * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + */ + + +#import + +@class BITFeedbackMessageAttachment; + +/** + * Status for each feedback message + */ +typedef NS_ENUM(NSInteger, BITFeedbackMessageStatus) { + /** + * default and new messages from SDK per default + */ + BITFeedbackMessageStatusSendPending = 0, + /** + * message is in conflict, happens if the message is already stored on the server and tried sending it again + */ + BITFeedbackMessageStatusInConflict = 1, + /** + * sending of message is in progress + */ + BITFeedbackMessageStatusSendInProgress = 2, + /** + * new messages from server + */ + BITFeedbackMessageStatusUnread = 3, + /** + * messages from server once read and new local messages once successful send from SDK + */ + BITFeedbackMessageStatusRead = 4, + /** + * message is archived, happens if the thread is deleted from the server + */ + BITFeedbackMessageStatusArchived = 5 +}; + +/** + * An individual feedback message + */ +@interface BITFeedbackMessage : NSObject { +} + +@property (nonatomic, copy) NSString *text; +@property (nonatomic, copy) NSString *userID; +@property (nonatomic, copy) NSString *name; +@property (nonatomic, copy) NSString *email; +@property (nonatomic, copy) NSDate *date; +@property (nonatomic, copy) NSNumber *identifier; +@property (nonatomic, copy) NSString *token; +@property (nonatomic, strong) NSArray *attachments; +@property (nonatomic) BITFeedbackMessageStatus status; +@property (nonatomic) BOOL userMessage; + +/** + Delete local cached attachment data + + @warning This method must be called before a feedback message is deleted. + */ +- (void)deleteContents; + +/** + Add an attachment to a message + + @param object BITFeedbackMessageAttachment instance representing the attachment that should be added + */ +- (void)addAttachmentsObject:(BITFeedbackMessageAttachment *)object; + +/** + Return the attachments that can be viewed + + @return NSArray containing the attachment objects that can be previewed + */ +- (NSArray *)previewableAttachments; + +@end diff --git a/Pods/HockeySDK/Classes/BITFeedbackMessage.m b/Pods/HockeySDK/Classes/BITFeedbackMessage.m new file mode 100644 index 0000000..820bc9c --- /dev/null +++ b/Pods/HockeySDK/Classes/BITFeedbackMessage.m @@ -0,0 +1,114 @@ +/* + * Author: Andreas Linde + * + * Copyright (c) 2012-2014 HockeyApp, Bit Stadium GmbH. + * All rights reserved. + * + * Permission is hereby granted, free of charge, to any person + * obtaining a copy of this software and associated documentation + * files (the "Software"), to deal in the Software without + * restriction, including without limitation the rights to use, + * copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following + * conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES + * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + */ + + +#import "BITFeedbackMessage.h" +#import "BITFeedbackMessageAttachment.h" + +@implementation BITFeedbackMessage + + +#pragma mark - NSObject + +- (instancetype) init { + if ((self = [super init])) { + _text = nil; + _userID = nil; + _name = nil; + _email = nil; + _date = [[NSDate alloc] init]; + _token = nil; + _attachments = nil; + _identifier = [[NSNumber alloc] initWithInteger:0]; + _status = BITFeedbackMessageStatusSendPending; + _userMessage = NO; + } + return self; +} + + +#pragma mark - NSCoder + +- (void)encodeWithCoder:(NSCoder *)encoder { + [encoder encodeObject:self.text forKey:@"text"]; + [encoder encodeObject:self.userID forKey:@"userID"]; + [encoder encodeObject:self.name forKey:@"name"]; + [encoder encodeObject:self.email forKey:@"email"]; + [encoder encodeObject:self.date forKey:@"date"]; + [encoder encodeObject:self.identifier forKey:@"id"]; + [encoder encodeObject:self.attachments forKey:@"attachments"]; + [encoder encodeInteger:self.status forKey:@"status"]; + [encoder encodeBool:self.userMessage forKey:@"userMessage"]; + [encoder encodeObject:self.token forKey:@"token"]; +} + +- (instancetype)initWithCoder:(NSCoder *)decoder { + if ((self = [self init])) { + self.text = [decoder decodeObjectForKey:@"text"]; + self.userID = [decoder decodeObjectForKey:@"userID"]; + self.name = [decoder decodeObjectForKey:@"name"]; + self.email = [decoder decodeObjectForKey:@"email"]; + self.date = [decoder decodeObjectForKey:@"date"]; + self.identifier = [decoder decodeObjectForKey:@"id"]; + self.attachments = [decoder decodeObjectForKey:@"attachments"]; + self.status = (BITFeedbackMessageStatus)[decoder decodeIntegerForKey:@"status"]; + self.userMessage = [decoder decodeBoolForKey:@"userMessage"]; + self.token = [decoder decodeObjectForKey:@"token"]; + } + return self; +} + +#pragma mark - Deletion + +- (void)deleteContents { + for (BITFeedbackMessageAttachment *attachment in self.attachments){ + [attachment deleteContents]; + } +} + +- (NSArray *)previewableAttachments { + NSMutableArray *returnArray = [NSMutableArray new]; + + for (BITFeedbackMessageAttachment *attachment in self.attachments){ + if ([QLPreviewController canPreviewItem:attachment ]){ + [returnArray addObject:attachment]; + } + } + + return returnArray; +} + +- (void)addAttachmentsObject:(BITFeedbackMessageAttachment *)object{ + if (!self.attachments){ + self.attachments = [NSArray array]; + } + self.attachments = [self.attachments arrayByAddingObject:object]; +} + + +@end diff --git a/Pods/HockeySDK/Classes/BITFeedbackMessageAttachment.h b/Pods/HockeySDK/Classes/BITFeedbackMessageAttachment.h new file mode 100644 index 0000000..6654c79 --- /dev/null +++ b/Pods/HockeySDK/Classes/BITFeedbackMessageAttachment.h @@ -0,0 +1,68 @@ +/* + * Author: Moritz Haarmann + * + * Copyright (c) 2012-2014 HockeyApp, Bit Stadium GmbH. + * All rights reserved. + * + * Permission is hereby granted, free of charge, to any person + * obtaining a copy of this software and associated documentation + * files (the "Software"), to deal in the Software without + * restriction, including without limitation the rights to use, + * copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following + * conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES + * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + */ + +#import +#import +#import + +/** + * An individual feedback message attachment + */ +@interface BITFeedbackMessageAttachment : NSObject + +@property (nonatomic, copy) NSNumber *identifier; +@property (nonatomic, copy) NSString *originalFilename; +@property (nonatomic, copy) NSString *contentType; +@property (nonatomic, copy) NSString *sourceURL; +@property (nonatomic) BOOL isLoading; +@property (nonatomic, readonly) NSData *data; + + +@property (readonly) UIImage *imageRepresentation; + + ++ (BITFeedbackMessageAttachment *)attachmentWithData:(NSData *)data contentType:(NSString *)contentType; + +- (UIImage *)thumbnailWithSize:(CGSize)size; + +- (void)replaceData:(NSData *)data; + +- (void)deleteContents; + +- (BOOL)needsLoadingFromURL; + +- (BOOL)isImage; + +- (NSURL *)localURL; + +/** + Used to determine whether QuickLook can preview this file or not. If not, we don't download it. + */ +- (NSString*)possibleFilename; + +@end diff --git a/Pods/HockeySDK/Classes/BITFeedbackMessageAttachment.m b/Pods/HockeySDK/Classes/BITFeedbackMessageAttachment.m new file mode 100644 index 0000000..51b41ae --- /dev/null +++ b/Pods/HockeySDK/Classes/BITFeedbackMessageAttachment.m @@ -0,0 +1,258 @@ +/* + * Author: Moritz Haarmann + * + * Copyright (c) 2012-2014 HockeyApp, Bit Stadium GmbH. + * All rights reserved. + * + * Permission is hereby granted, free of charge, to any person + * obtaining a copy of this software and associated documentation + * files (the "Software"), to deal in the Software without + * restriction, including without limitation the rights to use, + * copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following + * conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES + * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + */ + + +#import "BITFeedbackMessageAttachment.h" +#import "BITHockeyHelper.h" +#import "HockeySDKPrivate.h" +#import + +#define kCacheFolderName @"attachments" + +@interface BITFeedbackMessageAttachment() + +@property (nonatomic, strong) NSMutableDictionary *thumbnailRepresentations; +@property (nonatomic, strong) NSData *internalData; +@property (nonatomic, copy) NSString *filename; + + +@end + +@implementation BITFeedbackMessageAttachment { + NSString *_tempFilename; + + NSString *_cachePath; + + NSFileManager *_fm; +} + + ++ (BITFeedbackMessageAttachment *)attachmentWithData:(NSData *)data contentType:(NSString *)contentType { + + static NSDateFormatter *formatter; + + if(!formatter) { + formatter = [NSDateFormatter new]; + formatter.dateStyle = NSDateFormatterShortStyle; + formatter.timeStyle = NSDateFormatterShortStyle; + } + + BITFeedbackMessageAttachment *newAttachment = [BITFeedbackMessageAttachment new]; + newAttachment.contentType = contentType; + newAttachment.data = data; + newAttachment.originalFilename = [NSString stringWithFormat:@"Attachment: %@", [formatter stringFromDate:[NSDate date]]]; + + return newAttachment; +} + +- (instancetype)init { + if ((self = [super init])) { + _isLoading = NO; + _thumbnailRepresentations = [NSMutableDictionary new]; + + _fm = [[NSFileManager alloc] init]; + _cachePath = [bit_settingsDir() stringByAppendingPathComponent:kCacheFolderName]; + + BOOL isDirectory; + + if (![_fm fileExistsAtPath:_cachePath isDirectory:&isDirectory]){ + [_fm createDirectoryAtPath:_cachePath withIntermediateDirectories:YES attributes:nil error:nil]; + } + + } + return self; +} + +- (void)setData:(NSData *)data { + self->_internalData = data; + self.filename = [self possibleFilename]; + [self->_internalData writeToFile:self.filename atomically:NO]; +} + +- (NSData *)data { + if (!self->_internalData && self.filename) { + self.internalData = [NSData dataWithContentsOfFile:self.filename]; + } + + if (self.internalData) { + return self.internalData; + } + + return nil; +} + +- (void)replaceData:(NSData *)data { + self.data = data; + self.thumbnailRepresentations = [NSMutableDictionary new]; +} + +- (BOOL)needsLoadingFromURL { + return (self.sourceURL && ![_fm fileExistsAtPath:[self.localURL path]]); +} + +- (BOOL)isImage { + return ([self.contentType rangeOfString:@"image"].location != NSNotFound); +} + +- (NSURL *)localURL { + if (self.filename && [_fm fileExistsAtPath:self.filename]) { + return [NSURL fileURLWithPath:self.filename]; + } + + return nil; +} + + +#pragma mark NSCoding + +- (void)encodeWithCoder:(NSCoder *)aCoder { + [aCoder encodeObject:self.contentType forKey:@"contentType"]; + [aCoder encodeObject:self.filename forKey:@"filename"]; + [aCoder encodeObject:self.originalFilename forKey:@"originalFilename"]; + [aCoder encodeObject:self.sourceURL forKey:@"url"]; +} + +- (instancetype)initWithCoder:(NSCoder *)aDecoder { + if ((self = [self init])) { + self.contentType = [aDecoder decodeObjectForKey:@"contentType"]; + self.filename = [aDecoder decodeObjectForKey:@"filename"]; + self.thumbnailRepresentations = [NSMutableDictionary new]; + self.originalFilename = [aDecoder decodeObjectForKey:@"originalFilename"]; + self.sourceURL = [aDecoder decodeObjectForKey:@"url"]; + } + + return self; +} + + +#pragma mark - Thumbnails / Image Representation + +- (UIImage *)imageRepresentation { + if ([self.contentType rangeOfString:@"image"].location != NSNotFound && self.filename ) { + return [UIImage imageWithData:self.data]; + } else { + // Create a Icon .. + UIDocumentInteractionController* docController = [[UIDocumentInteractionController alloc] init]; + docController.name = self.originalFilename; + NSArray* icons = docController.icons; + if (icons.count){ + return icons[0]; + } else { + return nil; + } + } +} + +- (UIImage *)thumbnailWithSize:(CGSize)size { + id cacheKey = [NSValue valueWithCGSize:size]; + + if (!self.thumbnailRepresentations[cacheKey]) { + UIImage *image = self.imageRepresentation; + // consider the scale. + if (!image) { + return nil; + } + + CGFloat scale = [UIScreen mainScreen].scale; + + if (scale != image.scale) { + + CGSize scaledSize = CGSizeApplyAffineTransform(size, CGAffineTransformMakeScale(scale, scale)); + UIImage *thumbnail = bit_imageToFitSize(image, scaledSize, YES) ; + + UIImage *scaledThumbnail = [UIImage imageWithCGImage:thumbnail.CGImage scale:scale orientation:thumbnail.imageOrientation]; + if (thumbnail) { + [self.thumbnailRepresentations setObject:scaledThumbnail forKey:cacheKey]; + } + + } else { + UIImage *thumbnail = bit_imageToFitSize(image, size, YES) ; + + [self.thumbnailRepresentations setObject:thumbnail forKey:cacheKey]; + + } + + } + + return self.thumbnailRepresentations[cacheKey]; +} + + +#pragma mark - Persistence Helpers + +- (NSString *)possibleFilename { + if (_tempFilename) { + return _tempFilename; + } + + NSString *uniqueString = bit_UUID(); + _tempFilename = [_cachePath stringByAppendingPathComponent:uniqueString]; + + // File extension that suits the Content type. + + CFStringRef mimeType = (__bridge CFStringRef)self.contentType; + CFStringRef uti = UTTypeCreatePreferredIdentifierForTag(kUTTagClassMIMEType, mimeType, NULL); + CFStringRef extension = UTTypeCopyPreferredTagWithClass(uti, kUTTagClassFilenameExtension); + if (extension) { + _tempFilename = [_tempFilename stringByAppendingPathExtension:(__bridge NSString *)(extension)]; + CFRelease(extension); + } + + CFRelease(uti); + + return _tempFilename; +} + +- (void)deleteContents { + if (self.filename) { + [_fm removeItemAtPath:self.filename error:nil]; + self.filename = nil; + } +} + + +#pragma mark - QLPreviewItem + +- (NSString *)previewItemTitle { + return self.originalFilename; +} + +- (NSURL *)previewItemURL { + if (self.localURL){ + return self.localURL; + } else if (self.sourceURL) { + NSString *filename = self.possibleFilename; + if (filename) { + return [NSURL fileURLWithPath:filename]; + } + } + + return nil; +} + +@end diff --git a/Pods/HockeySDK/Classes/BITFeedbackUserDataViewController.h b/Pods/HockeySDK/Classes/BITFeedbackUserDataViewController.h new file mode 100644 index 0000000..84128d0 --- /dev/null +++ b/Pods/HockeySDK/Classes/BITFeedbackUserDataViewController.h @@ -0,0 +1,51 @@ +/* + * Author: Andreas Linde + * + * Copyright (c) 2012-2014 HockeyApp, Bit Stadium GmbH. + * All rights reserved. + * + * Permission is hereby granted, free of charge, to any person + * obtaining a copy of this software and associated documentation + * files (the "Software"), to deal in the Software without + * restriction, including without limitation the rights to use, + * copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following + * conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES + * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + */ + + +#import + +@protocol BITFeedbackUserDataDelegate; + +@interface BITFeedbackUserDataViewController : UITableViewController + +@property (nonatomic, weak) id delegate; + +@end + +/////////////////////////////////////////////////////////////////////////////////////////////////// +@protocol BITFeedbackUserDataDelegate + +@required + +// cancel action is invoked +- (void)userDataUpdateCancelled; + +// save action is invoked and all required data available +- (void)userDataUpdateFinished; + +@end diff --git a/Pods/HockeySDK/Classes/BITFeedbackUserDataViewController.m b/Pods/HockeySDK/Classes/BITFeedbackUserDataViewController.m new file mode 100644 index 0000000..cc80d83 --- /dev/null +++ b/Pods/HockeySDK/Classes/BITFeedbackUserDataViewController.m @@ -0,0 +1,272 @@ +/* + * Author: Andreas Linde + * + * Copyright (c) 2012-2014 HockeyApp, Bit Stadium GmbH. + * All rights reserved. + * + * Permission is hereby granted, free of charge, to any person + * obtaining a copy of this software and associated documentation + * files (the "Software"), to deal in the Software without + * restriction, including without limitation the rights to use, + * copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following + * conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES + * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + */ + + +#import "HockeySDK.h" + +#if HOCKEYSDK_FEATURE_FEEDBACK + +#import "HockeySDKPrivate.h" +#import "BITHockeyHelper.h" + +#import "BITFeedbackUserDataViewController.h" +#import "BITFeedbackManagerPrivate.h" + +@interface BITFeedbackUserDataViewController () { + UIStatusBarStyle _statusBarStyle; +} + +@property (nonatomic, weak) BITFeedbackManager *manager; + +@property (nonatomic, copy) NSString *name; +@property (nonatomic, copy) NSString *email; +@end + + +@implementation BITFeedbackUserDataViewController + + +- (instancetype)initWithStyle:(UITableViewStyle)style { + self = [super initWithStyle:style]; + if (self) { + _delegate = nil; + + _manager = [BITHockeyManager sharedHockeyManager].feedbackManager; + _name = @""; + _email = @""; + } + return self; +} + +- (void)viewDidLoad { + [super viewDidLoad]; + + self.title = BITHockeyLocalizedString(@"HockeyFeedbackUserDataTitle"); + + [self.tableView setScrollEnabled:NO]; +} + +- (void)viewWillAppear:(BOOL)animated { + [super viewWillAppear:animated]; + + _statusBarStyle = [[UIApplication sharedApplication] statusBarStyle]; +#if __IPHONE_OS_VERSION_MAX_ALLOWED > __IPHONE_6_1 + [[UIApplication sharedApplication] setStatusBarStyle:(self.navigationController.navigationBar.barStyle == UIBarStyleDefault) ? UIStatusBarStyleDefault : UIStatusBarStyleLightContent]; +#else + [[UIApplication sharedApplication] setStatusBarStyle:(self.navigationController.navigationBar.barStyle == UIBarStyleDefault) ? UIStatusBarStyleDefault : UIStatusBarStyleBlackOpaque]; +#endif + + // Do any additional setup after loading the view. + self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemCancel + target:self + action:@selector(dismissAction:)]; + + self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemSave + target:self + action:@selector(saveAction:)]; + + if ([self.manager userName]) + self.name = [self.manager userName]; + + if ([self.manager userEmail]) + self.email = [self.manager userEmail]; + + [self.manager updateDidAskUserData]; + + self.navigationItem.rightBarButtonItem.enabled = [self allRequiredFieldsEntered]; +} + +- (void)viewWillDisappear:(BOOL)animated { + [super viewWillDisappear:animated]; + + [[UIApplication sharedApplication] setStatusBarStyle:_statusBarStyle]; +} + +#pragma mark - UIViewController Rotation + +- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)orientation { + return YES; +} + +#pragma mark - Private methods +- (BOOL)allRequiredFieldsEntered { + if ([self.manager requireUserName] == BITFeedbackUserDataElementRequired && [self.name length] == 0) + return NO; + + if ([self.manager requireUserEmail] == BITFeedbackUserDataElementRequired && [self.email length] == 0) + return NO; + + if ([self.email length] > 0 && !bit_validateEmail(self.email)) + return NO; + + return YES; +} + +- (void)userNameEntered:(id)sender { + self.name = [(UITextField *)sender text]; + + self.navigationItem.rightBarButtonItem.enabled = [self allRequiredFieldsEntered]; +} + +- (void)userEmailEntered:(id)sender { + self.email = [(UITextField *)sender text]; + + self.navigationItem.rightBarButtonItem.enabled = [self allRequiredFieldsEntered]; +} + +- (void)dismissAction:(id)sender { + [self.delegate userDataUpdateCancelled]; +} + +- (void)saveAction:(id)sender { + + if ([self.manager requireUserName]) { + [self.manager setUserName:self.name]; + } + + if ([self.manager requireUserEmail]) { + [self.manager setUserEmail:self.email]; + } + + [self.delegate userDataUpdateFinished]; +} + +#pragma mark - Table view data source + +- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView { + return 1; +} + +- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { + NSInteger rows = 0; + + if ([self.manager requireUserName] != BITFeedbackUserDataElementDontShow) + rows ++; + + if ([self.manager requireUserEmail] != BITFeedbackUserDataElementDontShow) + rows ++; + + return rows; +} + +- (NSString *)tableView:(UITableView *)tableView titleForFooterInSection:(NSInteger)section { + if (section == 0) { + return BITHockeyLocalizedString(@"HockeyFeedbackUserDataDescription"); + } + + return nil; +} + +- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { + static NSString *CellIdentifier = @"InputCell"; + + UITableViewCell *cell = [self.tableView dequeueReusableCellWithIdentifier:CellIdentifier]; + if (cell == nil) { + cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier]; + + cell.accessoryType = UITableViewCellAccessoryNone; + cell.selectionStyle = UITableViewCellSelectionStyleNone; + cell.backgroundColor = [UIColor whiteColor]; + + UITextField *textField = [[UITextField alloc] initWithFrame:CGRectMake(110, 11, self.view.frame.size.width - 110 - 35, 24)]; + if (UI_USER_INTERFACE_IDIOM() != UIUserInterfaceIdiomPad) { + textField.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleTopMargin | UIViewAutoresizingFlexibleBottomMargin; + } + textField.adjustsFontSizeToFitWidth = YES; + textField.textColor = [UIColor blackColor]; + textField.backgroundColor = [UIColor lightGrayColor]; + + if ([indexPath row] == 0 && [self.manager requireUserName] != BITFeedbackUserDataElementDontShow) { + textField.placeholder = BITHockeyLocalizedString(@"HockeyFeedbackUserDataNamePlaceHolder"); + textField.text = self.name; + + textField.keyboardType = UIKeyboardTypeDefault; + if ([self.manager requireUserEmail]) + textField.returnKeyType = UIReturnKeyNext; + else + textField.returnKeyType = UIReturnKeyDone; + textField.autocapitalizationType = UITextAutocapitalizationTypeWords; + [textField addTarget:self action:@selector(userNameEntered:) forControlEvents:UIControlEventEditingChanged]; + [textField becomeFirstResponder]; + } else { + textField.placeholder = BITHockeyLocalizedString(@"HockeyFeedbackUserDataEmailPlaceholder"); + textField.text = self.email; + + textField.keyboardType = UIKeyboardTypeEmailAddress; + textField.returnKeyType = UIReturnKeyDone; + textField.autocapitalizationType = UITextAutocapitalizationTypeNone; + [textField addTarget:self action:@selector(userEmailEntered:) forControlEvents:UIControlEventEditingChanged]; + if (![self.manager requireUserName]) + [textField becomeFirstResponder]; + } + + textField.backgroundColor = [UIColor whiteColor]; + textField.autocorrectionType = UITextAutocorrectionTypeNo; + textField.textAlignment = kBITTextLabelAlignmentLeft; + textField.delegate = self; + textField.tag = indexPath.row; + + textField.clearButtonMode = UITextFieldViewModeWhileEditing; + [textField setEnabled: YES]; + + [cell addSubview:textField]; + } + + if ([indexPath row] == 0 && [self.manager requireUserName] != BITFeedbackUserDataElementDontShow) { + cell.textLabel.text = BITHockeyLocalizedString(@"HockeyFeedbackUserDataName"); + } else { + cell.textLabel.text = BITHockeyLocalizedString(@"HockeyFeedbackUserDataEmail"); + } + + return cell; +} + + +#pragma mark - UITextFieldDelegate + +- (BOOL)textFieldShouldReturn:(UITextField *)textField { + NSInteger nextTag = textField.tag + 1; + + UIResponder* nextResponder = [self.view viewWithTag:nextTag]; + if (nextResponder) { + [nextResponder becomeFirstResponder]; + } else { + if ([self allRequiredFieldsEntered]) { + if ([textField isFirstResponder]) + [textField resignFirstResponder]; + + [self saveAction:nil]; + } + } + return NO; +} + + +@end + +#endif /* HOCKEYSDK_FEATURE_FEEDBACK */ diff --git a/Pods/HockeySDK/Classes/BITHTTPOperation.h b/Pods/HockeySDK/Classes/BITHTTPOperation.h new file mode 100644 index 0000000..e1b3f95 --- /dev/null +++ b/Pods/HockeySDK/Classes/BITHTTPOperation.h @@ -0,0 +1,47 @@ +/* + * Author: Stephan Diederich + * + * Copyright (c) 2013-2014 HockeyApp, Bit Stadium GmbH. + * All rights reserved. + * + * Permission is hereby granted, free of charge, to any person + * obtaining a copy of this software and associated documentation + * files (the "Software"), to deal in the Software without + * restriction, including without limitation the rights to use, + * copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following + * conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES + * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + */ + +#import + +@class BITHTTPOperation; +typedef void (^BITNetworkCompletionBlock)(BITHTTPOperation* operation, NSData* data, NSError* error); + +@interface BITHTTPOperation : NSOperation + ++ (instancetype) operationWithRequest:(NSURLRequest *) urlRequest; + +@property (nonatomic, readonly) NSURLRequest *URLRequest; + +//the completion is only called if the operation wasn't cancelled +- (void) setCompletion:(BITNetworkCompletionBlock) completionBlock; + +@property (nonatomic, readonly) NSHTTPURLResponse *response; +@property (nonatomic, readonly) NSData *data; +@property (nonatomic, readonly) NSError *error; + +@end diff --git a/Pods/HockeySDK/Classes/BITHTTPOperation.m b/Pods/HockeySDK/Classes/BITHTTPOperation.m new file mode 100644 index 0000000..a9a95ff --- /dev/null +++ b/Pods/HockeySDK/Classes/BITHTTPOperation.m @@ -0,0 +1,148 @@ +/* + * Author: Stephan Diederich + * + * Copyright (c) 2013-2014 HockeyApp, Bit Stadium GmbH. + * All rights reserved. + * + * Permission is hereby granted, free of charge, to any person + * obtaining a copy of this software and associated documentation + * files (the "Software"), to deal in the Software without + * restriction, including without limitation the rights to use, + * copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following + * conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES + * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + */ + +#import "BITHTTPOperation.h" + +@interface BITHTTPOperation() +@end + +@implementation BITHTTPOperation { + NSURLRequest *_URLRequest; + NSURLConnection *_connection; + NSMutableData *_data; + + BOOL _isExecuting; + BOOL _isFinished; +} + + ++ (instancetype)operationWithRequest:(NSURLRequest *)urlRequest { + BITHTTPOperation *op = [[self class] new]; + op->_URLRequest = urlRequest; + return op; +} + +#pragma mark - NSOperation overrides +- (BOOL)isConcurrent { + return YES; +} + +- (void)cancel { + [_connection cancel]; + [super cancel]; +} + +- (void) start { + if(self.isCancelled) { + [self finish]; + return; + } + + if (![[NSThread currentThread] isMainThread]) { + [self performSelector:@selector(start) onThread:NSThread.mainThread withObject:nil waitUntilDone:NO]; + return; + } + + if(self.isCancelled) { + [self finish]; + return; + } + + [self willChangeValueForKey:@"isExecuting"]; + _isExecuting = YES; + [self didChangeValueForKey:@"isExecuting"]; + + _connection = [[NSURLConnection alloc] initWithRequest:_URLRequest + delegate:self + startImmediately:YES]; +} + +- (void) finish { + [self willChangeValueForKey:@"isExecuting"]; + [self willChangeValueForKey:@"isFinished"]; + _isExecuting = NO; + _isFinished = YES; + [self didChangeValueForKey:@"isExecuting"]; + [self didChangeValueForKey:@"isFinished"]; +} + +#pragma mark - NSURLConnectionDelegate +-(void)connection:(NSURLConnection*)connection didReceiveResponse:(NSURLResponse*)response { + _data = [[NSMutableData alloc] init]; + _response = (id)response; +} + +-(void)connection:(NSURLConnection*)connection didReceiveData:(NSData*)data { + [_data appendData:data]; +} + +-(void)connection:(NSURLConnection*)connection didFailWithError:(NSError*)error { + //FINISHED and failed + _error = error; + _data = nil; + + [self finish]; +} + +-(void)connectionDidFinishLoading:(NSURLConnection*)connection { + [self finish]; +} + +#pragma mark - Public interface +- (NSData *)data { + return _data; +} + +- (void)setCompletion:(BITNetworkCompletionBlock)completion { + if(!completion) { + [super setCompletionBlock:nil]; + } else { + __weak typeof(self) weakSelf = self; + [super setCompletionBlock:^{ + typeof(self) strongSelf = weakSelf; + if(strongSelf) { + dispatch_async(dispatch_get_main_queue(), ^{ + if(!strongSelf.isCancelled) { + completion(strongSelf, strongSelf->_data, strongSelf->_error); + } + [strongSelf setCompletionBlock:nil]; + }); + } + }]; + } +} + +- (BOOL)isFinished { + return _isFinished; +} + +- (BOOL)isExecuting { + return _isExecuting; +} + +@end diff --git a/Pods/HockeySDK/Classes/BITHockeyAppClient.h b/Pods/HockeySDK/Classes/BITHockeyAppClient.h new file mode 100644 index 0000000..b4abe93 --- /dev/null +++ b/Pods/HockeySDK/Classes/BITHockeyAppClient.h @@ -0,0 +1,145 @@ +/* + * Author: Stephan Diederich + * + * Copyright (c) 2013-2014 HockeyApp, Bit Stadium GmbH. + * All rights reserved. + * + * Permission is hereby granted, free of charge, to any person + * obtaining a copy of this software and associated documentation + * files (the "Software"), to deal in the Software without + * restriction, including without limitation the rights to use, + * copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following + * conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES + * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + */ + +#import + +#import "BITHTTPOperation.h" //needed for typedef + +/** + * Generic Hockey API client + */ +@interface BITHockeyAppClient : NSObject + +/** + * designated initializer + * + * @param baseURL the baseURL of the HockeyApp instance + */ +- (instancetype) initWithBaseURL:(NSURL*) baseURL; + +/** + * baseURL to which relative paths are appended + */ +@property (nonatomic, strong) NSURL *baseURL; + +/** + * creates an NRURLRequest for the given method and path by using + * the internally stored baseURL. + * + * @param method the HTTPMethod to check, must not be nil + * @param params parameters for the request (only supported for GET and POST for now) + * @param path path to append to baseURL. can be nil in which case "/" is appended + * + * @return an NSMutableURLRequest for further configuration + */ +- (NSMutableURLRequest *) requestWithMethod:(NSString*) method + path:(NSString *) path + parameters:(NSDictionary *) params; +/** + * Creates an operation for the given NSURLRequest + * + * @param request the request that should be handled + * @param completion completionBlock that is called once the operation finished + * + * @return operation, which can be queued via enqueueHTTPOperation: + */ +- (BITHTTPOperation*) operationWithURLRequest:(NSURLRequest*) request + completion:(BITNetworkCompletionBlock) completion; + +/** + * Creates an operation for the given path, and enqueues it + * + * @param path the request path to check + * @param params parameters for the request + * @param completion completionBlock that is called once the operation finished + * + */ +- (void) getPath:(NSString*) path + parameters:(NSDictionary *) params + completion:(BITNetworkCompletionBlock) completion; + +/** + * Creates an operation for the given path, and enqueues it + * + * @param path the request path to check + * @param params parameters for the request + * @param completion completionBlock that is called once the operation finished + * + */ +- (void) postPath:(NSString*) path + parameters:(NSDictionary *) params + completion:(BITNetworkCompletionBlock) completion; +/** + * adds the given operation to the internal queue + * + * @param operation operation to add + */ +- (void) enqeueHTTPOperation:(BITHTTPOperation *) operation; + +/** + * cancels the specified operations + * + * @param path the path which operation should be cancelled. Can be nil to match all + * @param method the method which operations to cancel. Can be nil to match all + * @return number of operations cancelled + */ +- (NSUInteger) cancelOperationsWithPath:(NSString*) path + method:(NSString*) method; + +/** + * Access to the internal operation queue + */ +@property (nonatomic, strong) NSOperationQueue *operationQueue; + +#pragma mark - Helpers +/** + * create a post body from the given value, key and boundary. This is a convenience call to + * dataWithPostValue:forKey:contentType:boundary and aimed at NSString-content. + * + * @param value - + * @param key - + * @param boundary - + * + * @return NSData instance configured to be attached on a (post) URLRequest + */ ++ (NSData *)dataWithPostValue:(NSString *)value forKey:(NSString *)key boundary:(NSString *) boundary; + +/** + * create a post body from the given value, key and boundary and content type. + * + * @param value - + * @param key - + *@param contentType - + * @param boundary - + * @param filename - + * + * @return NSData instance configured to be attached on a (post) URLRequest + */ ++ (NSData *)dataWithPostValue:(NSData *)value forKey:(NSString *)key contentType:(NSString *)contentType boundary:(NSString *) boundary filename:(NSString *)filename; + +@end diff --git a/Pods/HockeySDK/Classes/BITHockeyAppClient.m b/Pods/HockeySDK/Classes/BITHockeyAppClient.m new file mode 100644 index 0000000..3994428 --- /dev/null +++ b/Pods/HockeySDK/Classes/BITHockeyAppClient.m @@ -0,0 +1,185 @@ +/* + * Author: Stephan Diederich + * + * Copyright (c) 2013-2014 HockeyApp, Bit Stadium GmbH. + * All rights reserved. + * + * Permission is hereby granted, free of charge, to any person + * obtaining a copy of this software and associated documentation + * files (the "Software"), to deal in the Software without + * restriction, including without limitation the rights to use, + * copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following + * conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES + * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + */ +#import "BITHockeyAppClient.h" + +@implementation BITHockeyAppClient +- (void)dealloc { + [self cancelOperationsWithPath:nil method:nil]; +} + +- (instancetype)initWithBaseURL:(NSURL *)baseURL { + self = [super init]; + if ( self ) { + NSParameterAssert(baseURL); + _baseURL = baseURL; + } + return self; +} + +#pragma mark - Networking +- (NSMutableURLRequest *) requestWithMethod:(NSString*) method + path:(NSString *) path + parameters:(NSDictionary *)params { + NSParameterAssert(self.baseURL); + NSParameterAssert(method); + NSParameterAssert(params == nil || [method isEqualToString:@"POST"] || [method isEqualToString:@"GET"]); + path = path ? : @""; + + NSURL *endpoint = [self.baseURL URLByAppendingPathComponent:path]; + NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:endpoint]; + request.HTTPMethod = method; + + if (params) { + if ([method isEqualToString:@"GET"]) { + NSString *absoluteURLString = [endpoint absoluteString]; + //either path already has parameters, or not + NSString *appenderFormat = [path rangeOfString:@"?"].location == NSNotFound ? @"?%@" : @"&%@"; + + endpoint = [NSURL URLWithString:[absoluteURLString stringByAppendingFormat:appenderFormat, + [self.class queryStringFromParameters:params withEncoding:NSUTF8StringEncoding]]]; + [request setURL:endpoint]; + } else { + //TODO: this is crap. Boundary must be the same as the one in appendData + //unify this! + NSString *boundary = @"----FOO"; + NSString *contentType = [NSString stringWithFormat:@"multipart/form-data; boundary=%@", boundary]; + [request setValue:contentType forHTTPHeaderField:@"Content-type"]; + + NSMutableData *postBody = [NSMutableData data]; + [params enumerateKeysAndObjectsUsingBlock:^(NSString *key, NSString *value, BOOL *stop) { + [postBody appendData:[[self class] dataWithPostValue:value forKey:key boundary:boundary]]; + }]; + + [postBody appendData:[[NSString stringWithFormat:@"--%@--\r\n", boundary] dataUsingEncoding:NSUTF8StringEncoding]]; + + [request setHTTPBody:postBody]; + } + } + + return request; +} + ++ (NSData *)dataWithPostValue:(NSString *)value forKey:(NSString *)key boundary:(NSString *) boundary { + return [self dataWithPostValue:[value dataUsingEncoding:NSUTF8StringEncoding] forKey:key contentType:@"text" boundary:boundary filename:nil]; +} + ++ (NSData *)dataWithPostValue:(NSData *)value forKey:(NSString *)key contentType:(NSString *)contentType boundary:(NSString *) boundary filename:(NSString *)filename { + NSMutableData *postBody = [NSMutableData data]; + + [postBody appendData:[[NSString stringWithFormat:@"--%@\r\n", boundary] dataUsingEncoding:NSUTF8StringEncoding]]; + + // There's certainly a better way to check if we are supposed to send binary data here. + if (filename){ + [postBody appendData:[[NSString stringWithFormat:@"Content-Disposition: form-data; name=\"%@\"; filename=\"%@\"\r\n", key, filename] dataUsingEncoding:NSUTF8StringEncoding]]; + [postBody appendData:[[NSString stringWithFormat:@"Content-Type: %@\r\n", contentType] dataUsingEncoding:NSUTF8StringEncoding]]; + [postBody appendData:[[NSString stringWithFormat:@"Content-Transfer-Encoding: binary\r\n\r\n"] dataUsingEncoding:NSUTF8StringEncoding]]; + } else { + [postBody appendData:[[NSString stringWithFormat:@"Content-Disposition: form-data; name=\"%@\"\r\n", key] dataUsingEncoding:NSUTF8StringEncoding]]; + [postBody appendData:[[NSString stringWithFormat:@"Content-Type: %@\r\n\r\n", contentType] dataUsingEncoding:NSUTF8StringEncoding]]; + } + + [postBody appendData:value]; + [postBody appendData:[@"\r\n" dataUsingEncoding:NSUTF8StringEncoding]]; + + return postBody; +} + + ++ (NSString *) queryStringFromParameters:(NSDictionary *) params withEncoding:(NSStringEncoding) encoding { + NSMutableString *queryString = [NSMutableString new]; + [params enumerateKeysAndObjectsUsingBlock:^(NSString* key, NSString* value, BOOL *stop) { + NSAssert([key isKindOfClass:[NSString class]], @"Query parameters can only be string-string pairs"); + NSAssert([value isKindOfClass:[NSString class]], @"Query parameters can only be string-string pairs"); + + [queryString appendFormat:queryString.length ? @"&%@=%@" : @"%@=%@", key, value]; + }]; + return queryString; +} + +- (BITHTTPOperation*) operationWithURLRequest:(NSURLRequest*) request + completion:(BITNetworkCompletionBlock) completion { + BITHTTPOperation *operation = [BITHTTPOperation operationWithRequest:request + ]; + [operation setCompletion:completion]; + + return operation; +} + +- (void)getPath:(NSString *)path parameters:(NSDictionary *)params completion:(BITNetworkCompletionBlock)completion { + NSURLRequest *request = [self requestWithMethod:@"GET" path:path parameters:params]; + BITHTTPOperation *op = [self operationWithURLRequest:request + completion:completion]; + [self enqeueHTTPOperation:op]; +} + +- (void)postPath:(NSString *)path parameters:(NSDictionary *)params completion:(BITNetworkCompletionBlock)completion { + NSURLRequest *request = [self requestWithMethod:@"POST" path:path parameters:params]; + BITHTTPOperation *op = [self operationWithURLRequest:request + completion:completion]; + [self enqeueHTTPOperation:op]; +} + +- (void) enqeueHTTPOperation:(BITHTTPOperation *) operation { + [self.operationQueue addOperation:operation]; +} + +- (NSUInteger) cancelOperationsWithPath:(NSString*) path + method:(NSString*) method { + NSUInteger cancelledOperations = 0; + for(BITHTTPOperation *operation in self.operationQueue.operations) { + NSURLRequest *request = operation.URLRequest; + + BOOL matchedMethod = YES; + if(method && ![request.HTTPMethod isEqualToString:method]) { + matchedMethod = NO; + } + + BOOL matchedPath = YES; + if(path) { + //method is not interesting here, we' just creating it to get the URL + NSURL *url = [self requestWithMethod:@"GET" path:path parameters:nil].URL; + matchedPath = [request.URL isEqual:url]; + } + + if(matchedPath && matchedMethod) { + ++cancelledOperations; + [operation cancel]; + } + } + return cancelledOperations; +} + +- (NSOperationQueue *)operationQueue { + if(nil == _operationQueue) { + _operationQueue = [[NSOperationQueue alloc] init]; + _operationQueue.maxConcurrentOperationCount = 1; + } + return _operationQueue; +} + +@end diff --git a/Pods/HockeySDK/Classes/BITHockeyAttachment.h b/Pods/HockeySDK/Classes/BITHockeyAttachment.h new file mode 100644 index 0000000..b788ed9 --- /dev/null +++ b/Pods/HockeySDK/Classes/BITHockeyAttachment.h @@ -0,0 +1,68 @@ +/* + * Author: Andreas Linde + * + * Copyright (c) 2014 HockeyApp, Bit Stadium GmbH. + * All rights reserved. + * + * Permission is hereby granted, free of charge, to any person + * obtaining a copy of this software and associated documentation + * files (the "Software"), to deal in the Software without + * restriction, including without limitation the rights to use, + * copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following + * conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES + * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + */ + +#import + +/** + Provides support to add binary attachments to crash reports and feedback messages + + This is used by `[BITCrashManagerDelegate attachmentForCrashManager:]`, + `[BITFeedbackComposeViewController prepareWithItems:]` and + `[BITFeedbackManager showFeedbackComposeViewWithPreparedItems:]` + */ +@interface BITHockeyAttachment : NSObject + +/** + The filename the attachment should get + */ +@property (nonatomic, readonly, strong) NSString *filename; + +/** + The attachment data as NSData object + */ +@property (nonatomic, readonly, strong) NSData *hockeyAttachmentData; + +/** + The content type of your data as MIME type + */ +@property (nonatomic, readonly, strong) NSString *contentType; + +/** + Create an BITHockeyAttachment instance with a given filename and NSData object + + @param filename The filename the attachment should get. If nil will get a automatically generated filename + @param hockeyAttachmentData The attachment data as NSData. The instance will be ignore if this is set to nil! + @param contentType The content type of your data as MIME type. If nil will be set to "application/octet-stream" + + @return An instance of BITHockeyAttachment. + */ +- (instancetype)initWithFilename:(NSString *)filename + hockeyAttachmentData:(NSData *)hockeyAttachmentData + contentType:(NSString *)contentType; + +@end diff --git a/Pods/HockeySDK/Classes/BITHockeyAttachment.m b/Pods/HockeySDK/Classes/BITHockeyAttachment.m new file mode 100644 index 0000000..4dc6424 --- /dev/null +++ b/Pods/HockeySDK/Classes/BITHockeyAttachment.m @@ -0,0 +1,75 @@ +/* + * Author: Andreas Linde + * + * Copyright (c) 2014 HockeyApp, Bit Stadium GmbH. + * All rights reserved. + * + * Permission is hereby granted, free of charge, to any person + * obtaining a copy of this software and associated documentation + * files (the "Software"), to deal in the Software without + * restriction, including without limitation the rights to use, + * copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following + * conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES + * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + */ + +#import "BITHockeyAttachment.h" + +@implementation BITHockeyAttachment + +- (instancetype)initWithFilename:(NSString *)filename + hockeyAttachmentData:(NSData *)hockeyAttachmentData + contentType:(NSString *)contentType +{ + if (self = [super init]) { + _filename = filename; + + _hockeyAttachmentData = hockeyAttachmentData; + + if (contentType) { + _contentType = contentType; + } else { + _contentType = @"application/octet-stream"; + } + + } + + return self; +} + + +#pragma mark - NSCoder + +- (void)encodeWithCoder:(NSCoder *)encoder { + if (self.filename) { + [encoder encodeObject:self.filename forKey:@"filename"]; + } + if (self.hockeyAttachmentData) { + [encoder encodeObject:self.hockeyAttachmentData forKey:@"data"]; + } + [encoder encodeObject:self.contentType forKey:@"contentType"]; +} + +- (instancetype)initWithCoder:(NSCoder *)decoder { + if ((self = [super init])) { + _filename = [decoder decodeObjectForKey:@"filename"]; + _hockeyAttachmentData = [decoder decodeObjectForKey:@"data"]; + _contentType = [decoder decodeObjectForKey:@"contentType"]; + } + return self; +} + +@end diff --git a/Pods/HockeySDK/Classes/BITHockeyBaseManager.h b/Pods/HockeySDK/Classes/BITHockeyBaseManager.h new file mode 100644 index 0000000..ed5284d --- /dev/null +++ b/Pods/HockeySDK/Classes/BITHockeyBaseManager.h @@ -0,0 +1,84 @@ +/* + * Author: Andreas Linde + * + * Copyright (c) 2012-2014 HockeyApp, Bit Stadium GmbH. + * All rights reserved. + * + * Permission is hereby granted, free of charge, to any person + * obtaining a copy of this software and associated documentation + * files (the "Software"), to deal in the Software without + * restriction, including without limitation the rights to use, + * copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following + * conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES + * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + */ + +#import +#import + + +/** + The internal superclass for all component managers + + */ + +@interface BITHockeyBaseManager : NSObject + +///----------------------------------------------------------------------------- +/// @name Modules +///----------------------------------------------------------------------------- + + +/** + Defines the server URL to send data to or request data from + + By default this is set to the HockeyApp servers and there rarely should be a + need to modify that. + */ +@property (nonatomic, copy) NSString *serverURL; + + +///----------------------------------------------------------------------------- +/// @name User Interface +///----------------------------------------------------------------------------- + +/** + The UIBarStyle of the update user interface navigation bar. + + Default is UIBarStyleBlackOpaque + @see navigationBarTintColor + */ +@property (nonatomic, assign) UIBarStyle barStyle; + +/** + The navigationbar tint color of the update user interface navigation bar. + + The navigationBarTintColor is used by default, you can either overwrite it `navigationBarTintColor` + or define another `barStyle` instead. + + Default is RGB(25, 25, 25) + @see barStyle + */ +@property (nonatomic, strong) UIColor *navigationBarTintColor; + +/** + The UIModalPresentationStyle for showing the update user interface when invoked + with the update alert. + */ +@property (nonatomic, assign) UIModalPresentationStyle modalPresentationStyle; + + +@end diff --git a/Pods/HockeySDK/Classes/BITHockeyBaseManager.m b/Pods/HockeySDK/Classes/BITHockeyBaseManager.m new file mode 100644 index 0000000..96b3463 --- /dev/null +++ b/Pods/HockeySDK/Classes/BITHockeyBaseManager.m @@ -0,0 +1,331 @@ +/* + * Author: Andreas Linde + * + * Copyright (c) 2012-2014 HockeyApp, Bit Stadium GmbH. + * All rights reserved. + * + * Permission is hereby granted, free of charge, to any person + * obtaining a copy of this software and associated documentation + * files (the "Software"), to deal in the Software without + * restriction, including without limitation the rights to use, + * copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following + * conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES + * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + */ + +#import "HockeySDK.h" +#import "HockeySDKPrivate.h" + +#import "BITHockeyHelper.h" + +#import "BITHockeyBaseManager.h" +#import "BITHockeyBaseManagerPrivate.h" +#if HOCKEYSDK_FEATURE_AUTHENTICATOR || HOCKEYSDK_FEATURE_UPDATES || HOCKEYSDK_FEATURE_FEEDBACK +#import "BITHockeyBaseViewController.h" +#endif + +#import "BITKeychainUtils.h" + +#import +#import +#import + +#ifndef __IPHONE_6_1 +#define __IPHONE_6_1 60100 +#endif + +@implementation BITHockeyBaseManager { + UINavigationController *_navController; + + NSDateFormatter *_rfc3339Formatter; + + BOOL _isAppStoreEnvironment; +} + + +- (instancetype)init { + if ((self = [super init])) { + _serverURL = BITHOCKEYSDK_URL; + + if ([self isPreiOS7Environment]) { + _barStyle = UIBarStyleBlackOpaque; + self.navigationBarTintColor = BIT_RGBCOLOR(25, 25, 25); + } else { + _barStyle = UIBarStyleDefault; + } + _modalPresentationStyle = UIModalPresentationFormSheet; + + NSLocale *enUSPOSIXLocale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US_POSIX"]; + _rfc3339Formatter = [[NSDateFormatter alloc] init]; + [_rfc3339Formatter setLocale:enUSPOSIXLocale]; + [_rfc3339Formatter setDateFormat:@"yyyy'-'MM'-'dd'T'HH':'mm':'ss'Z'"]; + [_rfc3339Formatter setTimeZone:[NSTimeZone timeZoneForSecondsFromGMT:0]]; + } + return self; +} + +- (instancetype)initWithAppIdentifier:(NSString *)appIdentifier isAppStoreEnvironment:(BOOL)isAppStoreEnvironment { + if ((self = [self init])) { + _appIdentifier = appIdentifier; + _isAppStoreEnvironment = isAppStoreEnvironment; + } + return self; +} + + +#pragma mark - Private + +- (void)reportError:(NSError *)error { + BITHockeyLog(@"ERROR: %@", [error localizedDescription]); +} + +- (BOOL)isAppStoreEnvironment { + return _isAppStoreEnvironment; +} + +- (NSString *)encodedAppIdentifier { + return bit_encodeAppIdentifier(_appIdentifier); +} + +- (BOOL)isPreiOS7Environment { + return bit_isPreiOS7Environment(); +} + +- (NSString *)getDevicePlatform { + size_t size; + sysctlbyname("hw.machine", NULL, &size, NULL, 0); + char *answer = (char*)malloc(size); + if (answer == NULL) + return @""; + sysctlbyname("hw.machine", answer, &size, NULL, 0); + NSString *platform = [NSString stringWithCString:answer encoding: NSUTF8StringEncoding]; + free(answer); + return platform; +} + +- (NSString *)executableUUID { + const struct mach_header *executableHeader = NULL; + for (uint32_t i = 0; i < _dyld_image_count(); i++) { + const struct mach_header *header = _dyld_get_image_header(i); + if (header->filetype == MH_EXECUTE) { + executableHeader = header; + break; + } + } + + if (!executableHeader) + return @""; + + BOOL is64bit = executableHeader->magic == MH_MAGIC_64 || executableHeader->magic == MH_CIGAM_64; + uintptr_t cursor = (uintptr_t)executableHeader + (is64bit ? sizeof(struct mach_header_64) : sizeof(struct mach_header)); + const struct segment_command *segmentCommand = NULL; + for (uint32_t i = 0; i < executableHeader->ncmds; i++, cursor += segmentCommand->cmdsize) { + segmentCommand = (struct segment_command *)cursor; + if (segmentCommand->cmd == LC_UUID) { + const struct uuid_command *uuidCommand = (const struct uuid_command *)segmentCommand; + const uint8_t *uuid = uuidCommand->uuid; + return [[NSString stringWithFormat:@"%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X", + uuid[0], uuid[1], uuid[2], uuid[3], + uuid[4], uuid[5], uuid[6], uuid[7], + uuid[8], uuid[9], uuid[10], uuid[11], + uuid[12], uuid[13], uuid[14], uuid[15]] + lowercaseString]; + } + } + + return @""; +} + +- (UIWindow *)findVisibleWindow { + UIWindow *visibleWindow = [UIApplication sharedApplication].keyWindow; + + if (!(visibleWindow.hidden)) { + return visibleWindow; + } + + // if the rootViewController property (available >= iOS 4.0) of the main window is set, we present the modal view controller on top of the rootViewController + NSArray *windows = [[UIApplication sharedApplication] windows]; + for (UIWindow *window in windows) { + if (!window.hidden && !visibleWindow) { + visibleWindow = window; + } + if ([UIWindow instancesRespondToSelector:@selector(rootViewController)]) { + if (!(window.hidden) && ([window rootViewController])) { + visibleWindow = window; + BITHockeyLog(@"INFO: UIWindow with rootViewController found: %@", visibleWindow); + break; + } + } + } + + return visibleWindow; +} + +/** + * Provide a custom UINavigationController with customized appearance settings + * + * @param viewController The root viewController + * @param modalPresentationStyle The modal presentation style + * + * @return A UINavigationController + */ +- (UINavigationController *)customNavigationControllerWithRootViewController:(UIViewController *)viewController presentationStyle:(UIModalPresentationStyle)modalPresentationStyle { + UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:viewController]; + navController.navigationBar.barStyle = self.barStyle; + if (self.navigationBarTintColor) { + navController.navigationBar.tintColor = self.navigationBarTintColor; + } else { + // in case of iOS 7 we overwrite the tint color on the navigation bar + if (![self isPreiOS7Environment]) { + if ([UIWindow instancesRespondToSelector:NSSelectorFromString(@"tintColor")]) { + [navController.navigationBar setTintColor:BIT_RGBCOLOR(0, 122, 255)]; + } + } + } + navController.modalPresentationStyle = self.modalPresentationStyle; + + return navController; +} + +- (void)showView:(UIViewController *)viewController { + // if we compile Crash only, then BITHockeyBaseViewController is not included + // in the headers and will cause a warning with the modulemap file +#if HOCKEYSDK_FEATURE_AUTHENTICATOR || HOCKEYSDK_FEATURE_UPDATES || HOCKEYSDK_FEATURE_FEEDBACK + UIViewController *parentViewController = nil; + + if ([[BITHockeyManager sharedHockeyManager].delegate respondsToSelector:@selector(viewControllerForHockeyManager:componentManager:)]) { + parentViewController = [[BITHockeyManager sharedHockeyManager].delegate viewControllerForHockeyManager:[BITHockeyManager sharedHockeyManager] componentManager:self]; + } + + UIWindow *visibleWindow = [self findVisibleWindow]; + + if (parentViewController == nil) { + parentViewController = [visibleWindow rootViewController]; + } + + // use topmost modal view + while (parentViewController.presentedViewController) { + parentViewController = parentViewController.presentedViewController; + } + + // as per documentation this only works if called from within viewWillAppear: or viewDidAppear: + // in tests this also worked fine on iOS 6 and 7 but not on iOS 5 so we are still trying this + if ([parentViewController isBeingPresented]) { + BITHockeyLog(@"WARNING: There is already a view controller being presented onto the parentViewController. Delaying presenting the new view controller by 0.5s."); + [self performSelector:@selector(showView:) withObject:viewController afterDelay:0.5]; + return; + } + + // special addition to get rootViewController from three20 which has it's own controller handling + if (NSClassFromString(@"TTNavigator")) { +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Warc-performSelector-leaks" + UIViewController *ttParentViewController = nil; + ttParentViewController = [[NSClassFromString(@"TTNavigator") performSelector:(NSSelectorFromString(@"navigator"))] visibleViewController]; + if (ttParentViewController) + parentViewController = ttParentViewController; +#pragma clang diagnostic pop + } + + if (_navController != nil) _navController = nil; + + _navController = [self customNavigationControllerWithRootViewController:viewController presentationStyle:_modalPresentationStyle]; + + if (parentViewController) { + _navController.modalTransitionStyle = UIModalTransitionStyleCoverVertical; + + // page sheet for the iPad + if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) { + _navController.modalPresentationStyle = UIModalPresentationFormSheet; + } + + if ([viewController isKindOfClass:[BITHockeyBaseViewController class]]) + [(BITHockeyBaseViewController *)viewController setModalAnimated:YES]; + + [parentViewController presentViewController:_navController animated:YES completion:nil]; + } else { + // if not, we add a subview to the window. A bit hacky but should work in most circumstances. + // Also, we don't get a nice animation for free, but hey, this is for beta not production users ;) + BITHockeyLog(@"INFO: No rootViewController found, using UIWindow-approach: %@", visibleWindow); + if ([viewController isKindOfClass:[BITHockeyBaseViewController class]]) + [(BITHockeyBaseViewController *)viewController setModalAnimated:NO]; + [visibleWindow addSubview:_navController.view]; + } +#endif +} + +- (BOOL)addStringValueToKeychain:(NSString *)stringValue forKey:(NSString *)key { + if (!key || !stringValue) + return NO; + + NSError *error = nil; + return [BITKeychainUtils storeUsername:key + andPassword:stringValue + forServiceName:bit_keychainHockeySDKServiceName() + updateExisting:YES + error:&error]; +} + +- (BOOL)addStringValueToKeychainForThisDeviceOnly:(NSString *)stringValue forKey:(NSString *)key { + if (!key || !stringValue) + return NO; + + NSError *error = nil; + return [BITKeychainUtils storeUsername:key + andPassword:stringValue + forServiceName:bit_keychainHockeySDKServiceName() + updateExisting:YES + accessibility:kSecAttrAccessibleAfterFirstUnlockThisDeviceOnly + error:&error]; +} + +- (NSString *)stringValueFromKeychainForKey:(NSString *)key { + if (!key) + return nil; + + NSError *error = nil; + return [BITKeychainUtils getPasswordForUsername:key + andServiceName:bit_keychainHockeySDKServiceName() + error:&error]; +} + +- (BOOL)removeKeyFromKeychain:(NSString *)key { + NSError *error = nil; + return [BITKeychainUtils deleteItemForUsername:key + andServiceName:bit_keychainHockeySDKServiceName() + error:&error]; +} + + +#pragma mark - Manager Control + +- (void)startManager { +} + +#pragma mark - Helpers + +- (NSDate *)parseRFC3339Date:(NSString *)dateString { + NSDate *date = nil; + NSError *error = nil; + if (![_rfc3339Formatter getObjectValue:&date forString:dateString range:nil error:&error]) { + BITHockeyLog(@"INFO: Invalid date '%@' string: %@", dateString, error); + } + + return date; +} + + +@end diff --git a/Pods/HockeySDK/Classes/BITHockeyBaseManagerPrivate.h b/Pods/HockeySDK/Classes/BITHockeyBaseManagerPrivate.h new file mode 100644 index 0000000..8508374 --- /dev/null +++ b/Pods/HockeySDK/Classes/BITHockeyBaseManagerPrivate.h @@ -0,0 +1,84 @@ +/* + * Author: Andreas Linde + * + * Copyright (c) 2012-2014 HockeyApp, Bit Stadium GmbH. + * All rights reserved. + * + * Permission is hereby granted, free of charge, to any person + * obtaining a copy of this software and associated documentation + * files (the "Software"), to deal in the Software without + * restriction, including without limitation the rights to use, + * copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following + * conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES + * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + */ + +#import +#import + +@class BITHockeyBaseManager; +@class BITHockeyBaseViewController; + +@interface BITHockeyBaseManager() + +@property (nonatomic, strong) NSString *appIdentifier; + +- (instancetype)initWithAppIdentifier:(NSString *)appIdentifier isAppStoreEnvironment:(BOOL)isAppStoreEnvironment; + +- (void)startManager; + +/** the value this object was initialized with */ +- (BOOL)isAppStoreEnvironment; + +/** Check if the device is running an iOS version previous to iOS 7 */ +- (BOOL)isPreiOS7Environment; + +/** + * by default, just logs the message + * + * can be overridden by subclasses to do their own error handling, + * e.g. to show UI + * + * @param error NSError + */ +- (void)reportError:(NSError *)error; + +/** url encoded version of the appIdentifier + + where appIdentifier is either the value this object was initialized with, + or the main bundles CFBundleIdentifier if appIdentifier is nil + */ +- (NSString *)encodedAppIdentifier; + +// device / application helpers +- (NSString *)getDevicePlatform; +- (NSString *)executableUUID; + +// UI helpers +- (UIWindow *)findVisibleWindow; +- (UINavigationController *)customNavigationControllerWithRootViewController:(UIViewController *)viewController presentationStyle:(UIModalPresentationStyle)presentationStyle; +- (void)showView:(UIViewController *)viewController; + +// Date helpers +- (NSDate *)parseRFC3339Date:(NSString *)dateString; + +// keychain helpers +- (BOOL)addStringValueToKeychain:(NSString *)stringValue forKey:(NSString *)key; +- (BOOL)addStringValueToKeychainForThisDeviceOnly:(NSString *)stringValue forKey:(NSString *)key; +- (NSString *)stringValueFromKeychainForKey:(NSString *)key; +- (BOOL)removeKeyFromKeychain:(NSString *)key; + +@end diff --git a/Pods/HockeySDK/Classes/BITHockeyBaseViewController.h b/Pods/HockeySDK/Classes/BITHockeyBaseViewController.h new file mode 100644 index 0000000..d770103 --- /dev/null +++ b/Pods/HockeySDK/Classes/BITHockeyBaseViewController.h @@ -0,0 +1,38 @@ +/* + * Author: Andreas Linde + * + * Copyright (c) 2012-2014 HockeyApp, Bit Stadium GmbH. + * All rights reserved. + * + * Permission is hereby granted, free of charge, to any person + * obtaining a copy of this software and associated documentation + * files (the "Software"), to deal in the Software without + * restriction, including without limitation the rights to use, + * copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following + * conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES + * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + */ + +#import + +@interface BITHockeyBaseViewController : UITableViewController + +@property (nonatomic, readwrite) BOOL modalAnimated; + +- (instancetype)initWithModalStyle:(BOOL)modal; +- (instancetype)initWithStyle:(UITableViewStyle)style modal:(BOOL)modal; + +@end diff --git a/Pods/HockeySDK/Classes/BITHockeyBaseViewController.m b/Pods/HockeySDK/Classes/BITHockeyBaseViewController.m new file mode 100644 index 0000000..99611a5 --- /dev/null +++ b/Pods/HockeySDK/Classes/BITHockeyBaseViewController.m @@ -0,0 +1,132 @@ +/* + * Author: Andreas Linde + * + * Copyright (c) 2012-2014 HockeyApp, Bit Stadium GmbH. + * All rights reserved. + * + * Permission is hereby granted, free of charge, to any person + * obtaining a copy of this software and associated documentation + * files (the "Software"), to deal in the Software without + * restriction, including without limitation the rights to use, + * copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following + * conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES + * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + */ + +#import "BITHockeyBaseViewController.h" +#import "HockeySDKPrivate.h" + + +@implementation BITHockeyBaseViewController { + BOOL _modal; + UIStatusBarStyle _statusBarStyle; +} + + +- (instancetype)initWithStyle:(UITableViewStyle)style { + self = [super initWithStyle:style]; + if (self) { + _modalAnimated = YES; + _modal = NO; + } + return self; +} + +- (instancetype)initWithStyle:(UITableViewStyle)style modal:(BOOL)modal { + self = [self initWithStyle:style]; + if (self) { + _modal = modal; + + //might be better in viewDidLoad, but to workaround rdar://12214613 and as it doesn't + //hurt, we do it here + if (_modal) { + self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone + target:self + action:@selector(onDismissModal:)]; + } + } + return self; +} + +- (instancetype)initWithModalStyle:(BOOL)modal { + self = [self initWithStyle:UITableViewStylePlain modal:modal]; + return self; +} + + +#pragma mark - View lifecycle + +- (void)onDismissModal:(id)sender { + if (_modal) { + UIViewController *presentingViewController = [self presentingViewController]; + + // If there is no presenting view controller just remove view + if (presentingViewController && self.modalAnimated) { + [presentingViewController dismissViewControllerAnimated:YES completion:nil]; + } else { + [self.navigationController.view removeFromSuperview]; + } + } else { + [self.navigationController popViewControllerAnimated:YES]; + } + + [[UIApplication sharedApplication] setStatusBarStyle:_statusBarStyle]; +} + + +- (void)viewWillAppear:(BOOL)animated { + [super viewWillAppear:animated]; + + _statusBarStyle = [[UIApplication sharedApplication] statusBarStyle]; + if ([self.navigationController.navigationBar.tintColor isEqual:BIT_RGBCOLOR(25, 25, 25)]) { +#if __IPHONE_OS_VERSION_MAX_ALLOWED > __IPHONE_6_1 + [[UIApplication sharedApplication] setStatusBarStyle:(self.navigationController.navigationBar.barStyle == UIBarStyleDefault) ? UIStatusBarStyleDefault : UIStatusBarStyleLightContent]; +#else + [[UIApplication sharedApplication] setStatusBarStyle:(self.navigationController.navigationBar.barStyle == UIBarStyleDefault) ? UIStatusBarStyleDefault : UIStatusBarStyleBlackOpaque]; +#endif + } +} + +- (void)viewWillDisappear:(BOOL)animated { + [super viewWillDisappear:animated]; + + if ([self.navigationController.navigationBar.tintColor isEqual:BIT_RGBCOLOR(25, 25, 25)]) { + [[UIApplication sharedApplication] setStatusBarStyle:_statusBarStyle]; + } +} + + +#pragma mark - Rotation + +- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation { + BOOL shouldAutorotate; + + if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone) { + shouldAutorotate = (interfaceOrientation == UIInterfaceOrientationLandscapeLeft || + interfaceOrientation == UIInterfaceOrientationLandscapeRight || + interfaceOrientation == UIInterfaceOrientationPortrait); + } else { + shouldAutorotate = YES; + } + + return shouldAutorotate; +} + + +#pragma mark - Modal presentation + + +@end diff --git a/Pods/HockeySDK/Classes/BITHockeyHelper.h b/Pods/HockeySDK/Classes/BITHockeyHelper.h new file mode 100644 index 0000000..f4d8e9f --- /dev/null +++ b/Pods/HockeySDK/Classes/BITHockeyHelper.h @@ -0,0 +1,65 @@ +/* + * Author: Andreas Linde + * + * Copyright (c) 2012-2014 HockeyApp, Bit Stadium GmbH. + * All rights reserved. + * + * Permission is hereby granted, free of charge, to any person + * obtaining a copy of this software and associated documentation + * files (the "Software"), to deal in the Software without + * restriction, including without limitation the rights to use, + * copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following + * conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES + * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + */ + +#import +#import + +/* NSString helpers */ +NSString *bit_URLEncodedString(NSString *inputString); +NSString *bit_URLDecodedString(NSString *inputString); +NSString *bit_base64String(NSData * data, unsigned long length); + +NSString *bit_settingsDir(void); + +BOOL bit_validateEmail(NSString *email); +NSString *bit_keychainHockeySDKServiceName(void); + +NSComparisonResult bit_versionCompare(NSString *stringA, NSString *stringB); +NSString *bit_mainBundleIdentifier(void); +NSString *bit_encodeAppIdentifier(NSString *inputString); +NSString *bit_appName(NSString *placeHolderString); +NSString *bit_UUIDPreiOS6(void); +NSString *bit_UUID(void); +NSString *bit_appAnonID(void); +BOOL bit_isPreiOS7Environment(void); +BOOL bit_isPreiOS8Environment(void); +BOOL bit_isRunningInAppExtension(void); + +NSString *bit_validAppIconStringFromIcons(NSBundle *resourceBundle, NSArray *icons); +NSString *bit_validAppIconFilename(NSBundle *bundle, NSBundle *resourceBundle); + +/* UIImage helpers */ +UIImage *bit_roundedCornerImage(UIImage *inputImage, NSInteger cornerSize, NSInteger borderSize); +UIImage *bit_imageToFitSize(UIImage *inputImage, CGSize fitSize, BOOL honorScaleFactor); +UIImage *bit_reflectedImageWithHeight(UIImage *inputImage, NSUInteger height, float fromAlpha, float toAlpha); + +UIImage *bit_newWithContentsOfResolutionIndependentFile(NSString * path); +UIImage *bit_imageWithContentsOfResolutionIndependentFile(NSString * path); +UIImage *bit_imageNamed(NSString *imageName, NSString *bundleName); +UIImage *bit_screenshot(void); +UIImage *bit_appIcon(void); diff --git a/Pods/HockeySDK/Classes/BITHockeyHelper.m b/Pods/HockeySDK/Classes/BITHockeyHelper.m new file mode 100644 index 0000000..60511d6 --- /dev/null +++ b/Pods/HockeySDK/Classes/BITHockeyHelper.m @@ -0,0 +1,805 @@ +/* + * Author: Andreas Linde + * + * Copyright (c) 2012-2014 HockeyApp, Bit Stadium GmbH. + * All rights reserved. + * + * Permission is hereby granted, free of charge, to any person + * obtaining a copy of this software and associated documentation + * files (the "Software"), to deal in the Software without + * restriction, including without limitation the rights to use, + * copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following + * conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES + * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + */ + + +#import "BITHockeyHelper.h" +#import "BITKeychainUtils.h" +#import "HockeySDK.h" +#import "HockeySDKPrivate.h" +#import + + +#if __IPHONE_OS_VERSION_MAX_ALLOWED < 70000 +@interface NSData (BITHockeySDKiOS7) +- (NSString *)base64Encoding; +@end +#endif + + +#pragma mark NSString helpers + +NSString *bit_URLEncodedString(NSString *inputString) { + return CFBridgingRelease(CFURLCreateStringByAddingPercentEscapes(kCFAllocatorDefault, + (__bridge CFStringRef)inputString, + NULL, + CFSTR("!*'();:@&=+$,/?%#[]"), + kCFStringEncodingUTF8) + ); +} + +NSString *bit_URLDecodedString(NSString *inputString) { + return CFBridgingRelease(CFURLCreateStringByReplacingPercentEscapesUsingEncoding(kCFAllocatorDefault, + (__bridge CFStringRef)inputString, + CFSTR(""), + kCFStringEncodingUTF8) + ); +} + +NSString *bit_base64String(NSData * data, unsigned long length) { +#if __IPHONE_OS_VERSION_MAX_ALLOWED > __IPHONE_6_1 + SEL base64EncodingSelector = NSSelectorFromString(@"base64EncodedStringWithOptions:"); + if ([data respondsToSelector:base64EncodingSelector]) { + return [data base64EncodedStringWithOptions:0]; + } else { +#endif +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" + return [data base64Encoding]; +#pragma clang diagnostic pop +#if __IPHONE_OS_VERSION_MAX_ALLOWED > __IPHONE_6_1 + } +#endif +} + +NSString *bit_settingsDir(void) { + static NSString *settingsDir = nil; + static dispatch_once_t predSettingsDir; + + dispatch_once(&predSettingsDir, ^{ + NSFileManager *fileManager = [[NSFileManager alloc] init]; + + // temporary directory for crashes grabbed from PLCrashReporter + NSArray *paths = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES); + settingsDir = [[paths objectAtIndex:0] stringByAppendingPathComponent:BITHOCKEY_IDENTIFIER]; + + if (![fileManager fileExistsAtPath:settingsDir]) { + NSDictionary *attributes = [NSDictionary dictionaryWithObject: [NSNumber numberWithUnsignedLong: 0755] forKey: NSFilePosixPermissions]; + NSError *theError = NULL; + + [fileManager createDirectoryAtPath:settingsDir withIntermediateDirectories: YES attributes: attributes error: &theError]; + } + }); + + return settingsDir; +} + +BOOL bit_validateEmail(NSString *email) { + NSString *emailRegex = + @"(?:[a-z0-9!#$%\\&'*+/=?\\^_`{|}~-]+(?:\\.[a-z0-9!#$%\\&'*+/=?\\^_`{|}" + @"~-]+)*|\"(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21\\x23-\\x5b\\x5d-\\" + @"x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])*\")@(?:(?:[a-z0-9](?:[a-" + @"z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\\[(?:(?:25[0-5" + @"]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-" + @"9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21" + @"-\\x5a\\x53-\\x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])+)\\])"; + NSPredicate *emailTest = [NSPredicate predicateWithFormat:@"SELF MATCHES[c] %@", emailRegex]; + + return [emailTest evaluateWithObject:email]; +} + +NSString *bit_keychainHockeySDKServiceName(void) { + static NSString *serviceName = nil; + static dispatch_once_t predServiceName; + + dispatch_once(&predServiceName, ^{ + serviceName = [NSString stringWithFormat:@"%@.HockeySDK", bit_mainBundleIdentifier()]; + }); + + return serviceName; +} + +NSComparisonResult bit_versionCompare(NSString *stringA, NSString *stringB) { + // Extract plain version number from self + NSString *plainSelf = stringA; + NSRange letterRange = [plainSelf rangeOfCharacterFromSet: [NSCharacterSet letterCharacterSet]]; + if (letterRange.length) + plainSelf = [plainSelf substringToIndex: letterRange.location]; + + // Extract plain version number from other + NSString *plainOther = stringB; + letterRange = [plainOther rangeOfCharacterFromSet: [NSCharacterSet letterCharacterSet]]; + if (letterRange.length) + plainOther = [plainOther substringToIndex: letterRange.location]; + + // Compare plain versions + NSComparisonResult result = [plainSelf compare:plainOther options:NSNumericSearch]; + + // If plain versions are equal, compare full versions + if (result == NSOrderedSame) + result = [stringA compare:stringB options:NSNumericSearch]; + + // Done + return result; +} + +NSString *bit_mainBundleIdentifier(void) { + return [[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleIdentifier"]; +} + +NSString *bit_encodeAppIdentifier(NSString *inputString) { + return (inputString ? bit_URLEncodedString(inputString) : bit_URLEncodedString(bit_mainBundleIdentifier())); +} + +NSString *bit_appName(NSString *placeHolderString) { + NSString *appName = [[[NSBundle mainBundle] localizedInfoDictionary] objectForKey:@"CFBundleDisplayName"]; + if (!appName) + appName = [[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleDisplayName"] ?: placeHolderString; + + return appName; +} + +NSString *bit_UUIDPreiOS6(void) { + // Create a new UUID + CFUUIDRef uuidObj = CFUUIDCreate(nil); + + // Get the string representation of the UUID + NSString *resultUUID = (NSString*)CFBridgingRelease(CFUUIDCreateString(nil, uuidObj)); + CFRelease(uuidObj); + + return resultUUID; +} + +NSString *bit_UUID(void) { + NSString *resultUUID = nil; + + id uuidClass = NSClassFromString(@"NSUUID"); + if (uuidClass) { + resultUUID = [[NSUUID UUID] UUIDString]; + } else { + resultUUID = bit_UUIDPreiOS6(); + } + + return resultUUID; +} + +NSString *bit_appAnonID(void) { + static NSString *appAnonID = nil; + static dispatch_once_t predAppAnonID; + + dispatch_once(&predAppAnonID, ^{ + // first check if we already have an install string in the keychain + NSString *appAnonIDKey = @"appAnonID"; + + __block NSError *error = nil; + appAnonID = [BITKeychainUtils getPasswordForUsername:appAnonIDKey andServiceName:bit_keychainHockeySDKServiceName() error:&error]; + + if (!appAnonID) { + appAnonID = bit_UUID(); + // store this UUID in the keychain (on this device only) so we can be sure to always have the same ID upon app startups + if (appAnonID) { + // add to keychain in a background thread, since we got reports that storing to the keychain may take several seconds sometimes and cause the app to be killed + // and we don't care about the result anyway + dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_LOW, 0), ^{ + [BITKeychainUtils storeUsername:appAnonIDKey + andPassword:appAnonID + forServiceName:bit_keychainHockeySDKServiceName() + updateExisting:YES + accessibility:kSecAttrAccessibleAlwaysThisDeviceOnly + error:&error]; + }); + } + } + }); + + return appAnonID; +} + +BOOL bit_isPreiOS7Environment(void) { + static BOOL isPreiOS7Environment = YES; + static dispatch_once_t checkOS; + + dispatch_once(&checkOS, ^{ + // NSFoundationVersionNumber_iOS_6_1 = 993.00 + // We hardcode this, so compiling with iOS 6 is possible while still being able to detect the correct environment + + // runtime check according to + // https://developer.apple.com/library/prerelease/ios/documentation/UserExperience/Conceptual/TransitionGuide/SupportingEarlieriOS.html + if (floor(NSFoundationVersionNumber) <= 993.00) { + isPreiOS7Environment = YES; + } else { + isPreiOS7Environment = NO; + } + }); + + return isPreiOS7Environment; +} + +BOOL bit_isPreiOS8Environment(void) { + static BOOL isPreiOS8Environment = YES; + static dispatch_once_t checkOS8; + + dispatch_once(&checkOS8, ^{ + // NSFoundationVersionNumber_iOS_7_1 = 1047.25 + // We hardcode this, so compiling with iOS 7 is possible while still being able to detect the correct environment + + // runtime check according to + // https://developer.apple.com/library/prerelease/ios/documentation/UserExperience/Conceptual/TransitionGuide/SupportingEarlieriOS.html + if (floor(NSFoundationVersionNumber) <= 1047.25) { + isPreiOS8Environment = YES; + } else { + isPreiOS8Environment = NO; + } + }); + + return isPreiOS8Environment; +} + +BOOL bit_isRunningInAppExtension(void) { + static BOOL isRunningInAppExtension = NO; + static dispatch_once_t checkAppExtension; + + dispatch_once(&checkAppExtension, ^{ + isRunningInAppExtension = ([[[NSBundle mainBundle] executablePath] rangeOfString:@".appex/"].location != NSNotFound); + }); + + return isRunningInAppExtension; +} + +/** + Find a valid app icon filename that points to a proper app icon image + + @param icons NSArray with app icon filenames + + @return NSString with the valid app icon or nil if none found + */ +NSString *bit_validAppIconStringFromIcons(NSBundle *resourceBundle, NSArray *icons) { + if (!icons) return nil; + if (![icons isKindOfClass:[NSArray class]]) return nil; + + BOOL useHighResIcon = NO; + BOOL useiPadIcon = NO; + if ([UIScreen mainScreen].scale == 2.0f) useHighResIcon = YES; + if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) useiPadIcon = YES; + + NSString *currentBestMatch = nil; + float currentBestMatchHeight = 0; + float bestMatchHeight = 0; + + if (bit_isPreiOS7Environment()) { + bestMatchHeight = useiPadIcon ? (useHighResIcon ? 144 : 72) : (useHighResIcon ? 114 : 57); + } else { + bestMatchHeight = useiPadIcon ? (useHighResIcon ? 152 : 76) : 120; + } + + for(NSString *icon in icons) { + // Don't use imageNamed, otherwise unit tests won't find the fixture icon + // and using imageWithContentsOfFile doesn't load @2x files with absolut paths (required in tests) + + NSString *iconPathExtension = ([[icon pathExtension] length] > 0) ? [icon pathExtension] : @"png"; + NSMutableArray *iconFilenameVariants = [NSMutableArray new]; + + [iconFilenameVariants addObject:[icon stringByDeletingPathExtension]]; + [iconFilenameVariants addObject:[NSString stringWithFormat:@"%@@2x", [icon stringByDeletingPathExtension]]]; + + for (NSString *iconFilename in iconFilenameVariants) { + // this call already covers "~ipad" files + NSString *iconPath = [resourceBundle pathForResource:iconFilename ofType:iconPathExtension]; + + NSData *imgData = [[NSData alloc] initWithContentsOfFile:iconPath]; + + UIImage *iconImage = [[UIImage alloc] initWithData:imgData]; + + if (iconImage) { + if (iconImage.size.height == bestMatchHeight) { + return iconFilename; + } else if (iconImage.size.height < bestMatchHeight && + iconImage.size.height > currentBestMatchHeight) { + currentBestMatchHeight = iconImage.size.height; + currentBestMatch = iconFilename; + } + } + } + } + + return currentBestMatch; +} + +NSString *bit_validAppIconFilename(NSBundle *bundle, NSBundle *resourceBundle) { + NSString *iconFilename = nil; + NSArray *icons = nil; + + icons = [bundle objectForInfoDictionaryKey:@"CFBundleIconFiles"]; + iconFilename = bit_validAppIconStringFromIcons(resourceBundle, icons); + + if (!iconFilename) { + icons = [bundle objectForInfoDictionaryKey:@"CFBundleIcons"]; + if (icons && [icons isKindOfClass:[NSDictionary class]]) { + icons = [icons valueForKeyPath:@"CFBundlePrimaryIcon.CFBundleIconFiles"]; + } + iconFilename = bit_validAppIconStringFromIcons(resourceBundle, icons); + } + + // we test iPad structure anyway and use it if we find a result and don't have another one yet + if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) { + icons = [bundle objectForInfoDictionaryKey:@"CFBundleIcons~ipad"]; + if (icons && [icons isKindOfClass:[NSDictionary class]]) { + icons = [icons valueForKeyPath:@"CFBundlePrimaryIcon.CFBundleIconFiles"]; + } + NSString *iPadIconFilename = bit_validAppIconStringFromIcons(resourceBundle, icons); + if (iPadIconFilename && !iconFilename) { + iconFilename = iPadIconFilename; + } + } + + if (!iconFilename) { + NSString *tempFilename = [bundle objectForInfoDictionaryKey:@"CFBundleIconFile"]; + if (tempFilename) { + iconFilename = bit_validAppIconStringFromIcons(resourceBundle, @[tempFilename]); + } + } + + if (!iconFilename) { + iconFilename = bit_validAppIconStringFromIcons(resourceBundle, @[@"Icon.png"]); + } + + return iconFilename; +} + +#pragma mark UIImage private helpers + +static void bit_addRoundedRectToPath(CGRect rect, CGContextRef context, CGFloat ovalWidth, CGFloat ovalHeight); +static CGContextRef bit_MyOpenBitmapContext(int pixelsWide, int pixelsHigh); +static CGImageRef bit_CreateGradientImage(int pixelsWide, int pixelsHigh, float fromAlpha, float toAlpha); +static BOOL bit_hasAlpha(UIImage *inputImage); +UIImage *bit_imageWithAlpha(UIImage *inputImage); +UIImage *bit_addGlossToImage(UIImage *inputImage); + +// Adds a rectangular path to the given context and rounds its corners by the given extents +// Original author: Björn Sållarp. Used with permission. See: http://blog.sallarp.com/iphone-uiimage-round-corners/ +void bit_addRoundedRectToPath(CGRect rect, CGContextRef context, CGFloat ovalWidth, CGFloat ovalHeight) { + if (ovalWidth == 0 || ovalHeight == 0) { + CGContextAddRect(context, rect); + return; + } + CGContextSaveGState(context); + CGContextTranslateCTM(context, CGRectGetMinX(rect), CGRectGetMinY(rect)); + CGContextScaleCTM(context, ovalWidth, ovalHeight); + CGFloat fw = CGRectGetWidth(rect) / ovalWidth; + CGFloat fh = CGRectGetHeight(rect) / ovalHeight; + CGContextMoveToPoint(context, fw, fh/2); + CGContextAddArcToPoint(context, fw, fh, fw/2, fh, 1); + CGContextAddArcToPoint(context, 0, fh, 0, fh/2, 1); + CGContextAddArcToPoint(context, 0, 0, fw/2, 0, 1); + CGContextAddArcToPoint(context, fw, 0, fw, fh/2, 1); + CGContextClosePath(context); + CGContextRestoreGState(context); +} + +CGImageRef bit_CreateGradientImage(int pixelsWide, int pixelsHigh, float fromAlpha, float toAlpha) { + CGImageRef theCGImage = NULL; + + // gradient is always black-white and the mask must be in the gray colorspace + CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceGray(); + + // create the bitmap context + CGContextRef gradientBitmapContext = CGBitmapContextCreate(NULL, pixelsWide, pixelsHigh, + 8, 0, colorSpace, (CGBitmapInfo)kCGImageAlphaNone); + + // define the start and end grayscale values (with the alpha, even though + // our bitmap context doesn't support alpha the gradient requires it) + CGFloat colors[] = {toAlpha, 1.0, fromAlpha, 1.0}; + + // create the CGGradient and then release the gray color space + CGGradientRef grayScaleGradient = CGGradientCreateWithColorComponents(colorSpace, colors, NULL, 2); + CGColorSpaceRelease(colorSpace); + + // create the start and end points for the gradient vector (straight down) + CGPoint gradientEndPoint = CGPointZero; + CGPoint gradientStartPoint = CGPointMake(0, pixelsHigh); + + // draw the gradient into the gray bitmap context + CGContextDrawLinearGradient(gradientBitmapContext, grayScaleGradient, gradientStartPoint, + gradientEndPoint, kCGGradientDrawsAfterEndLocation); + CGGradientRelease(grayScaleGradient); + + // convert the context into a CGImageRef and release the context + theCGImage = CGBitmapContextCreateImage(gradientBitmapContext); + CGContextRelease(gradientBitmapContext); + + // return the imageref containing the gradient + return theCGImage; +} + +CGContextRef bit_MyOpenBitmapContext(int pixelsWide, int pixelsHigh) { + CGSize size = CGSizeMake(pixelsWide, pixelsHigh); + UIGraphicsBeginImageContextWithOptions(size, NO, 0.0); + + return UIGraphicsGetCurrentContext(); +} + + +// Returns true if the image has an alpha layer +BOOL bit_hasAlpha(UIImage *inputImage) { + CGImageAlphaInfo alpha = CGImageGetAlphaInfo(inputImage.CGImage); + return (alpha == kCGImageAlphaFirst || + alpha == kCGImageAlphaLast || + alpha == kCGImageAlphaPremultipliedFirst || + alpha == kCGImageAlphaPremultipliedLast); +} + +// Returns a copy of the given image, adding an alpha channel if it doesn't already have one +UIImage *bit_imageWithAlpha(UIImage *inputImage) { + if (bit_hasAlpha(inputImage)) { + return inputImage; + } + + CGImageRef imageRef = inputImage.CGImage; + size_t width = CGImageGetWidth(imageRef) * inputImage.scale; + size_t height = CGImageGetHeight(imageRef) * inputImage.scale; + + // The bitsPerComponent and bitmapInfo values are hard-coded to prevent an "unsupported parameter combination" error + CGContextRef offscreenContext = CGBitmapContextCreate(NULL, + width, + height, + 8, + 0, + CGImageGetColorSpace(imageRef), + kCGBitmapByteOrderDefault | kCGImageAlphaPremultipliedFirst); + + // Draw the image into the context and retrieve the new image, which will now have an alpha layer + CGContextDrawImage(offscreenContext, CGRectMake(0, 0, width, height), imageRef); + CGImageRef imageRefWithAlpha = CGBitmapContextCreateImage(offscreenContext); + UIImage *imageWithAlpha = [UIImage imageWithCGImage:imageRefWithAlpha]; + + // Clean up + CGContextRelease(offscreenContext); + CGImageRelease(imageRefWithAlpha); + + return imageWithAlpha; +} + +UIImage *bit_addGlossToImage(UIImage *inputImage) { + UIGraphicsBeginImageContextWithOptions(inputImage.size, NO, 0.0); + + [inputImage drawAtPoint:CGPointZero]; + UIImage *iconGradient = bit_imageNamed(@"IconGradient.png", BITHOCKEYSDK_BUNDLE); + [iconGradient drawInRect:CGRectMake(0, 0, inputImage.size.width, inputImage.size.height) blendMode:kCGBlendModeNormal alpha:0.5]; + + UIImage *result = UIGraphicsGetImageFromCurrentImageContext(); + UIGraphicsEndImageContext(); + + return result; +} + +#pragma mark UIImage helpers + +UIImage *bit_imageToFitSize(UIImage *inputImage, CGSize fitSize, BOOL honorScaleFactor) { + + if (!inputImage){ + return nil; + } + + float imageScaleFactor = 1.0; + if (honorScaleFactor) { + if ([inputImage respondsToSelector:@selector(scale)]) { + imageScaleFactor = [inputImage scale]; + } + } + + float sourceWidth = [inputImage size].width * imageScaleFactor; + float sourceHeight = [inputImage size].height * imageScaleFactor; + float targetWidth = fitSize.width; + float targetHeight = fitSize.height; + + // Calculate aspect ratios + float sourceRatio = sourceWidth / sourceHeight; + float targetRatio = targetWidth / targetHeight; + + // Determine what side of the source image to use for proportional scaling + BOOL scaleWidth = (sourceRatio <= targetRatio); + // Deal with the case of just scaling proportionally to fit, without cropping + scaleWidth = !scaleWidth; + + // Proportionally scale source image + float scalingFactor, scaledWidth, scaledHeight; + if (scaleWidth) { + scalingFactor = 1.0 / sourceRatio; + scaledWidth = targetWidth; + scaledHeight = round(targetWidth * scalingFactor); + } else { + scalingFactor = sourceRatio; + scaledWidth = round(targetHeight * scalingFactor); + scaledHeight = targetHeight; + } + + // Calculate compositing rectangles + CGRect sourceRect, destRect; + sourceRect = CGRectMake(0, 0, sourceWidth, sourceHeight); + destRect = CGRectMake(0, 0, scaledWidth, scaledHeight); + + // Create appropriately modified image. + UIImage *image = nil; + UIGraphicsBeginImageContextWithOptions(destRect.size, NO, honorScaleFactor ? 0.0 : 1.0); // 0.0 for scale means "correct scale for device's main screen". + CGImageRef sourceImg = CGImageCreateWithImageInRect([inputImage CGImage], sourceRect); // cropping happens here. + image = [UIImage imageWithCGImage:sourceImg scale:0.0 orientation:inputImage.imageOrientation]; // create cropped UIImage. + [image drawInRect:destRect]; // the actual scaling happens here, and orientation is taken care of automatically. + CGImageRelease(sourceImg); + image = UIGraphicsGetImageFromCurrentImageContext(); + UIGraphicsEndImageContext(); + + if (!image) { + // Try older method. + CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB(); + CGContextRef context = CGBitmapContextCreate(NULL, scaledWidth, scaledHeight, 8, (fitSize.width * 4), + colorSpace, (CGBitmapInfo)kCGImageAlphaPremultipliedLast); + sourceImg = CGImageCreateWithImageInRect([inputImage CGImage], sourceRect); + CGContextDrawImage(context, destRect, sourceImg); + CGImageRelease(sourceImg); + CGImageRef finalImage = CGBitmapContextCreateImage(context); + CGContextRelease(context); + CGColorSpaceRelease(colorSpace); + image = [UIImage imageWithCGImage:finalImage]; + CGImageRelease(finalImage); + } + + return image; +} + + +UIImage *bit_reflectedImageWithHeight(UIImage *inputImage, NSUInteger height, float fromAlpha, float toAlpha) { + if(height == 0) + return nil; + + // create a bitmap graphics context the size of the image + CGContextRef mainViewContentContext = bit_MyOpenBitmapContext(inputImage.size.width, (int)height); + + // create a 2 bit CGImage containing a gradient that will be used for masking the + // main view content to create the 'fade' of the reflection. The CGImageCreateWithMask + // function will stretch the bitmap image as required, so we can create a 1 pixel wide gradient + CGImageRef gradientMaskImage = bit_CreateGradientImage(1, (int)height, fromAlpha, toAlpha); + + // create an image by masking the bitmap of the mainView content with the gradient view + // then release the pre-masked content bitmap and the gradient bitmap + CGContextClipToMask(mainViewContentContext, CGRectMake(0.0, 0.0, inputImage.size.width, height), gradientMaskImage); + CGImageRelease(gradientMaskImage); + + // draw the image into the bitmap context + CGContextDrawImage(mainViewContentContext, CGRectMake(0, 0, inputImage.size.width, inputImage.size.height), inputImage.CGImage); + + // convert the finished reflection image to a UIImage + UIImage *theImage = UIGraphicsGetImageFromCurrentImageContext(); // returns autoreleased + UIGraphicsEndImageContext(); + + return theImage; +} + + +UIImage *bit_newWithContentsOfResolutionIndependentFile(NSString * path) { + if ([UIScreen instancesRespondToSelector:@selector(scale)] && (int)[[UIScreen mainScreen] scale] == 2.0) { + NSString *path2x = [[path stringByDeletingLastPathComponent] + stringByAppendingPathComponent:[NSString stringWithFormat:@"%@@2x.%@", + [[path lastPathComponent] stringByDeletingPathExtension], + [path pathExtension]]]; + + if ([[NSFileManager defaultManager] fileExistsAtPath:path2x]) { + return [[UIImage alloc] initWithContentsOfFile:path2x]; + } + } + + return [[UIImage alloc] initWithContentsOfFile:path]; +} + + +UIImage *bit_imageWithContentsOfResolutionIndependentFile(NSString *path) { + return bit_newWithContentsOfResolutionIndependentFile(path); +} + + +UIImage *bit_imageNamed(NSString *imageName, NSString *bundleName) { + NSString *resourcePath = [[NSBundle bundleForClass:[BITHockeyManager class]] resourcePath]; + NSString *bundlePath = [resourcePath stringByAppendingPathComponent:bundleName]; + NSString *imagePath = [bundlePath stringByAppendingPathComponent:imageName]; + return bit_imageWithContentsOfResolutionIndependentFile(imagePath); +} + + + +// Creates a copy of this image with rounded corners +// If borderSize is non-zero, a transparent border of the given size will also be added +// Original author: Björn Sållarp. Used with permission. See: http://blog.sallarp.com/iphone-uiimage-round-corners/ +UIImage *bit_roundedCornerImage(UIImage *inputImage, NSInteger cornerSize, NSInteger borderSize) { + // If the image does not have an alpha layer, add one + + UIImage *roundedImage = nil; + UIGraphicsBeginImageContextWithOptions(inputImage.size, NO, 0.0); // 0.0 for scale means "correct scale for device's main screen". + CGImageRef sourceImg = CGImageCreateWithImageInRect([inputImage CGImage], CGRectMake(0, 0, inputImage.size.width * inputImage.scale, inputImage.size.height * inputImage.scale)); // cropping happens here. + + // Create a clipping path with rounded corners + CGContextRef context = UIGraphicsGetCurrentContext(); + CGContextBeginPath(context); + bit_addRoundedRectToPath(CGRectMake(borderSize, borderSize, inputImage.size.width - borderSize * 2, inputImage.size.height - borderSize * 2), context, cornerSize, cornerSize); + CGContextClosePath(context); + CGContextClip(context); + + roundedImage = [UIImage imageWithCGImage:sourceImg scale:0.0 orientation:inputImage.imageOrientation]; // create cropped UIImage. + [roundedImage drawInRect:CGRectMake(0, 0, inputImage.size.width, inputImage.size.height)]; // the actual scaling happens here, and orientation is taken care of automatically. + CGImageRelease(sourceImg); + roundedImage = UIGraphicsGetImageFromCurrentImageContext(); + UIGraphicsEndImageContext(); + + if (!roundedImage) { + // Try older method. + UIImage *image = bit_imageWithAlpha(inputImage); + + // Build a context that's the same dimensions as the new size + context = CGBitmapContextCreate(NULL, + image.size.width, + image.size.height, + CGImageGetBitsPerComponent(image.CGImage), + 0, + CGImageGetColorSpace(image.CGImage), + CGImageGetBitmapInfo(image.CGImage)); + + // Create a clipping path with rounded corners + CGContextBeginPath(context); + bit_addRoundedRectToPath(CGRectMake(borderSize, borderSize, image.size.width - borderSize * 2, image.size.height - borderSize * 2), context, cornerSize, cornerSize); + CGContextClosePath(context); + CGContextClip(context); + + // Draw the image to the context; the clipping path will make anything outside the rounded rect transparent + CGContextDrawImage(context, CGRectMake(0, 0, image.size.width, image.size.height), image.CGImage); + + // Create a CGImage from the context + CGImageRef clippedImage = CGBitmapContextCreateImage(context); + CGContextRelease(context); + + // Create a UIImage from the CGImage + roundedImage = [UIImage imageWithCGImage:clippedImage]; + CGImageRelease(clippedImage); + } + + return roundedImage; +} + +UIImage *bit_appIcon() { + NSString *iconString = nil; + NSArray *icons = [[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleIconFiles"]; + if (!icons) { + icons = [[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleIcons"]; + if ((icons) && ([icons isKindOfClass:[NSDictionary class]])) { + icons = [icons valueForKeyPath:@"CFBundlePrimaryIcon.CFBundleIconFiles"]; + } + + if (!icons) { + iconString = [[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleIconFile"]; + if (!iconString) { + iconString = @"Icon.png"; + } + } + } + + if (icons) { + BOOL useHighResIcon = NO; + if ([UIScreen mainScreen].scale == 2.0f) useHighResIcon = YES; + + for(NSString *icon in icons) { + iconString = icon; + UIImage *iconImage = [UIImage imageNamed:icon]; + + if (iconImage.size.height == 57 && !useHighResIcon) { + // found! + break; + } + if (iconImage.size.height == 114 && useHighResIcon) { + // found! + break; + } + } + } + + BOOL addGloss = YES; + NSNumber *prerendered = [[NSBundle mainBundle] objectForInfoDictionaryKey:@"UIPrerenderedIcon"]; + if (prerendered) { + addGloss = ![prerendered boolValue]; + } + + if (addGloss) { + return bit_addGlossToImage([UIImage imageNamed:iconString]); + } else { + return [UIImage imageNamed:iconString]; + } +} + +UIImage *bit_screenshot(void) { + // Create a graphics context with the target size + CGSize imageSize = [[UIScreen mainScreen] bounds].size; + BOOL isLandscapeLeft = [UIApplication sharedApplication].statusBarOrientation == UIInterfaceOrientationLandscapeLeft; + BOOL isLandscapeRight = [UIApplication sharedApplication].statusBarOrientation == UIInterfaceOrientationLandscapeRight; + BOOL isUpsideDown = [UIApplication sharedApplication].statusBarOrientation == UIInterfaceOrientationPortraitUpsideDown; + + BOOL needsRotation = NO; + + if ((isLandscapeLeft ||isLandscapeRight) && imageSize.height > imageSize.width) { + needsRotation = YES; + CGFloat temp = imageSize.width; + imageSize.width = imageSize.height; + imageSize.height = temp; + } + + UIGraphicsBeginImageContextWithOptions(imageSize, YES, 0); + + CGContextRef context = UIGraphicsGetCurrentContext(); + + // Iterate over every window from back to front + //NSInteger count = 0; + for (UIWindow *window in [[UIApplication sharedApplication] windows]) { + if (![window respondsToSelector:@selector(screen)] || [window screen] == [UIScreen mainScreen]) { + // -renderInContext: renders in the coordinate space of the layer, + // so we must first apply the layer's geometry to the graphics context + CGContextSaveGState(context); + + // Center the context around the window's anchor point + CGContextTranslateCTM(context, [window center].x, [window center].y); + + // Apply the window's transform about the anchor point + CGContextConcatCTM(context, [window transform]); + + // Offset by the portion of the bounds left of and above the anchor point + CGContextTranslateCTM(context, + -[window bounds].size.width * [[window layer] anchorPoint].x, + -[window bounds].size.height * [[window layer] anchorPoint].y); + + if (needsRotation) { + if (isLandscapeLeft) { + CGContextConcatCTM(context, CGAffineTransformRotate(CGAffineTransformMakeTranslation( imageSize.width, 0), M_PI / 2.0)); + } else if (isLandscapeRight) { + CGContextConcatCTM(context, CGAffineTransformRotate(CGAffineTransformMakeTranslation( 0, imageSize.height), 3 * M_PI / 2.0)); + } + } else if (isUpsideDown) { + CGContextConcatCTM(context, CGAffineTransformRotate(CGAffineTransformMakeTranslation( imageSize.width, imageSize.height), M_PI)); + } + + if ([window respondsToSelector:@selector(drawViewHierarchyInRect:afterScreenUpdates:)]) { + [window drawViewHierarchyInRect:window.bounds afterScreenUpdates:NO]; + } else { + // Render the layer hierarchy to the current context + [[window layer] renderInContext:context]; + } + + // Restore the context + CGContextRestoreGState(context); + } + } + + // Retrieve the screenshot image + UIImage *image = UIGraphicsGetImageFromCurrentImageContext(); + + UIGraphicsEndImageContext(); + + return image; +} diff --git a/Pods/HockeySDK/Classes/BITHockeyManager.h b/Pods/HockeySDK/Classes/BITHockeyManager.h new file mode 100644 index 0000000..4278d93 --- /dev/null +++ b/Pods/HockeySDK/Classes/BITHockeyManager.h @@ -0,0 +1,531 @@ +/* + * Author: Andreas Linde + * Kent Sutherland + * + * Copyright (c) 2012-2014 HockeyApp, Bit Stadium GmbH. + * All rights reserved. + * + * Permission is hereby granted, free of charge, to any person + * obtaining a copy of this software and associated documentation + * files (the "Software"), to deal in the Software without + * restriction, including without limitation the rights to use, + * copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following + * conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES + * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + */ + +#import +#import + +#import "HockeySDKFeatureConfig.h" + + +@protocol BITHockeyManagerDelegate; + +@class BITHockeyBaseManager; +#if HOCKEYSDK_FEATURE_CRASH_REPORTER +@class BITCrashManager; +#endif +#if HOCKEYSDK_FEATURE_UPDATES +@class BITUpdateManager; +#endif +#if HOCKEYSDK_FEATURE_STORE_UPDATES +@class BITStoreUpdateManager; +#endif +#if HOCKEYSDK_FEATURE_FEEDBACK +@class BITFeedbackManager; +#endif +#if HOCKEYSDK_FEATURE_AUTHENTICATOR +@class BITAuthenticator; +#endif + +/** + The HockeySDK manager. Responsible for setup and management of all components + + This is the principal SDK class. It represents the entry point for the HockeySDK. The main promises of the class are initializing the SDK modules, providing access to global properties and to all modules. Initialization is divided into several distinct phases: + + 1. Setup the [HockeyApp](http://hockeyapp.net/) app identifier and the optional delegate: This is the least required information on setting up the SDK and using it. It does some simple validation of the app identifier and checks if the app is running from the App Store or not. + 2. Provides access to the SDK modules `BITCrashManager`, `BITUpdateManager`, and `BITFeedbackManager`. This way all modules can be further configured to personal needs, if the defaults don't fit the requirements. + 3. Configure each module. + 4. Start up all modules. + + The SDK is optimized to defer everything possible to a later time while making sure e.g. crashes on startup can also be caught and each module executes other code with a delay some seconds. This ensures that applicationDidFinishLaunching will process as fast as possible and the SDK will not block the startup sequence resulting in a possible kill by the watchdog process. + + All modules do **NOT** show any user interface if the module is not activated or not integrated. + `BITCrashManager`: Shows an alert on startup asking the user if he/she agrees on sending the crash report, if `[BITCrashManager crashManagerStatus]` is set to `BITCrashManagerStatusAlwaysAsk` (default) + `BITUpdateManager`: Is automatically deactivated when the SDK detects it is running from a build distributed via the App Store. Otherwise if it is not deactivated manually, it will show an alert after startup informing the user about a pending update, if one is available. If the user then decides to view the update another screen is presented with further details and an option to install the update. + `BITFeedbackManager`: If this module is deactivated or the user interface is nowhere added into the app, this module will not do anything. It will not fetch the server for data or show any user interface. If it is integrated, activated, and the user already used it to provide feedback, it will show an alert after startup if a new answer has been received from the server with the option to view it. + + Example: + + [[BITHockeyManager sharedHockeyManager] + configureWithIdentifier:@"" + delegate:nil]; + [[BITHockeyManager sharedHockeyManager] startManager]; + + @warning The SDK is **NOT** thread safe and has to be set up on the main thread! + + @warning Most properties of all components require to be set **BEFORE** calling`startManager`! + + */ + +@interface BITHockeyManager : NSObject + +#pragma mark - Public Methods + +///----------------------------------------------------------------------------- +/// @name Initialization +///----------------------------------------------------------------------------- + +/** + Returns a shared BITHockeyManager object + + @return A singleton BITHockeyManager instance ready use + */ ++ (BITHockeyManager *)sharedHockeyManager; + + +/** + Initializes the manager with a particular app identifier + + Initialize the manager with a HockeyApp app identifier. + + [[BITHockeyManager sharedHockeyManager] + configureWithIdentifier:@""]; + + @see configureWithIdentifier:delegate: + @see configureWithBetaIdentifier:liveIdentifier:delegate: + @see startManager + @param appIdentifier The app identifier that should be used. + */ +- (void)configureWithIdentifier:(NSString *)appIdentifier; + + +/** + Initializes the manager with a particular app identifier and delegate + + Initialize the manager with a HockeyApp app identifier and assign the class that + implements the optional protocols `BITHockeyManagerDelegate`, `BITCrashManagerDelegate` or + `BITUpdateManagerDelegate`. + + [[BITHockeyManager sharedHockeyManager] + configureWithIdentifier:@"" + delegate:nil]; + + @see configureWithIdentifier: + @see configureWithBetaIdentifier:liveIdentifier:delegate: + @see startManager + @see BITHockeyManagerDelegate + @see BITCrashManagerDelegate + @see BITUpdateManagerDelegate + @see BITFeedbackManagerDelegate + @param appIdentifier The app identifier that should be used. + @param delegate `nil` or the class implementing the option protocols + */ +- (void)configureWithIdentifier:(NSString *)appIdentifier delegate:(id)delegate; + + +/** + Initializes the manager with an app identifier for beta, one for live usage and delegate + + Initialize the manager with different HockeyApp app identifiers for beta and live usage. + All modules will automatically detect if the app is running in the App Store and use + the live app identifier for that. In all other cases it will use the beta app identifier. + And also assign the class that implements the optional protocols `BITHockeyManagerDelegate`, + `BITCrashManagerDelegate` or `BITUpdateManagerDelegate` + + [[BITHockeyManager sharedHockeyManager] + configureWithBetaIdentifier:@"" + liveIdentifier:@"" + delegate:nil]; + + We recommend using one app entry on HockeyApp for your beta versions and another one for + your live versions. The reason is that you will have way more beta versions than live + versions, but on the other side get way more crash reports on the live version. Separating + them into two different app entries makes it easier to work with the data. In addition + you will likely end up having the same version number for a beta and live version which + would mix different data into the same version. Also the live version does not require + you to upload any IPA files, uploading only the dSYM package for crash reporting is + just fine. + + @see configureWithIdentifier: + @see configureWithIdentifier:delegate: + @see startManager + @see BITHockeyManagerDelegate + @see BITCrashManagerDelegate + @see BITUpdateManagerDelegate + @see BITFeedbackManagerDelegate + @param betaIdentifier The app identifier for the _non_ app store (beta) configurations + @param liveIdentifier The app identifier for the app store configurations. + @param delegate `nil` or the class implementing the optional protocols + */ +- (void)configureWithBetaIdentifier:(NSString *)betaIdentifier liveIdentifier:(NSString *)liveIdentifier delegate:(id)delegate; + + +/** + Starts the manager and runs all modules + + Call this after configuring the manager and setting up all modules. + + @see configureWithIdentifier:delegate: + @see configureWithBetaIdentifier:liveIdentifier:delegate: + */ +- (void)startManager; + + +#pragma mark - Public Properties + +///----------------------------------------------------------------------------- +/// @name Modules +///----------------------------------------------------------------------------- + + +/** + Set the delegate + + Defines the class that implements the optional protocol `BITHockeyManagerDelegate`. + + The delegate will automatically be propagated to all components. There is no need to set the delegate + for each component individually. + + @warning This property needs to be set before calling `startManager` + + @see BITHockeyManagerDelegate + @see BITCrashManagerDelegate + @see BITUpdateManagerDelegate + @see BITFeedbackManagerDelegate + */ +@property (nonatomic, weak) id delegate; + + +/** + Defines the server URL to send data to or request data from + + By default this is set to the HockeyApp servers and there rarely should be a + need to modify that. + + @warning This property needs to be set before calling `startManager` + */ +@property (nonatomic, strong) NSString *serverURL; + + +#if HOCKEYSDK_FEATURE_CRASH_REPORTER + +/** + Reference to the initialized BITCrashManager module + + Returns the BITCrashManager instance initialized by BITHockeyManager + + @see configureWithIdentifier:delegate: + @see configureWithBetaIdentifier:liveIdentifier:delegate: + @see startManager + @see disableCrashManager + */ +@property (nonatomic, strong, readonly) BITCrashManager *crashManager; + + +/** + Flag the determines whether the Crash Manager should be disabled + + If this flag is enabled, then crash reporting is disabled and no crashes will + be send. + + Please note that the Crash Manager instance will be initialized anyway, but crash report + handling (signal and uncaught exception handlers) will **not** be registered. + + @warning This property needs to be set before calling `startManager` + + *Default*: _NO_ + @see crashManager + */ +@property (nonatomic, getter = isCrashManagerDisabled) BOOL disableCrashManager; + +#endif + + +#if HOCKEYSDK_FEATURE_UPDATES + +/** + Reference to the initialized BITUpdateManager module + + Returns the BITUpdateManager instance initialized by BITHockeyManager + + @see configureWithIdentifier:delegate: + @see configureWithBetaIdentifier:liveIdentifier:delegate: + @see startManager + @see disableUpdateManager + */ +@property (nonatomic, strong, readonly) BITUpdateManager *updateManager; + + +/** + Flag the determines whether the Update Manager should be disabled + + If this flag is enabled, then checking for updates and submitting beta usage + analytics will be turned off! + + Please note that the Update Manager instance will be initialized anyway! + + @warning This property needs to be set before calling `startManager` + + *Default*: _NO_ + @see updateManager + */ +@property (nonatomic, getter = isUpdateManagerDisabled) BOOL disableUpdateManager; + +#endif + + +#if HOCKEYSDK_FEATURE_STORE_UPDATES + +/** + Reference to the initialized BITStoreUpdateManager module + + Returns the BITStoreUpdateManager instance initialized by BITHockeyManager + + @see configureWithIdentifier:delegate: + @see configureWithBetaIdentifier:liveIdentifier:delegate: + @see startManager + @see enableStoreUpdateManager + */ +@property (nonatomic, strong, readonly) BITStoreUpdateManager *storeUpdateManager; + + +/** + Flag the determines whether the App Store Update Manager should be enabled + + If this flag is enabled, then checking for updates when the app runs from the + app store will be turned on! + + Please note that the Store Update Manager instance will be initialized anyway! + + @warning This property needs to be set before calling `startManager` + + *Default*: _NO_ + @see storeUpdateManager + */ +@property (nonatomic, getter = isStoreUpdateManagerEnabled) BOOL enableStoreUpdateManager; + +#endif + + +#if HOCKEYSDK_FEATURE_FEEDBACK + +/** + Reference to the initialized BITFeedbackManager module + + Returns the BITFeedbackManager instance initialized by BITHockeyManager + + @see configureWithIdentifier:delegate: + @see configureWithBetaIdentifier:liveIdentifier:delegate: + @see startManager + @see disableFeedbackManager + */ +@property (nonatomic, strong, readonly) BITFeedbackManager *feedbackManager; + + +/** + Flag the determines whether the Feedback Manager should be disabled + + If this flag is enabled, then letting the user give feedback and + get responses will be turned off! + + Please note that the Feedback Manager instance will be initialized anyway! + + @warning This property needs to be set before calling `startManager` + + *Default*: _NO_ + @see feedbackManager + */ +@property (nonatomic, getter = isFeedbackManagerDisabled) BOOL disableFeedbackManager; + +#endif + + +#if HOCKEYSDK_FEATURE_AUTHENTICATOR + +/** + Reference to the initialized BITAuthenticator module + + Returns the BITAuthenticator instance initialized by BITHockeyManager + + @see configureWithIdentifier:delegate: + @see configureWithBetaIdentifier:liveIdentifier:delegate: + @see startManager + */ +@property (nonatomic, strong, readonly) BITAuthenticator *authenticator; + +#endif + + +///----------------------------------------------------------------------------- +/// @name Environment +///----------------------------------------------------------------------------- + +/** + Flag that determines whether the application is installed and running + from an App Store installation. + + Returns _YES_ if the app is installed and running from the App Store + Returns _NO_ if the app is installed via debug, ad-hoc or enterprise distribution + */ +@property (nonatomic, readonly, getter=isAppStoreEnvironment) BOOL appStoreEnvironment; + + +/** + Returns the app installation specific anonymous UUID + + The value returned by this method is unique and persisted per app installation + in the keychain. It is also being used in crash reports as `CrashReporter Key` + and internally when sending crash reports and feedback messages. + + This is not identical to the `[ASIdentifierManager advertisingIdentifier]` or + the `[UIDevice identifierForVendor]`! + */ +@property (nonatomic, readonly) NSString *installString; + + +///----------------------------------------------------------------------------- +/// @name Debug Logging +///----------------------------------------------------------------------------- + +/** + Flag that determines whether additional logging output should be generated + by the manager and all modules. + + This is ignored if the app is running in the App Store and reverts to the + default value in that case. + + @warning This property needs to be set before calling `startManager` + + *Default*: _NO_ + */ +@property (nonatomic, assign, getter=isDebugLogEnabled) BOOL debugLogEnabled; + + +///----------------------------------------------------------------------------- +/// @name Integration test +///----------------------------------------------------------------------------- + +/** + Pings the server with the HockeyApp app identifiers used for initialization + + Call this method once for debugging purposes to test if your SDK setup code + reaches the server successfully. + + Once invoked, check the apps page on HockeyApp for a verification. + + If you setup the SDK with a beta and live identifier, a call to both app IDs will be done. + + This call is ignored if the app is running in the App Store!. + */ +- (void)testIdentifier; + + +///----------------------------------------------------------------------------- +/// @name Additional meta data +///----------------------------------------------------------------------------- + +/** Set the userid that should used in the SDK components + + Right now this is used by the `BITCrashManager` to attach to a crash report. + `BITFeedbackManager` uses it too for assigning the user to a discussion thread. + + The value can be set at any time and will be stored in the keychain on the current + device only! To delete the value from the keychain set the value to `nil`. + + This property is optional and can be used as an alternative to the delegate. If you + want to define specific data for each component, use the delegate instead which does + overwrite the values set by this property. + + @warning When returning a non nil value, crash reports are not anonymous any more + and the crash alerts will not show the word "anonymous"! + + @warning This property needs to be set before calling `startManager` to be considered + for being added to crash reports as meta data. + + @see userName + @see userEmail + @see `[BITHockeyManagerDelegate userIDForHockeyManager:componentManager:]` + */ +@property (nonatomic, retain) NSString *userID; + + +/** Set the user name that should used in the SDK components + + Right now this is used by the `BITCrashManager` to attach to a crash report. + `BITFeedbackManager` uses it too for assigning the user to a discussion thread. + + The value can be set at any time and will be stored in the keychain on the current + device only! To delete the value from the keychain set the value to `nil`. + + This property is optional and can be used as an alternative to the delegate. If you + want to define specific data for each component, use the delegate instead which does + overwrite the values set by this property. + + @warning When returning a non nil value, crash reports are not anonymous any more + and the crash alerts will not show the word "anonymous"! + + @warning This property needs to be set before calling `startManager` to be considered + for being added to crash reports as meta data. + + @see userID + @see userEmail + @see `[BITHockeyManagerDelegate userNameForHockeyManager:componentManager:]` + */ +@property (nonatomic, retain) NSString *userName; + + +/** Set the users email address that should used in the SDK components + + Right now this is used by the `BITCrashManager` to attach to a crash report. + `BITFeedbackManager` uses it too for assigning the user to a discussion thread. + + The value can be set at any time and will be stored in the keychain on the current + device only! To delete the value from the keychain set the value to `nil`. + + This property is optional and can be used as an alternative to the delegate. If you + want to define specific data for each component, use the delegate instead which does + overwrite the values set by this property. + + @warning When returning a non nil value, crash reports are not anonymous any more + and the crash alerts will not show the word "anonymous"! + + @warning This property needs to be set before calling `startManager` to be considered + for being added to crash reports as meta data. + + @see userID + @see userName + @see `[BITHockeyManagerDelegate userEmailForHockeyManager:componentManager:]` + */ +@property (nonatomic, retain) NSString *userEmail; + + +///----------------------------------------------------------------------------- +/// @name SDK meta data +///----------------------------------------------------------------------------- + +/** + Returns the SDK Version (CFBundleShortVersionString). + */ +- (NSString *)version; + +/** + Returns the SDK Build (CFBundleVersion) as a string. + */ +- (NSString *)build; + +@end diff --git a/Pods/HockeySDK/Classes/BITHockeyManager.m b/Pods/HockeySDK/Classes/BITHockeyManager.m new file mode 100644 index 0000000..f8b6b7b --- /dev/null +++ b/Pods/HockeySDK/Classes/BITHockeyManager.m @@ -0,0 +1,664 @@ +/* + * Author: Andreas Linde + * Kent Sutherland + * + * Copyright (c) 2012-2014 HockeyApp, Bit Stadium GmbH. + * All rights reserved. + * + * Permission is hereby granted, free of charge, to any person + * obtaining a copy of this software and associated documentation + * files (the "Software"), to deal in the Software without + * restriction, including without limitation the rights to use, + * copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following + * conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES + * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + */ + +#import "HockeySDK.h" +#import "HockeySDKPrivate.h" + +#if HOCKEYSDK_FEATURE_CRASH_REPORTER || HOCKEYSDK_FEATURE_FEEDBACK || HOCKEYSDK_FEATURE_UPDATES || HOCKEYSDK_FEATURE_AUTHENTICATOR || HOCKEYSDK_FEATURE_STORE_UPDATES +#import "BITHockeyBaseManagerPrivate.h" +#endif + +#import "BITHockeyHelper.h" +#import "BITHockeyAppClient.h" +#import "BITKeychainUtils.h" + +#include + +typedef struct { + uint8_t info_version; + const char hockey_version[16]; + const char hockey_build[16]; +} bitstadium_info_t; + +bitstadium_info_t bitstadium_library_info __attribute__((section("__TEXT,__bit_hockey,regular,no_dead_strip"))) = { + .info_version = 1, + .hockey_version = BITHOCKEY_C_VERSION, + .hockey_build = BITHOCKEY_C_BUILD +}; + + +#if HOCKEYSDK_FEATURE_CRASH_REPORTER +#import "BITCrashManagerPrivate.h" +#endif /* HOCKEYSDK_FEATURE_CRASH_REPORTER */ + +#if HOCKEYSDK_FEATURE_UPDATES +#import "BITUpdateManagerPrivate.h" +#endif /* HOCKEYSDK_FEATURE_UPDATES */ + +#if HOCKEYSDK_FEATURE_STORE_UPDATES +#import "BITStoreUpdateManagerPrivate.h" +#endif /* HOCKEYSDK_FEATURE_STORE_UPDATES */ + +#if HOCKEYSDK_FEATURE_FEEDBACK +#import "BITFeedbackManagerPrivate.h" +#endif /* HOCKEYSDK_FEATURE_FEEDBACK */ + +#if HOCKEYSDK_FEATURE_AUTHENTICATOR +#import "BITAuthenticator_Private.h" +#endif /* HOCKEYSDK_FEATURE_AUTHENTICATOR */ + +@interface BITHockeyManager () + +- (BOOL)shouldUseLiveIdentifier; + +@end + + +@implementation BITHockeyManager { + NSString *_appIdentifier; + NSString *_liveIdentifier; + + BOOL _validAppIdentifier; + + BOOL _startManagerIsInvoked; + + BOOL _startUpdateManagerIsInvoked; + + BOOL _managersInitialized; + + BITHockeyAppClient *_hockeyAppClient; +} + +#pragma mark - Private Class Methods + +- (BOOL)checkValidityOfAppIdentifier:(NSString *)identifier { + BOOL result = NO; + + if (identifier) { + NSCharacterSet *hexSet = [NSCharacterSet characterSetWithCharactersInString:@"0123456789abcdef"]; + NSCharacterSet *inStringSet = [NSCharacterSet characterSetWithCharactersInString:identifier]; + result = ([identifier length] == 32) && ([hexSet isSupersetOfSet:inStringSet]); + } + + return result; +} + +- (void)logInvalidIdentifier:(NSString *)environment { + if (!_appStoreEnvironment) { + if ([environment isEqualToString:@"liveIdentifier"]) { + NSLog(@"[HockeySDK] WARNING: The liveIdentifier is invalid! The SDK will be disabled when deployed to the App Store without setting a valid app identifier!"); + } else { + NSLog(@"[HockeySDK] ERROR: The %@ is invalid! Please use the HockeyApp app identifier you find on the apps website on HockeyApp! The SDK is disabled!", environment); + } + } +} + + +#pragma mark - Public Class Methods + ++ (BITHockeyManager *)sharedHockeyManager { + static BITHockeyManager *sharedInstance = nil; + static dispatch_once_t pred; + + dispatch_once(&pred, ^{ + sharedInstance = [BITHockeyManager alloc]; + sharedInstance = [sharedInstance init]; + }); + + return sharedInstance; +} + +- (id) init { + if ((self = [super init])) { + _serverURL = nil; + _delegate = nil; + _managersInitialized = NO; + + _hockeyAppClient = nil; + +#if HOCKEYSDK_FEATURE_CRASH_REPORTER + _disableCrashManager = NO; +#endif +#if HOCKEYSDK_FEATURE_UPDATES + _disableUpdateManager = NO; +#endif +#if HOCKEYSDK_FEATURE_FEEDBACK + _disableFeedbackManager = NO; +#endif + +#if HOCKEYSDK_FEATURE_STORE_UPDATES + _enableStoreUpdateManager = NO; +#endif + + _appStoreEnvironment = NO; + _startManagerIsInvoked = NO; + _startUpdateManagerIsInvoked = NO; + + _liveIdentifier = nil; + _installString = bit_appAnonID(); + +#if !TARGET_IPHONE_SIMULATOR + // check if we are really in an app store environment + if (![[NSBundle mainBundle] pathForResource:@"embedded" ofType:@"mobileprovision"]) { + _appStoreEnvironment = YES; + } +#endif + + [self performSelector:@selector(validateStartManagerIsInvoked) withObject:nil afterDelay:0.0f]; + } + return self; +} + +- (void)dealloc { +#if HOCKEYSDK_FEATURE_AUTHENTICATOR + // start Authenticator + if (![self isAppStoreEnvironment]) { + [_authenticator removeObserver:self forKeyPath:@"identified"]; + } +#endif +} + + +#pragma mark - Public Instance Methods (Configuration) + +- (void)configureWithIdentifier:(NSString *)appIdentifier { + _appIdentifier = [appIdentifier copy]; + + [self initializeModules]; +} + +- (void)configureWithIdentifier:(NSString *)appIdentifier delegate:(id)delegate { + _delegate = delegate; + _appIdentifier = [appIdentifier copy]; + + [self initializeModules]; +} + +- (void)configureWithBetaIdentifier:(NSString *)betaIdentifier liveIdentifier:(NSString *)liveIdentifier delegate:(id)delegate { + _delegate = delegate; + + // check the live identifier now, because otherwise invalid identifier would only be logged when the app is already in the store + if (![self checkValidityOfAppIdentifier:liveIdentifier]) { + [self logInvalidIdentifier:@"liveIdentifier"]; + _liveIdentifier = [liveIdentifier copy]; + } + + if ([self shouldUseLiveIdentifier]) { + _appIdentifier = [liveIdentifier copy]; + } + else { + _appIdentifier = [betaIdentifier copy]; + } + + [self initializeModules]; +} + + +- (void)startManager { + if (!_validAppIdentifier) return; + if (_startManagerIsInvoked) { + NSLog(@"[HockeySDK] Warning: startManager should only be invoked once! This call is ignored."); + return; + } + + if (![self isSetUpOnMainThread]) return; + + BITHockeyLog(@"INFO: Starting HockeyManager"); + _startManagerIsInvoked = YES; + +#if HOCKEYSDK_FEATURE_CRASH_REPORTER + // start CrashManager + if (![self isCrashManagerDisabled]) { + BITHockeyLog(@"INFO: Start CrashManager"); + if (_serverURL) { + [_crashManager setServerURL:_serverURL]; + } + +#if HOCKEYSDK_FEATURE_AUTHENTICATOR + if (_authenticator) { + [_crashManager setInstallationIdentification:[self.authenticator publicInstallationIdentifier]]; + [_crashManager setInstallationIdentificationType:[self.authenticator identificationType]]; + [_crashManager setInstallationIdentified:[self.authenticator isIdentified]]; + } +#endif + + [_crashManager startManager]; + } +#endif /* HOCKEYSDK_FEATURE_CRASH_REPORTER */ + + // App Extensions can only use BITCrashManager, so ignore all others automatically + if (bit_isRunningInAppExtension()) { + return; + } + +#if HOCKEYSDK_FEATURE_STORE_UPDATES + // start StoreUpdateManager + if ([self isStoreUpdateManagerEnabled]) { + BITHockeyLog(@"INFO: Start StoreUpdateManager"); + if (_serverURL) { + [_storeUpdateManager setServerURL:_serverURL]; + } + [_storeUpdateManager performSelector:@selector(startManager) withObject:nil afterDelay:0.5f]; + } +#endif /* HOCKEYSDK_FEATURE_STORE_UPDATES */ + +#if HOCKEYSDK_FEATURE_FEEDBACK + // start FeedbackManager + if (![self isFeedbackManagerDisabled]) { + BITHockeyLog(@"INFO: Start FeedbackManager"); + if (_serverURL) { + [_feedbackManager setServerURL:_serverURL]; + } + [_feedbackManager performSelector:@selector(startManager) withObject:nil afterDelay:1.0f]; + } +#endif /* HOCKEYSDK_FEATURE_FEEDBACK */ + +#if HOCKEYSDK_FEATURE_AUTHENTICATOR + // start Authenticator + if (![self isAppStoreEnvironment]) { + // hook into manager with kvo! + [_authenticator addObserver:self forKeyPath:@"identified" options:0 context:nil]; + + BITHockeyLog(@"INFO: Start Authenticator"); + if (_serverURL) { + [_authenticator setServerURL:_serverURL]; + } + [_authenticator performSelector:@selector(startManager) withObject:nil afterDelay:0.5f]; + } +#endif /* HOCKEYSDK_FEATURE_AUTHENTICATOR */ + +#if HOCKEYSDK_FEATURE_UPDATES + BOOL isIdentified = NO; + +#if HOCKEYSDK_FEATURE_AUTHENTICATOR + if (![self isAppStoreEnvironment]) + isIdentified = [self.authenticator isIdentified]; +#endif /* HOCKEYSDK_FEATURE_AUTHENTICATOR */ + + // Setup UpdateManager + if (![self isUpdateManagerDisabled] && isIdentified) { + [self invokeStartUpdateManager]; + } +#endif /* HOCKEYSDK_FEATURE_UPDATES */ +} + + +#if HOCKEYSDK_FEATURE_UPDATES +- (void)setDisableUpdateManager:(BOOL)disableUpdateManager { + if (_updateManager) { + [_updateManager setDisableUpdateManager:disableUpdateManager]; + } + _disableUpdateManager = disableUpdateManager; +} +#endif /* HOCKEYSDK_FEATURE_UPDATES */ + + +#if HOCKEYSDK_FEATURE_STORE_UPDATES +- (void)setEnableStoreUpdateManager:(BOOL)enableStoreUpdateManager { + if (_storeUpdateManager) { + [_storeUpdateManager setEnableStoreUpdateManager:enableStoreUpdateManager]; + } + _enableStoreUpdateManager = enableStoreUpdateManager; +} +#endif /* HOCKEYSDK_FEATURE_STORE_UPDATES */ + + +#if HOCKEYSDK_FEATURE_FEEDBACK +- (void)setDisableFeedbackManager:(BOOL)disableFeedbackManager { + if (_feedbackManager) { + [_feedbackManager setDisableFeedbackManager:disableFeedbackManager]; + } + _disableFeedbackManager = disableFeedbackManager; +} +#endif /* HOCKEYSDK_FEATURE_FEEDBACK */ + + +- (void)setServerURL:(NSString *)aServerURL { + // ensure url ends with a trailing slash + if (![aServerURL hasSuffix:@"/"]) { + aServerURL = [NSString stringWithFormat:@"%@/", aServerURL]; + } + + if (_serverURL != aServerURL) { + _serverURL = [aServerURL copy]; + + if (_hockeyAppClient) { + _hockeyAppClient.baseURL = [NSURL URLWithString:_serverURL ? _serverURL : BITHOCKEYSDK_URL]; + } + } +} + + +- (void)setDelegate:(id)delegate { + if (![self isAppStoreEnvironment]) { + if (_startManagerIsInvoked) { + NSLog(@"[HockeySDK] ERROR: The `delegate` property has to be set before calling [[BITHockeyManager sharedHockeyManager] startManager] !"); + } + } + + if (_delegate != delegate) { + _delegate = delegate; + +#if HOCKEYSDK_FEATURE_CRASH_REPORTER + if (_crashManager) { + _crashManager.delegate = _delegate; + } +#endif /* HOCKEYSDK_FEATURE_CRASH_REPORTER */ + +#if HOCKEYSDK_FEATURE_UPDATES + if (_updateManager) { + _updateManager.delegate = _delegate; + } +#endif /* HOCKEYSDK_FEATURE_UPDATES */ + +#if HOCKEYSDK_FEATURE_FEEDBACK + if (_feedbackManager) { + _feedbackManager.delegate = _delegate; + } +#endif /* HOCKEYSDK_FEATURE_FEEDBACK */ + +#if HOCKEYSDK_FEATURE_AUTHENTICATOR + if (_authenticator) { + _authenticator.delegate = _delegate; + } +#endif /* HOCKEYSDK_FEATURE_AUTHENTICATOR */ + } +} + +- (void)modifyKeychainUserValue:(NSString *)value forKey:(NSString *)key { + NSError *error = nil; + BOOL success = YES; + NSString *updateType = @"update"; + + if (value) { + success = [BITKeychainUtils storeUsername:key + andPassword:value + forServiceName:bit_keychainHockeySDKServiceName() + updateExisting:YES + accessibility:kSecAttrAccessibleAlwaysThisDeviceOnly + error:&error]; + } else { + updateType = @"delete"; + if ([BITKeychainUtils getPasswordForUsername:key + andServiceName:bit_keychainHockeySDKServiceName() + error:&error]) { + success = [BITKeychainUtils deleteItemForUsername:key + andServiceName:bit_keychainHockeySDKServiceName() + error:&error]; + } + } + + if (!success) { + NSString *errorDescription = [error description] ?: @""; + BITHockeyLog(@"ERROR: Couldn't %@ key %@ in the keychain. %@", updateType, key, errorDescription); + } +} + +- (void)setUserID:(NSString *)userID { + // always set it, since nil value will trigger removal of the keychain entry + _userID = userID; + + [self modifyKeychainUserValue:userID forKey:kBITHockeyMetaUserID]; +} + +- (void)setUserName:(NSString *)userName { + // always set it, since nil value will trigger removal of the keychain entry + _userName = userName; + + [self modifyKeychainUserValue:userName forKey:kBITHockeyMetaUserName]; +} + +- (void)setUserEmail:(NSString *)userEmail { + // always set it, since nil value will trigger removal of the keychain entry + _userEmail = userEmail; + + [self modifyKeychainUserValue:userEmail forKey:kBITHockeyMetaUserEmail]; +} + +- (void)testIdentifier { + if (!_appIdentifier || [self isAppStoreEnvironment]) { + return; + } + + NSDate *now = [NSDate date]; + NSString *timeString = [NSString stringWithFormat:@"%.0f", [now timeIntervalSince1970]]; + [self pingServerForIntegrationStartWorkflowWithTimeString:timeString appIdentifier:_appIdentifier]; + + if (_liveIdentifier) { + [self pingServerForIntegrationStartWorkflowWithTimeString:timeString appIdentifier:_liveIdentifier]; + } +} + + +- (NSString *)version { + return [NSString stringWithUTF8String:bitstadium_library_info.hockey_version]; +} + +- (NSString *)build { + return [NSString stringWithUTF8String:bitstadium_library_info.hockey_build]; +} + + +#pragma mark - KVO + +#if HOCKEYSDK_FEATURE_UPDATES +- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context { + if ([keyPath isEqualToString:@"identified"] && + [object valueForKey:@"isIdentified"] ) { + if (![self isAppStoreEnvironment]) { + BOOL identified = [(NSNumber *)[object valueForKey:@"isIdentified"] boolValue]; + if (identified && ![self isUpdateManagerDisabled]) { + [self invokeStartUpdateManager]; + } + } + } +} +#endif /* HOCKEYSDK_FEATURE_UPDATES */ + + +#pragma mark - Private Instance Methods + +- (BITHockeyAppClient *)hockeyAppClient { + if (!_hockeyAppClient) { + _hockeyAppClient = [[BITHockeyAppClient alloc] initWithBaseURL:[NSURL URLWithString:_serverURL ? _serverURL : BITHOCKEYSDK_URL]]; + + _hockeyAppClient.baseURL = [NSURL URLWithString:_serverURL ? _serverURL : BITHOCKEYSDK_URL]; + } + + return _hockeyAppClient; +} + +- (NSString *)integrationFlowTimeString { + NSString *timeString = [[NSBundle mainBundle] objectForInfoDictionaryKey:BITHOCKEY_INTEGRATIONFLOW_TIMESTAMP]; + + return timeString; +} + +- (BOOL)integrationFlowStartedWithTimeString:(NSString *)timeString { + if (timeString == nil || [self isAppStoreEnvironment]) { + return NO; + } + + NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; + NSLocale *enUSPOSIXLocale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US_POSIX"]; + [dateFormatter setLocale:enUSPOSIXLocale]; + [dateFormatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ssZ"]; + NSDate *integrationFlowStartDate = [dateFormatter dateFromString:timeString]; + + if (integrationFlowStartDate && [integrationFlowStartDate timeIntervalSince1970] > [[NSDate date] timeIntervalSince1970] - (60 * 10) ) { + return YES; + } + + return NO; +} + +- (void)pingServerForIntegrationStartWorkflowWithTimeString:(NSString *)timeString appIdentifier:(NSString *)appIdentifier { + if (!appIdentifier || [self isAppStoreEnvironment]) { + return; + } + + NSString *integrationPath = [NSString stringWithFormat:@"api/3/apps/%@/integration", bit_encodeAppIdentifier(appIdentifier)]; + + BITHockeyLog(@"INFO: Sending integration workflow ping to %@", integrationPath); + + [[self hockeyAppClient] postPath:integrationPath + parameters:@{@"timestamp": timeString, + @"sdk": BITHOCKEY_NAME, + @"sdk_version": BITHOCKEY_VERSION, + @"bundle_version": [[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleVersion"] + } + completion:^(BITHTTPOperation *operation, NSData* responseData, NSError *error) { + switch (operation.response.statusCode) { + case 400: + BITHockeyLog(@"ERROR: App ID not found"); + break; + case 201: + BITHockeyLog(@"INFO: Ping accepted."); + break; + case 200: + BITHockeyLog(@"INFO: Ping accepted. Server already knows."); + break; + default: + BITHockeyLog(@"ERROR: Unknown error"); + break; + } + }]; +} + +- (void)validateStartManagerIsInvoked { + if (_validAppIdentifier && !_appStoreEnvironment) { + if (!_startManagerIsInvoked) { + NSLog(@"[HockeySDK] ERROR: You did not call [[BITHockeyManager sharedHockeyManager] startManager] to startup the HockeySDK! Please do so after setting up all properties. The SDK is NOT running."); + } + } +} + +#if HOCKEYSDK_FEATURE_UPDATES +- (void)invokeStartUpdateManager { + if (_startUpdateManagerIsInvoked) return; + + _startUpdateManagerIsInvoked = YES; + BITHockeyLog(@"INFO: Start UpdateManager"); + if (_serverURL) { + [_updateManager setServerURL:_serverURL]; + } +#if HOCKEYSDK_FEATURE_AUTHENTICATOR + if (_authenticator) { + [_updateManager setInstallationIdentification:[self.authenticator installationIdentifier]]; + [_updateManager setInstallationIdentificationType:[self.authenticator installationIdentifierParameterString]]; + [_updateManager setInstallationIdentified:[self.authenticator isIdentified]]; + } +#endif + [_updateManager performSelector:@selector(startManager) withObject:nil afterDelay:0.5f]; +} +#endif /* HOCKEYSDK_FEATURE_UPDATES */ + +- (BOOL)isSetUpOnMainThread { + NSString *errorString = @"ERROR: HockeySDK has to be setup on the main thread!"; + + if (!NSThread.isMainThread) { + if (self.isAppStoreEnvironment) { + BITHockeyLog(@"%@", errorString); + } else { + NSLog(@"%@", errorString); + NSAssert(NSThread.isMainThread, errorString); + } + + return NO; + } + + return YES; +} + +- (BOOL)shouldUseLiveIdentifier { + BOOL delegateResult = NO; + if ([_delegate respondsToSelector:@selector(shouldUseLiveIdentifierForHockeyManager:)]) { + delegateResult = [(NSObject *)_delegate shouldUseLiveIdentifierForHockeyManager:self]; + } + + return (delegateResult) || (_appStoreEnvironment); +} + +- (void)initializeModules { + if (_managersInitialized) { + NSLog(@"[HockeySDK] Warning: The SDK should only be initialized once! This call is ignored."); + return; + } + + _validAppIdentifier = [self checkValidityOfAppIdentifier:_appIdentifier]; + + if (![self isSetUpOnMainThread]) return; + + _startManagerIsInvoked = NO; + + if (_validAppIdentifier) { +#if HOCKEYSDK_FEATURE_CRASH_REPORTER + BITHockeyLog(@"INFO: Setup CrashManager"); + _crashManager = [[BITCrashManager alloc] initWithAppIdentifier:_appIdentifier isAppStoreEnvironment:_appStoreEnvironment]; + _crashManager.hockeyAppClient = [self hockeyAppClient]; + _crashManager.delegate = _delegate; +#endif /* HOCKEYSDK_FEATURE_CRASH_REPORTER */ + +#if HOCKEYSDK_FEATURE_UPDATES + BITHockeyLog(@"INFO: Setup UpdateManager"); + _updateManager = [[BITUpdateManager alloc] initWithAppIdentifier:_appIdentifier isAppStoreEnvironment:_appStoreEnvironment]; + _updateManager.delegate = _delegate; +#endif /* HOCKEYSDK_FEATURE_UPDATES */ + +#if HOCKEYSDK_FEATURE_STORE_UPDATES + BITHockeyLog(@"INFO: Setup StoreUpdateManager"); + _storeUpdateManager = [[BITStoreUpdateManager alloc] initWithAppIdentifier:_appIdentifier isAppStoreEnvironment:_appStoreEnvironment]; +#endif /* HOCKEYSDK_FEATURE_STORE_UPDATES */ + +#if HOCKEYSDK_FEATURE_FEEDBACK + BITHockeyLog(@"INFO: Setup FeedbackManager"); + _feedbackManager = [[BITFeedbackManager alloc] initWithAppIdentifier:_appIdentifier isAppStoreEnvironment:_appStoreEnvironment]; + _feedbackManager.delegate = _delegate; +#endif /* HOCKEYSDK_FEATURE_FEEDBACK */ + +#if HOCKEYSDK_FEATURE_AUTHENTICATOR + BITHockeyLog(@"INFO: Setup Authenticator"); + _authenticator = [[BITAuthenticator alloc] initWithAppIdentifier:_appIdentifier isAppStoreEnvironment:_appStoreEnvironment]; + _authenticator.hockeyAppClient = [self hockeyAppClient]; + _authenticator.delegate = _delegate; +#endif /* HOCKEYSDK_FEATURE_AUTHENTICATOR */ + + if (![self isAppStoreEnvironment]) { + NSString *integrationFlowTime = [self integrationFlowTimeString]; + if (integrationFlowTime && [self integrationFlowStartedWithTimeString:integrationFlowTime]) { + [self pingServerForIntegrationStartWorkflowWithTimeString:integrationFlowTime appIdentifier:_appIdentifier]; + } + } + _managersInitialized = YES; + } else { + [self logInvalidIdentifier:@"app identifier"]; + } +} + +@end diff --git a/Pods/HockeySDK/Classes/BITHockeyManagerDelegate.h b/Pods/HockeySDK/Classes/BITHockeyManagerDelegate.h new file mode 100644 index 0000000..c4f099b --- /dev/null +++ b/Pods/HockeySDK/Classes/BITHockeyManagerDelegate.h @@ -0,0 +1,230 @@ +/* + * Author: Andreas Linde + * + * Copyright (c) 2012-2014 HockeyApp, Bit Stadium GmbH. + * All rights reserved. + * + * Permission is hereby granted, free of charge, to any person + * obtaining a copy of this software and associated documentation + * files (the "Software"), to deal in the Software without + * restriction, including without limitation the rights to use, + * copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following + * conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES + * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + */ + +#import +#import "HockeySDKFeatureConfig.h" + +#if HOCKEYSDK_FEATURE_CRASH_REPORTER +#import "BITCrashManagerDelegate.h" +#endif + +#if HOCKEYSDK_FEATURE_UPDATES +#import "BITUpdateManagerDelegate.h" +#endif + +#if HOCKEYSDK_FEATURE_FEEDBACK +#import "BITFeedbackManagerDelegate.h" +#endif + +#if HOCKEYSDK_FEATURE_AUTHENTICATOR +#import "BITAuthenticator.h" +#endif + +@class BITHockeyManager; +@class BITHockeyBaseManager; + +/** + The `BITHockeyManagerDelegate` formal protocol defines methods further configuring + the behaviour of `BITHockeyManager`, as well as the delegate of the modules it manages. + */ + +@protocol BITHockeyManagerDelegate + +@optional + + +///----------------------------------------------------------------------------- +/// @name App Identifier usage +///----------------------------------------------------------------------------- + +/** + Implement to force the usage of the live identifier + + This is useful if you are e.g. distributing an enterprise app inside your company + and want to use the `liveIdentifier` for that even though it is not running from + the App Store. + + Example: + + - (BOOL)shouldUseLiveIdentifierForHockeyManager:(BITHockeyManager *)hockeyManager { + #ifdef (CONFIGURATION_AppStore) + return YES; + #endif + return NO; + } + + @param hockeyManager BITHockeyManager instance + */ +- (BOOL)shouldUseLiveIdentifierForHockeyManager:(BITHockeyManager *)hockeyManager; + + +///----------------------------------------------------------------------------- +/// @name UI presentation +///----------------------------------------------------------------------------- + + +// optional parent view controller for the feedback screen when invoked via the alert view, default is the root UIWindow instance +/** + Return a custom parent view controller for presenting modal sheets + + By default the SDK is using the root UIWindow instance to present any required + view controllers. Overwrite this if this doesn't result in a satisfying + behavior or if you want to define any other parent view controller. + + @param hockeyManager The `BITHockeyManager` HockeyManager instance invoking this delegate + @param componentManager The `BITHockeyBaseManager` component instance invoking this delegate, can be `BITCrashManager` or `BITFeedbackManager` + */ +- (UIViewController *)viewControllerForHockeyManager:(BITHockeyManager *)hockeyManager componentManager:(BITHockeyBaseManager *)componentManager; + + +///----------------------------------------------------------------------------- +/// @name Additional meta data +///----------------------------------------------------------------------------- + + +/** Return the userid that should used in the SDK components + + Right now this is used by the `BITCrashManager` to attach to a crash report. + `BITFeedbackManager` uses it too for assigning the user to a discussion thread. + + In addition, if this returns not nil for `BITFeedbackManager` the user will + not be asked for any user details by the component, including userName or userEmail. + + You can find out the component requesting the userID like this: + + - (NSString *)userIDForHockeyManager:(BITHockeyManager *)hockeyManager componentManager:(BITHockeyBaseManager *)componentManager { + if (componentManager == hockeyManager.feedbackManager) { + return UserIDForFeedback; + } else if (componentManager == hockeyManager.crashManager) { + return UserIDForCrashReports; + } else { + return nil; + } + } + + For crash reports, this delegate is invoked on the startup after the crash! + + Alternatively you can also use `[BITHockeyManager userID]` which will cache the value in the keychain. + + @warning When returning a non nil value for the `BITCrashManager` component, crash reports + are not anonymous any more and the crash alerts will not show the word "anonymous"! + + @param hockeyManager The `BITHockeyManager` HockeyManager instance invoking this delegate + @param componentManager The `BITHockeyBaseManager` component instance invoking this delegate, can be `BITCrashManager` or `BITFeedbackManager` + @see userNameForHockeyManager:componentManager: + @see userEmailForHockeyManager:componentManager: + @see [BITHockeyManager userID] + */ +- (NSString *)userIDForHockeyManager:(BITHockeyManager *)hockeyManager componentManager:(BITHockeyBaseManager *)componentManager; + + +/** Return the user name that should used in the SDK components + + Right now this is used by the `BITCrashManager` to attach to a crash report. + `BITFeedbackManager` uses it too for assigning the user to a discussion thread. + + In addition, if this returns not nil for `BITFeedbackManager` the user will + not be asked for any user details by the component, including userName or userEmail. + + You can find out the component requesting the user name like this: + + - (NSString *)userNameForHockeyManager:(BITHockeyManager *)hockeyManager componentManager:(BITHockeyBaseManager *)componentManager { + if (componentManager == hockeyManager.feedbackManager) { + return UserNameForFeedback; + } else if (componentManager == hockeyManager.crashManager) { + return UserNameForCrashReports; + } else { + return nil; + } + } + + For crash reports, this delegate is invoked on the startup after the crash! + + Alternatively you can also use `[BITHockeyManager userName]` which will cache the value in the keychain. + + @warning When returning a non nil value for the `BITCrashManager` component, crash reports + are not anonymous any more and the crash alerts will not show the word "anonymous"! + + @param hockeyManager The `BITHockeyManager` HockeyManager instance invoking this delegate + @param componentManager The `BITHockeyBaseManager` component instance invoking this delegate, can be `BITCrashManager` or `BITFeedbackManager` + @see userIDForHockeyManager:componentManager: + @see userEmailForHockeyManager:componentManager: + @see [BITHockeyManager userName] + */ +- (NSString *)userNameForHockeyManager:(BITHockeyManager *)hockeyManager componentManager:(BITHockeyBaseManager *)componentManager; + + +/** Return the users email address that should used in the SDK components + + Right now this is used by the `BITCrashManager` to attach to a crash report. + `BITFeedbackManager` uses it too for assigning the user to a discussion thread. + + In addition, if this returns not nil for `BITFeedbackManager` the user will + not be asked for any user details by the component, including userName or userEmail. + + You can find out the component requesting the user email like this: + + - (NSString *)userEmailForHockeyManager:(BITHockeyManager *)hockeyManager componentManager:(BITHockeyBaseManager *)componentManager { + if (componentManager == hockeyManager.feedbackManager) { + return UserEmailForFeedback; + } else if (componentManager == hockeyManager.crashManager) { + return UserEmailForCrashReports; + } else { + return nil; + } + } + + For crash reports, this delegate is invoked on the startup after the crash! + + Alternatively you can also use `[BITHockeyManager userEmail]` which will cache the value in the keychain. + + @warning When returning a non nil value for the `BITCrashManager` component, crash reports + are not anonymous any more and the crash alerts will not show the word "anonymous"! + + @param hockeyManager The `BITHockeyManager` HockeyManager instance invoking this delegate + @param componentManager The `BITHockeyBaseManager` component instance invoking this delegate, can be `BITCrashManager` or `BITFeedbackManager` + @see userIDForHockeyManager:componentManager: + @see userNameForHockeyManager:componentManager: + @see [BITHockeyManager userEmail] + */ +- (NSString *)userEmailForHockeyManager:(BITHockeyManager *)hockeyManager componentManager:(BITHockeyBaseManager *)componentManager; + +@end diff --git a/Pods/HockeySDK/Classes/BITImageAnnotation.h b/Pods/HockeySDK/Classes/BITImageAnnotation.h new file mode 100644 index 0000000..563ccc6 --- /dev/null +++ b/Pods/HockeySDK/Classes/BITImageAnnotation.h @@ -0,0 +1,44 @@ +/* + * Author: Moritz Haarmann + * + * Copyright (c) 2012-2014 HockeyApp, Bit Stadium GmbH. + * All rights reserved. + * + * Permission is hereby granted, free of charge, to any person + * obtaining a copy of this software and associated documentation + * files (the "Software"), to deal in the Software without + * restriction, including without limitation the rights to use, + * copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following + * conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES + * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + */ + +#import + +@interface BITImageAnnotation : UIView { + BOOL _selected; +} + +@property (nonatomic) CGSize movedDelta; +@property (nonatomic, weak) UIImage *sourceImage; +@property (nonatomic) CGRect imageFrame; + +- (BOOL)resizable; + +- (void)setSelected:(BOOL)selected; +- (BOOL)isSelected; + +@end diff --git a/Pods/HockeySDK/Classes/BITImageAnnotation.m b/Pods/HockeySDK/Classes/BITImageAnnotation.m new file mode 100644 index 0000000..4870c8e --- /dev/null +++ b/Pods/HockeySDK/Classes/BITImageAnnotation.m @@ -0,0 +1,45 @@ +/* + * Author: Moritz Haarmann + * + * Copyright (c) 2012-2014 HockeyApp, Bit Stadium GmbH. + * All rights reserved. + * + * Permission is hereby granted, free of charge, to any person + * obtaining a copy of this software and associated documentation + * files (the "Software"), to deal in the Software without + * restriction, including without limitation the rights to use, + * copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following + * conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES + * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + */ + +#import "BITImageAnnotation.h" + +@implementation BITImageAnnotation + +-(BOOL)resizable { + return NO; +} + +- (void)setSelected:(BOOL)selected { + self->_selected = selected; +} + +- (BOOL)isSelected { + return self->_selected; +} + +@end diff --git a/Pods/HockeySDK/Classes/BITImageAnnotationViewController.h b/Pods/HockeySDK/Classes/BITImageAnnotationViewController.h new file mode 100644 index 0000000..026968c --- /dev/null +++ b/Pods/HockeySDK/Classes/BITImageAnnotationViewController.h @@ -0,0 +1,45 @@ +/* + * Author: Moritz Haarmann + * + * Copyright (c) 2012-2014 HockeyApp, Bit Stadium GmbH. + * All rights reserved. + * + * Permission is hereby granted, free of charge, to any person + * obtaining a copy of this software and associated documentation + * files (the "Software"), to deal in the Software without + * restriction, including without limitation the rights to use, + * copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following + * conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES + * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + */ + +#import + +@class BITImageAnnotationViewController; + +@protocol BITImageAnnotationDelegate + +- (void)annotationControllerDidCancel:(BITImageAnnotationViewController *)annotationController; +- (void)annotationController:(BITImageAnnotationViewController *)annotationController didFinishWithImage:(UIImage *)image; + +@end + +@interface BITImageAnnotationViewController : UIViewController + +@property (nonatomic, strong) UIImage *image; +@property (nonatomic, weak) id delegate; + +@end diff --git a/Pods/HockeySDK/Classes/BITImageAnnotationViewController.m b/Pods/HockeySDK/Classes/BITImageAnnotationViewController.m new file mode 100644 index 0000000..0332fc3 --- /dev/null +++ b/Pods/HockeySDK/Classes/BITImageAnnotationViewController.m @@ -0,0 +1,407 @@ +/* + * Author: Moritz Haarmann + * + * Copyright (c) 2012-2014 HockeyApp, Bit Stadium GmbH. + * All rights reserved. + * + * Permission is hereby granted, free of charge, to any person + * obtaining a copy of this software and associated documentation + * files (the "Software"), to deal in the Software without + * restriction, including without limitation the rights to use, + * copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following + * conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES + * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + */ + +#import "BITImageAnnotationViewController.h" +#import "BITImageAnnotation.h" +#import "BITRectangleImageAnnotation.h" +#import "BITArrowImageAnnotation.h" +#import "BITBlurImageAnnotation.h" +#import "BITHockeyHelper.h" +#import "HockeySDKPrivate.h" + +typedef NS_ENUM(NSInteger, BITImageAnnotationViewControllerInteractionMode) { + BITImageAnnotationViewControllerInteractionModeNone, + BITImageAnnotationViewControllerInteractionModeDraw, + BITImageAnnotationViewControllerInteractionModeMove +}; + +@interface BITImageAnnotationViewController () + +@property (nonatomic, strong) UIImageView *imageView; +@property (nonatomic, strong) UISegmentedControl *editingControls; +@property (nonatomic, strong) NSMutableArray *objects; + +@property (nonatomic, strong) UITapGestureRecognizer *tapRecognizer; +@property (nonatomic, strong) UIPanGestureRecognizer *panRecognizer; +@property (nonatomic, strong) UIPinchGestureRecognizer *pinchRecognizer; + +@property (nonatomic) CGFloat scaleFactor; + +@property (nonatomic) CGPoint panStart; +@property (nonatomic,strong) BITImageAnnotation *currentAnnotation; + +@property (nonatomic) BITImageAnnotationViewControllerInteractionMode currentInteraction; + +@property (nonatomic) CGRect pinchStartingFrame; + +@end + +@implementation BITImageAnnotationViewController + +#pragma mark - UIViewController + +- (void)viewDidLoad { + [super viewDidLoad]; + + self.view.backgroundColor = [UIColor groupTableViewBackgroundColor]; + + NSArray *icons = @[@"Arrow.png",@"Rectangle.png", @"Blur.png"]; + + self.editingControls = [[UISegmentedControl alloc] initWithItems:@[@"Rectangle", @"Arrow", @"Blur"]]; + int i=0; + for (NSString *imageName in icons){ + [self.editingControls setImage:bit_imageNamed(imageName, BITHOCKEYSDK_BUNDLE) forSegmentAtIndex:i++]; + } + +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" + [self.editingControls setSegmentedControlStyle:UISegmentedControlStyleBar]; +#pragma clang diagnostic pop + + self.navigationItem.titleView = self.editingControls; + + self.objects = [NSMutableArray new]; + + [self.editingControls addTarget:self action:@selector(editingAction:) forControlEvents:UIControlEventTouchUpInside]; + [self.editingControls setSelectedSegmentIndex:0]; + + self.imageView = [[UIImageView alloc] initWithFrame:self.view.bounds]; + + self.imageView.clipsToBounds = YES; + + self.imageView.image = self.image; + self.imageView.contentMode = UIViewContentModeScaleToFill; + + self.view.frame = UIScreen.mainScreen.applicationFrame; + + [self.view addSubview:self.imageView]; + // Erm. + self.imageView.frame = [UIScreen mainScreen].bounds; + + self.panRecognizer = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(panned:)]; + self.pinchRecognizer = [[UIPinchGestureRecognizer alloc] initWithTarget:self action:@selector(pinched:)]; + self.tapRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapped:)]; + + [self.imageView addGestureRecognizer:self.pinchRecognizer]; + [self.imageView addGestureRecognizer:self.panRecognizer]; + [self.view addGestureRecognizer:self.tapRecognizer]; + + self.imageView.userInteractionEnabled = YES; + +#if __IPHONE_OS_VERSION_MIN_REQUIRED >= __IPHONE_8_0 + self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc ] initWithImage:bit_imageNamed(@"Cancel.png", BITHOCKEYSDK_BUNDLE) landscapeImagePhone:bit_imageNamed(@"Cancel.png", BITHOCKEYSDK_BUNDLE) style:UIBarButtonItemStylePlain target:self action:@selector(discard:)]; + self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc ] initWithImage:bit_imageNamed(@"Ok.png", BITHOCKEYSDK_BUNDLE) landscapeImagePhone:bit_imageNamed(@"Ok.png", BITHOCKEYSDK_BUNDLE) style:UIBarButtonItemStylePlain target:self action:@selector(save:)]; +#else + self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc ] initWithImage:bit_imageNamed(@"Cancel.png", BITHOCKEYSDK_BUNDLE) landscapeImagePhone:bit_imageNamed(@"Cancel.png", BITHOCKEYSDK_BUNDLE) style:UIBarButtonItemStyleBordered target:self action:@selector(discard:)]; + self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc ] initWithImage:bit_imageNamed(@"Ok.png", BITHOCKEYSDK_BUNDLE) landscapeImagePhone:bit_imageNamed(@"Ok.png", BITHOCKEYSDK_BUNDLE) style:UIBarButtonItemStyleBordered target:self action:@selector(save:)]; +#endif + + self.view.autoresizesSubviews = NO; +} + + +- (void)viewWillAppear:(BOOL)animated { + [super viewWillAppear:animated]; + + [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(orientationDidChange:) name:UIDeviceOrientationDidChangeNotification object:nil]; + + [self fitImageViewFrame]; + +} + +- (void)viewWillDisappear:(BOOL)animated { + [super viewWillDisappear:animated]; + + [[NSNotificationCenter defaultCenter] removeObserver:self name:UIDeviceOrientationDidChangeNotification object:nil]; +} + +- (BOOL)prefersStatusBarHidden { + return self.navigationController.navigationBarHidden || self.navigationController.navigationBar.alpha == 0.0f; +} + +- (void)orientationDidChange:(NSNotification *)notification { + [self fitImageViewFrame]; +} + + +- (void)fitImageViewFrame { + + CGSize size = [UIScreen mainScreen].bounds.size; + if (UIInterfaceOrientationIsLandscape([UIApplication sharedApplication].statusBarOrientation) && size.height > size.width){ + size = CGSizeMake(size.height, size.width); + } + + CGFloat heightScaleFactor = size.height / self.image.size.height; + CGFloat widthScaleFactor = size.width / self.image.size.width; + + CGFloat factor = MIN(heightScaleFactor, widthScaleFactor); + self.scaleFactor = factor; + CGSize scaledImageSize = CGSizeMake(self.image.size.width * factor, self.image.size.height * factor); + + CGRect baseFrame = CGRectMake(self.view.frame.size.width/2 - scaledImageSize.width/2, self.view.frame.size.height/2 - scaledImageSize.height/2, scaledImageSize.width, scaledImageSize.height); + + self.imageView.frame = baseFrame; +} + +- (void)editingAction:(id)sender { + +} + +- (BITImageAnnotation *)annotationForCurrentMode { + if (self.editingControls.selectedSegmentIndex == 0){ + return [[BITArrowImageAnnotation alloc] initWithFrame:CGRectZero]; + } else if(self.editingControls.selectedSegmentIndex==1){ + return [[BITRectangleImageAnnotation alloc] initWithFrame:CGRectZero]; + } else { + return [[BITBlurImageAnnotation alloc] initWithFrame:CGRectZero]; + } +} + +#pragma mark - Actions + +- (void)discard:(id)sender { + [self.delegate annotationControllerDidCancel:self]; + [self dismissViewControllerAnimated:YES completion:nil]; +} + +- (void)save:(id)sender { + UIImage *image = [self extractImage]; + [self.delegate annotationController:self didFinishWithImage:image]; + [self dismissViewControllerAnimated:YES completion:nil]; +} + +- (UIImage *)extractImage { + UIGraphicsBeginImageContextWithOptions(self.image.size, YES, 0.0); + CGContextRef ctx = UIGraphicsGetCurrentContext(); + [self.image drawInRect:CGRectMake(0, 0, self.image.size.width, self.image.size.height)]; + CGContextScaleCTM(ctx,1.0/self.scaleFactor,1.0f/self.scaleFactor); + + // Drawing all the annotations onto the final image. + for (BITImageAnnotation *annotation in self.objects){ + CGContextTranslateCTM(ctx, annotation.frame.origin.x, annotation.frame.origin.y); + [annotation.layer renderInContext:ctx]; + CGContextTranslateCTM(ctx,-1 * annotation.frame.origin.x,-1 * annotation.frame.origin.y); + } + + UIImage *renderedImageOfMyself = UIGraphicsGetImageFromCurrentImageContext(); + UIGraphicsEndImageContext(); + return renderedImageOfMyself; +} + +#pragma mark - UIGestureRecognizers + +- (void)panned:(UIPanGestureRecognizer *)gestureRecognizer { + BITImageAnnotation *annotationAtLocation = (BITImageAnnotation *)[self.view hitTest:[gestureRecognizer locationInView:self.view] withEvent:nil]; + + if (![annotationAtLocation isKindOfClass:[BITImageAnnotation class]]){ + annotationAtLocation = nil; + } + + // determine the interaction mode if none is set so far. + + if (self.currentInteraction == BITImageAnnotationViewControllerInteractionModeNone){ + if (annotationAtLocation){ + self.currentInteraction = BITImageAnnotationViewControllerInteractionModeMove; + } else if ([self canDrawNewAnnotation]){ + self.currentInteraction = BITImageAnnotationViewControllerInteractionModeDraw; + } + } + + if (self.currentInteraction == BITImageAnnotationViewControllerInteractionModeNone){ + return; + } + + + if (self.currentInteraction == BITImageAnnotationViewControllerInteractionModeDraw){ + if (gestureRecognizer.state == UIGestureRecognizerStateBegan){ + self.currentAnnotation = [self annotationForCurrentMode]; + [self.objects addObject:self.currentAnnotation]; + self.currentAnnotation.sourceImage = self.image; + + if (self.imageView.subviews.count > 0 && [self.currentAnnotation isKindOfClass:[BITBlurImageAnnotation class]]){ + [self.imageView insertSubview:self.currentAnnotation belowSubview:[self firstAnnotationThatIsNotBlur]]; + } else { + [self.imageView addSubview:self.currentAnnotation]; + } + + self.panStart = [gestureRecognizer locationInView:self.imageView]; + + } else if (gestureRecognizer.state == UIGestureRecognizerStateChanged){ + CGPoint bla = [gestureRecognizer locationInView:self.imageView]; + self.currentAnnotation.frame = CGRectMake(self.panStart.x, self.panStart.y, bla.x - self.panStart.x, bla.y - self.panStart.y); + self.currentAnnotation.movedDelta = CGSizeMake(bla.x - self.panStart.x, bla.y - self.panStart.y); + self.currentAnnotation.imageFrame = [self.view convertRect:self.imageView.frame toView:self.currentAnnotation]; + [self.currentAnnotation setNeedsLayout]; + [self.currentAnnotation layoutIfNeeded]; + } else { + [self.currentAnnotation setSelected:NO]; + self.currentAnnotation = nil; + self.currentInteraction = BITImageAnnotationViewControllerInteractionModeNone; + } + } else if (self.currentInteraction == BITImageAnnotationViewControllerInteractionModeMove){ + if (gestureRecognizer.state == UIGestureRecognizerStateBegan){ + // find and possibly move an existing annotation. + + + if ([self.objects indexOfObject:annotationAtLocation] != NSNotFound){ + self.currentAnnotation = annotationAtLocation; + [annotationAtLocation setSelected:YES]; + } + + + } else if (gestureRecognizer.state == UIGestureRecognizerStateChanged && self.currentAnnotation){ + CGPoint delta = [gestureRecognizer translationInView:self.view]; + + CGRect annotationFrame = self.currentAnnotation.frame; + annotationFrame.origin.x += delta.x; + annotationFrame.origin.y += delta.y; + self.currentAnnotation.frame = annotationFrame; + self.currentAnnotation.imageFrame = [self.view convertRect:self.imageView.frame toView:self.currentAnnotation]; + + [self.currentAnnotation setNeedsLayout]; + [self.currentAnnotation layoutIfNeeded]; + + [gestureRecognizer setTranslation:CGPointZero inView:self.view]; + + } else { + [self.currentAnnotation setSelected:NO]; + self.currentAnnotation = nil; + self.currentInteraction = BITImageAnnotationViewControllerInteractionModeNone; + } + } +} + +- (void)pinched:(UIPinchGestureRecognizer *)gestureRecognizer { + if (gestureRecognizer.state == UIGestureRecognizerStateBegan){ + // try to figure out which view we are talking about. + BITImageAnnotation *candidate = nil; + BOOL validView = YES; + + for ( int i = 0; i1){ + CGRect newFrame= (self.pinchStartingFrame); + + // upper point? + CGPoint point1 = [gestureRecognizer locationOfTouch:0 inView:self.view]; + CGPoint point2 = [gestureRecognizer locationOfTouch:1 inView:self.view]; + + + newFrame.origin.x = point1.x; + newFrame.origin.y = point1.y; + + newFrame.origin.x = (point1.x > point2.x) ? point2.x : point1.x; + newFrame.origin.y = (point1.y > point2.y) ? point2.y : point1.y; + + newFrame.size.width = (point1.x > point2.x) ? point1.x - point2.x : point2.x - point1.x; + newFrame.size.height = (point1.y > point2.y) ? point1.y - point2.y : point2.y - point1.y; + + + self.currentAnnotation.frame = newFrame; + self.currentAnnotation.imageFrame = [self.view convertRect:self.imageView.frame toView:self.currentAnnotation]; + } else { + [self.currentAnnotation setSelected:NO]; + self.currentAnnotation = nil; + } +} + +- (void)tapped:(UIGestureRecognizer *)tapRecognizer { + // This toggles the nav and status bar. Since iOS7 and pre-iOS7 behave weirdly different, + // this might look rather hacky, but hiding the navbar under iOS6 leads to some ugly + // animation effect which is avoided by simply hiding the navbar setting it's alpha to 0. // moritzh + + if (self.navigationController.navigationBar.alpha == 0 || self.navigationController.navigationBarHidden ){ + + [UIView animateWithDuration:0.35f animations:^{ + + if (NSFoundationVersionNumber > NSFoundationVersionNumber_iOS_6_1) { + [self.navigationController setNavigationBarHidden:NO animated:NO]; + } else { + self.navigationController.navigationBar.alpha = 1.0; + } + + [[UIApplication sharedApplication] setStatusBarHidden:NO]; + + } completion:^(BOOL finished) { + [self fitImageViewFrame]; + + }]; + } else { + [UIView animateWithDuration:0.35f animations:^{ + + if (NSFoundationVersionNumber > NSFoundationVersionNumber_iOS_6_1) { + [self.navigationController setNavigationBarHidden:YES animated:NO]; + } else { + self.navigationController.navigationBar.alpha = 0.0; + } + + [[UIApplication sharedApplication] setStatusBarHidden:YES]; + + } completion:^(BOOL finished) { + [self fitImageViewFrame]; + + }]; + } + +} + +#pragma mark - Helpers + +- (UIView *)firstAnnotationThatIsNotBlur { + for (BITImageAnnotation *annotation in self.imageView.subviews){ + if (![annotation isKindOfClass:[BITBlurImageAnnotation class]]){ + return annotation; + } + } + + return self.imageView; +} + +- (BOOL)canDrawNewAnnotation { + return [self.editingControls selectedSegmentIndex] != UISegmentedControlNoSegment; +} +@end diff --git a/Pods/HockeySDK/Classes/BITKeychainUtils.h b/Pods/HockeySDK/Classes/BITKeychainUtils.h new file mode 100644 index 0000000..b7d7981 --- /dev/null +++ b/Pods/HockeySDK/Classes/BITKeychainUtils.h @@ -0,0 +1,44 @@ +// +// SFHFKeychainUtils.h +// +// Created by Buzz Andersen on 10/20/08. +// Based partly on code by Jonathan Wight, Jon Crosby, and Mike Malone. +// Copyright 2008 Sci-Fi Hi-Fi. All rights reserved. +// +// Permission is hereby granted, free of charge, to any person +// obtaining a copy of this software and associated documentation +// files (the "Software"), to deal in the Software without +// restriction, including without limitation the rights to use, +// copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the +// Software is furnished to do so, subject to the following +// conditions: +// +// The above copyright notice and this permission notice shall be +// included in all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES +// OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT +// HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +// WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +// OTHER DEALINGS IN THE SOFTWARE. +// + +#import + + +@interface BITKeychainUtils : NSObject { + +} + ++ (NSString *) getPasswordForUsername: (NSString *) username andServiceName: (NSString *) serviceName error: (NSError **) error; +//uses the default kSecAttrAccessibleWhenUnlocked ++ (BOOL) storeUsername: (NSString *) username andPassword: (NSString *) password forServiceName: (NSString *) serviceName updateExisting: (BOOL) updateExisting error: (NSError **) error; ++ (BOOL) storeUsername: (NSString *) username andPassword: (NSString *) password forServiceName: (NSString *) serviceName updateExisting: (BOOL) updateExisting accessibility:(CFTypeRef) accessibility error: (NSError **) error; ++ (BOOL) deleteItemForUsername: (NSString *) username andServiceName: (NSString *) serviceName error: (NSError **) error; ++ (BOOL) purgeItemsForServiceName:(NSString *) serviceName error: (NSError **) error; + +@end diff --git a/Pods/HockeySDK/Classes/BITKeychainUtils.m b/Pods/HockeySDK/Classes/BITKeychainUtils.m new file mode 100644 index 0000000..b3cbea2 --- /dev/null +++ b/Pods/HockeySDK/Classes/BITKeychainUtils.m @@ -0,0 +1,307 @@ +// +// SFHFKeychainUtils.m +// +// Created by Buzz Andersen on 10/20/08. +// Based partly on code by Jonathan Wight, Jon Crosby, and Mike Malone. +// Copyright 2008 Sci-Fi Hi-Fi. All rights reserved. +// +// Permission is hereby granted, free of charge, to any person +// obtaining a copy of this software and associated documentation +// files (the "Software"), to deal in the Software without +// restriction, including without limitation the rights to use, +// copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the +// Software is furnished to do so, subject to the following +// conditions: +// +// The above copyright notice and this permission notice shall be +// included in all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES +// OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT +// HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +// WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +// OTHER DEALINGS IN THE SOFTWARE. +// + +#import "BITKeychainUtils.h" +#import + +static NSString *BITKeychainUtilsErrorDomain = @"BITKeychainUtilsErrorDomain"; + +@implementation BITKeychainUtils + ++ (NSString *) getPasswordForUsername: (NSString *) username andServiceName: (NSString *) serviceName error: (NSError **) error { + if (!username || !serviceName) { + if (error != nil) { + *error = [NSError errorWithDomain: BITKeychainUtilsErrorDomain code: -2000 userInfo: nil]; + } + return nil; + } + + if (error != nil) { + *error = nil; + } + + // Set up a query dictionary with the base query attributes: item type (generic), username, and service + + NSArray *keys = [[NSArray alloc] initWithObjects: (__bridge_transfer NSString *) kSecClass, kSecAttrAccount, kSecAttrService, nil]; + NSArray *objects = [[NSArray alloc] initWithObjects: (__bridge_transfer NSString *) kSecClassGenericPassword, username, serviceName, nil]; + + NSMutableDictionary *query = [[NSMutableDictionary alloc] initWithObjects: objects forKeys: keys]; + + // First do a query for attributes, in case we already have a Keychain item with no password data set. + // One likely way such an incorrect item could have come about is due to the previous (incorrect) + // version of this code (which set the password as a generic attribute instead of password data). + + NSMutableDictionary *attributeQuery = [query mutableCopy]; + [attributeQuery setObject: (id) kCFBooleanTrue forKey:(__bridge_transfer id) kSecReturnAttributes]; + CFTypeRef attrResult = NULL; + OSStatus status = SecItemCopyMatching((__bridge CFDictionaryRef) attributeQuery, &attrResult); +// NSDictionary *attributeResult = (__bridge_transfer NSDictionary *)attrResult; + if (attrResult) + CFRelease(attrResult); + + if (status != noErr) { + // No existing item found--simply return nil for the password + if (error != nil && status != errSecItemNotFound) { + //Only return an error if a real exception happened--not simply for "not found." + *error = [NSError errorWithDomain: BITKeychainUtilsErrorDomain code: status userInfo: nil]; + } + + return nil; + } + + // We have an existing item, now query for the password data associated with it. + + NSMutableDictionary *passwordQuery = [query mutableCopy]; + [passwordQuery setObject: (id) kCFBooleanTrue forKey: (__bridge_transfer id) kSecReturnData]; + CFTypeRef resData = NULL; + status = SecItemCopyMatching((__bridge CFDictionaryRef) passwordQuery, (CFTypeRef *) &resData); + NSData *resultData = (__bridge_transfer NSData *)resData; + + if (status != noErr) { + if (status == errSecItemNotFound) { + // We found attributes for the item previously, but no password now, so return a special error. + // Users of this API will probably want to detect this error and prompt the user to + // re-enter their credentials. When you attempt to store the re-entered credentials + // using storeUsername:andPassword:forServiceName:updateExisting:error + // the old, incorrect entry will be deleted and a new one with a properly encrypted + // password will be added. + if (error != nil) { + *error = [NSError errorWithDomain: BITKeychainUtilsErrorDomain code: -1999 userInfo: nil]; + } + } + else { + // Something else went wrong. Simply return the normal Keychain API error code. + if (error != nil) { + *error = [NSError errorWithDomain: BITKeychainUtilsErrorDomain code: status userInfo: nil]; + } + } + + return nil; + } + + NSString *password = nil; + + if (resultData) { + password = [[NSString alloc] initWithData: resultData encoding: NSUTF8StringEncoding]; + } + else { + // There is an existing item, but we weren't able to get password data for it for some reason, + // Possibly as a result of an item being incorrectly entered by the previous code. + // Set the -1999 error so the code above us can prompt the user again. + if (error != nil) { + *error = [NSError errorWithDomain: BITKeychainUtilsErrorDomain code: -1999 userInfo: nil]; + } + } + + return password; +} + ++ (BOOL) storeUsername: (NSString *) username andPassword: (NSString *) password forServiceName: (NSString *) serviceName updateExisting: (BOOL) updateExisting error: (NSError **) error { + return [self storeUsername:username andPassword:password forServiceName:serviceName updateExisting:updateExisting accessibility:kSecAttrAccessibleAlways error:error]; +} + ++ (BOOL) storeUsername: (NSString *) username andPassword: (NSString *) password forServiceName: (NSString *) serviceName updateExisting: (BOOL) updateExisting accessibility:(CFTypeRef) accessibility error: (NSError **) error +{ + if (!username || !password || !serviceName) + { + if (error != nil) + { + *error = [NSError errorWithDomain: BITKeychainUtilsErrorDomain code: -2000 userInfo: nil]; + } + return NO; + } + + // See if we already have a password entered for these credentials. + NSError *getError = nil; + NSString *existingPassword = [BITKeychainUtils getPasswordForUsername: username andServiceName: serviceName error:&getError]; + + if ([getError code] == -1999) + { + // There is an existing entry without a password properly stored (possibly as a result of the previous incorrect version of this code. + // Delete the existing item before moving on entering a correct one. + + getError = nil; + + [self deleteItemForUsername: username andServiceName: serviceName error: &getError]; + + if ([getError code] != noErr) + { + if (error != nil) + { + *error = getError; + } + return NO; + } + } + else if ([getError code] != noErr) + { + if (error != nil) + { + *error = getError; + } + return NO; + } + + if (error != nil) + { + *error = nil; + } + + OSStatus status = noErr; + + if (existingPassword) + { + // We have an existing, properly entered item with a password. + // Update the existing item. + + if (![existingPassword isEqualToString:password] && updateExisting) + { + //Only update if we're allowed to update existing. If not, simply do nothing. + + NSArray *keys = [[NSArray alloc] initWithObjects: (__bridge_transfer NSString *) kSecClass, + kSecAttrService, + kSecAttrLabel, + kSecAttrAccount, + kSecAttrAccessible, + nil]; + + NSArray *objects = [[NSArray alloc] initWithObjects: (__bridge_transfer NSString *) kSecClassGenericPassword, + serviceName, + serviceName, + username, + accessibility, + nil]; + + NSDictionary *query = [[NSDictionary alloc] initWithObjects: objects forKeys: keys]; + + status = SecItemUpdate((__bridge CFDictionaryRef) query, (__bridge CFDictionaryRef) [NSDictionary dictionaryWithObject: [password dataUsingEncoding: NSUTF8StringEncoding] forKey: (__bridge_transfer NSString *) kSecValueData]); + } + } + else + { + // No existing entry (or an existing, improperly entered, and therefore now + // deleted, entry). Create a new entry. + + NSArray *keys = [[NSArray alloc] initWithObjects: (__bridge_transfer NSString *) kSecClass, + kSecAttrService, + kSecAttrLabel, + kSecAttrAccount, + kSecValueData, + kSecAttrAccessible, + nil]; + + NSArray *objects = [[NSArray alloc] initWithObjects: (__bridge_transfer NSString *) kSecClassGenericPassword, + serviceName, + serviceName, + username, + [password dataUsingEncoding: NSUTF8StringEncoding], + accessibility, + nil]; + + NSDictionary *query = [[NSDictionary alloc] initWithObjects: objects forKeys: keys]; + + status = SecItemAdd((__bridge CFDictionaryRef) query, NULL); + } + + if (error != nil && status != noErr) + { + // Something went wrong with adding the new item. Return the Keychain error code. + *error = [NSError errorWithDomain: BITKeychainUtilsErrorDomain code: status userInfo: nil]; + + return NO; + } + + return YES; +} + ++ (BOOL) deleteItemForUsername: (NSString *) username andServiceName: (NSString *) serviceName error: (NSError **) error +{ + if (!username || !serviceName) + { + if (error != nil) + { + *error = [NSError errorWithDomain: BITKeychainUtilsErrorDomain code: -2000 userInfo: nil]; + } + return NO; + } + + if (error != nil) + { + *error = nil; + } + + NSArray *keys = [[NSArray alloc] initWithObjects: (__bridge_transfer NSString *) kSecClass, kSecAttrAccount, kSecAttrService, kSecReturnAttributes, nil]; + NSArray *objects = [[NSArray alloc] initWithObjects: (__bridge_transfer NSString *) kSecClassGenericPassword, username, serviceName, kCFBooleanTrue, nil]; + + NSDictionary *query = [[NSDictionary alloc] initWithObjects: objects forKeys: keys]; + + OSStatus status = SecItemDelete((__bridge CFDictionaryRef) query); + + if (error != nil && status != noErr) + { + *error = [NSError errorWithDomain: BITKeychainUtilsErrorDomain code: status userInfo: nil]; + + return NO; + } + + return YES; +} + ++ (BOOL) purgeItemsForServiceName:(NSString *) serviceName error: (NSError **) error { + if (!serviceName) + { + if (error != nil) + { + *error = [NSError errorWithDomain: BITKeychainUtilsErrorDomain code: -2000 userInfo: nil]; + } + return NO; + } + + if (error != nil) + { + *error = nil; + } + + NSMutableDictionary *searchData = [NSMutableDictionary new]; + [searchData setObject:(__bridge id)kSecClassGenericPassword forKey:(__bridge id)kSecClass]; + [searchData setObject:serviceName forKey:(__bridge id)kSecAttrService]; + + OSStatus status = SecItemDelete((__bridge CFDictionaryRef)searchData); + + if (error != nil && status != noErr) + { + *error = [NSError errorWithDomain: BITKeychainUtilsErrorDomain code: status userInfo: nil]; + + return NO; + } + + return YES; +} + +@end diff --git a/Pods/HockeySDK/Classes/BITRectangleImageAnnotation.h b/Pods/HockeySDK/Classes/BITRectangleImageAnnotation.h new file mode 100644 index 0000000..0249579 --- /dev/null +++ b/Pods/HockeySDK/Classes/BITRectangleImageAnnotation.h @@ -0,0 +1,33 @@ +/* + * Author: Moritz Haarmann + * + * Copyright (c) 2012-2014 HockeyApp, Bit Stadium GmbH. + * All rights reserved. + * + * Permission is hereby granted, free of charge, to any person + * obtaining a copy of this software and associated documentation + * files (the "Software"), to deal in the Software without + * restriction, including without limitation the rights to use, + * copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following + * conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES + * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + */ + +#import "BITImageAnnotation.h" + +@interface BITRectangleImageAnnotation : BITImageAnnotation + +@end diff --git a/Pods/HockeySDK/Classes/BITRectangleImageAnnotation.m b/Pods/HockeySDK/Classes/BITRectangleImageAnnotation.m new file mode 100644 index 0000000..60e1230 --- /dev/null +++ b/Pods/HockeySDK/Classes/BITRectangleImageAnnotation.m @@ -0,0 +1,86 @@ +/* + * Author: Moritz Haarmann + * + * Copyright (c) 2012-2014 HockeyApp, Bit Stadium GmbH. + * All rights reserved. + * + * Permission is hereby granted, free of charge, to any person + * obtaining a copy of this software and associated documentation + * files (the "Software"), to deal in the Software without + * restriction, including without limitation the rights to use, + * copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following + * conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES + * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + */ + +#import "BITRectangleImageAnnotation.h" + +@interface BITRectangleImageAnnotation() + +@property (nonatomic, strong) CAShapeLayer *shapeLayer; +@property (nonatomic, strong) CAShapeLayer *strokeLayer; + + +@end + +@implementation BITRectangleImageAnnotation + +- (instancetype)initWithFrame:(CGRect)frame { + self = [super initWithFrame:frame]; + if (self) { + self.shapeLayer = [CAShapeLayer layer]; + self.shapeLayer.strokeColor = [UIColor redColor].CGColor; + self.shapeLayer.lineWidth = 5; + self.shapeLayer.fillColor = [UIColor clearColor].CGColor; + + self.strokeLayer = [CAShapeLayer layer]; + self.strokeLayer.strokeColor = [UIColor whiteColor].CGColor; + self.strokeLayer.lineWidth = 10; + self.strokeLayer.fillColor = [UIColor clearColor].CGColor; + [self.layer addSublayer:self.strokeLayer]; + + [self.layer addSublayer:self.shapeLayer]; + + } + return self; +} + +- (void)layoutSubviews { + [super layoutSubviews]; + + self.shapeLayer.frame = self.bounds; + self.shapeLayer.path = [UIBezierPath bezierPathWithRoundedRect:self.bounds cornerRadius:10].CGPath; + + + self.strokeLayer.frame = self.bounds; + self.strokeLayer.path = [UIBezierPath bezierPathWithRoundedRect:self.bounds cornerRadius:10].CGPath; + + CGFloat lineWidth = MAX(self.frame.size.width / 10.0f,10); + + [CATransaction begin]; + [CATransaction setAnimationDuration:0]; + self.strokeLayer.lineWidth = lineWidth/1.5f; + self.shapeLayer.lineWidth = lineWidth / 3.0f; + + [CATransaction commit]; +} + +- (BOOL)resizable { + return YES; +} + + +@end diff --git a/Pods/HockeySDK/Classes/BITStoreButton.h b/Pods/HockeySDK/Classes/BITStoreButton.h new file mode 100644 index 0000000..eb60781 --- /dev/null +++ b/Pods/HockeySDK/Classes/BITStoreButton.h @@ -0,0 +1,93 @@ +/* + * Author: Andreas Linde + * Peter Steinberger + * + * Copyright (c) 2012-2014 HockeyApp, Bit Stadium GmbH. + * Copyright (c) 2011-2012 Peter Steinberger. + * All rights reserved. + * + * Permission is hereby granted, free of charge, to any person + * obtaining a copy of this software and associated documentation + * files (the "Software"), to deal in the Software without + * restriction, including without limitation the rights to use, + * copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following + * conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES + * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + */ + + +#import + +// defines a button action set (data container) +@interface BITStoreButtonData : NSObject + ++ (id)dataWithLabel:(NSString*)aLabel enabled:(BOOL)flag; + +@property (nonatomic, copy) NSString *label; +@property (nonatomic, assign, getter=isEnabled) BOOL enabled; + +@end + + +@class BITStoreButton; +@protocol BITStoreButtonDelegate +- (void)storeButtonFired:(BITStoreButton *)button; +@end + + +#ifndef __IPHONE_6_1 +#define __IPHONE_6_1 60100 +#endif + +/** + * Button style depending on the iOS version + */ +typedef NS_ENUM(NSUInteger, BITStoreButtonStyle) { + /** + * Default is iOS 6 style + */ + BITStoreButtonStyleDefault = 0, + /** + * Draw buttons in the iOS 7 style + */ + BITStoreButtonStyleOS7 = 1 +}; + + +// Simulate the Payment Button from the AppStore +// The interface is flexible, so there is now fixed order +@interface BITStoreButton : UIButton + +- (instancetype)initWithFrame:(CGRect)frame; +- (instancetype)initWithPadding:(CGPoint)padding style:(BITStoreButtonStyle)style; + +// action delegate +@property (nonatomic, weak) id buttonDelegate; + +// change the button layer +@property (nonatomic, strong) BITStoreButtonData *buttonData; +- (void)setButtonData:(BITStoreButtonData *)aButtonData animated:(BOOL)animated; + +// align helper +@property (nonatomic, assign) CGPoint customPadding; + +// align helper +@property (nonatomic, assign) BITStoreButtonStyle style; + + +- (void)alignToSuperview; + +@end diff --git a/Pods/HockeySDK/Classes/BITStoreButton.m b/Pods/HockeySDK/Classes/BITStoreButton.m new file mode 100644 index 0000000..b27281d --- /dev/null +++ b/Pods/HockeySDK/Classes/BITStoreButton.m @@ -0,0 +1,278 @@ +/* + * Author: Andreas Linde + * Peter Steinberger + * + * Copyright (c) 2012-2014 HockeyApp, Bit Stadium GmbH. + * Copyright (c) 2011-2012 Peter Steinberger. + * All rights reserved. + * + * Permission is hereby granted, free of charge, to any person + * obtaining a copy of this software and associated documentation + * files (the "Software"), to deal in the Software without + * restriction, including without limitation the rights to use, + * copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following + * conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES + * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + */ + + +#import "BITStoreButton.h" +#import "HockeySDKPrivate.h" +#import + +#define BIT_MIN_HEIGHT 25.0f +#define BIT_MAX_WIDTH 120.0f +#define BIT_PADDING 12.0f +#define kDefaultButtonAnimationTime 0.25f + + +@implementation BITStoreButtonData + +#pragma mark - NSObject + +- (instancetype)initWithLabel:(NSString*)aLabel enabled:(BOOL)flag { + if ((self = [super init])) { + self.label = aLabel; + self.enabled = flag; + } + return self; +} + ++ (id)dataWithLabel:(NSString*)aLabel enabled:(BOOL)flag { + return [[[self class] alloc] initWithLabel:aLabel enabled:flag]; +} + +@end + + +@implementation BITStoreButton { + CALayer *_defaultBorderLayer; + CALayer *_inActiveBorderLayer; +} + +#pragma mark - private + +- (void)buttonPressed:(id)sender { + [_buttonDelegate storeButtonFired:self]; +} + +- (void)animationDidStop:(NSString *)animationID finished:(NSNumber *)finished context:(void *)context { + // show text again, but only if animation did finish (or else another animation is on the way) + if ([finished boolValue]) { + [self setTitle:self.buttonData.label forState:UIControlStateNormal]; + } +} + +- (void)updateButtonAnimated:(BOOL)animated { + if (animated) { + // hide text, then start animation + [self setTitle:@"" forState:UIControlStateNormal]; + [UIView beginAnimations:@"storeButtonUpdate" context:nil]; + [UIView setAnimationBeginsFromCurrentState:YES]; + [UIView setAnimationDuration:kDefaultButtonAnimationTime]; + [UIView setAnimationDelegate:self]; + [UIView setAnimationDidStopSelector:@selector(animationDidStop:finished:context:)]; + } else { + [self setTitle:self.buttonData.label forState:UIControlStateNormal]; + } + + self.enabled = self.buttonData.isEnabled; + + // show white or gray text, depending on the state + if (self.buttonData.isEnabled) { + if (self.style == BITStoreButtonStyleDefault) { + [self setTitleColor:BIT_RGBCOLOR(106, 106, 106) forState:UIControlStateNormal]; + } else { + [self setTitleColor:BIT_RGBCOLOR(35, 111, 251) forState:UIControlStateNormal]; + [_defaultBorderLayer setHidden:NO]; + [_inActiveBorderLayer setHidden:YES]; + } + } else { + [self setTitleColor:BIT_RGBCOLOR(148, 150, 151) forState:UIControlStateNormal]; + if (self.style == BITStoreButtonStyleOS7) { + [_defaultBorderLayer setHidden:YES]; + [_inActiveBorderLayer setHidden:NO]; + } + } + + // calculate optimal new size + CGSize sizeThatFits = [self sizeThatFits:CGSizeZero]; + + // move sublayer (can't be animated explcitely) + for (CALayer *aLayer in self.layer.sublayers) { + [CATransaction begin]; + + if (animated) { + [CATransaction setAnimationDuration:kDefaultButtonAnimationTime]; + [CATransaction setAnimationTimingFunction:[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut]]; + } else { + // frame is calculated and explicitly animated. so we absolutely need kCATransactionDisableActions + [CATransaction setValue:[NSNumber numberWithBool:YES] forKey:kCATransactionDisableActions]; + } + + CGRect newFrame = aLayer.frame; + newFrame.size.width = sizeThatFits.width; + aLayer.frame = newFrame; + + [CATransaction commit]; + } + + // set outer frame changes + self.titleEdgeInsets = UIEdgeInsetsMake(2.0, self.titleEdgeInsets.left, 0.0, 0.0); + [self alignToSuperview]; + + if (animated) { + [UIView commitAnimations]; + } +} + +- (void)alignToSuperview { + [self sizeToFit]; + if (self.superview) { + CGRect cr = self.frame; + cr.origin.y = _customPadding.y; + cr.origin.x = self.superview.frame.size.width - cr.size.width - _customPadding.x * 2; + self.frame = cr; + } +} + + +#pragma mark - NSObject + +- (instancetype)initWithFrame:(CGRect)frame { + if ((self = [super initWithFrame:frame])) { + self.layer.needsDisplayOnBoundsChange = YES; + + // setup title label + [self.titleLabel setFont:[UIFont boldSystemFontOfSize:13.0]]; + + // register for touch events + [self addTarget:self action:@selector(buttonPressed:) forControlEvents:UIControlEventTouchUpInside]; + + [self bringSubviewToFront:self.titleLabel]; + } + return self; +} + +- (instancetype)initWithPadding:(CGPoint)padding style:(BITStoreButtonStyle)style { + CGRect frame = CGRectMake(0, 0, 40, BIT_MIN_HEIGHT); + if ((self = [self initWithFrame:frame])) { + _customPadding = padding; + _style = style; + + if (style == BITStoreButtonStyleDefault) { + // main gradient layer + CAGradientLayer *gradient = [CAGradientLayer layer]; + gradient.colors = @[(id)BIT_RGBCOLOR(243, 243, 243).CGColor, (id)BIT_RGBCOLOR(222, 222, 222).CGColor]; + gradient.locations = @[[NSNumber numberWithFloat:0.0], [NSNumber numberWithFloat:1.0]]; + gradient.frame = CGRectMake(0.0, 0.0, CGRectGetWidth(frame), CGRectGetHeight(frame)); + gradient.cornerRadius = 2.5; + gradient.needsDisplayOnBoundsChange = YES; + [self.layer addSublayer:gradient]; + } + + // border layers for more sex! + _defaultBorderLayer = [CALayer layer]; + if (style == BITStoreButtonStyleDefault) { + _defaultBorderLayer.borderColor = [BIT_RGBCOLOR(191, 191, 191) CGColor]; + } else { + _defaultBorderLayer.borderColor = [BIT_RGBCOLOR(35, 111, 251) CGColor]; + } + _defaultBorderLayer.borderWidth = 1.0; + _defaultBorderLayer.frame = CGRectMake(0.0, 0.0, CGRectGetWidth(frame), CGRectGetHeight(frame)); + _defaultBorderLayer.cornerRadius = 2.5; + _defaultBorderLayer.needsDisplayOnBoundsChange = YES; + [self.layer addSublayer:_defaultBorderLayer]; + + if (style == BITStoreButtonStyleOS7) { + _inActiveBorderLayer = [CALayer layer]; + _inActiveBorderLayer.borderColor = [BIT_RGBCOLOR(148, 150, 151) CGColor]; + _inActiveBorderLayer.borderWidth = 1.0; + _inActiveBorderLayer.frame = CGRectMake(0.0, 0.0, CGRectGetWidth(frame), CGRectGetHeight(frame)); + _inActiveBorderLayer.cornerRadius = 2.5; + _inActiveBorderLayer.needsDisplayOnBoundsChange = YES; + [self.layer addSublayer:_inActiveBorderLayer]; + [_inActiveBorderLayer setHidden:YES]; + } + + [self bringSubviewToFront:self.titleLabel]; + } + return self; +} + + + +#pragma mark - UIView + +- (CGSize)sizeThatFits:(CGSize)size { + CGSize constr = (CGSize){.height = self.frame.size.height, .width = BIT_MAX_WIDTH}; + CGSize newSize; + +#if __IPHONE_OS_VERSION_MAX_ALLOWED > __IPHONE_6_1 + if ([self.buttonData.label respondsToSelector:@selector(boundingRectWithSize:options:attributes:context:)]) { + CGRect calculatedRect = [self.buttonData.label boundingRectWithSize:constr + options:NSStringDrawingUsesFontLeading + attributes:@{NSFontAttributeName:self.titleLabel.font} + context:nil]; + newSize = calculatedRect.size; + } else { +#endif +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" + newSize = [self.buttonData.label sizeWithFont:self.titleLabel.font + constrainedToSize:constr + lineBreakMode:kBITLineBreakModeMiddleTruncation]; +#pragma clang diagnostic pop +#if __IPHONE_OS_VERSION_MAX_ALLOWED > __IPHONE_6_1 + } +#endif + + CGFloat newWidth = newSize.width + (BIT_PADDING * 2); + CGFloat newHeight = BIT_MIN_HEIGHT > newSize.height ? BIT_MIN_HEIGHT : newSize.height; + + CGSize sizeThatFits = CGSizeMake(newWidth, newHeight); + return sizeThatFits; +} + +- (void)setFrame:(CGRect)aRect { + [super setFrame:aRect]; + + // copy frame changes to sublayers (but watch out for NaN's) + for (CALayer *aLayer in self.layer.sublayers) { + CGRect rect = aLayer.frame; + rect.size.width = self.frame.size.width; + rect.size.height = self.frame.size.height; + aLayer.frame = rect; + [aLayer layoutIfNeeded]; + } +} + + +#pragma mark - Properties + +- (void)setButtonData:(BITStoreButtonData *)aButtonData { + [self setButtonData:aButtonData animated:NO]; +} + +- (void)setButtonData:(BITStoreButtonData *)aButtonData animated:(BOOL)animated { + if (_buttonData != aButtonData) { + _buttonData = aButtonData; + } + + [self updateButtonAnimated:animated]; +} + +@end diff --git a/Pods/HockeySDK/Classes/BITStoreUpdateManager.h b/Pods/HockeySDK/Classes/BITStoreUpdateManager.h new file mode 100644 index 0000000..1b081b7 --- /dev/null +++ b/Pods/HockeySDK/Classes/BITStoreUpdateManager.h @@ -0,0 +1,186 @@ +/* + * Author: Andreas Linde + * + * Copyright (c) 2013-2014 HockeyApp, Bit Stadium GmbH. + * All rights reserved. + * + * Permission is hereby granted, free of charge, to any person + * obtaining a copy of this software and associated documentation + * files (the "Software"), to deal in the Software without + * restriction, including without limitation the rights to use, + * copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following + * conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES + * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + */ + + +#import +#import "BITHockeyBaseManager.h" + + +/** + * Defines the update check intervals + */ +typedef NS_ENUM(NSInteger, BITStoreUpdateSetting) { + /** + * Check every day + */ + BITStoreUpdateCheckDaily = 0, + /** + * Check every week + */ + BITStoreUpdateCheckWeekly = 1, + /** + * Check manually + */ + BITStoreUpdateCheckManually = 2 +}; + +@protocol BITStoreUpdateManagerDelegate; + +/** + The store update manager module. + + This is the HockeySDK module for handling app updates when having your app released in the App Store. + By default the module uses the current users locale to define the app store to check for updates. You + can modify this using the `countryCode` property. See the property documentation for details on its usage. + + When an update is detected, this module will show an alert asking the user if he/she wants to update or + ignore this version. If update was chosen, it will open the apps page in the app store app. + + You need to enable this module using `[BITHockeyManager enableStoreUpdateManager]` if you want to use this + feature. By default this module is disabled! + + When this module is enabled and **NOT** running in an App Store build/environment, it won't do any checks! + + The `BITStoreUpdateManagerDelegate` protocol informs the app about new detected app versions. + + @warning This module can **NOT** check if the current device and OS version match the minimum requirements of + the new app version! + + */ + +@interface BITStoreUpdateManager : BITHockeyBaseManager + +///----------------------------------------------------------------------------- +/// @name Update Checking +///----------------------------------------------------------------------------- + +/** + When to check for new updates. + + Defines when a the SDK should check if there is a new update available on the + server. This must be assigned one of the following, see `BITStoreUpdateSetting`: + + - `BITStoreUpdateCheckDaily`: Once a day + - `BITStoreUpdateCheckWeekly`: Once a week + - `BITStoreUpdateCheckManually`: Manually + + **Default**: BITStoreUpdateCheckWeekly + + @warning When setting this to `BITStoreUpdateCheckManually` you need to either + invoke the update checking process yourself with `checkForUpdate` somehow, e.g. by + proving an update check button for the user or integrating the Update View into your + user interface. + @see BITStoreUpdateSetting + @see countryCode + @see checkForUpdateOnLaunch + @see checkForUpdate + */ +@property (nonatomic, assign) BITStoreUpdateSetting updateSetting; + + +/** + Defines the store country the app is always available in, otherwise uses the users locale + + If this value is not defined, then it uses the device country if the current locale. + + If you are pre-defining a country and are releasing a new version on a specific date, + it can happen that users get an alert but the update is not yet available in their country! + + But if a user downloaded the app from another appstore than the locale is set and the app is not + available in the locales app store, then the user will never receive an update notification! + + More information about possible country codes is available here: http://en.wikipedia.org/wiki/ISO_3166-1_alpha-2 + + @see updateSetting + @see checkForUpdateOnLaunch + @see checkForUpdate + */ +@property (nonatomic, strong) NSString *countryCode; + + +/** + Flag that determines whether the automatic update checks should be done. + + If this is enabled the update checks will be performed automatically depending on the + `updateSetting` property. If this is disabled the `updateSetting` property will have + no effect, and checking for updates is totally up to be done by yourself. + + *Default*: _YES_ + + @warning When setting this to `NO` you need to invoke update checks yourself! + @see updateSetting + @see countryCode + @see checkForUpdate + */ +@property (nonatomic, assign, getter=isCheckingForUpdateOnLaunch) BOOL checkForUpdateOnLaunch; + + +///----------------------------------------------------------------------------- +/// @name User Interface +///----------------------------------------------------------------------------- + + +/** + Flag that determines if the integrated update alert should be used + + If enabled, the integrated UIAlert based update notification will be used to inform + the user about a new update being available in the App Store. + + If disabled, you need to implement the `BITStoreUpdateManagerDelegate` protocol with + the method `[BITStoreUpdateManagerDelegate detectedUpdateFromStoreUpdateManager:newVersion:storeURL:]` + to be notified about new version and proceed yourself. + The manager will consider this identical to an `Ignore` user action using the alert + and not inform about this particular version any more, unless the app is updated + and this very same version shows up at a later time again as a new version. + + *Default*: _YES_ + + @warning If the HockeySDKResources bundle is missing in the application package, then the internal + update alert is also disabled and be treated identical to manually disabling this + property. + @see updateSetting + */ +@property (nonatomic, assign, getter=isUpdateUIEnabled) BOOL updateUIEnabled; + +///----------------------------------------------------------------------------- +/// @name Manual update checking +///----------------------------------------------------------------------------- + +/** + Check for an update + + Call this to trigger a check if there is a new update available on the HockeyApp servers. + + @see updateSetting + @see countryCode + @see checkForUpdateOnLaunch + */ +- (void)checkForUpdate; + + +@end diff --git a/Pods/HockeySDK/Classes/BITStoreUpdateManager.m b/Pods/HockeySDK/Classes/BITStoreUpdateManager.m new file mode 100644 index 0000000..e420908 --- /dev/null +++ b/Pods/HockeySDK/Classes/BITStoreUpdateManager.m @@ -0,0 +1,466 @@ +/* + * Author: Andreas Linde + * + * Copyright (c) 2013-2014 HockeyApp, Bit Stadium GmbH. + * All rights reserved. + * + * Permission is hereby granted, free of charge, to any person + * obtaining a copy of this software and associated documentation + * files (the "Software"), to deal in the Software without + * restriction, including without limitation the rights to use, + * copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following + * conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES + * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + */ + +#import "HockeySDK.h" + +#if HOCKEYSDK_FEATURE_STORE_UPDATES + +#import + +#import "HockeySDKPrivate.h" +#import "BITHockeyHelper.h" + +#import "BITHockeyBaseManagerPrivate.h" +#import "BITStoreUpdateManagerPrivate.h" + + +@implementation BITStoreUpdateManager { + NSString *_newStoreVersion; + NSString *_appStoreURLString; + NSString *_currentUUID; + + BOOL _updateAlertShowing; + BOOL _lastCheckFailed; + + id _appDidBecomeActiveObserver; + id _networkDidBecomeReachableObserver; +} + + +#pragma mark - private + +- (void)reportError:(NSError *)error { + BITHockeyLog(@"ERROR: %@", [error localizedDescription]); + _lastCheckFailed = YES; +} + + +- (void)didBecomeActiveActions { + if ([self shouldCancelProcessing]) return; + + if ([self isCheckingForUpdateOnLaunch] && [self shouldAutoCheckForUpdates]) { + [self performSelector:@selector(checkForUpdateDelayed) withObject:nil afterDelay:1.0f]; + } +} + +#pragma mark - Observers + +- (void) registerObservers { + __weak typeof(self) weakSelf = self; + if(nil == _appDidBecomeActiveObserver) { + _appDidBecomeActiveObserver = [[NSNotificationCenter defaultCenter] addObserverForName:UIApplicationDidBecomeActiveNotification + object:nil + queue:NSOperationQueue.mainQueue + usingBlock:^(NSNotification *note) { + typeof(self) strongSelf = weakSelf; + [strongSelf didBecomeActiveActions]; + }]; + } + if(nil == _networkDidBecomeReachableObserver) { + _networkDidBecomeReachableObserver = [[NSNotificationCenter defaultCenter] addObserverForName:BITHockeyNetworkDidBecomeReachableNotification + object:nil + queue:NSOperationQueue.mainQueue + usingBlock:^(NSNotification *note) { + typeof(self) strongSelf = weakSelf; + [strongSelf didBecomeActiveActions]; + }]; + } +} + +- (void) unregisterObservers { + if(_appDidBecomeActiveObserver) { + [[NSNotificationCenter defaultCenter] removeObserver:_appDidBecomeActiveObserver]; + _appDidBecomeActiveObserver = nil; + } + if(_networkDidBecomeReachableObserver) { + [[NSNotificationCenter defaultCenter] removeObserver:_networkDidBecomeReachableObserver]; + _networkDidBecomeReachableObserver = nil; + } +} + + +#pragma mark - Init + +- (instancetype)init { + if ((self = [super init])) { + _checkInProgress = NO; + _updateAvailable = NO; + _lastCheckFailed = NO; + _enableStoreUpdateManager = NO; + _updateAlertShowing = NO; + _updateUIEnabled = YES; + _newStoreVersion = nil; + _appStoreURLString = nil; + _currentUUID = [[self executableUUID] copy]; + _countryCode = nil; + + _mainBundle = [NSBundle mainBundle]; + _currentLocale = [NSLocale currentLocale]; + _userDefaults = [NSUserDefaults standardUserDefaults]; + + // set defaults + self.checkForUpdateOnLaunch = YES; + self.updateSetting = BITStoreUpdateCheckWeekly; + + if (!BITHockeyBundle()) { + NSLog(@"[HockeySDK] WARNING: %@ is missing, built in UI is deactivated!", BITHOCKEYSDK_BUNDLE); + } + } + return self; +} + +- (void)dealloc { + [self unregisterObservers]; +} + + +#pragma mark - Version + +- (NSString *)lastStoreVersion { + NSString *versionString = nil; + + if ([self.userDefaults objectForKey:kBITStoreUpdateLastStoreVersion]) { + // get the last saved version string from the app store + versionString = [self.userDefaults objectForKey:kBITStoreUpdateLastStoreVersion]; + } + + // if there is a UUID saved which doesn't match the current binary UUID + // then there is possibly a newer version in the store + NSString *lastSavedUUID = nil; + if ([self.userDefaults objectForKey:kBITStoreUpdateLastUUID]) { + lastSavedUUID = [self.userDefaults objectForKey:kBITStoreUpdateLastUUID]; + + if (lastSavedUUID && [lastSavedUUID length] > 0 && ![lastSavedUUID isEqualToString:_currentUUID]) { + // the UUIDs don't match, store the new one + [self.userDefaults setObject:_currentUUID forKey:kBITStoreUpdateLastUUID]; + + if (versionString) { + // a new version has been installed, reset everything + // so we set versionString to nil to simulate that this is the very run + [self.userDefaults removeObjectForKey:kBITStoreUpdateLastStoreVersion]; + versionString = nil; + } + + [self.userDefaults synchronize]; + } + } + + return versionString; +} + +- (BOOL)hasNewVersion:(NSDictionary *)dictionary { + _lastCheckFailed = YES; + + NSString *lastStoreVersion = [self lastStoreVersion]; + + if ([[dictionary objectForKey:@"results"] isKindOfClass:[NSArray class]] && + [(NSArray *)[dictionary objectForKey:@"results"] count] > 0 ) { + _lastCheckFailed = NO; + + _newStoreVersion = [(NSDictionary *)[(NSArray *)[dictionary objectForKey:@"results"] objectAtIndex:0] objectForKey:@"version"]; + _appStoreURLString = [(NSDictionary *)[(NSArray *)[dictionary objectForKey:@"results"] objectAtIndex:0] objectForKey:@"trackViewUrl"]; + + NSString *ignoredVersion = nil; + if ([self.userDefaults objectForKey:kBITStoreUpdateIgnoreVersion]) { + ignoredVersion = [self.userDefaults objectForKey:kBITStoreUpdateIgnoreVersion]; + BITHockeyLog(@"INFO: Ignored version: %@", ignoredVersion); + } + + if (!_newStoreVersion || !_appStoreURLString) { + return NO; + } else if (ignoredVersion && [ignoredVersion isEqualToString:_newStoreVersion]) { + return NO; + } else if (!lastStoreVersion) { + // this is the very first time we get a valid response and + // set the reference of the store result to be equal to the current installed version + // even though the current installed version could be older than the one in the app store + // but this ensures that we never have false alerts, since the version string in + // iTunes Connect doesn't have to match CFBundleVersion or CFBundleShortVersionString + // and even if it matches it is hard/impossible to 100% determine which one it is, + // since they could change at any time + [self.userDefaults setObject:_currentUUID forKey:kBITStoreUpdateLastUUID]; + [self.userDefaults setObject:_newStoreVersion forKey:kBITStoreUpdateLastStoreVersion]; + [self.userDefaults synchronize]; + return NO; + } else { + BITHockeyLog(@"INFO: Compare new version string %@ with %@", _newStoreVersion, lastStoreVersion); + + NSComparisonResult comparisonResult = bit_versionCompare(_newStoreVersion, lastStoreVersion); + + if (comparisonResult == NSOrderedDescending) { + return YES; + } else { + return NO; + } + + } + } + + return NO; +} + + +#pragma mark - Time + +- (BOOL)shouldAutoCheckForUpdates { + BOOL checkForUpdate = NO; + + switch (self.updateSetting) { + case BITStoreUpdateCheckDaily: { + NSTimeInterval dateDiff = fabs([self.lastCheck timeIntervalSinceNow]); + if (dateDiff != 0) + dateDiff = dateDiff / (60*60*24); + + checkForUpdate = (dateDiff >= 1); + break; + } + case BITStoreUpdateCheckWeekly: { + NSTimeInterval dateDiff = fabs([self.lastCheck timeIntervalSinceNow]); + if (dateDiff != 0) + dateDiff = dateDiff / (60*60*24); + + checkForUpdate = (dateDiff >= 7); + break; + } + case BITStoreUpdateCheckManually: + checkForUpdate = NO; + break; + default: + break; + } + + return checkForUpdate; +} + + +#pragma mark - Private + +- (BOOL)shouldCancelProcessing { + if (![self isAppStoreEnvironment]) return YES; + if (![self isStoreUpdateManagerEnabled]) return YES; + return NO; +} + + +- (BOOL)processStoreResponseWithString:(NSString *)responseString { + if (!responseString) return NO; + + NSData *data = [responseString dataUsingEncoding:NSUTF8StringEncoding]; + + NSError *error = nil; + NSDictionary *json = (NSDictionary *)[NSJSONSerialization JSONObjectWithData:data options:0 error:&error]; + + if (error) { + BITHockeyLog(@"ERROR: Invalid JSON string. %@", [error localizedDescription]); + return NO; + } + + // remember that we just checked the server + self.lastCheck = [NSDate date]; + + self.updateAvailable = [self hasNewVersion:json]; + + BITHockeyLog(@"INFO: Update available: %i", self.updateAvailable); + + if (_lastCheckFailed) { + BITHockeyLog(@"ERROR: Last check failed"); + return NO; + } + + if ([self isUpdateAvailable]) { + if (self.delegate && [self.delegate respondsToSelector:@selector(detectedUpdateFromStoreUpdateManager:newVersion:storeURL:)]) { + [self.delegate detectedUpdateFromStoreUpdateManager:self newVersion:_newStoreVersion storeURL:[NSURL URLWithString:_appStoreURLString]]; + } + + if (self.updateUIEnabled && BITHockeyBundle()) { + [self showUpdateAlert]; + } else { + // Ignore this version + [self.userDefaults setObject:_newStoreVersion forKey:kBITStoreUpdateIgnoreVersion]; + [self.userDefaults synchronize]; + } + } + + return YES; +} + + +#pragma mark - Update Check + +- (void)checkForUpdateManual:(BOOL)manual { + if ([self shouldCancelProcessing]) return; + + if (self.isCheckInProgress) return; + self.checkInProgress = YES; + + // do we need to update? + if (!manual && ![self shouldAutoCheckForUpdates]) { + BITHockeyLog(@"INFO: Update check not needed right now"); + self.checkInProgress = NO; + return; + } + + NSString *country = @""; + if (self.countryCode) { + country = [NSString stringWithFormat:@"&country=%@", self.countryCode]; + } else { + // if the local is by any chance the systemLocale, it could happen that the NSLocaleCountryCode returns nil! + if ([(NSDictionary *)self.currentLocale objectForKey:NSLocaleCountryCode]) { + country = [NSString stringWithFormat:@"&country=%@", [(NSDictionary *)self.currentLocale objectForKey:NSLocaleCountryCode]]; + } else { + // don't check, just to be save + BITHockeyLog(@"ERROR: Locale returned nil, can't determine the store to use!"); + self.checkInProgress = NO; + return; + } + } + + NSString *appBundleIdentifier = [self.mainBundle objectForInfoDictionaryKey:@"CFBundleIdentifier"]; + + NSString *url = [NSString stringWithFormat:@"http://itunes.apple.com/lookup?bundleId=%@%@", + bit_URLEncodedString(appBundleIdentifier), + country]; + + BITHockeyLog(@"INFO: Sending request to %@", url); + + NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:url] cachePolicy:1 timeoutInterval:10.0]; + [request setHTTPMethod:@"GET"]; + [request setValue:@"gzip" forHTTPHeaderField:@"Accept-Encoding"]; + + [NSURLConnection sendAsynchronousRequest:request queue:[NSOperationQueue mainQueue] completionHandler:^(NSURLResponse *response, NSData *responseData, NSError *error){ + self.checkInProgress = NO; + + if (error) { + [self reportError:error]; + } else if ([responseData length]) { + NSString *responseString = [[NSString alloc] initWithBytes:[responseData bytes] length:[responseData length] encoding: NSUTF8StringEncoding]; + BITHockeyLog(@"INFO: Received API response: %@", responseString); + + if (!responseString || ![responseString dataUsingEncoding:NSUTF8StringEncoding]) { + return; + } + + [self processStoreResponseWithString:responseString]; + } + }]; +} + +- (void)checkForUpdateDelayed { + [self checkForUpdateManual:NO]; +} + +- (void)checkForUpdate { + [self checkForUpdateManual:YES]; +} + + +// begin the startup process +- (void)startManager { + if ([self shouldCancelProcessing]) return; + + BITHockeyLog(@"INFO: Start UpdateManager"); + + if ([self.userDefaults objectForKey:kBITStoreUpdateDateOfLastCheck]) { + self.lastCheck = [self.userDefaults objectForKey:kBITStoreUpdateDateOfLastCheck]; + } + + if (!_lastCheck) { + self.lastCheck = [NSDate distantPast]; + } + + [self registerObservers]; + + // we are already delayed, so the notification already came in and this won't invoked twice + switch ([[UIApplication sharedApplication] applicationState]) { + case UIApplicationStateActive: + [self didBecomeActiveActions]; + break; + case UIApplicationStateBackground: + case UIApplicationStateInactive: + // do nothing, wait for active state + break; + } +} + + +#pragma mark - Alert + +- (void)showUpdateAlert { + if (!_updateAlertShowing) { + NSString *versionString = [NSString stringWithFormat:@"%@ %@", BITHockeyLocalizedString(@"UpdateVersion"), _newStoreVersion]; + + UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:BITHockeyLocalizedString(@"UpdateAvailable") + message:[NSString stringWithFormat:BITHockeyLocalizedString(@"UpdateAlertTextWithAppVersion"), versionString] + delegate:self + cancelButtonTitle:BITHockeyLocalizedString(@"UpdateIgnore") + otherButtonTitles:BITHockeyLocalizedString(@"UpdateRemindMe"), BITHockeyLocalizedString(@"UpdateShow"), nil + ]; + [alertView show]; + _updateAlertShowing = YES; + } +} + + +#pragma mark - Properties + +- (void)setLastCheck:(NSDate *)aLastCheck { + if (_lastCheck != aLastCheck) { + _lastCheck = aLastCheck; + + [self.userDefaults setObject:self.lastCheck forKey:kBITStoreUpdateDateOfLastCheck]; + [self.userDefaults synchronize]; + } +} + +#pragma mark - UIAlertViewDelegate + +// invoke the selected action from the action sheet for a location element +- (void)alertView:(UIAlertView *)alertView didDismissWithButtonIndex:(NSInteger)buttonIndex { + _updateAlertShowing = NO; + if (buttonIndex == [alertView cancelButtonIndex]) { + // Ignore + [self.userDefaults setObject:_newStoreVersion forKey:kBITStoreUpdateIgnoreVersion]; + [self.userDefaults synchronize]; + } else if (buttonIndex == [alertView firstOtherButtonIndex]) { + // Remind button + } else if (buttonIndex == [alertView firstOtherButtonIndex] + 1) { + // Show button + [self.userDefaults setObject:_newStoreVersion forKey:kBITStoreUpdateIgnoreVersion]; + [self.userDefaults synchronize]; + + if (_appStoreURLString) { + [[UIApplication sharedApplication] openURL:[NSURL URLWithString:_appStoreURLString]]; + } else { + BITHockeyLog(@"WARNING: The app store page couldn't be opened, since we did not get a valid URL from the store API."); + } + } +} + +@end + +#endif /* HOCKEYSDK_FEATURE_STORE_UPDATES */ diff --git a/Pods/HockeySDK/Classes/BITStoreUpdateManagerDelegate.h b/Pods/HockeySDK/Classes/BITStoreUpdateManagerDelegate.h new file mode 100644 index 0000000..0d629dc --- /dev/null +++ b/Pods/HockeySDK/Classes/BITStoreUpdateManagerDelegate.h @@ -0,0 +1,59 @@ +/* + * Author: Andreas Linde + * + * Copyright (c) 2013-2014 HockeyApp, Bit Stadium GmbH. + * All rights reserved. + * + * Permission is hereby granted, free of charge, to any person + * obtaining a copy of this software and associated documentation + * files (the "Software"), to deal in the Software without + * restriction, including without limitation the rights to use, + * copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following + * conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES + * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + */ + +#import + +@class BITStoreUpdateManager; + +/** + The `BITStoreUpdateManagerDelegate` formal protocol defines methods for + more interaction with `BITStoreUpdateManager`. + */ + +@protocol BITStoreUpdateManagerDelegate + +@optional + + +///----------------------------------------------------------------------------- +/// @name Update information +///----------------------------------------------------------------------------- + +/** Informs which new version has been reported to be available + + @warning If this is invoked with a simulated new version, the storeURL could be _NIL_ if the current builds + bundle identifier is different to the bundle identifier used in the app store build. + @param storeUpdateManager The `BITStoreUpdateManager` instance invoking this delegate + @param newVersion The new version string reported by the App Store + @param storeURL The App Store URL for this app that could be invoked to let them perform the update. + */ +-(void)detectedUpdateFromStoreUpdateManager:(BITStoreUpdateManager *)storeUpdateManager newVersion:(NSString *)newVersion storeURL:(NSURL *)storeURL; + + + +@end diff --git a/Pods/HockeySDK/Classes/BITStoreUpdateManagerPrivate.h b/Pods/HockeySDK/Classes/BITStoreUpdateManagerPrivate.h new file mode 100644 index 0000000..c614f55 --- /dev/null +++ b/Pods/HockeySDK/Classes/BITStoreUpdateManagerPrivate.h @@ -0,0 +1,71 @@ +/* + * Author: Andreas Linde + * Peter Steinberger + * + * Copyright (c) 2012-2014 HockeyApp, Bit Stadium GmbH. + * Copyright (c) 2011 Andreas Linde. + * All rights reserved. + * + * Permission is hereby granted, free of charge, to any person + * obtaining a copy of this software and associated documentation + * files (the "Software"), to deal in the Software without + * restriction, including without limitation the rights to use, + * copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following + * conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES + * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + */ + + +#if HOCKEYSDK_FEATURE_STORE_UPDATES + +@interface BITStoreUpdateManager () { +} + +///----------------------------------------------------------------------------- +/// @name Delegate +///----------------------------------------------------------------------------- + +/** + Sets the optional `BITStoreUpdateManagerDelegate` delegate. + */ +@property (nonatomic, weak) id delegate; + + +// is an update available? +@property (nonatomic, assign, getter=isUpdateAvailable) BOOL updateAvailable; + +// are we currently checking for updates? +@property (nonatomic, assign, getter=isCheckInProgress) BOOL checkInProgress; + +@property (nonatomic, strong) NSDate *lastCheck; + +// used by BITHockeyManager if disable status is changed +@property (nonatomic, getter = isStoreUpdateManagerEnabled) BOOL enableStoreUpdateManager; + +#pragma mark - For Testing + +@property (nonatomic, strong) NSBundle *mainBundle; +@property (nonatomic, strong) NSLocale *currentLocale; +@property (nonatomic, strong) NSUserDefaults *userDefaults; + +- (BOOL)shouldAutoCheckForUpdates; +- (BOOL)hasNewVersion:(NSDictionary *)dictionary; +- (BOOL)processStoreResponseWithString:(NSString *)responseString; +- (void)checkForUpdateDelayed; + +@end + +#endif /* HOCKEYSDK_FEATURE_STORE_UPDATES */ diff --git a/Pods/HockeySDK/Classes/BITUpdateManager.h b/Pods/HockeySDK/Classes/BITUpdateManager.h new file mode 100644 index 0000000..8a4e9ba --- /dev/null +++ b/Pods/HockeySDK/Classes/BITUpdateManager.h @@ -0,0 +1,237 @@ +/* + * Author: Andreas Linde + * Peter Steinberger + * + * Copyright (c) 2012-2014 HockeyApp, Bit Stadium GmbH. + * Copyright (c) 2011 Andreas Linde. + * All rights reserved. + * + * Permission is hereby granted, free of charge, to any person + * obtaining a copy of this software and associated documentation + * files (the "Software"), to deal in the Software without + * restriction, including without limitation the rights to use, + * copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following + * conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES + * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + */ + + +#import "BITHockeyBaseManager.h" + + +/** + * Update check interval + */ +typedef NS_ENUM (NSUInteger, BITUpdateSetting) { + /** + * On every startup or or when the app comes to the foreground + */ + BITUpdateCheckStartup = 0, + /** + * Once a day + */ + BITUpdateCheckDaily = 1, + /** + * Manually + */ + BITUpdateCheckManually = 2 +}; + +@protocol BITUpdateManagerDelegate; + +@class BITAppVersionMetaInfo; +@class BITUpdateViewController; + +/** + The update manager module. + + This is the HockeySDK module for handling app updates when using Ad-Hoc or Enterprise provisioning profiles. + This module handles version updates, presents update and version information in a App Store like user interface, + collects usage information and provides additional authorization options when using Ad-Hoc provisioning profiles. + + This module automatically disables itself when running in an App Store build by default! + + The protocol `BITUpdateManagerDelegate` provides delegates to inform about events and adjust a few behaviors. + + To use the server side restriction feature, to provide updates only to specific users, you need to setup the + `BITAuthenticator` class. This allows the update request to tell the server which user is using the app on the + current device and then let the server decide which updates the device may see. + + */ + +@interface BITUpdateManager : BITHockeyBaseManager + +///----------------------------------------------------------------------------- +/// @name Update Checking +///----------------------------------------------------------------------------- + +// see HockeyUpdateSetting-enum. Will be saved in user defaults. +// default value: HockeyUpdateCheckStartup +/** + When to check for new updates. + + Defines when a the SDK should check if there is a new update available on the + server. This must be assigned one of the following, see `BITUpdateSetting`: + + - `BITUpdateCheckStartup`: On every startup or or when the app comes to the foreground + - `BITUpdateCheckDaily`: Once a day + - `BITUpdateCheckManually`: Manually + + When running the app from the App Store, this setting is ignored. + + **Default**: BITUpdateCheckStartup + + @warning When setting this to `BITUpdateCheckManually` you need to either + invoke the update checking process yourself with `checkForUpdate` somehow, e.g. by + proving an update check button for the user or integrating the Update View into your + user interface. + @see BITUpdateSetting + @see checkForUpdateOnLaunch + @see checkForUpdate + */ +@property (nonatomic, assign) BITUpdateSetting updateSetting; + + +/** + Flag that determines whether the automatic update checks should be done. + + If this is enabled the update checks will be performed automatically depending on the + `updateSetting` property. If this is disabled the `updateSetting` property will have + no effect, and checking for updates is totally up to be done by yourself. + + When running the app from the App Store, this setting is ignored. + + *Default*: _YES_ + + @warning When setting this to `NO` you need to invoke update checks yourself! + @see updateSetting + @see checkForUpdate + */ +@property (nonatomic, assign, getter=isCheckForUpdateOnLaunch) BOOL checkForUpdateOnLaunch; + + +// manually start an update check +/** + Check for an update + + Call this to trigger a check if there is a new update available on the HockeyApp servers. + + When running the app from the App Store, this setting is ignored. + + @see updateSetting + @see checkForUpdateOnLaunch + */ +- (void)checkForUpdate; + + +///----------------------------------------------------------------------------- +/// @name Update Notification +///----------------------------------------------------------------------------- + +/** + Flag that determines if updates alert should be repeatedly shown + + If enabled the update alert shows on every startup and whenever the app becomes active, + until the update is installed. + If disabled the update alert is only shown once ever and it is up to you to provide an + alternate way for the user to navigate to the update UI or update in another way. + + When running the app from the App Store, this setting is ignored. + + *Default*: _YES_ + */ +@property (nonatomic, assign) BOOL alwaysShowUpdateReminder; + + +/** + Flag that determines if the update alert should show an direct install option + + If enabled the update alert shows an additional option which allows to invoke the update + installation process directly, instead of viewing the update UI first. + By default the alert only shows a `Show` and `Ignore` option. + + When running the app from the App Store, this setting is ignored. + + *Default*: _NO_ + */ +@property (nonatomic, assign, getter=isShowingDirectInstallOption) BOOL showDirectInstallOption; + + +///----------------------------------------------------------------------------- +/// @name Expiry +///----------------------------------------------------------------------------- + +/** + Expiry date of the current app version + + If set, the app will get unusable at the given date by presenting a blocking view on + top of the apps UI so that no interaction is possible. To present a custom you, check + the documentation of the + `[BITUpdateManagerDelegate shouldDisplayExpiryAlertForUpdateManager:]` delegate. + + Once the expiry date is reached, the app will no longer check for updates or + send any usage data to the server! + + When running the app from the App Store, this setting is ignored. + + *Default*: nil + @see disableUpdateCheckOptionWhenExpired + @see [BITUpdateManagerDelegate shouldDisplayExpiryAlertForUpdateManager:] + @see [BITUpdateManagerDelegate didDisplayExpiryAlertForUpdateManager:] + @warning This only works when using Ad-Hoc provisioning profiles! + */ +@property (nonatomic, strong) NSDate *expiryDate; + +/** + Disable the update check button from expiry screen or alerts + + If do not want your users to be able to check for updates once a version is expired, + then enable this property. + + If this is not enabled, the users will be able to check for updates and install them + if any is available for the current device. + + *Default*: NO + @see expiryDate + @see [BITUpdateManagerDelegate shouldDisplayExpiryAlertForUpdateManager:] + @see [BITUpdateManagerDelegate didDisplayExpiryAlertForUpdateManager:] + @warning This only works when using Ad-Hoc provisioning profiles! +*/ +@property (nonatomic) BOOL disableUpdateCheckOptionWhenExpired; + + +///----------------------------------------------------------------------------- +/// @name User Interface +///----------------------------------------------------------------------------- + + +/** + Present the modal update user interface. + */ +- (void)showUpdateView; + + +/** + Create an update view + + @param modal Return a view ready for modal presentation with integrated navigation bar + @return BITUpdateViewController The update user interface view controller, + e.g. to push it onto a navigation stack. + */ +- (BITUpdateViewController *)hockeyViewController:(BOOL)modal; + + +@end diff --git a/Pods/HockeySDK/Classes/BITUpdateManager.m b/Pods/HockeySDK/Classes/BITUpdateManager.m new file mode 100644 index 0000000..4767b76 --- /dev/null +++ b/Pods/HockeySDK/Classes/BITUpdateManager.m @@ -0,0 +1,1079 @@ +/* + * Author: Andreas Linde + * Peter Steinberger + * + * Copyright (c) 2012-2014 HockeyApp, Bit Stadium GmbH. + * Copyright (c) 2011 Andreas Linde. + * All rights reserved. + * + * Permission is hereby granted, free of charge, to any person + * obtaining a copy of this software and associated documentation + * files (the "Software"), to deal in the Software without + * restriction, including without limitation the rights to use, + * copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following + * conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES + * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + */ + +#import "HockeySDK.h" + +#if HOCKEYSDK_FEATURE_UPDATES + +#import + +#import "HockeySDKPrivate.h" +#import "BITHockeyHelper.h" + +#import "BITHockeyBaseManagerPrivate.h" +#import "BITUpdateManagerPrivate.h" +#import "BITUpdateViewControllerPrivate.h" +#import "BITAppVersionMetaInfo.h" + +typedef NS_ENUM(NSInteger, BITUpdateAlertViewTag) { + BITUpdateAlertViewTagDefaultUpdate = 0, + BITUpdateAlertViewTagNeverEndingAlertView = 1, + BITUpdateAlertViewTagMandatoryUpdate = 2, +}; + +@implementation BITUpdateManager { + NSString *_currentAppVersion; + + BITUpdateViewController *_currentHockeyViewController; + + BOOL _dataFound; + BOOL _showFeedback; + BOOL _updateAlertShowing; + BOOL _lastCheckFailed; + BOOL _sendUsageData; + + NSFileManager *_fileManager; + NSString *_updateDir; + NSString *_usageDataFile; + + id _appDidBecomeActiveObserver; + id _appDidEnterBackgroundObserver; + id _networkDidBecomeReachableObserver; + + BOOL _didStartUpdateProcess; + BOOL _didEnterBackgroundState; + + BOOL _firstStartAfterInstall; + + NSNumber *_versionID; + NSString *_versionUUID; + NSString *_uuid; + + NSString *_blockingScreenMessage; + NSDate *_lastUpdateCheckFromBlockingScreen; +} + + +#pragma mark - private + +- (void)reportError:(NSError *)error { + BITHockeyLog(@"ERROR: %@", [error localizedDescription]); + _lastCheckFailed = YES; + + // only show error if we enable that + if (_showFeedback) { + UIAlertView *alert = [[UIAlertView alloc] initWithTitle:BITHockeyLocalizedString(@"UpdateError") + message:[error localizedDescription] + delegate:nil + cancelButtonTitle:BITHockeyLocalizedString(@"OK") otherButtonTitles:nil]; + [alert show]; + _showFeedback = NO; + } +} + + +- (void)didBecomeActiveActions { + if ([self isUpdateManagerDisabled]) return; + + // this is a special iOS 8 case for handling the case that the app is not moved to background + // once the users accepts the iOS install alert button. Without this, the install process doesn't start. + // + // Important: The iOS dialog offers the user to deny installation, we can't find out which button + // was tapped, so we assume the user agreed + if (_didStartUpdateProcess) { + _didStartUpdateProcess = NO; + + // we only care about iOS 8 or later + if (bit_isPreiOS8Environment()) return; + + if (self.delegate != nil && [self.delegate respondsToSelector:@selector(updateManagerWillExitApp:)]) { + [self.delegate updateManagerWillExitApp:self]; + } + + // for now we simply exit the app, later SDK versions might optionally show an alert with localized text + // describing the user to press the home button to start the update process + exit(0); + } + + if (!_didEnterBackgroundState) return; + + _didEnterBackgroundState = NO; + + [self checkExpiryDateReached]; + if ([self expiryDateReached]) return; + + [self startUsage]; + + if ([self isCheckForUpdateOnLaunch] && [self shouldCheckForUpdates]) { + [self checkForUpdate]; + } +} + +- (void)didEnterBackgroundActions { + _didEnterBackgroundState = NO; + + if ([[UIApplication sharedApplication] applicationState] == UIApplicationStateBackground) { + _didEnterBackgroundState = YES; + } +} + + +#pragma mark - Observers +- (void) registerObservers { + __weak typeof(self) weakSelf = self; + if(nil == _appDidEnterBackgroundObserver) { + _appDidEnterBackgroundObserver = [[NSNotificationCenter defaultCenter] addObserverForName:UIApplicationDidEnterBackgroundNotification + object:nil + queue:NSOperationQueue.mainQueue + usingBlock:^(NSNotification *note) { + typeof(self) strongSelf = weakSelf; + [strongSelf didEnterBackgroundActions]; + }]; + } + if(nil == _appDidBecomeActiveObserver) { + _appDidBecomeActiveObserver = [[NSNotificationCenter defaultCenter] addObserverForName:UIApplicationDidBecomeActiveNotification + object:nil + queue:NSOperationQueue.mainQueue + usingBlock:^(NSNotification *note) { + typeof(self) strongSelf = weakSelf; + [strongSelf didBecomeActiveActions]; + }]; + } + if(nil == _networkDidBecomeReachableObserver) { + _networkDidBecomeReachableObserver = [[NSNotificationCenter defaultCenter] addObserverForName:BITHockeyNetworkDidBecomeReachableNotification + object:nil + queue:NSOperationQueue.mainQueue + usingBlock:^(NSNotification *note) { + typeof(self) strongSelf = weakSelf; + [strongSelf didBecomeActiveActions]; + }]; + } +} + +- (void) unregisterObservers { + if(_appDidEnterBackgroundObserver) { + [[NSNotificationCenter defaultCenter] removeObserver:_appDidEnterBackgroundObserver]; + _appDidEnterBackgroundObserver = nil; + } + if(_appDidBecomeActiveObserver) { + [[NSNotificationCenter defaultCenter] removeObserver:_appDidBecomeActiveObserver]; + _appDidBecomeActiveObserver = nil; + } + if(_networkDidBecomeReachableObserver) { + [[NSNotificationCenter defaultCenter] removeObserver:_networkDidBecomeReachableObserver]; + _networkDidBecomeReachableObserver = nil; + } +} + + +#pragma mark - Expiry + +- (BOOL)expiryDateReached { + if ([self isAppStoreEnvironment]) return NO; + + if (_expiryDate) { + NSDate *currentDate = [NSDate date]; + if ([currentDate compare:_expiryDate] != NSOrderedAscending) + return YES; + } + + return NO; +} + +- (void)checkExpiryDateReached { + if (![self expiryDateReached]) return; + + BOOL shouldShowDefaultAlert = YES; + + if (self.delegate != nil && [self.delegate respondsToSelector:@selector(shouldDisplayExpiryAlertForUpdateManager:)]) { + shouldShowDefaultAlert = [self.delegate shouldDisplayExpiryAlertForUpdateManager:self]; + } + + if (shouldShowDefaultAlert) { + NSString *appName = bit_appName(BITHockeyLocalizedString(@"HockeyAppNamePlaceholder")); + if (!_blockingScreenMessage) + _blockingScreenMessage = [NSString stringWithFormat:BITHockeyLocalizedString(@"UpdateExpired"), appName]; + [self showBlockingScreen:_blockingScreenMessage image:@"authorize_denied.png"]; + + if (self.delegate != nil && [self.delegate respondsToSelector:@selector(didDisplayExpiryAlertForUpdateManager:)]) { + [self.delegate didDisplayExpiryAlertForUpdateManager:self]; + } + + // the UI is now blocked, make sure we don't add our UI on top of it over and over again + [self unregisterObservers]; + } +} + +#pragma mark - Usage + +- (void)loadAppVersionUsageData { + self.currentAppVersionUsageTime = @0; + + if ([self expiryDateReached]) return; + + BOOL newVersion = NO; + + if (![[NSUserDefaults standardUserDefaults] valueForKey:kBITUpdateUsageTimeForUUID]) { + newVersion = YES; + } else { + if ([(NSString *)[[NSUserDefaults standardUserDefaults] valueForKey:kBITUpdateUsageTimeForUUID] compare:_uuid] != NSOrderedSame) { + newVersion = YES; + } + } + + if (newVersion) { + [[NSUserDefaults standardUserDefaults] setObject:[NSNumber numberWithDouble:[[NSDate date] timeIntervalSinceReferenceDate]] forKey:kBITUpdateDateOfVersionInstallation]; + [[NSUserDefaults standardUserDefaults] setObject:_uuid forKey:kBITUpdateUsageTimeForUUID]; + [self storeUsageTimeForCurrentVersion:[NSNumber numberWithDouble:0]]; + } else { + if (![_fileManager fileExistsAtPath:_usageDataFile]) + return; + + NSData *codedData = [[NSData alloc] initWithContentsOfFile:_usageDataFile]; + if (codedData == nil) return; + + NSKeyedUnarchiver *unarchiver = nil; + + @try { + unarchiver = [[NSKeyedUnarchiver alloc] initForReadingWithData:codedData]; + } + @catch (NSException *exception) { + return; + } + + if ([unarchiver containsValueForKey:kBITUpdateUsageTimeOfCurrentVersion]) { + self.currentAppVersionUsageTime = [unarchiver decodeObjectForKey:kBITUpdateUsageTimeOfCurrentVersion]; + } + + [unarchiver finishDecoding]; + } +} + +- (void)startUsage { + if ([self expiryDateReached]) return; + + self.usageStartTimestamp = [NSDate date]; +} + +- (void)stopUsage { + if ([self isAppStoreEnvironment]) return; + if ([self expiryDateReached]) return; + + double timeDifference = [[NSDate date] timeIntervalSinceReferenceDate] - [_usageStartTimestamp timeIntervalSinceReferenceDate]; + double previousTimeDifference = [self.currentAppVersionUsageTime doubleValue]; + + [self storeUsageTimeForCurrentVersion:[NSNumber numberWithDouble:previousTimeDifference + timeDifference]]; +} + +- (void) storeUsageTimeForCurrentVersion:(NSNumber *)usageTime { + if ([self isAppStoreEnvironment]) return; + + NSMutableData *data = [[NSMutableData alloc] init]; + NSKeyedArchiver *archiver = [[NSKeyedArchiver alloc] initForWritingWithMutableData:data]; + + [archiver encodeObject:usageTime forKey:kBITUpdateUsageTimeOfCurrentVersion]; + + [archiver finishEncoding]; + [data writeToFile:_usageDataFile atomically:YES]; + + self.currentAppVersionUsageTime = usageTime; +} + +- (NSString *)currentUsageString { + double currentUsageTime = [self.currentAppVersionUsageTime doubleValue]; + + if (currentUsageTime > 0) { + // round (up) to 1 minute + return [NSString stringWithFormat:@"%.0f", ceil(currentUsageTime / 60.0)*60]; + } else { + return @"0"; + } +} + +- (NSString *)installationDateString { + NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; + [formatter setDateFormat:@"MM/dd/yyyy"]; + double installationTimeStamp = [[NSUserDefaults standardUserDefaults] doubleForKey:kBITUpdateDateOfVersionInstallation]; + if (installationTimeStamp == 0.0f) { + return [formatter stringFromDate:[NSDate date]]; + } else { + return [formatter stringFromDate:[NSDate dateWithTimeIntervalSinceReferenceDate:installationTimeStamp]]; + } +} + + +#pragma mark - Cache + +- (void)checkUpdateAvailable { + // check if there is an update available + NSComparisonResult comparisonResult = bit_versionCompare(self.newestAppVersion.version, self.currentAppVersion); + + if (comparisonResult == NSOrderedDescending) { + self.updateAvailable = YES; + } else if (comparisonResult == NSOrderedSame) { + // compare using the binary UUID and stored version id + self.updateAvailable = NO; + if (_firstStartAfterInstall) { + if ([self.newestAppVersion hasUUID:_uuid]) { + _versionUUID = [_uuid copy]; + _versionID = [self.newestAppVersion.versionID copy]; + [self saveAppCache]; + } else { + [self.appVersions enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) { + if (idx > 0 && [obj isKindOfClass:[BITAppVersionMetaInfo class]]) { + NSComparisonResult compareVersions = bit_versionCompare([(BITAppVersionMetaInfo *)obj version], self.currentAppVersion); + BOOL uuidFound = [(BITAppVersionMetaInfo *)obj hasUUID:_uuid]; + + if (uuidFound) { + _versionUUID = [_uuid copy]; + _versionID = [[(BITAppVersionMetaInfo *)obj versionID] copy]; + [self saveAppCache]; + + self.updateAvailable = YES; + } + + if (compareVersions != NSOrderedSame || uuidFound) { + *stop = YES; + } + } + }]; + } + } else { + if ([self.newestAppVersion.versionID compare:_versionID] == NSOrderedDescending) + self.updateAvailable = YES; + } + } +} + +- (void)loadAppCache { + _firstStartAfterInstall = NO; + _versionUUID = [[NSUserDefaults standardUserDefaults] objectForKey:kBITUpdateInstalledUUID]; + if (!_versionUUID) { + _firstStartAfterInstall = YES; + } else { + if ([_uuid compare:_versionUUID] != NSOrderedSame) + _firstStartAfterInstall = YES; + } + _versionID = [[NSUserDefaults standardUserDefaults] objectForKey:kBITUpdateInstalledVersionID]; + _companyName = [[NSUserDefaults standardUserDefaults] objectForKey:kBITUpdateCurrentCompanyName]; + + NSData *savedHockeyData = [[NSUserDefaults standardUserDefaults] objectForKey:kBITUpdateArrayOfLastCheck]; + NSArray *savedHockeyCheck = nil; + if (savedHockeyData) { + savedHockeyCheck = [NSKeyedUnarchiver unarchiveObjectWithData:savedHockeyData]; + } + if (savedHockeyCheck) { + self.appVersions = [NSArray arrayWithArray:savedHockeyCheck]; + [self checkUpdateAvailable]; + } else { + self.appVersions = nil; + } +} + +- (void)saveAppCache { + if (_companyName) + [[NSUserDefaults standardUserDefaults] setObject:_companyName forKey:kBITUpdateCurrentCompanyName]; + if (_versionUUID) + [[NSUserDefaults standardUserDefaults] setObject:_versionUUID forKey:kBITUpdateInstalledUUID]; + if (_versionID) + [[NSUserDefaults standardUserDefaults] setObject:_versionID forKey:kBITUpdateInstalledVersionID]; + NSData *data = [NSKeyedArchiver archivedDataWithRootObject:self.appVersions]; + [[NSUserDefaults standardUserDefaults] setObject:data forKey:kBITUpdateArrayOfLastCheck]; + [[NSUserDefaults standardUserDefaults] synchronize]; +} + + +#pragma mark - Init + +- (instancetype)init { + if ((self = [super init])) { + _delegate = nil; + _expiryDate = nil; + _checkInProgress = NO; + _dataFound = NO; + _updateAvailable = NO; + _lastCheckFailed = NO; + _currentAppVersion = [[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleVersion"]; + _blockingView = nil; + _lastCheck = nil; + _uuid = [[self executableUUID] copy]; + _versionUUID = nil; + _versionID = nil; + _sendUsageData = YES; + _disableUpdateManager = NO; + _firstStartAfterInstall = NO; + _companyName = nil; + _currentAppVersionUsageTime = @0; + + // set defaults + self.showDirectInstallOption = NO; + self.alwaysShowUpdateReminder = YES; + self.checkForUpdateOnLaunch = YES; + self.updateSetting = BITUpdateCheckStartup; + + if ([[NSUserDefaults standardUserDefaults] objectForKey:kBITUpdateDateOfLastCheck]) { + // we did write something else in the past, so for compatibility reasons do this + id tempLastCheck = [[NSUserDefaults standardUserDefaults] objectForKey:kBITUpdateDateOfLastCheck]; + if ([tempLastCheck isKindOfClass:[NSDate class]]) { + self.lastCheck = tempLastCheck; + } + } + + if (!_lastCheck) { + self.lastCheck = [NSDate distantPast]; + } + + if (!BITHockeyBundle()) { + NSLog(@"[HockeySDK] WARNING: %@ is missing, make sure it is added!", BITHOCKEYSDK_BUNDLE); + } + + _fileManager = [[NSFileManager alloc] init]; + + _usageDataFile = [bit_settingsDir() stringByAppendingPathComponent:BITHOCKEY_USAGE_DATA]; + + [self loadAppCache]; + + _installationIdentification = [self stringValueFromKeychainForKey:kBITUpdateInstallationIdentification]; + + [self loadAppVersionUsageData]; + [self startUsage]; + + NSNotificationCenter *dnc = [NSNotificationCenter defaultCenter]; + [dnc addObserver:self selector:@selector(stopUsage) name:UIApplicationWillTerminateNotification object:nil]; + [dnc addObserver:self selector:@selector(stopUsage) name:UIApplicationWillResignActiveNotification object:nil]; + } + return self; +} + +- (void)dealloc { + [self unregisterObservers]; + [[NSNotificationCenter defaultCenter] removeObserver:self name:UIApplicationWillTerminateNotification object:nil]; + [[NSNotificationCenter defaultCenter] removeObserver:self name:UIApplicationWillResignActiveNotification object:nil]; + + [_urlConnection cancel]; +} + + +#pragma mark - BetaUpdateUI + +- (BITUpdateViewController *)hockeyViewController:(BOOL)modal { + if ([self isAppStoreEnvironment]) { + NSLog(@"[HockeySDK] This should not be called from an app store build!"); + // return an empty view controller instead + BITHockeyBaseViewController *blankViewController = [[BITHockeyBaseViewController alloc] initWithModalStyle:modal]; + return (BITUpdateViewController *)blankViewController; + } + return [[BITUpdateViewController alloc] initWithModalStyle:modal]; +} + +- (void)showUpdateView { + if ([self isAppStoreEnvironment]) { + NSLog(@"[HockeySDK] This should not be called from an app store build!"); + return; + } + + if (_currentHockeyViewController) { + BITHockeyLog(@"INFO: Update view already visible, aborting"); + return; + } + + if ([self isPreiOS7Environment]) + self.barStyle = UIBarStyleBlack; + + BITUpdateViewController *updateViewController = [self hockeyViewController:YES]; + if ([self hasNewerMandatoryVersion] || [self expiryDateReached]) { + [updateViewController setMandatoryUpdate: YES]; + } + [self showView:updateViewController]; +} + + +- (void)showCheckForUpdateAlert { + if ([self isAppStoreEnvironment]) return; + if ([self isUpdateManagerDisabled]) return; + + if (!_updateAlertShowing) { + if ([self hasNewerMandatoryVersion]) { + UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:BITHockeyLocalizedString(@"UpdateAvailable") + message:[NSString stringWithFormat:BITHockeyLocalizedString(@"UpdateAlertMandatoryTextWithAppVersion"), [self.newestAppVersion nameAndVersionString]] + delegate:self + cancelButtonTitle:nil + otherButtonTitles:BITHockeyLocalizedString(@"UpdateShow"), BITHockeyLocalizedString(@"UpdateInstall"), nil + ]; + [alertView setTag:BITUpdateAlertViewTagMandatoryUpdate]; + [alertView show]; + _updateAlertShowing = YES; + } else { + UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:BITHockeyLocalizedString(@"UpdateAvailable") + message:[NSString stringWithFormat:BITHockeyLocalizedString(@"UpdateAlertTextWithAppVersion"), [self.newestAppVersion nameAndVersionString]] + delegate:self + cancelButtonTitle:BITHockeyLocalizedString(@"UpdateIgnore") + otherButtonTitles:BITHockeyLocalizedString(@"UpdateShow"), nil + ]; + if (self.isShowingDirectInstallOption) { + [alertView addButtonWithTitle:BITHockeyLocalizedString(@"UpdateInstall")]; + } + [alertView setTag:BITUpdateAlertViewTagDefaultUpdate]; + [alertView show]; + _updateAlertShowing = YES; + } + } +} + + +// open an authorization screen +- (void)showBlockingScreen:(NSString *)message image:(NSString *)image { + self.blockingView = nil; + + UIWindow *visibleWindow = [self findVisibleWindow]; + if (visibleWindow == nil) { + [self alertFallback:message]; + return; + } + + CGRect frame = [visibleWindow frame]; + + self.blockingView = [[UIView alloc] initWithFrame:frame]; + UIImageView *backgroundView = [[UIImageView alloc] initWithImage:bit_imageNamed(@"bg.png", BITHOCKEYSDK_BUNDLE)]; + backgroundView.contentMode = UIViewContentModeScaleAspectFill; + backgroundView.frame = frame; + [self.blockingView addSubview:backgroundView]; + + if (image != nil) { + UIImageView *imageView = [[UIImageView alloc] initWithImage:bit_imageNamed(image, BITHOCKEYSDK_BUNDLE)]; + imageView.contentMode = UIViewContentModeCenter; + imageView.frame = frame; + [self.blockingView addSubview:imageView]; + } + + if (!self.disableUpdateCheckOptionWhenExpired) { + UIButton *checkForUpdateButton = [UIButton buttonWithType:kBITButtonTypeSystem]; + checkForUpdateButton.frame = CGRectMake((frame.size.width - 140) / 2.f, frame.size.height - 100, 140, 25); + [checkForUpdateButton setTitle:BITHockeyLocalizedString(@"UpdateButtonCheck") forState:UIControlStateNormal]; + [checkForUpdateButton addTarget:self + action:@selector(checkForUpdateForExpiredVersion) + forControlEvents:UIControlEventTouchUpInside]; + [self.blockingView addSubview:checkForUpdateButton]; + } + + if (message != nil) { + frame.origin.x = 20; + frame.origin.y = frame.size.height - 180; + frame.size.width -= 40; + frame.size.height = 70; + + UILabel *label = [[UILabel alloc] initWithFrame:frame]; + label.text = message; + label.textAlignment = kBITTextLabelAlignmentCenter; + label.numberOfLines = 3; + label.adjustsFontSizeToFitWidth = YES; + label.backgroundColor = [UIColor clearColor]; + + [self.blockingView addSubview:label]; + } + + [visibleWindow addSubview:self.blockingView]; +} + +- (void)checkForUpdateForExpiredVersion { + if (!self.checkInProgress) { + + if (!_lastUpdateCheckFromBlockingScreen || + fabs([NSDate timeIntervalSinceReferenceDate] - [_lastUpdateCheckFromBlockingScreen timeIntervalSinceReferenceDate]) > 60) { + _lastUpdateCheckFromBlockingScreen = [NSDate date]; + [self checkForUpdateShowFeedback:NO]; + } + } +} + +// nag the user with neverending alerts if we cannot find out the window for presenting the covering sheet +- (void)alertFallback:(NSString *)message { + UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:nil + message:message + delegate:self + cancelButtonTitle:BITHockeyLocalizedString(@"HockeyOK") + otherButtonTitles:nil + ]; + + if (!self.disableUpdateCheckOptionWhenExpired && [message isEqualToString:_blockingScreenMessage]) { + [alertView addButtonWithTitle:BITHockeyLocalizedString(@"UpdateButtonCheck")]; + } + + [alertView setTag:BITUpdateAlertViewTagNeverEndingAlertView]; + [alertView show]; +} + +#pragma mark - RequestComments + +- (BOOL)shouldCheckForUpdates { + BOOL checkForUpdate = NO; + + switch (self.updateSetting) { + case BITUpdateCheckStartup: + checkForUpdate = YES; + break; + case BITUpdateCheckDaily: { + NSTimeInterval dateDiff = fabs([self.lastCheck timeIntervalSinceNow]); + if (dateDiff != 0) + dateDiff = dateDiff / (60*60*24); + + checkForUpdate = (dateDiff >= 1); + break; + } + case BITUpdateCheckManually: + checkForUpdate = NO; + break; + default: + break; + } + + return checkForUpdate; +} + +- (void)checkForUpdate { + if (![self isAppStoreEnvironment] && ![self isUpdateManagerDisabled]) { + if ([self expiryDateReached]) return; + if (![self installationIdentified]) return; + + if (self.isUpdateAvailable && [self hasNewerMandatoryVersion]) { + [self showCheckForUpdateAlert]; + } + + [self checkForUpdateShowFeedback:NO]; + } +} + +- (void)checkForUpdateShowFeedback:(BOOL)feedback { + if ([self isAppStoreEnvironment]) return; + if (self.isCheckInProgress) return; + + _showFeedback = feedback; + self.checkInProgress = YES; + + // do we need to update? + if (!_currentHockeyViewController && ![self shouldCheckForUpdates] && _updateSetting != BITUpdateCheckManually) { + BITHockeyLog(@"INFO: Update not needed right now"); + self.checkInProgress = NO; + return; + } + + NSMutableString *parameter = [NSMutableString stringWithFormat:@"api/2/apps/%@?format=json&extended=true%@&sdk=%@&sdk_version=%@&uuid=%@", + bit_URLEncodedString([self encodedAppIdentifier]), + ([self isAppStoreEnvironment] ? @"&udid=appstore" : @""), + BITHOCKEY_NAME, + BITHOCKEY_VERSION, + _uuid]; + + // add installationIdentificationType and installationIdentifier if available + if (self.installationIdentification && self.installationIdentificationType) { + [parameter appendFormat:@"&%@=%@", + bit_URLEncodedString(self.installationIdentificationType), + bit_URLEncodedString(self.installationIdentification) + ]; + } + + // add additional statistics if user didn't disable flag + if (_sendUsageData) { + [parameter appendFormat:@"&app_version=%@&os=iOS&os_version=%@&device=%@&lang=%@&first_start_at=%@&usage_time=%@", + bit_URLEncodedString([[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleVersion"]), + bit_URLEncodedString([[UIDevice currentDevice] systemVersion]), + bit_URLEncodedString([self getDevicePlatform]), + bit_URLEncodedString([[[NSBundle mainBundle] preferredLocalizations] objectAtIndex:0]), + bit_URLEncodedString([self installationDateString]), + bit_URLEncodedString([self currentUsageString]) + ]; + } + + // build request & send + NSString *url = [NSString stringWithFormat:@"%@%@", self.serverURL, parameter]; + BITHockeyLog(@"INFO: Sending api request to %@", url); + + NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:url] cachePolicy:1 timeoutInterval:10.0]; + [request setHTTPMethod:@"GET"]; + [request setValue:@"Hockey/iOS" forHTTPHeaderField:@"User-Agent"]; + [request setValue:@"gzip" forHTTPHeaderField:@"Accept-Encoding"]; + + self.urlConnection = [[NSURLConnection alloc] initWithRequest:request delegate:self]; + if (!_urlConnection) { + self.checkInProgress = NO; + [self reportError:[NSError errorWithDomain:kBITUpdateErrorDomain + code:BITUpdateAPIClientCannotCreateConnection + userInfo:[NSDictionary dictionaryWithObjectsAndKeys:@"Url Connection could not be created.", NSLocalizedDescriptionKey, nil]]]; + } +} + +- (BOOL)initiateAppDownload { + if ([self isAppStoreEnvironment]) return NO; + + if (!self.isUpdateAvailable) { + BITHockeyLog(@"WARNING: No update available. Aborting."); + return NO; + } + +#if TARGET_IPHONE_SIMULATOR + UIAlertView *alert = [[UIAlertView alloc] initWithTitle:BITHockeyLocalizedString(@"UpdateWarning") message:BITHockeyLocalizedString(@"UpdateSimulatorMessage") delegate:nil cancelButtonTitle:BITHockeyLocalizedString(@"HockeyOK") otherButtonTitles:nil]; + [alert show]; + return NO; + +#else + + NSString *extraParameter = [NSString string]; + if (_sendUsageData && self.installationIdentification && self.installationIdentificationType) { + extraParameter = [NSString stringWithFormat:@"&%@=%@", + bit_URLEncodedString(self.installationIdentificationType), + bit_URLEncodedString(self.installationIdentification) + ]; + } + + NSString *hockeyAPIURL = [NSString stringWithFormat:@"%@api/2/apps/%@/app_versions/%@?format=plist%@", self.serverURL, [self encodedAppIdentifier], [self.newestAppVersion.versionID stringValue], extraParameter]; + NSString *iOSUpdateURL = [NSString stringWithFormat:@"itms-services://?action=download-manifest&url=%@", bit_URLEncodedString(hockeyAPIURL)]; + + // Notify delegate of update intent before placing the call + if (self.delegate != nil && [self.delegate respondsToSelector:@selector(willStartDownloadAndUpdate:)]) { + [self.delegate willStartDownloadAndUpdate:self]; + } + + BITHockeyLog(@"INFO: API Server Call: %@, calling iOS with %@", hockeyAPIURL, iOSUpdateURL); + BOOL success = [[UIApplication sharedApplication] openURL:[NSURL URLWithString:iOSUpdateURL]]; + BITHockeyLog(@"INFO: System returned: %d", success); + + _didStartUpdateProcess = success; + + return success; + +#endif +} + + +// begin the startup process +- (void)startManager { + if (![self isAppStoreEnvironment]) { + if ([self isUpdateManagerDisabled]) return; + + BITHockeyLog(@"INFO: Starting UpdateManager"); + + if (self.delegate != nil && [self.delegate respondsToSelector:@selector(updateManagerShouldSendUsageData:)]) { + _sendUsageData = [self.delegate updateManagerShouldSendUsageData:self]; + } + + [self checkExpiryDateReached]; + if (![self expiryDateReached]) { + if ([self isCheckForUpdateOnLaunch] && [self shouldCheckForUpdates]) { + if ([[UIApplication sharedApplication] applicationState] != UIApplicationStateActive) return; + + [self performSelector:@selector(checkForUpdate) withObject:nil afterDelay:1.0f]; + } + } + } + [self registerObservers]; +} + + +#pragma mark - NSURLRequest + +- (NSURLRequest *)connection:(NSURLConnection *)connection willSendRequest:(NSURLRequest *)request redirectResponse:(NSURLResponse *)redirectResponse { + NSURLRequest *newRequest = request; + if (redirectResponse) { + newRequest = nil; + } + return newRequest; +} + +- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response { + if ([response respondsToSelector:@selector(statusCode)]) { + NSInteger statusCode = [((NSHTTPURLResponse *)response) statusCode]; + if (statusCode == 404) { + [connection cancel]; // stop connecting; no more delegate messages + NSString *errorStr = [NSString stringWithFormat:@"Hockey API received HTTP Status Code %ld", (long)statusCode]; + [self reportError:[NSError errorWithDomain:kBITUpdateErrorDomain + code:BITUpdateAPIServerReturnedInvalidStatus + userInfo:[NSDictionary dictionaryWithObjectsAndKeys:errorStr, NSLocalizedDescriptionKey, nil]]]; + return; + } + } + + self.receivedData = [NSMutableData data]; + [_receivedData setLength:0]; +} + +- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data { + [_receivedData appendData:data]; +} + +- (void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error { + self.receivedData = nil; + self.urlConnection = nil; + self.checkInProgress = NO; + if ([self expiryDateReached]) { + if (!self.blockingView) { + [self alertFallback:_blockingScreenMessage]; + } + } else { + [self reportError:error]; + } +} + +// api call returned, parsing +- (void)connectionDidFinishLoading:(NSURLConnection *)connection { + self.checkInProgress = NO; + + if ([self.receivedData length]) { + NSString *responseString = [[NSString alloc] initWithBytes:[_receivedData bytes] length:[_receivedData length] encoding: NSUTF8StringEncoding]; + BITHockeyLog(@"INFO: Received API response: %@", responseString); + + if (!responseString || ![responseString dataUsingEncoding:NSUTF8StringEncoding]) { + self.receivedData = nil; + self.urlConnection = nil; + return; + } + + NSError *error = nil; + NSDictionary *json = (NSDictionary *)[NSJSONSerialization JSONObjectWithData:[responseString dataUsingEncoding:NSUTF8StringEncoding] options:0 error:&error]; + + self.companyName = (([[json valueForKey:@"company"] isKindOfClass:[NSString class]]) ? [json valueForKey:@"company"] : nil); + + if (![self isAppStoreEnvironment]) { + NSArray *feedArray = (NSArray *)[json valueForKey:@"versions"]; + + // remember that we just checked the server + self.lastCheck = [NSDate date]; + + // server returned empty response? + if (![feedArray count]) { + BITHockeyLog(@"WARNING: No versions available for download on HockeyApp."); + self.receivedData = nil; + self.urlConnection = nil; + return; + } else { + _lastCheckFailed = NO; + } + + + NSString *currentAppCacheVersion = [[self newestAppVersion].version copy]; + + // clear cache and reload with new data + NSMutableArray *tmpAppVersions = [NSMutableArray arrayWithCapacity:[feedArray count]]; + for (NSDictionary *dict in feedArray) { + BITAppVersionMetaInfo *appVersionMetaInfo = [BITAppVersionMetaInfo appVersionMetaInfoFromDict:dict]; + if ([appVersionMetaInfo isValid]) { + // check if minOSVersion is set and this device qualifies + BOOL deviceOSVersionQualifies = YES; + if ([appVersionMetaInfo minOSVersion] && ![[appVersionMetaInfo minOSVersion] isKindOfClass:[NSNull class]]) { + NSComparisonResult comparisonResult = bit_versionCompare(appVersionMetaInfo.minOSVersion, [[UIDevice currentDevice] systemVersion]); + if (comparisonResult == NSOrderedDescending) { + deviceOSVersionQualifies = NO; + } + } + + if (deviceOSVersionQualifies) + [tmpAppVersions addObject:appVersionMetaInfo]; + } else { + [self reportError:[NSError errorWithDomain:kBITUpdateErrorDomain + code:BITUpdateAPIServerReturnedInvalidData + userInfo:[NSDictionary dictionaryWithObjectsAndKeys:@"Invalid data received from server.", NSLocalizedDescriptionKey, nil]]]; + } + } + // only set if different! + if (![self.appVersions isEqualToArray:tmpAppVersions]) { + self.appVersions = [tmpAppVersions copy]; + } + [self saveAppCache]; + + [self checkUpdateAvailable]; + BOOL newVersionDiffersFromCachedVersion = ![self.newestAppVersion.version isEqualToString:currentAppCacheVersion]; + + // show alert if we are on the latest & greatest + if (_showFeedback && !self.isUpdateAvailable) { + // use currentVersionString, as version still may differ (e.g. server: 1.2, client: 1.3) + NSString *versionString = [self currentAppVersion]; + NSString *shortVersionString = [[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleShortVersionString"]; + shortVersionString = shortVersionString ? [NSString stringWithFormat:@"%@ ", shortVersionString] : @""; + versionString = [shortVersionString length] ? [NSString stringWithFormat:@"(%@)", versionString] : versionString; + NSString *currentVersionString = [NSString stringWithFormat:@"%@ %@ %@%@", self.newestAppVersion.name, BITHockeyLocalizedString(@"UpdateVersion"), shortVersionString, versionString]; + NSString *alertMsg = [NSString stringWithFormat:BITHockeyLocalizedString(@"UpdateNoUpdateAvailableMessage"), currentVersionString]; + UIAlertView *alert = [[UIAlertView alloc] initWithTitle:BITHockeyLocalizedString(@"UpdateNoUpdateAvailableTitle") + message:alertMsg + delegate:nil + cancelButtonTitle:BITHockeyLocalizedString(@"HockeyOK") + otherButtonTitles:nil]; + [alert show]; + } + + if (self.isUpdateAvailable && (self.alwaysShowUpdateReminder || newVersionDiffersFromCachedVersion || [self hasNewerMandatoryVersion])) { + if (_updateAvailable && !_currentHockeyViewController) { + [self showCheckForUpdateAlert]; + } + } + _showFeedback = NO; + } + } else if (![self expiryDateReached]) { + [self reportError:[NSError errorWithDomain:kBITUpdateErrorDomain + code:BITUpdateAPIServerReturnedEmptyResponse + userInfo:[NSDictionary dictionaryWithObjectsAndKeys:@"Server returned an empty response.", NSLocalizedDescriptionKey, nil]]]; + } + + if (!_updateAlertShowing && [self expiryDateReached] && !self.blockingView) { + [self alertFallback:_blockingScreenMessage]; + } + + self.receivedData = nil; + self.urlConnection = nil; +} + +- (BOOL)hasNewerMandatoryVersion { + BOOL result = NO; + + for (BITAppVersionMetaInfo *appVersion in self.appVersions) { + if ([appVersion.version isEqualToString:self.currentAppVersion] || bit_versionCompare(appVersion.version, self.currentAppVersion) == NSOrderedAscending) { + break; + } + + if ([appVersion.mandatory boolValue]) { + result = YES; + } + } + + return result; +} + + +#pragma mark - Properties + +- (void)setCurrentHockeyViewController:(BITUpdateViewController *)aCurrentHockeyViewController { + if (_currentHockeyViewController != aCurrentHockeyViewController) { + _currentHockeyViewController = aCurrentHockeyViewController; + //HockeySDKLog(@"active hockey view controller: %@", aCurrentHockeyViewController); + } +} + +- (NSString *)currentAppVersion { + return _currentAppVersion; +} + +- (void)setLastCheck:(NSDate *)aLastCheck { + if (_lastCheck != aLastCheck) { + _lastCheck = [aLastCheck copy]; + + [[NSUserDefaults standardUserDefaults] setObject:_lastCheck forKey:kBITUpdateDateOfLastCheck]; + [[NSUserDefaults standardUserDefaults] synchronize]; + } +} + +- (void)setAppVersions:(NSArray *)anAppVersions { + if (_appVersions != anAppVersions || !_appVersions) { + [self willChangeValueForKey:@"appVersions"]; + + // populate with default values (if empty) + if (![anAppVersions count]) { + BITAppVersionMetaInfo *defaultApp = [[BITAppVersionMetaInfo alloc] init]; + defaultApp.name = bit_appName(BITHockeyLocalizedString(@"HockeyAppNamePlaceholder")); + defaultApp.version = _currentAppVersion; + defaultApp.shortVersion = [[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleShortVersionString"]; + _appVersions = [NSArray arrayWithObject:defaultApp]; + } else { + _appVersions = [anAppVersions copy]; + } + [self didChangeValueForKey:@"appVersions"]; + } +} + +- (BITAppVersionMetaInfo *)newestAppVersion { + BITAppVersionMetaInfo *appVersion = [_appVersions objectAtIndex:0]; + return appVersion; +} + +- (void)setBlockingView:(UIView *)anBlockingView { + if (_blockingView != anBlockingView) { + [_blockingView removeFromSuperview]; + _blockingView = anBlockingView; + } +} + +- (void)setInstallationIdentificationType:(NSString *)installationIdentificationType { + if (![_installationIdentificationType isEqualToString:installationIdentificationType]) { + // we already use "uuid" in our requests for providing the binary UUID to the server + // so we need to stick to "udid" even when BITAuthenticator is providing a plain uuid + if ([installationIdentificationType isEqualToString:@"uuid"]) { + _installationIdentificationType = @"udid"; + } else { + _installationIdentificationType = installationIdentificationType; + } + } +} + +- (void)setInstallationIdentification:(NSString *)installationIdentification { + if (![_installationIdentification isEqualToString:installationIdentification]) { + if (installationIdentification) { + [self addStringValueToKeychain:installationIdentification forKey:kBITUpdateInstallationIdentification]; + } else { + [self removeKeyFromKeychain:kBITUpdateInstallationIdentification]; + } + _installationIdentification = installationIdentification; + + // we need to reset the usage time, because the user/device may have changed + [self storeUsageTimeForCurrentVersion:[NSNumber numberWithDouble:0]]; + self.usageStartTimestamp = [NSDate date]; + } +} + + +#pragma mark - UIAlertViewDelegate + +// invoke the selected action from the action sheet for a location element +- (void)alertView:(UIAlertView *)alertView didDismissWithButtonIndex:(NSInteger)buttonIndex { + if ([alertView tag] == BITUpdateAlertViewTagNeverEndingAlertView) { + if (buttonIndex == 1) { + [self checkForUpdateForExpiredVersion]; + } else { + [self alertFallback:_blockingScreenMessage]; + } + return; + } + + _updateAlertShowing = NO; + if (buttonIndex == [alertView firstOtherButtonIndex]) { + // YES button has been clicked + if (self.blockingView) { + [self.blockingView removeFromSuperview]; + } + [self showUpdateView]; + } else if (buttonIndex == [alertView firstOtherButtonIndex] + 1) { + // YES button has been clicked + (void)[self initiateAppDownload]; + } else { + if ([self expiryDateReached] && !self.blockingView) { + [self alertFallback:_blockingScreenMessage]; + } + } +} + +@end + +#endif /* HOCKEYSDK_FEATURE_UPDATES */ diff --git a/Pods/HockeySDK/Classes/BITUpdateManagerDelegate.h b/Pods/HockeySDK/Classes/BITUpdateManagerDelegate.h new file mode 100644 index 0000000..8aa630b --- /dev/null +++ b/Pods/HockeySDK/Classes/BITUpdateManagerDelegate.h @@ -0,0 +1,157 @@ +/* + * Author: Andreas Linde + * + * Copyright (c) 2012-2014 HockeyApp, Bit Stadium GmbH. + * All rights reserved. + * + * Permission is hereby granted, free of charge, to any person + * obtaining a copy of this software and associated documentation + * files (the "Software"), to deal in the Software without + * restriction, including without limitation the rights to use, + * copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following + * conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES + * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + */ + +#import + +@class BITUpdateManager; + +/** + The `BITUpdateManagerDelegate` formal protocol defines methods further configuring + the behaviour of `BITUpdateManager`. + */ + +@protocol BITUpdateManagerDelegate + +@optional + + +///----------------------------------------------------------------------------- +/// @name Expiry +///----------------------------------------------------------------------------- + +/** + Return if expiry alert should be shown if date is reached + + If you want to display your own user interface when the expiry date is reached, + implement this method, present your user interface and return _NO_. In this case + it is your responsibility to make the app unusable! + + Note: This delegate will be invoked on startup and every time the app becomes + active again! + + When returning _YES_ the default blocking UI will be shown. + + When running the app from the App Store, this delegate is ignored. + + @param updateManager The `BITUpdateManager` instance invoking this delegate + @see [BITUpdateManager expiryDate] + @see [BITUpdateManagerDelegate didDisplayExpiryAlertForUpdateManager:] + */ +- (BOOL)shouldDisplayExpiryAlertForUpdateManager:(BITUpdateManager *)updateManager; + + +/** + Invoked once a default expiry alert is shown + + Once expiry date is reached and the default blocking UI is shown, + this delegate method is invoked to provide you the possibility to do any + desired additional processing. + + @param updateManager The `BITUpdateManager` instance invoking this delegate + @see [BITUpdateManager expiryDate] + @see [BITUpdateManagerDelegate shouldDisplayExpiryAlertForUpdateManager:] + */ +- (void)didDisplayExpiryAlertForUpdateManager:(BITUpdateManager *)updateManager; + + +///----------------------------------------------------------------------------- +/// @name Privacy +///----------------------------------------------------------------------------- + +/** Return NO if usage data should not be send + + The update module send usage data by default, if the application is _NOT_ + running in an App Store version. Implement this delegate and + return NO if you want to disable this. + + If you intend to implement a user setting to let them enable or disable + sending usage data, this delegate should be used to return that value. + + Usage data contains the following information: + - App Version + - iOS Version + - Device type + - Language + - Installation timestamp + - Usage time + + @param updateManager The `BITUpdateManager` instance invoking this delegate + @warning When setting this to `NO`, you will _NOT_ know if this user is actually testing! + */ +- (BOOL)updateManagerShouldSendUsageData:(BITUpdateManager *)updateManager; + + +///----------------------------------------------------------------------------- +/// @name Privacy +///----------------------------------------------------------------------------- + +/** Implement this method to be notified before an update starts. + + The update manager will send this delegate message _just_ before the system + call to update the application is placed, but after the user has already chosen + to install the update. + + There is no guarantee that the update will actually start after this delegate + message is sent. + + @param updateManager The `BITUpdateManager` instance invoking this delegate + */ +- (BOOL)willStartDownloadAndUpdate:(BITUpdateManager *)updateManager; + +/** + Invoked right before the app will exit to allow app update to start (>= iOS8 only) + + The iOS installation mechanism only starts if the app the should be updated is currently + not running. On all iOS versions up to iOS 7, the system did automatically exit the app + in these cases. Since iOS 8 this isn't done any longer. + + @param updateManager The `BITUpdateManager` instance invoking this delegate + */ +- (void)updateManagerWillExitApp:(BITUpdateManager *)updateManager; + + +#pragma mark - Deprecated + +///----------------------------------------------------------------------------- +/// @name Update View Presentation Helper +///----------------------------------------------------------------------------- + +/** + Provide a parent view controller for the update user interface + + If you don't have a `rootViewController` set on your `UIWindow` and the SDK cannot + automatically find the current top most `UIViewController`, you can provide the + `UIViewController` that should be used to present the update user interface modal. + + @param updateManager The `BITUpdateManager` instance invoking this delegate + + @deprecated Please use `BITHockeyManagerDelegate viewControllerForHockeyManager:componentManager:` instead + */ +- (UIViewController *)viewControllerForUpdateManager:(BITUpdateManager *)updateManager DEPRECATED_ATTRIBUTE; + +@end diff --git a/Pods/HockeySDK/Classes/BITUpdateManagerPrivate.h b/Pods/HockeySDK/Classes/BITUpdateManagerPrivate.h new file mode 100644 index 0000000..562dffa --- /dev/null +++ b/Pods/HockeySDK/Classes/BITUpdateManagerPrivate.h @@ -0,0 +1,109 @@ +/* + * Author: Andreas Linde + * Peter Steinberger + * + * Copyright (c) 2012-2014 HockeyApp, Bit Stadium GmbH. + * Copyright (c) 2011 Andreas Linde. + * All rights reserved. + * + * Permission is hereby granted, free of charge, to any person + * obtaining a copy of this software and associated documentation + * files (the "Software"), to deal in the Software without + * restriction, including without limitation the rights to use, + * copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following + * conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES + * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + */ + + +#import "HockeySDK.h" + +#if HOCKEYSDK_FEATURE_UPDATES + +/** TODO: + * if during startup the auth-state is pending, we get never rid of the nag-alertview + */ +@interface BITUpdateManager () { +} + +///----------------------------------------------------------------------------- +/// @name Delegate +///----------------------------------------------------------------------------- + +/** + Sets the `BITUpdateManagerDelegate` delegate. + + The delegate is automatically set by using `[BITHockeyManager setDelegate:]`. You + should not need to set this delegate individually. + + @see `[BITHockeyManager setDelegate:]` + */ +@property (nonatomic, weak) id delegate; + + +// is an update available? +@property (nonatomic, assign, getter=isUpdateAvailable) BOOL updateAvailable; + +// are we currently checking for updates? +@property (nonatomic, assign, getter=isCheckInProgress) BOOL checkInProgress; + +@property (nonatomic, strong) NSMutableData *receivedData; + +@property (nonatomic, copy) NSDate *lastCheck; + +// get array of all available versions +@property (nonatomic, copy) NSArray *appVersions; + +@property (nonatomic, strong) NSNumber *currentAppVersionUsageTime; + +@property (nonatomic, strong) NSURLConnection *urlConnection; + +@property (nonatomic, copy) NSDate *usageStartTimestamp; + +@property (nonatomic, strong) UIView *blockingView; + +@property (nonatomic, strong) NSString *companyName; + +@property (nonatomic, strong) NSString *installationIdentification; + +@property (nonatomic, strong) NSString *installationIdentificationType; + +@property (nonatomic) BOOL installationIdentified; + +// used by BITHockeyManager if disable status is changed +@property (nonatomic, getter = isUpdateManagerDisabled) BOOL disableUpdateManager; + +// checks for update, informs the user (error, no update found, etc) +- (void)checkForUpdateShowFeedback:(BOOL)feedback; + +// initiates app-download call. displays an system UIAlertView +- (BOOL)initiateAppDownload; + +// get/set current active hockey view controller +@property (nonatomic, strong) BITUpdateViewController *currentHockeyViewController; + +// convenience method to get current running version string +- (NSString *)currentAppVersion; + +// get newest app version +- (BITAppVersionMetaInfo *)newestAppVersion; + +// check if there is any newer version mandatory +- (BOOL)hasNewerMandatoryVersion; + +@end + +#endif /* HOCKEYSDK_FEATURE_UPDATES */ diff --git a/Pods/HockeySDK/Classes/BITUpdateViewController.h b/Pods/HockeySDK/Classes/BITUpdateViewController.h new file mode 100644 index 0000000..e36f318 --- /dev/null +++ b/Pods/HockeySDK/Classes/BITUpdateViewController.h @@ -0,0 +1,37 @@ +/* + * Author: Andreas Linde + * Peter Steinberger + * + * Copyright (c) 2012-2014 HockeyApp, Bit Stadium GmbH. + * Copyright (c) 2011 Andreas Linde, Peter Steinberger. + * All rights reserved. + * + * Permission is hereby granted, free of charge, to any person + * obtaining a copy of this software and associated documentation + * files (the "Software"), to deal in the Software without + * restriction, including without limitation the rights to use, + * copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following + * conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES + * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + */ + +#import + +#import "BITHockeyBaseViewController.h" + + +@interface BITUpdateViewController : BITHockeyBaseViewController +@end diff --git a/Pods/HockeySDK/Classes/BITUpdateViewController.m b/Pods/HockeySDK/Classes/BITUpdateViewController.m new file mode 100644 index 0000000..607018c --- /dev/null +++ b/Pods/HockeySDK/Classes/BITUpdateViewController.m @@ -0,0 +1,555 @@ +/* + * Author: Andreas Linde + * Peter Steinberger + * + * Copyright (c) 2012-2014 HockeyApp, Bit Stadium GmbH. + * Copyright (c) 2011 Andreas Linde, Peter Steinberger. + * All rights reserved. + * + * Permission is hereby granted, free of charge, to any person + * obtaining a copy of this software and associated documentation + * files (the "Software"), to deal in the Software without + * restriction, including without limitation the rights to use, + * copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following + * conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES + * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + */ + +#import "HockeySDK.h" + +#if HOCKEYSDK_FEATURE_UPDATES + +#import "HockeySDKPrivate.h" +#import +#import "BITHockeyHelper.h" +#import "BITAppVersionMetaInfo.h" +#import "BITAppStoreHeader.h" +#import "BITWebTableViewCell.h" +#import "BITStoreButton.h" + +#import "BITUpdateManagerPrivate.h" +#import "BITUpdateViewControllerPrivate.h" +#import "BITHockeyBaseManagerPrivate.h" + + +#define kWebCellIdentifier @"PSWebTableViewCell" +#define kAppStoreViewHeight 99 + + +@implementation BITUpdateViewController { + BOOL _kvoRegistered; + BOOL _showAllVersions; + BITAppStoreHeader *_appStoreHeader; + BITStoreButton *_appStoreButton; + + id _popOverController; + + NSMutableArray *_cells; + + BOOL _isAppStoreEnvironment; +} + + +#pragma mark - Private + +- (UIColor *)backgroundColor { + if ([self.updateManager isPreiOS7Environment]) { + return BIT_RGBCOLOR(235, 235, 235); + } else { + return BIT_RGBCOLOR(255, 255, 255); + } +} + +- (void)restoreStoreButtonStateAnimated:(BOOL)animated { + if (_isAppStoreEnvironment) { + [self setAppStoreButtonState:AppStoreButtonStateOffline animated:animated]; + } else if ([_updateManager isUpdateAvailable]) { + [self setAppStoreButtonState:AppStoreButtonStateUpdate animated:animated]; + } else { + [self setAppStoreButtonState:AppStoreButtonStateCheck animated:animated]; + } +} + +- (void)updateAppStoreHeader { + BITAppVersionMetaInfo *appVersion = _updateManager.newestAppVersion; + _appStoreHeader.headerText = appVersion.name; + _appStoreHeader.subHeaderText = _updateManager.companyName; +} + +- (void)appDidBecomeActive { + if (self.appStoreButtonState == AppStoreButtonStateInstalling) { + [self setAppStoreButtonState:AppStoreButtonStateUpdate animated:YES]; + } else if (![_updateManager isCheckInProgress]) { + [self restoreStoreButtonStateAnimated:YES]; + } +} + +- (UIImage *)addGlossToImage:(UIImage *)image { + UIGraphicsBeginImageContextWithOptions(image.size, NO, 0.0); + + [image drawAtPoint:CGPointZero]; + UIImage *iconGradient = bit_imageNamed(@"IconGradient.png", BITHOCKEYSDK_BUNDLE); + [iconGradient drawInRect:CGRectMake(0, 0, image.size.width, image.size.height) blendMode:kCGBlendModeNormal alpha:0.5]; + + UIImage *result = UIGraphicsGetImageFromCurrentImageContext(); + UIGraphicsEndImageContext(); + + return result; +} + +#define kMinPreviousVersionButtonHeight 50 +- (void)realignPreviousVersionButton { + + // manually collect actual table height size + NSUInteger tableViewContentHeight = 0; + for (int i=0; i < [self tableView:self.tableView numberOfRowsInSection:0]; i++) { + tableViewContentHeight += [self tableView:self.tableView heightForRowAtIndexPath:[NSIndexPath indexPathForRow:i inSection:0]]; + } + tableViewContentHeight += self.tableView.tableHeaderView.frame.size.height; + if (![self.updateManager isPreiOS7Environment]) { + tableViewContentHeight += self.navigationController.navigationBar.frame.size.height; + tableViewContentHeight += [UIApplication sharedApplication].statusBarFrame.size.height; + } + + NSUInteger footerViewSize = kMinPreviousVersionButtonHeight; + NSUInteger frameHeight = self.view.frame.size.height; + if(tableViewContentHeight < frameHeight && (frameHeight - tableViewContentHeight > 100)) { + footerViewSize = frameHeight - tableViewContentHeight; + } + + // update footer view + if(self.tableView.tableFooterView) { + CGRect frame = self.tableView.tableFooterView.frame; + frame.size.height = footerViewSize; + self.tableView.tableFooterView.frame = frame; + } +} + +- (void)changePreviousVersionButtonBackground:(id)sender { + [(UIButton *)sender setBackgroundColor:BIT_RGBCOLOR(245, 245, 245)]; +} + +- (void)changePreviousVersionButtonBackgroundHighlighted:(id)sender { + [(UIButton *)sender setBackgroundColor:BIT_RGBCOLOR(245, 245, 245)]; +} + +- (UIImage *)gradientButtonHighlightImage { + CGFloat width = 10; + CGFloat height = 70; + + CGSize size = CGSizeMake(width, height); + UIGraphicsBeginImageContextWithOptions(size, NO, 0); + CGContextRef context = UIGraphicsGetCurrentContext(); + + CGColorSpaceRef colorspace = CGColorSpaceCreateDeviceRGB(); + + NSArray *colors = [NSArray arrayWithObjects:(id)BIT_RGBCOLOR(69, 127, 247).CGColor, (id)BIT_RGBCOLOR(58, 68, 233).CGColor, nil]; + CGGradientRef gradient = CGGradientCreateWithColors(CGColorGetColorSpace((__bridge CGColorRef)[colors objectAtIndex:0]), (__bridge CFArrayRef)colors, (CGFloat[2]){0, 1}); + CGPoint top = CGPointMake(width / 2, 0); + CGPoint bottom = CGPointMake(width / 2, height); + CGContextDrawLinearGradient(context, gradient, top, bottom, 0); + + UIImage *theImage = UIGraphicsGetImageFromCurrentImageContext(); + + CGGradientRelease(gradient); + CGColorSpaceRelease(colorspace); + UIGraphicsEndImageContext(); + + return theImage; +} + +- (void)showHidePreviousVersionsButton { + BOOL multipleVersionButtonNeeded = [_updateManager.appVersions count] > 1 && !_showAllVersions; + + if(multipleVersionButtonNeeded) { + // align at the bottom if tableview is small + UIView *footerView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, kMinPreviousVersionButtonHeight)]; + footerView.autoresizingMask = UIViewAutoresizingFlexibleWidth; + footerView.backgroundColor = BIT_RGBCOLOR(245, 245, 245); + UIView *lineView1 = [[UIView alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, 1)]; + lineView1.backgroundColor = BIT_RGBCOLOR(214, 214, 214); + lineView1.autoresizingMask = UIViewAutoresizingFlexibleWidth; + [footerView addSubview:lineView1]; + UIView *lineView2 = [[UIView alloc] initWithFrame:CGRectMake(0, 1, self.view.frame.size.width, 1)]; + lineView2.backgroundColor = BIT_RGBCOLOR(221, 221, 221); + lineView2.autoresizingMask = UIViewAutoresizingFlexibleWidth; + [footerView addSubview:lineView2]; + UIView *lineView3 = [[UIView alloc] initWithFrame:CGRectMake(0, 1, self.view.frame.size.width, 1)]; + lineView3.backgroundColor = BIT_RGBCOLOR(255, 255, 255); + lineView3.autoresizingMask = UIViewAutoresizingFlexibleWidth; + [footerView addSubview:lineView3]; + UIButton *footerButton = [UIButton buttonWithType:UIButtonTypeCustom]; + //footerButton.layer.shadowOffset = CGSizeMake(-2, 2); + footerButton.layer.shadowColor = [[UIColor blackColor] CGColor]; + footerButton.layer.shadowRadius = 2.0f; + footerButton.titleLabel.font = [UIFont boldSystemFontOfSize:14]; + [footerButton setTitle:BITHockeyLocalizedString(@"UpdateShowPreviousVersions") forState:UIControlStateNormal]; + [footerButton setTitleColor:BIT_RGBCOLOR(61, 61, 61) forState:UIControlStateNormal]; + [footerButton setTitleColor:[UIColor whiteColor] forState:UIControlStateHighlighted]; + [footerButton setBackgroundImage:[self gradientButtonHighlightImage] forState:UIControlStateHighlighted]; + footerButton.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleTopMargin; + [footerButton addTarget:self action:@selector(showPreviousVersionAction) forControlEvents:UIControlEventTouchUpInside]; + footerButton.frame = CGRectMake(0, kMinPreviousVersionButtonHeight-44, self.view.frame.size.width, 44); + footerButton.backgroundColor = BIT_RGBCOLOR(245, 245, 245); + [footerView addSubview:footerButton]; + self.tableView.tableFooterView = footerView; + [self realignPreviousVersionButton]; + } else { + self.tableView.tableFooterView = nil; + self.tableView.backgroundColor = [self backgroundColor]; + } +} + +- (void)configureWebCell:(BITWebTableViewCell *)cell forAppVersion:(BITAppVersionMetaInfo *)appVersion { + // create web view for a version + NSMutableString *dateAndSizeString = [NSMutableString string]; + if (appVersion.date) { + [dateAndSizeString appendString:[appVersion dateString]]; + } + if (appVersion.size) { + if ([dateAndSizeString length]) { + [dateAndSizeString appendString:@" - "]; + } + [dateAndSizeString appendString:appVersion.sizeInMB]; + } + + NSString *installed = @""; + if ([appVersion.version isEqualToString:[_updateManager currentAppVersion]]) { + installed = [NSString stringWithFormat:@"%@", BITHockeyLocalizedString(@"UpdateInstalled")]; + } + + if ([appVersion isEqual:_updateManager.newestAppVersion]) { + if ([appVersion.notes length] > 0) { + cell.webViewContent = [NSString stringWithFormat:@"

%@%@
%@

%@

", [appVersion versionString], installed, dateAndSizeString, appVersion.notes]; + } else { + if ([self.updateManager isPreiOS7Environment]) { + cell.webViewContent = [NSString stringWithFormat:@"
%@
", BITHockeyLocalizedString(@"UpdateNoReleaseNotesAvailable")]; + } else { + cell.webViewContent = [NSString stringWithFormat:@"
%@
", BITHockeyLocalizedString(@"UpdateNoReleaseNotesAvailable")]; + } + } + } else { + cell.webViewContent = [NSString stringWithFormat:@"

%@%@
%@

%@

", [appVersion versionString], installed, dateAndSizeString, [appVersion notesOrEmptyString]]; + } + cell.cellBackgroundColor = [self backgroundColor]; + [cell addWebView]; + // hack + cell.textLabel.text = @""; + + [cell addObserver:self forKeyPath:@"webViewSize" options:0 context:nil]; +} + + +#pragma mark - Init + +- (instancetype)initWithStyle:(UITableViewStyle)style { + if ((self = [super initWithStyle:UITableViewStylePlain])) { + _updateManager = [BITHockeyManager sharedHockeyManager].updateManager ; + _isAppStoreEnvironment = [BITHockeyManager sharedHockeyManager].isAppStoreEnvironment; + + self.title = BITHockeyLocalizedString(@"UpdateScreenTitle"); + + _cells = [[NSMutableArray alloc] initWithCapacity:5]; + _popOverController = nil; + } + return self; +} + +- (void)dealloc { + [[NSNotificationCenter defaultCenter] removeObserver:self]; + + // test if KVO's are registered. if class is destroyed before it was shown(viewDidLoad) no KVOs are registered. + if (_kvoRegistered) { + [_updateManager removeObserver:self forKeyPath:@"checkInProgress"]; + [_updateManager removeObserver:self forKeyPath:@"isUpdateURLOffline"]; + [_updateManager removeObserver:self forKeyPath:@"updateAvailable"]; + [_updateManager removeObserver:self forKeyPath:@"appVersions"]; + _kvoRegistered = NO; + } + + for (UITableViewCell *cell in _cells) { + [cell removeObserver:self forKeyPath:@"webViewSize"]; + } + +} + + +#pragma mark - View lifecycle + +- (void)viewDidLoad { + [super viewDidLoad]; + + // add notifications only to loaded view + NSNotificationCenter *dnc = [NSNotificationCenter defaultCenter]; + [dnc addObserver:self selector:@selector(appDidBecomeActive) name:UIApplicationDidBecomeActiveNotification object:nil]; + + // hook into manager with kvo! + [_updateManager addObserver:self forKeyPath:@"checkInProgress" options:0 context:nil]; + [_updateManager addObserver:self forKeyPath:@"isUpdateURLOffline" options:0 context:nil]; + [_updateManager addObserver:self forKeyPath:@"updateAvailable" options:0 context:nil]; + [_updateManager addObserver:self forKeyPath:@"appVersions" options:0 context:nil]; + _kvoRegistered = YES; + + self.tableView.backgroundColor = BIT_RGBCOLOR(245, 245, 245); + self.tableView.separatorStyle = UITableViewCellSeparatorStyleNone; + + UIView *topView = [[UIView alloc] initWithFrame:CGRectMake(0, -(600-kAppStoreViewHeight), self.view.frame.size.width, 600)]; + topView.autoresizingMask = UIViewAutoresizingFlexibleWidth; + topView.backgroundColor = BIT_RGBCOLOR(245, 245, 245); + [self.tableView addSubview:topView]; + + _appStoreHeader = [[BITAppStoreHeader alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, kAppStoreViewHeight)]; + if ([self.updateManager isPreiOS7Environment]) { + _appStoreHeader.style = BITAppStoreHeaderStyleDefault; + } else { + _appStoreHeader.style = BITAppStoreHeaderStyleOS7; + } + [self updateAppStoreHeader]; + + NSString *iconFilename = bit_validAppIconFilename([NSBundle mainBundle], [NSBundle mainBundle]); + if (iconFilename) { + BOOL addGloss = YES; + NSNumber *prerendered = [[NSBundle mainBundle] objectForInfoDictionaryKey:@"UIPrerenderedIcon"]; + if (prerendered) { + addGloss = ![prerendered boolValue]; + } + + if (addGloss && [self.updateManager isPreiOS7Environment]) { + _appStoreHeader.iconImage = [self addGlossToImage:[UIImage imageNamed:iconFilename]]; + } else { + _appStoreHeader.iconImage = [UIImage imageNamed:iconFilename]; + } + } + + self.tableView.tableHeaderView = _appStoreHeader; + + BITStoreButtonStyle buttonStyle = BITStoreButtonStyleDefault; + if (![self.updateManager isPreiOS7Environment]) { + buttonStyle = BITStoreButtonStyleOS7; + } + BITStoreButton *storeButton = [[BITStoreButton alloc] initWithPadding:CGPointMake(5, 58) style:buttonStyle]; + storeButton.autoresizingMask = UIViewAutoresizingFlexibleLeftMargin; + storeButton.buttonDelegate = self; + [self.tableView.tableHeaderView addSubview:storeButton]; + storeButton.buttonData = [BITStoreButtonData dataWithLabel:@"" enabled:NO]; + [storeButton alignToSuperview]; + _appStoreButton = storeButton; + self.appStoreButtonState = AppStoreButtonStateCheck; +} + +- (void)viewWillAppear:(BOOL)animated { + if (_isAppStoreEnvironment) { + self.appStoreButtonState = AppStoreButtonStateOffline; + } else if (self.mandatoryUpdate) { + self.navigationItem.leftBarButtonItem = nil; + } + _updateManager.currentHockeyViewController = self; + [super viewWillAppear:animated]; + [self redrawTableView]; +} + +- (void)viewWillDisappear:(BOOL)animated { + _updateManager.currentHockeyViewController = nil; + //if the popover is still visible, dismiss it + [_popOverController dismissPopoverAnimated:YES]; + [super viewWillDisappear:animated]; +} + +- (void)redrawTableView { + [self restoreStoreButtonStateAnimated:NO]; + [self updateAppStoreHeader]; + + // clean up and remove any pending observers + for (UITableViewCell *cell in _cells) { + [cell removeObserver:self forKeyPath:@"webViewSize"]; + } + [_cells removeAllObjects]; + + int i = 0; + BOOL breakAfterThisAppVersion = NO; + for (BITAppVersionMetaInfo *appVersion in _updateManager.appVersions) { + i++; + + // only show the newer version of the app by default, if we don't show all versions + if (!_showAllVersions) { + if ([appVersion.version isEqualToString:[_updateManager currentAppVersion]]) { + if (i == 1) { + breakAfterThisAppVersion = YES; + } else { + break; + } + } + } + + BITWebTableViewCell *cell = [[BITWebTableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:kWebCellIdentifier]; + [self configureWebCell:cell forAppVersion:appVersion]; + [_cells addObject:cell]; + + if (breakAfterThisAppVersion) break; + } + + [self.tableView reloadData]; + [self showHidePreviousVersionsButton]; +} + +- (void)showPreviousVersionAction { + _showAllVersions = YES; + BOOL showAllPending = NO; + + for (BITAppVersionMetaInfo *appVersion in _updateManager.appVersions) { + if (!showAllPending) { + if ([appVersion.version isEqualToString:[_updateManager currentAppVersion]]) { + showAllPending = YES; + if (appVersion == _updateManager.newestAppVersion) { + continue; // skip this version already if it the latest version is the installed one + } + } else { + continue; // skip already shown + } + } + + BITWebTableViewCell *cell = [[BITWebTableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:kWebCellIdentifier]; + [self configureWebCell:cell forAppVersion:appVersion]; + [_cells addObject:cell]; + } + [self.tableView reloadData]; + [self showHidePreviousVersionsButton]; +} + + +#pragma mark - Table view data source + +- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView { + return 1; +} + +- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath { + CGFloat rowHeight = 0; + + if ([_cells count] > (NSUInteger)indexPath.row) { + BITWebTableViewCell *cell = [_cells objectAtIndex:indexPath.row]; + rowHeight = cell.webViewSize.height; + } + + if ([_updateManager.appVersions count] > 1 && !_showAllVersions) { + self.tableView.backgroundColor = BIT_RGBCOLOR(245, 245, 245); + } + + if (rowHeight == 0) { + rowHeight = indexPath.row == 0 ? 250 : 44; // fill screen on startup + self.tableView.backgroundColor = [self backgroundColor]; + } + + return rowHeight; +} + +- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { + NSInteger cellCount = [_cells count]; + return cellCount; +} + + +#pragma mark - KVO + +- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context { + // only make changes if we are visible + if(self.view.window) { + if ([keyPath isEqualToString:@"webViewSize"]) { + [self.tableView reloadData]; + [self realignPreviousVersionButton]; + } else if ([keyPath isEqualToString:@"checkInProgress"]) { + if (_updateManager.isCheckInProgress) { + [self setAppStoreButtonState:AppStoreButtonStateSearching animated:YES]; + }else { + [self restoreStoreButtonStateAnimated:YES]; + } + } else if ([keyPath isEqualToString:@"isUpdateURLOffline"]) { + [self restoreStoreButtonStateAnimated:YES]; + } else if ([keyPath isEqualToString:@"updateAvailable"]) { + [self restoreStoreButtonStateAnimated:YES]; + } else if ([keyPath isEqualToString:@"appVersions"]) { + [self redrawTableView]; + } + } +} + +// Customize the appearance of table view cells. +- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { + if ([_cells count] > (NSUInteger)indexPath.row) { + return [_cells objectAtIndex:indexPath.row]; + } else { + BITHockeyLog(@"Warning: cells_ and indexPath do not match? forgot calling redrawTableView?"); + } + return nil; +} + + +#pragma mark - Rotation + +- (void)willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation duration:(NSTimeInterval)duration { + // update all cells + [_cells makeObjectsPerformSelector:@selector(addWebView)]; +} + + +#pragma mark - PSAppStoreHeaderDelegate + +- (void)setAppStoreButtonState:(AppStoreButtonState)anAppStoreButtonState { + [self setAppStoreButtonState:anAppStoreButtonState animated:NO]; +} + +- (void)setAppStoreButtonState:(AppStoreButtonState)anAppStoreButtonState animated:(BOOL)animated { + _appStoreButtonState = anAppStoreButtonState; + + switch (anAppStoreButtonState) { + case AppStoreButtonStateOffline: + [_appStoreButton setButtonData:[BITStoreButtonData dataWithLabel:BITHockeyLocalizedString(@"UpdateButtonOffline") enabled:NO] animated:animated]; + break; + case AppStoreButtonStateCheck: + [_appStoreButton setButtonData:[BITStoreButtonData dataWithLabel:BITHockeyLocalizedString(@"UpdateButtonCheck") enabled:YES] animated:animated]; + break; + case AppStoreButtonStateSearching: + [_appStoreButton setButtonData:[BITStoreButtonData dataWithLabel:BITHockeyLocalizedString(@"UpdateButtonSearching") enabled:NO] animated:animated]; + break; + case AppStoreButtonStateUpdate: + [_appStoreButton setButtonData:[BITStoreButtonData dataWithLabel:BITHockeyLocalizedString(@"UpdateButtonUpdate") enabled:YES] animated:animated]; + break; + case AppStoreButtonStateInstalling: + [_appStoreButton setButtonData:[BITStoreButtonData dataWithLabel:BITHockeyLocalizedString(@"UpdateButtonInstalling") enabled:NO] animated:animated]; + break; + default: + break; + } +} + +- (void)storeButtonFired:(BITStoreButton *)button { + switch (_appStoreButtonState) { + case AppStoreButtonStateCheck: + [_updateManager checkForUpdateShowFeedback:YES]; + break; + case AppStoreButtonStateUpdate: + if ([_updateManager initiateAppDownload]) { + [self setAppStoreButtonState:AppStoreButtonStateInstalling animated:YES]; + }; + break; + default: + break; + } +} + +@end + +#endif /* HOCKEYSDK_FEATURE_UPDATES */ diff --git a/Pods/HockeySDK/Classes/BITUpdateViewControllerPrivate.h b/Pods/HockeySDK/Classes/BITUpdateViewControllerPrivate.h new file mode 100644 index 0000000..26747a8 --- /dev/null +++ b/Pods/HockeySDK/Classes/BITUpdateViewControllerPrivate.h @@ -0,0 +1,79 @@ +/* + * Author: Andreas Linde + * Peter Steinberger + * + * Copyright (c) 2012-2014 HockeyApp, Bit Stadium GmbH. + * Copyright (c) 2011 Andreas Linde, Peter Steinberger. + * All rights reserved. + * + * Permission is hereby granted, free of charge, to any person + * obtaining a copy of this software and associated documentation + * files (the "Software"), to deal in the Software without + * restriction, including without limitation the rights to use, + * copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following + * conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES + * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + */ + +#import "HockeySDK.h" + +#if HOCKEYSDK_FEATURE_UPDATES + +#import "BITStoreButton.h" + +/** + * Button states + */ +typedef NS_ENUM(NSUInteger, AppStoreButtonState) { + /** + * Offline + */ + AppStoreButtonStateOffline, + /** + * Check + */ + AppStoreButtonStateCheck, + /** + * Searching + */ + AppStoreButtonStateSearching, + /** + * Update + */ + AppStoreButtonStateUpdate, + /** + * Installing + */ + AppStoreButtonStateInstalling +}; + + +@class BITUpdateManager; + +@protocol PSStoreButtonDelegate; + +@interface BITUpdateViewController() { +} + +@property (nonatomic, weak) BITUpdateManager *updateManager; + +@property (nonatomic, readwrite) BOOL mandatoryUpdate; + +@property (nonatomic, assign) AppStoreButtonState appStoreButtonState; + +@end + +#endif /* HOCKEYSDK_FEATURE_UPDATES */ diff --git a/Pods/HockeySDK/Classes/BITWebTableViewCell.h b/Pods/HockeySDK/Classes/BITWebTableViewCell.h new file mode 100644 index 0000000..c1706d2 --- /dev/null +++ b/Pods/HockeySDK/Classes/BITWebTableViewCell.h @@ -0,0 +1,44 @@ +/* + * Author: Andreas Linde + * Peter Steinberger + * + * Copyright (c) 2012-2014 HockeyApp, Bit Stadium GmbH. + * Copyright (c) 2011-2012 Peter Steinberger. + * All rights reserved. + * + * Permission is hereby granted, free of charge, to any person + * obtaining a copy of this software and associated documentation + * files (the "Software"), to deal in the Software without + * restriction, including without limitation the rights to use, + * copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following + * conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES + * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + */ + + +#import +#import + +@interface BITWebTableViewCell : UITableViewCell + +@property (nonatomic, strong) UIWebView *webView; +@property (nonatomic, copy) NSString *webViewContent; +@property (nonatomic, assign) CGSize webViewSize; +@property (nonatomic, strong) UIColor *cellBackgroundColor; + +- (void)addWebView; + +@end diff --git a/Pods/HockeySDK/Classes/BITWebTableViewCell.m b/Pods/HockeySDK/Classes/BITWebTableViewCell.m new file mode 100644 index 0000000..42b605a --- /dev/null +++ b/Pods/HockeySDK/Classes/BITWebTableViewCell.m @@ -0,0 +1,181 @@ +/* + * Author: Andreas Linde + * Peter Steinberger + * + * Copyright (c) 2012-2014 HockeyApp, Bit Stadium GmbH. + * Copyright (c) 2011-2012 Peter Steinberger. + * All rights reserved. + * + * Permission is hereby granted, free of charge, to any person + * obtaining a copy of this software and associated documentation + * files (the "Software"), to deal in the Software without + * restriction, including without limitation the rights to use, + * copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following + * conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES + * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + */ + +#import "BITWebTableViewCell.h" + + +@implementation BITWebTableViewCell + +static NSString* BITWebTableViewCellHtmlTemplate = @"\ +\ +\ +\ +\ +\ +\ +%@\ +\ +\ +"; + + +#pragma mark - private + +- (void)addWebView { + if(_webViewContent) { + CGRect webViewRect = CGRectMake(0, 0, self.frame.size.width, self.frame.size.height); + if(!_webView) { + _webView = [[UIWebView alloc] initWithFrame:webViewRect]; + [self addSubview:_webView]; + _webView.hidden = YES; + _webView.backgroundColor = self.cellBackgroundColor; + _webView.opaque = NO; + _webView.delegate = self; + _webView.autoresizingMask = UIViewAutoresizingFlexibleWidth; + + for(UIView* subView in _webView.subviews){ + if([subView isKindOfClass:[UIScrollView class]]){ + // disable scrolling + UIScrollView *sv = (UIScrollView *)subView; + sv.scrollEnabled = NO; + sv.bounces = NO; + + // hide shadow + for (UIView* shadowView in [subView subviews]) { + if ([shadowView isKindOfClass:[UIImageView class]]) { + shadowView.hidden = YES; + } + } + } + } + } + else + _webView.frame = webViewRect; + + NSString *deviceWidth = [NSString stringWithFormat:@"%.0f", CGRectGetWidth(self.bounds)]; + + //HockeySDKLog(@"%@\n%@\%@", PSWebTableViewCellHtmlTemplate, deviceWidth, self.webViewContent); + NSString *contentHtml = [NSString stringWithFormat:BITWebTableViewCellHtmlTemplate, deviceWidth, self.webViewContent]; + [_webView loadHTMLString:contentHtml baseURL:nil]; + } +} + +- (void)showWebView { + _webView.hidden = NO; + self.textLabel.text = @""; + [self setNeedsDisplay]; +} + + +- (void)removeWebView { + if(_webView) { + _webView.delegate = nil; + [_webView resignFirstResponder]; + [_webView removeFromSuperview]; + } + _webView = nil; + [self setNeedsDisplay]; +} + + +- (void)setWebViewContent:(NSString *)aWebViewContent { + if (_webViewContent != aWebViewContent) { + _webViewContent = aWebViewContent; + + // add basic accessibility (prevents "snarfed from ivar layout") logs + self.accessibilityLabel = aWebViewContent; + } +} + + +#pragma mark - NSObject + +- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier { + if((self = [super initWithStyle:style reuseIdentifier:reuseIdentifier])) { + self.cellBackgroundColor = [UIColor clearColor]; + } + return self; +} + +- (void)dealloc { + [self removeWebView]; +} + + +#pragma mark - UIView + +- (void)setFrame:(CGRect)aFrame { + BOOL needChange = !CGRectEqualToRect(aFrame, self.frame); + [super setFrame:aFrame]; + + if (needChange) { + [self addWebView]; + } +} + + +#pragma mark - UITableViewCell + +- (void)prepareForReuse { + [self removeWebView]; + self.webViewContent = nil; + [super prepareForReuse]; +} + + +#pragma mark - UIWebView + +- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType { + if(navigationType == UIWebViewNavigationTypeOther) + return YES; + + return NO; +} + + +- (void)webViewDidFinishLoad:(UIWebView *)webView { + if(_webViewContent) + [self showWebView]; + + CGRect frame = _webView.frame; + frame.size.height = 1; + _webView.frame = frame; + CGSize fittingSize = [_webView sizeThatFits:CGSizeZero]; + frame.size = fittingSize; + _webView.frame = frame; + + // sizeThatFits is not reliable - use javascript for optimal height + NSString *output = [_webView stringByEvaluatingJavaScriptFromString:@"document.body.scrollHeight;"]; + self.webViewSize = CGSizeMake(fittingSize.width, [output integerValue]); +} + +@end diff --git a/Pods/HockeySDK/Classes/HockeySDK.h b/Pods/HockeySDK/Classes/HockeySDK.h new file mode 100644 index 0000000..0d04c43 --- /dev/null +++ b/Pods/HockeySDK/Classes/HockeySDK.h @@ -0,0 +1,212 @@ +/* + * Author: Andreas Linde + * + * Copyright (c) 2012-2014 HockeyApp, Bit Stadium GmbH. + * Copyright (c) 2011 Andreas Linde. + * All rights reserved. + * + * Permission is hereby granted, free of charge, to any person + * obtaining a copy of this software and associated documentation + * files (the "Software"), to deal in the Software without + * restriction, including without limitation the rights to use, + * copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following + * conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES + * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + */ + +#ifndef HockeySDK_h +#define HockeySDK_h + +#import "HockeySDKFeatureConfig.h" + +#import "BITHockeyManager.h" +#import "BITHockeyManagerDelegate.h" + +#if HOCKEYSDK_FEATURE_CRASH_REPORTER || HOCKEYSDK_FEATURE_FEEDBACK +#import "BITHockeyAttachment.h" +#endif + +#if HOCKEYSDK_FEATURE_CRASH_REPORTER +#import "BITCrashManager.h" +#import "BITCrashAttachment.h" +#import "BITCrashManagerDelegate.h" +#import "BITCrashDetails.h" +#import "BITCrashMetaData.h" +#endif /* HOCKEYSDK_FEATURE_CRASH_REPORTER */ + +#if HOCKEYSDK_FEATURE_UPDATES +#import "BITUpdateManager.h" +#import "BITUpdateManagerDelegate.h" +#import "BITUpdateViewController.h" +#endif /* HOCKEYSDK_FEATURE_UPDATES */ + +#if HOCKEYSDK_FEATURE_STORE_UPDATES +#import "BITStoreUpdateManager.h" +#import "BITStoreUpdateManagerDelegate.h" +#endif /* HOCKEYSDK_FEATURE_STORE_UPDATES */ + +#if HOCKEYSDK_FEATURE_FEEDBACK +#import "BITFeedbackManager.h" +#import "BITFeedbackManagerDelegate.h" +#import "BITFeedbackActivity.h" +#import "BITFeedbackComposeViewController.h" +#import "BITFeedbackComposeViewControllerDelegate.h" +#import "BITFeedbackListViewController.h" +#endif /* HOCKEYSDK_FEATURE_FEEDBACK */ + +#if HOCKEYSDK_FEATURE_AUTHENTICATOR +#import "BITAuthenticator.h" +#endif + +// Notification message which HockeyManager is listening to, to retry requesting updated from the server +#define BITHockeyNetworkDidBecomeReachableNotification @"BITHockeyNetworkDidBecomeReachable" + + +/** + * HockeySDK Crash Reporter error domain + */ +typedef NS_ENUM (NSInteger, BITCrashErrorReason) { + /** + * Unknown error + */ + BITCrashErrorUnknown, + /** + * API Server rejected app version + */ + BITCrashAPIAppVersionRejected, + /** + * API Server returned empty response + */ + BITCrashAPIReceivedEmptyResponse, + /** + * Connection error with status code + */ + BITCrashAPIErrorWithStatusCode +}; +extern NSString *const __attribute__((unused)) kBITCrashErrorDomain; + +/** + * HockeySDK Update error domain + */ +typedef NS_ENUM (NSInteger, BITUpdateErrorReason) { + /** + * Unknown error + */ + BITUpdateErrorUnknown, + /** + * API Server returned invalid status + */ + BITUpdateAPIServerReturnedInvalidStatus, + /** + * API Server returned invalid data + */ + BITUpdateAPIServerReturnedInvalidData, + /** + * API Server returned empty response + */ + BITUpdateAPIServerReturnedEmptyResponse, + /** + * Authorization secret missing + */ + BITUpdateAPIClientAuthorizationMissingSecret, + /** + * No internet connection + */ + BITUpdateAPIClientCannotCreateConnection +}; +extern NSString *const __attribute__((unused)) kBITUpdateErrorDomain; + + +/** + * HockeySDK Feedback error domain + */ +typedef NS_ENUM(NSInteger, BITFeedbackErrorReason) { + /** + * Unknown error + */ + BITFeedbackErrorUnknown, + /** + * API Server returned invalid status + */ + BITFeedbackAPIServerReturnedInvalidStatus, + /** + * API Server returned invalid data + */ + BITFeedbackAPIServerReturnedInvalidData, + /** + * API Server returned empty response + */ + BITFeedbackAPIServerReturnedEmptyResponse, + /** + * Authorization secret missing + */ + BITFeedbackAPIClientAuthorizationMissingSecret, + /** + * No internet connection + */ + BITFeedbackAPIClientCannotCreateConnection +}; +extern NSString *const __attribute__((unused)) kBITFeedbackErrorDomain; + +/** + * HockeySDK Authenticator error domain + */ +typedef NS_ENUM(NSInteger, BITAuthenticatorReason) { + /** + * Unknown error + */ + BITAuthenticatorErrorUnknown, + /** + * Network error + */ + BITAuthenticatorNetworkError, + + /** + * API Server returned invalid response + */ + BITAuthenticatorAPIServerReturnedInvalidResponse, + /** + * Not Authorized + */ + BITAuthenticatorNotAuthorized, + /** + * Unknown Application ID (configuration error) + */ + BITAuthenticatorUnknownApplicationID, + /** + * Authorization secret missing + */ + BITAuthenticatorAuthorizationSecretMissing, + /** + * Not yet identified + */ + BITAuthenticatorNotIdentified, +}; +extern NSString *const __attribute__((unused)) kBITAuthenticatorErrorDomain; + +/** + * HockeySDK global error domain + */ +typedef NS_ENUM(NSInteger, BITHockeyErrorReason) { + /** + * Unknown error + */ + BITHockeyErrorUnknown +}; +extern NSString *const __attribute__((unused)) kBITHockeyErrorDomain; + + +#endif diff --git a/Pods/HockeySDK/Classes/HockeySDKFeatureConfig.h b/Pods/HockeySDK/Classes/HockeySDKFeatureConfig.h new file mode 100644 index 0000000..f7b32e4 --- /dev/null +++ b/Pods/HockeySDK/Classes/HockeySDKFeatureConfig.h @@ -0,0 +1,83 @@ +/* + * Author: Andreas Linde + * + * Copyright (c) 2013-2014 HockeyApp, Bit Stadium GmbH. + * All rights reserved. + * + * Permission is hereby granted, free of charge, to any person + * obtaining a copy of this software and associated documentation + * files (the "Software"), to deal in the Software without + * restriction, including without limitation the rights to use, + * copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following + * conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES + * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + */ + +#ifndef HockeySDK_HockeySDKFeatureConfig_h +#define HockeySDK_HockeySDKFeatureConfig_h + + +/** + * If true, include support for handling crash reports + * + * _Default_: Enabled + */ +#ifndef HOCKEYSDK_FEATURE_CRASH_REPORTER +# define HOCKEYSDK_FEATURE_CRASH_REPORTER 1 +#endif /* HOCKEYSDK_FEATURE_CRASH_REPORTER */ + + +/** + * If true, include support for managing user feedback + * + * _Default_: Enabled + */ +#ifndef HOCKEYSDK_FEATURE_FEEDBACK +# define HOCKEYSDK_FEATURE_FEEDBACK 1 +#endif /* HOCKEYSDK_FEATURE_FEEDBACK */ + + +/** + * If true, include support for informing the user about new updates pending in the App Store + * + * _Default_: Enabled + */ +#ifndef HOCKEYSDK_FEATURE_STORE_UPDATES +# define HOCKEYSDK_FEATURE_STORE_UPDATES 1 +#endif /* HOCKEYSDK_FEATURE_STORE_UPDATES */ + + +/** + * If true, include support for authentication installations for Ad-Hoc and Enterprise builds + * + * _Default_: Enabled + */ +#ifndef HOCKEYSDK_FEATURE_AUTHENTICATOR +# define HOCKEYSDK_FEATURE_AUTHENTICATOR 1 +#endif /* HOCKEYSDK_FEATURE_AUTHENTICATOR */ + + +/** + * If true, include support for handling in-app updates for Ad-Hoc and Enterprise builds + * + * _Default_: Enabled + */ +#ifndef HOCKEYSDK_FEATURE_UPDATES +# define HOCKEYSDK_FEATURE_UPDATES 1 +#endif /* HOCKEYSDK_FEATURE_UPDATES */ + + +#endif /* HockeySDK_HockeySDKFeatureConfig_h */ diff --git a/Pods/HockeySDK/Classes/HockeySDKPrivate.h b/Pods/HockeySDK/Classes/HockeySDKPrivate.h new file mode 100644 index 0000000..49b9d28 --- /dev/null +++ b/Pods/HockeySDK/Classes/HockeySDKPrivate.h @@ -0,0 +1,108 @@ +/* + * Author: Andreas Linde + * Kent Sutherland + * + * Copyright (c) 2012-2013 HockeyApp, Bit Stadium GmbH. + * Copyright (c) 2011 Andreas Linde & Kent Sutherland. + * All rights reserved. + * + * Permission is hereby granted, free of charge, to any person + * obtaining a copy of this software and associated documentation + * files (the "Software"), to deal in the Software without + * restriction, including without limitation the rights to use, + * copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following + * conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES + * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + */ + + +#import + +#ifndef HockeySDK_HockeySDKPrivate_h +#define HockeySDK_HockeySDKPrivate_h + +#define BITHOCKEY_NAME @"HockeySDK" +#define BITHOCKEY_IDENTIFIER @"net.hockeyapp.sdk.ios" +#define BITHOCKEY_CRASH_SETTINGS @"BITCrashManager.plist" +#define BITHOCKEY_CRASH_ANALYZER @"BITCrashManager.analyzer" + +#define BITHOCKEY_FEEDBACK_SETTINGS @"BITFeedbackManager.plist" + +#define BITHOCKEY_USAGE_DATA @"BITUpdateManager.plist" + +#define kBITHockeyMetaUserName @"BITHockeyMetaUserName" +#define kBITHockeyMetaUserEmail @"BITHockeyMetaUserEmail" +#define kBITHockeyMetaUserID @"BITHockeyMetaUserID" + +#define kBITUpdateInstalledUUID @"BITUpdateInstalledUUID" +#define kBITUpdateInstalledVersionID @"BITUpdateInstalledVersionID" +#define kBITUpdateCurrentCompanyName @"BITUpdateCurrentCompanyName" +#define kBITUpdateArrayOfLastCheck @"BITUpdateArrayOfLastCheck" +#define kBITUpdateDateOfLastCheck @"BITUpdateDateOfLastCheck" +#define kBITUpdateDateOfVersionInstallation @"BITUpdateDateOfVersionInstallation" +#define kBITUpdateUsageTimeOfCurrentVersion @"BITUpdateUsageTimeOfCurrentVersion" +#define kBITUpdateUsageTimeForUUID @"BITUpdateUsageTimeForUUID" +#define kBITUpdateInstallationIdentification @"BITUpdateInstallationIdentification" + +#define kBITStoreUpdateDateOfLastCheck @"BITStoreUpdateDateOfLastCheck" +#define kBITStoreUpdateLastStoreVersion @"BITStoreUpdateLastStoreVersion" +#define kBITStoreUpdateLastUUID @"BITStoreUpdateLastUUID" +#define kBITStoreUpdateIgnoreVersion @"BITStoreUpdateIgnoredVersion" + +#define BITHOCKEY_INTEGRATIONFLOW_TIMESTAMP @"BITIntegrationFlowStartTimestamp" + +#define BITHOCKEYSDK_BUNDLE @"HockeySDKResources.bundle" +#define BITHOCKEYSDK_URL @"https://sdk.hockeyapp.net/" + +#define BITHockeyLog(fmt, ...) do { if([BITHockeyManager sharedHockeyManager].isDebugLogEnabled && ![BITHockeyManager sharedHockeyManager].isAppStoreEnvironment) { NSLog((@"[HockeySDK] %s/%d " fmt), __PRETTY_FUNCTION__, __LINE__, ##__VA_ARGS__); }} while(0) + +#define BIT_RGBCOLOR(r,g,b) [UIColor colorWithRed:(r)/255.0 green:(g)/255.0 blue:(b)/255.0 alpha:1] + +NSBundle *BITHockeyBundle(void); +NSString *BITHockeyLocalizedString(NSString *stringToken); +NSString *BITHockeyMD5(NSString *str); + +#ifndef __IPHONE_8_0 +#define __IPHONE_8_0 80000 +#endif + +#ifdef __IPHONE_6_0 + +#define kBITTextLabelAlignmentCenter NSTextAlignmentCenter +#define kBITTextLabelAlignmentLeft NSTextAlignmentLeft +#define kBITTextLabelAlignmentRight NSTextAlignmentRight +#define kBITLineBreakModeMiddleTruncation NSLineBreakByTruncatingMiddle + +#else + +#define kBITTextLabelAlignmentCenter UITextAlignmentCenter +#define kBITTextLabelAlignmentLeft UITextAlignmentLeft +#define kBITTextLabelAlignmentRight UITextAlignmentRight +#define kBITLineBreakModeMiddleTruncation UILineBreakModeMiddleTruncation + +#endif /* __IPHONE_6_0 */ + +#if __IPHONE_OS_VERSION_MIN_REQUIRED > __IPHONE_6_1 + +#define kBITButtonTypeSystem UIButtonTypeSystem + +#else + +#define kBITButtonTypeSystem UIButtonTypeRoundedRect + +#endif + +#endif //HockeySDK_HockeySDKPrivate_h diff --git a/Pods/HockeySDK/Classes/HockeySDKPrivate.m b/Pods/HockeySDK/Classes/HockeySDKPrivate.m new file mode 100644 index 0000000..7cd5341 --- /dev/null +++ b/Pods/HockeySDK/Classes/HockeySDKPrivate.m @@ -0,0 +1,83 @@ +/* + * Author: Andreas Linde + * + * Copyright (c) 2012-2014 HockeyApp, Bit Stadium GmbH. + * Copyright (c) 2011 Andreas Linde. + * All rights reserved. + * + * Permission is hereby granted, free of charge, to any person + * obtaining a copy of this software and associated documentation + * files (the "Software"), to deal in the Software without + * restriction, including without limitation the rights to use, + * copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following + * conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES + * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + */ + +#import "HockeySDK.h" +#import "HockeySDKPrivate.h" +#include + +NSString *const kBITCrashErrorDomain = @"BITCrashReporterErrorDomain"; +NSString *const kBITUpdateErrorDomain = @"BITUpdaterErrorDomain"; +NSString *const kBITFeedbackErrorDomain = @"BITFeedbackErrorDomain"; +NSString *const kBITHockeyErrorDomain = @"BITHockeyErrorDomain"; +NSString *const kBITAuthenticatorErrorDomain = @"BITAuthenticatorErrorDomain"; + +// Load the framework bundle. +NSBundle *BITHockeyBundle(void) { + static NSBundle *bundle = nil; + static dispatch_once_t predicate; + dispatch_once(&predicate, ^{ + NSString* mainBundlePath = [[NSBundle bundleForClass:[BITHockeyManager class]] resourcePath]; + NSString* frameworkBundlePath = [mainBundlePath stringByAppendingPathComponent:BITHOCKEYSDK_BUNDLE]; + bundle = [NSBundle bundleWithPath:frameworkBundlePath]; + }); + return bundle; +} + +NSString *BITHockeyLocalizedString(NSString *stringToken) { + if (!stringToken) return @""; + + NSString *appSpecificLocalizationString = NSLocalizedString(stringToken, @""); + if (appSpecificLocalizationString && ![stringToken isEqualToString:appSpecificLocalizationString]) { + return appSpecificLocalizationString; + } else if (BITHockeyBundle()) { + NSString *bundleSpecificLocalizationString = NSLocalizedStringFromTableInBundle(stringToken, @"HockeySDK", BITHockeyBundle(), @""); + if (bundleSpecificLocalizationString) + return bundleSpecificLocalizationString; + return stringToken; + } else { + return stringToken; + } +} + +NSString *BITHockeyMD5(NSString *str) { + const char *cStr = [str UTF8String]; + unsigned char result[CC_MD5_DIGEST_LENGTH]; + CC_MD5( cStr, (CC_LONG)strlen(cStr), result ); + return [NSString + stringWithFormat: @"%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X", + result[0], result[1], + result[2], result[3], + result[4], result[5], + result[6], result[7], + result[8], result[9], + result[10], result[11], + result[12], result[13], + result[14], result[15] + ]; +} diff --git a/Pods/HockeySDK/LICENSE b/Pods/HockeySDK/LICENSE new file mode 100644 index 0000000..2900b9e --- /dev/null +++ b/Pods/HockeySDK/LICENSE @@ -0,0 +1,124 @@ +## Licenses + +The Hockey SDK is provided under the following license: + + The MIT License + Copyright (c) 2012-2015 HockeyApp, Bit Stadium GmbH. + All rights reserved. + + Permission is hereby granted, free of charge, to any person + obtaining a copy of this software and associated documentation + files (the "Software"), to deal in the Software without + restriction, including without limitation the rights to use, + copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the + Software is furnished to do so, subject to the following + conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES + OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT + HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + OTHER DEALINGS IN THE SOFTWARE. + +Except as noted below, PLCrashReporter +is provided under the following license: + + Copyright (c) 2008 - 2015 Plausible Labs Cooperative, Inc. + Copyright (c) 2012 - 2015 HockeyApp, Bit Stadium GmbH. + All rights reserved. + + Permission is hereby granted, free of charge, to any person + obtaining a copy of this software and associated documentation + files (the "Software"), to deal in the Software without + restriction, including without limitation the rights to use, + copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the + Software is furnished to do so, subject to the following + conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES + OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT + HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + OTHER DEALINGS IN THE SOFTWARE. + +The protobuf-c library, as well as the PLCrashLogWriterEncoding.c +file are licensed as follows: + + Copyright 2008, Dave Benson. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with + the License. You may obtain a copy of the License + at http://www.apache.org/licenses/LICENSE-2.0 Unless + required by applicable law or agreed to in writing, + software distributed under the License is distributed on + an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + KIND, either express or implied. See the License for the + specific language governing permissions and limitations + under the License. + +TTTAttributedLabel is licensed as follows: + + Copyright (c) 2011 Mattt Thompson (http://mattt.me/) + + 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. + +SFHFKeychainUtils is licensed as follows: + + Created by Buzz Andersen on 10/20/08. + Based partly on code by Jonathan Wight, Jon Crosby, and Mike Malone. + Copyright 2008 Sci-Fi Hi-Fi. All rights reserved. + + Permission is hereby granted, free of charge, to any person + obtaining a copy of this software and associated documentation + files (the "Software"), to deal in the Software without + restriction, including without limitation the rights to use, + copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the + Software is furnished to do so, subject to the following + conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES + OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT + HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + OTHER DEALINGS IN THE SOFTWARE. diff --git a/Pods/HockeySDK/README.md b/Pods/HockeySDK/README.md new file mode 100644 index 0000000..a53b55d --- /dev/null +++ b/Pods/HockeySDK/README.md @@ -0,0 +1,50 @@ +## Version 3.6.4 + +- [Changelog](http://www.hockeyapp.net/help/sdk/ios/3.6.4/docs/docs/Changelog.html) + + +## Introduction + +HockeySDK-iOS implements support for using HockeyApp in your iOS applications. + +The following features are currently supported: + +1. **Collect crash reports:** If your app crashes, a crash log with the same format as from the Apple Crash Reporter is written to the device's storage. If the user starts the app again, he is asked to submit the crash report to HockeyApp. This works for both beta and live apps, i.e. those submitted to the App Store! + +2. **Update Ad-Hoc / Enterprise apps:** The app will check with HockeyApp if a new version for your Ad-Hoc or Enterprise build is available. If yes, it will show an alert view to the user and let him see the release notes, the version history and start the installation process right away. + +3. **Update notification for app store:** The app will check if a new version for your app store release is available. If yes, it will show an alert view to the user and let him open your app in the App Store app. (Disabled by default!) + +4. **Feedback:** Collect feedback from your users from within your app and communicate directly with them using the HockeyApp backend. + +5. **Authenticate:** Identify and authenticate users of Ad-Hoc or Enterprise builds + + +The main SDK class is `BITHockeyManager`. It initializes all modules and provides access to them, so they can be further adjusted if required. Additionally all modules provide their own protocols. + +## Prerequisites + +1. Before you integrate HockeySDK into your own app, you should add the app to HockeyApp if you haven't already. Read [this how-to](http://support.hockeyapp.net/kb/how-tos/how-to-create-a-new-app) on how to do it. +2. We also assume that you already have a project in Xcode and that this project is opened in Xcode 5. +3. The SDK supports iOS 6.0 or newer. + + +## Installation & Setup + +- [Installation & Setup](http://www.hockeyapp.net/help/sdk/ios/3.6.4/docs/docs/Guide-Installation-Setup.html) (Recommended) +- [Installation & Setup Advanced](http://www.hockeyapp.net/help/sdk/ios/3.6.4/docs/docs/Guide-Installation-Setup-Advanced.html) (Using Git submodule and Xcode sub-project) +- [Identify and authenticate users of Ad-Hoc or Enterprise builds](http://www.hockeyapp.net/help/sdk/ios/3.6.4/docs/docs/HowTo-Authenticating-Users-on-iOS.html) +- [Migration from previous SDK Versions](http://www.hockeyapp.net/help/sdk/ios/3.6.2/docs/docs/Guide-Migration-Kits.html) + + +## Xcode Documentation + +This documentation provides integrated help in Xcode for all public APIs and a set of additional tutorials and HowTo articles. + +1. Download the [HockeySDK-iOS documentation](http://hockeyapp.net/releases/). + +2. Unzip the file. A new folder `HockeySDK-iOS-documentation` is created. + +3. Copy the content into ~`/Library/Developer/Shared/Documentation/DocSets` + +The documentation is also available via the following URL: [http://hockeyapp.net/help/sdk/ios/3.6.4/](http://hockeyapp.net/help/sdk/ios/3.6.4/) diff --git a/Pods/HockeySDK/Resources/Arrow.png b/Pods/HockeySDK/Resources/Arrow.png new file mode 100644 index 0000000000000000000000000000000000000000..1510ffb26ecb42ba3a486d9dd6188857a9c0b0cf GIT binary patch literal 231 zcmV*0zlXO#KQXfL>1-@9 hD1l`!apULUw!e>9S-m{e3D-kdhKm^(KgoK9=R+ZG;U27@kh3bH3MG%r;3m>9@=G z{D05%TTyd9pIh~OY1WySyVoAub1X5Y({k%Uo`{bNI<6)9eNHgz*l8{HckNj=!~Nzj z9n+0prW?0dzPwkp+hTrpiSfzgI3bp|PalR%S3k}3?8-kauB348msPn3wr#(i!#eX? zPRG)88=Ds_Gq*8KoA+^Alh12|t%^<}DYx{d{qq*F*_7u~ee38wr$?G6Ox9hzvZ=bx zC-ZOMgv|E~6e2vD6YSm=hl-`#3fF%t+H~W%(=1jFv2E)w8nR|fa!muHNhkZ7Qg*zw YzqePb=EZa6C!px`boFyt=akR{0MuEhCIA2c literal 0 HcmV?d00001 diff --git a/Pods/HockeySDK/Resources/Arrow@3x.png b/Pods/HockeySDK/Resources/Arrow@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..2ef52abae4d12e75051ee3111bbd2106c38fcec1 GIT binary patch literal 678 zcmeAS@N?(olHy`uVBq!ia0vp^en70t!3-qLMb_R1Qo90tLR@_^3xUj`2x?n8{s7%= zTN30K%&_fM!!HHVSq=yI!dA0CoXN)W`)%kdw>tqEe?MLm)SI|Z%p>=aYf0&A`5bqB zp-Fo`Oqr^7HI>)?k7nT3+gtv()iE$I#(BCphE&9@oqRorDNw+Lowdx6k&B5y!fVg3V%l{&HO-Xq z?$dQ=f*3;20Wn`gU(wUXpT8E(t~QJ2yRlMuGysIk1(D_PS%#wpW|txMR;faS%2Nn0}Qf(RG(a zV(}4&sjF|^zBWhC?}WqLzdK7bo4qcGG8IJWsZG{>jOkB3 zrmL$Y1oD-f_R|1S-u@a7CNr!!EnE~aU0r5-1Iw;dwI^>T>G@aKe|dS%KjQmKt?lKr z1WK(L9&pzG;)|UjP`aDr0jIsmLiccCyPjyf*r%IkeE1lD*Z9iQHEvO|d9$ v;`M@!>*lM)+V_^u3^STL#pLC$46pCv8*OUVedURs3rcF9u6{1-oD!MS$q&Ne7LR@_^3xUjK%a*AmyY2z9 z7)yfuf*Bm1-ADs+)ID7sLn;`PId~(tDw(t#Y+TxSxRF(!HJFpt!EC~LhAE7v9xYy= Z#W-JI{5qr5_7^}c44$rjF6*2UngGt+BdY)a literal 0 HcmV?d00001 diff --git a/Pods/HockeySDK/Resources/Blur@2x.png b/Pods/HockeySDK/Resources/Blur@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..baeb348cb11958680468905bc196e1a9e95647b2 GIT binary patch literal 142 zcmeAS@N?(olHy`uVBq!ia0vp^dO$44#0+AsJ;Dj3I0Jk_TzxVNfy`ygmZ>DW?g6qG zOM?7@862M7NCR?=JzX3_Dj1VFczJmvwq{*r66ig}nUKH{ap1rP1`mE7_Ws)i%rk_5 jqK%T=OW50*Z|5?I&r6S$Yfjq<)Xw1P>gTe~DWM4f48|rC literal 0 HcmV?d00001 diff --git a/Pods/HockeySDK/Resources/Blur@3x.png b/Pods/HockeySDK/Resources/Blur@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..6fb62ad58112aa8ac259f27ad6df9f46c0644896 GIT binary patch literal 149 zcmeAS@N?(olHy`uVBq!ia0vp^u0X8I#0(@`UHp216lZ`>h^tR#A&|Lj*)o-6*F8WM zV@Z%-FoVOh8)-m}m8XkiNCjgu2Pn{URLIFM@u0R?Hd@>6m3?TVDVCe}U z#aa^N7d)4dVNOFb?-6I9K!vA^V@SoV+RKi72NXD5E;>H_7oIm;sJ@jg{P3RM&J`O| z9zUOP?Lra1@3Va>?*7FmFXSu>EDcu@+r3d^ai1Zt7pvifE`~+79ZIA-k`%gB=kTBF zk%-baS-yC|-mR@o5)Ye~t#C?JD9iev@;5oz^*8I`RolGp*0pm>7qat}u&q%9xzN+q K&t;ucLK6TmWK1Lg literal 0 HcmV?d00001 diff --git a/Pods/HockeySDK/Resources/Cancel@3x.png b/Pods/HockeySDK/Resources/Cancel@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..60f979c3255dced0580cf942d37e3cb6829ba44d GIT binary patch literal 294 zcmeAS@N?(olHy`uVBq!ia0vp^S|H593?x6vT4n+%(Ey(iS0D`pKAD9O286uvj6D>{ zVk-&q3tq*-u(Dxwf4{gaP-K^O_N%? zr6z5oVoTkrfCv`nL_w~lt`0s;sTw+|8gG=GGnK`?q<03~@(8+hA|T?#^O8N!()T3E z%XLpL{m=QUeQ&&8t>8WVxBC*`ZBbNxJ3pT7$;zur(yLv~!n$+TD6L6>>94d|v_bp{J{#%Q~loCIGv&ZqWb$ literal 0 HcmV?d00001 diff --git a/Pods/HockeySDK/Resources/HockeySDK-Info.plist b/Pods/HockeySDK/Resources/HockeySDK-Info.plist new file mode 100644 index 0000000..40f206f --- /dev/null +++ b/Pods/HockeySDK/Resources/HockeySDK-Info.plist @@ -0,0 +1,30 @@ + + + + + CFBundleDevelopmentRegion + English + CFBundleExecutable + ${EXECUTABLE_NAME} + CFBundleIconFile + + CFBundleIdentifier + net.hockeyapp.sdk.ios + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + ${PRODUCT_NAME} + CFBundlePackageType + FMWK + CFBundleShortVersionString + ${VERSION_STRING} + CFBundleSignature + ???? + CFBundleVersion + ${BUILD_NUMBER} + NSHumanReadableCopyright + Copyright © 2012 HockeyApp, Bit Stadium GmbH. All rights reserved. + NSPrincipalClass + + + diff --git a/Pods/HockeySDK/Resources/IconGradient.png b/Pods/HockeySDK/Resources/IconGradient.png new file mode 100644 index 0000000000000000000000000000000000000000..e7080b884dcd2b78bc9f6d944903efc3be81aeb1 GIT binary patch literal 750 zcmVx0008DNkllD?vCAY^^P{@ei=n+ET>AP6Ta? zQNdFS8xbMKc--j{5_6l&?(F<}=KFPb?vjBm4wc;pO!fuO6b}!)`P4%=r_1F_`D@ve zHpCPe368@Z{t#c|9#Y(8Umm`GdNmbmRWLxZzL*{nW=gfOy717O_<$72Tfe`N9C?Hp6V>2B(|Lu8tsC$5 zd?Ro{wRQCyI@rFoCItvilvpv`?c@mo3MUjN#PLuS4vBDCioz)_EF5Di&XYyyKIwjC zc_~)r$$K%nn?e%b+EoavC$OF-7vD^Q? z$Dm*Pzr_zXpNQ7OW#5oOr#`XXs)bv8r^jaKwO%91id7nJ;h)@$PwWv-mx%BOzjBPqf zTB*mNHj$i21Bp%0JHKV}4U-|RRy9nixsH>fR*TUQL2WX0-{eHRX4TsJz9jr3Z167- zrhpkUF;52bmGk8PD%rRcE5rH9i?foTj+2XIohCivmY-yBM&KJ>%MOi*yJSoFsV~2K zE`fm?Hn?(wx2_*<>}^s42b5a$^jG|Ix$#-nIa;D@_CbGPV|#y(J^`@)$o{qC2au3r zMnvHU!K2?k|0(od<$AmKLT@u8DU3|}4}uzEkE33+gCDA!&vB-CC4DCAP2wlP g?Qqxphyf~p1H#BZ@9YE-g#Z8m07*qoM6N<$g5u(6&Hw-a literal 0 HcmV?d00001 diff --git a/Pods/HockeySDK/Resources/IconGradient@2x.png b/Pods/HockeySDK/Resources/IconGradient@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..34f28049d457400944f478689e03031763095c07 GIT binary patch literal 1287 zcmV+i1^D`jP)Mu_F)>(#Xo^$;!BX2!+v%Nq=iYl>q{V2-w1I@C&OF{v(m&wa-+3~# z8-ZoGPWNQ;EVhe2+Y5!(Wz>xQQ;w>`>Klx}VF|*anSM;aE*`YyIE@pXH8N|_vZO3} zMt>6m&07ngpno$06H?&@rkInl0 zNi(oiq%Eoc5}Bu`hSHjKV5woodk0?;;h~WY+JG%m+f$m|Y(ne6mNC_Cnn*O~MmRT- zP@EbE*5Z`hHDJv-GS)JWG?uh+;LU+7`{ybISqtWzBkRE4|0B{ku*c^n^Ck1=$^$tE z_DC~{%$GFzM+gJ?l8oeE>)J`aq|U#fGmw9Tw4Qv){3dn&TzQ~N^$h`7`y--HE^ZRX~9%QzsRqFIVa*MrKZjIx>--HVuQ@Lby#0 zGiH$fd%=M$$P#%XP(?{Hkbshb!m=WhSVCkI6WPpWuC5asS?jQZ2rJ6E(1d0x!!pXM zAc4e&2CIm$szMVQtU3w)Kujz1B^k&g8OS3U$RjCVl7~E!i~J_J$e$}0`I21ZOL9Rf zUy_0RCK<>h8OU#vfjp9d{3aR5BYj~VSd)SX4!j9aQ6>hg6(kji5)*1wRrc*?($e zl14CeaBjP!h6X!D>eE990U83LzAy9(RcL0JL>1MyZz2L{0sw|9o7}EYW)^ICvMej# zC<52^Q>M*M%*ic1$vbEYrGQupbM=m$>dJap={_yXsam$Rt^kYkz%WFWeHpO>pFy z=?6lWwe_AtdQ=v@-{AoMA-=|9Zfo{@y))9OKs5Iy8!#OM>4&z3TixUsm9*sNV z%o*d*Hk1&m!|RB$FmKF6Sa6jhv4*+4FQ;9e;V`XZyYE^;FgP z>$+SpwDwu-X@^@^-KFM6UuD+{p8t45{a^mD45e4?v#h0o7BP6b`njxgN@xNA7brA4 literal 0 HcmV?d00001 diff --git a/Pods/HockeySDK/Resources/Ok@2x.png b/Pods/HockeySDK/Resources/Ok@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..64bb178d9c2653503e5fa5d1fb19062c229c17bb GIT binary patch literal 300 zcmeAS@N?(olHy`uVBq!ia0vp^3P3Ew!3-qLWqbvIlxu)bh^tR#A&^NS;P~=p4$ug( zk|4iehH|EjCo4|v3I5cRWx|IIEGZjU7dK4k4ce-RrJWF z1Djs2`uu}W0l|sCdS>|Y*!`XV?ZAEboFyt=akR{03!ibQvd(} literal 0 HcmV?d00001 diff --git a/Pods/HockeySDK/Resources/Ok@3x.png b/Pods/HockeySDK/Resources/Ok@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..042d3fd5509480c8068de93f6e82ae2175cd5e7c GIT binary patch literal 363 zcmeAS@N?(olHy`uVBq!ia0vp^20*OE!3-o1P1NuJQh@pUuydOxRz{I?%{{K#E~2gC$E-xJ72Qp<>@$k{_A{Qk-lXD`M>`<8 b`^Q=TwwoODO~&)9LE+`;>gTe~DWM4fJ7;c2 literal 0 HcmV?d00001 diff --git a/Pods/HockeySDK/Resources/Rectangle.png b/Pods/HockeySDK/Resources/Rectangle.png new file mode 100644 index 0000000000000000000000000000000000000000..af0b1ba94881c3574294ee15724185c29219c81f GIT binary patch literal 125 zcmeAS@N?(olHy`uVBq!ia0vp^;y}#L!2%?gE}L@~NV#~rIEGX(zP)6~ctC-N_2Tvi zNbP0l+XkKH?A-W literal 0 HcmV?d00001 diff --git a/Pods/HockeySDK/Resources/Rectangle@2x.png b/Pods/HockeySDK/Resources/Rectangle@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..23819fd46e891ccb42846a30bb3874373b71c37a GIT binary patch literal 282 zcmeAS@N?(olHy`uVBq!ia0vp^dO$44!3-o*Wbdp1QceLrA+A1|g+L}HU?VTXHK2ac zk|4iehSbO>pFc@4o{-%0c<*uHsI-&_38A>p8y9B40#mrmQyr$#w(lbk% zf-knT%>H67|MP_VztWmWalgQs&TkKUioVBgV8KO V^!BkFfgK?4dAj3&6nM$D%f9#UE*Y09dMNGToCg)tvgQ+oN5m5k+PbaAadAYC2LC8 z#Dh)^j~G^d(hUt#1*50--@nYi$0K{C>tf?{R&&icr58NXZ-_jc$mlmIFT3C#%U;9d zwiDKW*>GD(`Mqhjev5V7*R)#6FZ>o)TIao6^~@)FYG$kwC`dhB{an^LB{Ts5>fC{9 literal 0 HcmV?d00001 diff --git a/Pods/HockeySDK/Resources/authorize_denied.png b/Pods/HockeySDK/Resources/authorize_denied.png new file mode 100644 index 0000000000000000000000000000000000000000..4aed19ae14eb30e36851f30c142c936503420151 GIT binary patch literal 1459 zcmXX`eK?bA7@y4y`!HYSgsG6vm7G52;~dR=t#E`Sl^i)r`B>$YV>)9~C{DQIn4F9g z)nc2OuWj1iY>87iROlKek?LGH`ARA0eRsO9`@P@i`8~h;_q*@sk0&oA*dMFEK_3Q# zVW|N=q2Qkeeso;~m~X5sh+!}-pOCn>7R;SS3*k1PU-$R>~UM01Z>o(*6)cKpoHyL>i=02$z6T ziYAG&Q3{Bp8f6HC77PZXS*mD~LZ%?n*xJ!722G)(uNf@V5V%|!#Dt_YN6iXQ3hGKD zE)ah$;q$>(|F4A*%{Wk%MjskeB$h+C2%>3xL2F1y;|S6^8d@L(>=|ksl7d1g6lxaG zg$N}b{8j**)X+Et3C?*sH8eO3Hd|vbtU@9}SMBDv%zfE-^{6}PvvC)8r|u?M`+-Uw zt)ca!+wTc?k;mj`9>E#DBm8Y%t#^UN!k$FT%|9!CwT@x$JG)_g0MB97_D3Aa?u~D9 zs59%J?ypW?`b2Z0m%VCRDbWAN@e0AReg3x+7!1)!^&y9+MT`2MoZ3t_xjfD{bvT@O zW8H+8pRdV&6I(w+)3p<3Hd6%naK)#w-uKt*@AA02dOtcv<4iCsITQEKzhN*gUR>VR z^!Z=)#Bv4mA$z969MF?-ME71#quM_5vR`-CP2JjY?58=;fkRoFP25RL&v?dHx1c zyZZFXRJ)yyXcc~P|CO1HC=;g(%WZj{gl;>P#N5fnX3MxL{;E~d?(tVX^1u%aoJYu8 z%$w(Mzy7Luogkl+IB);jA31LeAAdvXAT8X{PpS?OMy!hx5{pfdsYL2hX?E=^^RCjq zr%TD{@E3}pzfV(o%WdjyFsn&LaadwlG3k(5m%9zyyEDJc<8oEQzC;}?8{VLmkIgl8 z&28SiEAc_(xq!q=0X1&DBRJ>OBe> z=0PTIEX}F$Y=E7@-mHxwDgm9RJ)V}pi(J+T`xQmEAY#iDWl~Q0L0&#bO3Umn$~mg& zn^YS*(g|NEn1i^Ps?dpXRIDy3lGSZRSi)1TvDV*N_?fX@#GqRltfmYGM}_HCyI?9$ z9=<{hI_}|9FnCF~V54sPsr2#wJnf3keEU)QyR}(FRv+ciU$b$BV_tL4?@V6j#&^5e zx(o#D^qo%nwz%r?@=4VvC$^A&j6)n2mZWHlEs7q|m>0>{iktk)-!sEp)5xsA=sue+ z3v?PHh2up-lS62z@6khf8Lsn|q@nZnr2`L{Bd)fN7m8vI78Xyxl%Hqw!jn7pI`1qbm(F&f%L80({&sbZvou>h~HfA9Prq!E1htXPl2Qct`11y4e#xoWl zPpd}_;zOcSM}1@EUhXsuoH#Ncm$fG$pZAM3Vs~tYD4f5TWl>GwQu!YIrffF=+|VRFKo4Dp1}xB#27o&%&A({IOzvlr=#qKcJ}nkj zS*Dn^SKxM>e8JkyVkVqz~&*V`{ZCu1CNTACUU9I-@M=ECF?)5f)Hy)tiy4 z&lzRtu%e9?1e}s!W&&D&iF(%n`MYClHj{3uq5uW@$sF}w})@35`x z<>=Yn)CITpe6=iGEmLxCKFLV(zCO`*d-%&EWuM*s<5LR|7`%4ff%A$1wi` D@89sa literal 0 HcmV?d00001 diff --git a/Pods/HockeySDK/Resources/authorize_denied@2x.png b/Pods/HockeySDK/Resources/authorize_denied@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..1f5eed40ec606b6ed6f01003c8769caed04b99be GIT binary patch literal 2847 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 WP|WIkVZgsHA$zow&0TAM!v6tJxG?kp literal 0 HcmV?d00001 diff --git a/Pods/HockeySDK/Resources/bg.png b/Pods/HockeySDK/Resources/bg.png new file mode 100644 index 0000000000000000000000000000000000000000..2f9358611b1d46dcedfcde0ff13c399e408c85e4 GIT binary patch literal 236 zcmeAS@N?(olHy`uVBq!ia0vp^KsNIM4kjS0`E>nKAhp@k#WAFU@$DT)uI2y%7su9} z|1(9)_uDqUYja$a!#zpiQ1-9#c5>t9L0|au4sOlXcmg$0U;XSlzGbcYGFeSRy$*MDM)ew(A?FC9JtG zp)I)Wo58hw^JE#Z9>Z@H(me{E+UZ8bdh?n}boV>jX^OZ8Ys>^J;&hS7}8@Z0Bt kH=9^N=6diRE3RR-d2G97=ArznK<6`fy85}Sb4q9e0JRWh>;M1& literal 0 HcmV?d00001 diff --git a/Pods/HockeySDK/Resources/buttonRoundedDelete.png b/Pods/HockeySDK/Resources/buttonRoundedDelete.png new file mode 100644 index 0000000000000000000000000000000000000000..339bb51782ab3e7bc03ee1b0177979418c10465f GIT binary patch literal 626 zcmV-&0*(ENP)WktQZAPE2K|PnER3Bu2zQX=@0z zh$z%I3OLop&FX-gk%i=VUCBd9?nWZ^o{UfUown&Y|Dg%^-E#+sCV?qhr!RCU0Z`*> ziEe6#&`85^7dV>&66w}fTkYzy%D{kChllO+$cX5@ZTI)vN-SpD(XMU?$D9vbx)cDG z@941Io*w(y*LNcAXjeB$;4&e^5t;=qGHj(t#42rVr=lC(szD%*P{6+;V0(Y5NNNxS z8cE>lV=XjE4fd|p!?d;OA*@CcC=(Qo-P0GIsHG-YA7Ahoej5H9;D|4K4ChJzSm3x_ z@EBH0&Hv$lA-wB_6V7`K=iTs*AC2LP7fv|mF`RS5+g>=~Wxzgovh0T6`_UMF=YXJf$FN!{-~u>sKN_vB0QRy;YOwW*0FC+X?umzhtv5-H`QF|e1ZYTcZ0ze& z6H(o+j*fmKh=yQqX6AYdupGTOr5vSbCy|&Sh(=vClgS5wJ)zPc1WVy=K-F}*KscgN zXJ(Ou{rzk?9=Eyh=ovkywNQ}?G*8+oPfnU{bW1p*;W|UNe$;9|E7Q}K9UQbwd%FdI zrCM6-L1(AshK6h}kudHYXg9pU$>C$?Xo@!IJLx&38m&=0+<{Ae0cJgL7gxZCu>b%7 M07*qoM6N<$f@OptYXATM literal 0 HcmV?d00001 diff --git a/Pods/HockeySDK/Resources/buttonRoundedDelete@2x.png b/Pods/HockeySDK/Resources/buttonRoundedDelete@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..5bb10e0f58887c0b8e84c675daad21d1e9fb586c GIT binary patch literal 1086 zcmV-E1i|}>P)n)0|&y%gy>B#_8;)-RS%vtAXEryD?fsvCWZ=F z1#FS3t^9~lF~oycniygbH1YYq$xL@M*Z?ctPLti_GufGa^WKN;Y?q`%UXKo<(_KU% zAu42q6=7Xq#kv~HsF)Du2;_mC1$PtGcM{!@qDg^0l0**V5@>sDGw2pkl@tiO3qGi> z=Fy`^`E^qhFPuBaOD!$D+}g@t+u8umF@|f1K`iE&(qZHlXbZLukiY(tBwW(TM`~;N zO+y2JK6};+n2Q{4*(KBvs4!bxyi3%h6AskWaQegvUO07XS3oZ0)cH|Mpnp?f@H){x znLH$Lc+ValJ9v=a*VPpRc-x8O1`I_kmUu#ghweI|w4O4fM5oD+Oa=%;%e6HCOn5*3#35Y-3-&;Z=g zZUhWqLWvpNv;@$oHx4dUVe2BGIHHni2?- zX9Vs;fMxV4S^U=p(GWT@3q@l}6pj#$qLZ*tG~tLwA(};J#zN5Gr36?8Hdie{V# zDo4_6pfhKo=$s?EK{x^PmZJRv(Lgj14MYRcKr|5jKhZfG2}J!6eQzUys2`$P8wo`H z5Y5;~S&P22k+K$jYa@ZEAEIw;q^w2LHd5B2vo;cl`XTz-M#@@r#zx9oG-V@YEt<5E zK(v^m`bXPo;gw}f8$a5vpfhQq=%gc>%Wo{05T-3-!q`|4Mdzu7qEC&j8XC=5KaNb;GvK}#BN6NCL0iT0aY-poye+S$Q}^VvK$x*KxCJf0&+b>ZUt(grm9UQXbN#e`1mCf z;YY`gvzPp-U6cL`NHTGOcxP%gF zEUsb(^t;=|)Rimvs2Mf1q*qbB3_1n=@$DPWUc1Jz=4KS~1m+?Ka;c+J)gZ5;CN08e zojtd(z#lp~IC1eJKW=Q~zC(vNTv?eH!a2rp4Kaw#EiSU__+&iYyCw=Mgmxh%{NbG+ zn3GaD_6bxBQIq3BNQeqqAt!9Oq&C!8R>fRZbI1#S0as*DJrY-ryZ`_I07*qoM6N<$ Ef>{>fI{*Lx literal 0 HcmV?d00001 diff --git a/Pods/HockeySDK/Resources/buttonRoundedDeleteHighlighted.png b/Pods/HockeySDK/Resources/buttonRoundedDeleteHighlighted.png new file mode 100644 index 0000000000000000000000000000000000000000..1994e7ad7e0cd02c9d8b2c60f033ce5cb81c9604 GIT binary patch literal 720 zcmV;>0x$iEP)ufWnNgE(8it+oW`QascK(mzJ#;nZh z9@#66>L)&Pjvqw&B=i1|*SzkDNE!ifmH=7k{dwNJtAmR>G_QN55dt4V4Ihzz-RpXu zi@P*KgCs3!%K5f+@M4_uw6sfkZFJ~yfJ^qGp3{<%G&)KCV<7|v8Fy3Gur@-$CS=L* z;xWB6l18RF{KOuXhCjS)@`mTE zVQo~x0gx>}anY#!#L|TPV9DsgTf@@OFQIny0EYrz>!%xo{-k#I86|;RD7D6T9$zkTHP+HGb0-PI5}A$l*v-zoZJ6vb8|7D&AN!g zF-_BohKm3Eez-{yE%f#}*&}-iWwKP;N0)z=O25~JhTN^jMt7yQ*2z<4YHHj-U7fqr z)Z~&lcAWVmv$_Y~u*X5_r+4&&6$z4v#2|L-4ZWN>7S@J3+(YpA+f#>7>D zIB9|;f`9w)rVrrfGtxh* z$K?_wktckDS2E0X>j<&puYBnL`irxYA((Ko&CL8MlrL`}94p`?U=7#+rvO{P4mb_i z0}g;A-~>1?w@tLV(iQQz8$kSv$LiIdz&XGRI1hLOJ^)ip>{q}S@B=OY{y+dgOdybe zjLan<2nZ%1Cl>;Q0%1Tn5CKFH*u6U%h#|%ZTqdBZ8VAG!SAYZ{5l8}(ffOJWNCU0{ z=|BdM31ks4HO&TcfLsC=7J0xmARj0oU~5~rJkLTqyCR?%xDJ#6rN9lK3}6A}Km|}q zz}veDs0MBVH9#%E25tejf!~2Uz+IpYs0SK=M&Mp@@`L>R=Z_w}=<9pM;c(~Yi6tXu zyD>gW7r;I*V*?ZLlgMO2p|2z;o44=KrkYtgIXg#0CZwdLT}{u-EGW2M@<&TcM^|_E z;Lz~n(V5xVxwl*%@8jg&nw9z-2sSf!ax>gSS zhZ(7>q-4K`kn-UtR+xUf=(cr@w3#9QGL}d*Gi<-d$ZV)w zcZucVVtGSJw~D{yi_HwJu0nRGM%si&d}mpuVo$)3?|wG-y==#~xt`O9ayny4r13^( zA1Po%v6R!q*rAlC@^;23wQvd)OU1)5i84Eum49QtC#D>U|ZyfsuWUQIPk;+SNXVe=sh9|QtN zee{sO$G~u7JSbJx-ox^x39hpB)F>&)tB~jwa*;QS$ zu7eXHXPVj*V)SP!MMz)I9Fz|_Fv^k*lWLNrR^$!oZyldgbN4PCT;eIFENFD5g?JnM zBopFtJ}*$|AsMZ~#eK90b*D={d6Rp^Yz{^}rtC0!^Dsn1T9CauQd+PpI8K%!%BAQ9 zz1MK+6Q_)>&G5hJTF;`5Oux1WE*fsBQnenos2i9zSA2o~ z)`5rg!J!Bj^OGIZ6%*qnW&+_dKbQ%epjspz&)LPgAE>;_^L~z(#B>a;U0&xH?V9~1 zGx@}$Qr!w#dg9`nY%=~Ss4^(BqsWE`=|ooPnK_#7X(oqAK9^TY$+iDkVQsMHv~}$> zKX$FA@l=gHF8Fq`ObW5NHGQ#8 z&HnXHdprwMm$Espw(LtEPiRxpnd8NdJk%ga6J zh*}m$F6ys02^?l)Na(qg;i-&Xg;>J?DbBs@?wO0lzr4@RG6)YA(~&Bx*{PRQ#7X#| zT(`gtSL?Up+w0T7;|NJN)5LwrmRn!T_BI}IyD;3dn_g=D)=zmvE#t{Ry4zc>?f$HQPGXaTs%@afI&2g4A04W$K>z>% literal 0 HcmV?d00001 diff --git a/Pods/HockeySDK/Resources/buttonRoundedRegular.png b/Pods/HockeySDK/Resources/buttonRoundedRegular.png new file mode 100644 index 0000000000000000000000000000000000000000..680a7e4b1078be203b7483235abe17455404d97a GIT binary patch literal 448 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 TiNST200000NkvXXu0mjf#b=6# literal 0 HcmV?d00001 diff --git a/Pods/HockeySDK/Resources/feedbackActivity@2x.png b/Pods/HockeySDK/Resources/feedbackActivity@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..26a308da61ecaaf61014275b60203c63433b5f02 GIT binary patch literal 861 zcmeAS@N?(olHy`uVBq!ia0vp^0YL1;!3-q7UtGw~z`!UH;1lBNlUWE983o88z;XRM z8;~De666=m(D(T->!+()SN=@u*Jk6Lqcic*PZpsUgWH@S7)?yKX&0j1>vwy5`lmjK zyc7LiVYl<^7p$trk~_pdKYQ+!@RQAV_VELkwckH;dlC8U%DiXIrSlhko4v3+cj~e{ zj(f*%#M~(6mNGez?OHtZ=guX(mu>dUJoB{X+VfS*o-1$lKNu6Iyn6ZG`h~e7sjbB) z-+Vm1eC+xrR=)Vd%#`b)y=sAf4Ele z`rP`!3-ojq&DU;Ffh3V_=LFnWEKKNM!{$ZP!a;x zv*)}8>OWW#z~X(yz<3Gg{3jKRetXx8;K9_01b^WUjG&G%e&x&&lm;FW)OawT=H^ zLGt$r@`jT=*H|zxFtd8PIEGZ*dV3=^SlLma;bB{g^P~v^Oa~tpd_Qa{!?*qL*E@H? zAoltEyPIxmowzhxCo#?L?(dDOx6fPUd-Yn%fw0I~@0;%>=uhX;i!sta!{xWTyvN7* z|4qM+hYC&$8SLHNoER5g%460L_tOwvn6pM@3zyB}jweD{b3={3w8SmrIdI!Y!%X-? z*##FPM*V4OMUo$EGL`QApSV)V&~5(4p4iu?ZYXxTXnpykX{&uC_mP6fakj`5b4!~O zEH_i^U%gFlR5_UzUnQYn`srah+ljiLA1<5!@{pML+*$sn^Apw!?maH|!hd;aPJHeu z@A58_{};Y!)V#0U@Fo(A%n5gNno|T?GlNWPl7C~UMhM! zzOZPMSn>Buph1{Ln}haJ@o94UO1A@9O3E`NbX^t7MBNqaUVka+oUU1ype^ovB!;NVmuoKC)qhqZ$ni<*EXOzP+4IxZ1S)Co;5t&HqbKqHcfgYBjvJ+4ggSVub|&n( z$QZZl?ya`T3d^Jm4zAF5Wc_(@r6S)Ep?&^y4eojzV7+&`~U)-g`G zyj5_ewy%QddjC0w_kMK=92GttR`}TEcn!0~nt3<0Y&g8GK3lop>-c0oW^Ffzo!M_! zBzA^%n{@t`?>Z33-);CLaC4N3RX{}jZT7z1Gx`-A7nr>cUR29=&YM^D)0qXkp5M|7 z2+o`>b8)qMPgc3G_$}$}n;RWf=arp^N(kzI?~ literal 0 HcmV?d00001 diff --git a/Pods/HockeySDK/Resources/feedbackActivity@3x.png b/Pods/HockeySDK/Resources/feedbackActivity@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..7e44a4d76a744ed32c57332ce9b8322de9478fee GIT binary patch literal 1204 zcmeAS@N?(olHy`uVBq!ia0vp^6+oQK!3-qRSDWl$U|`G(@CkAC$t(nli~{6S5h{6 z`nJhWCt7a^Jvp`H7tbbbW!|PKJ~MvEcm^z8@rph9^~w*=Y<53%C_Y{BB{fLkI%^Ey zPBRw$C+9rUj2`tddT+PtxioieUH+AVLu^79nseq<$qU`t#=yW-B{C8e{>AF9>|GD(rGj?-W z=H}SS8ei-`6A{JVczVuOmS2&JUhXJ*?D=JP%AMBL(l6@U?EdUI@-)1};Vve#(!1&7cAXun+}lzP&eD+p>SEQ7ILH+S zG(bmAta|B*hNE$dHa*zlu;WCNF;n7P*4s++*&+<4v>wbp(30)xn0G02_h}J{Fjo7D zsTl?)Jc4;_R!3JFteN%i{7=(2ChqME!}@-layw;uL-Y3xM&=um_vO~DEjh+^iTB*^ ztKA;214JyM<~?kAp7E}v>$tD3g8CmxcCmd-HhX8e##IQjn^w&@Z98rGPN@q~hZucj zo+NHwo<3ok>;LOE-%RaZ{#!HIe|fyZUa^4Py?bRPmG`^xFIX;BQqj28?f3FMJ16p5 z{o&hfy)V1h?c2ibS`P0cze~w}wM&~MnRH|1=5VrRov$(>7 zdGp`5i7T#n^}c-f=W>M&@9w%^66e^^F3L2&)nT{TF~9i=H@Ftd{!nANbK5v~2aDtO zl!yPXZ5F7o->3MiXC&bk!vk)jU3I=%yY_K}y z4|HNrNswPKgTzI7mzwL>o}XlT&FJ*Q)%r!xUFmYps?}cvIoNy8^|kUGKJ|TP7ni~M zzsc&q{$1&>*Jd&P^Gs7;Z%(2AJ}-d_Qq^~+eXER4JTuq4_T`?Xmx`EggkRk|E4@Oe z;K1eE+>h84#mbzu-sV|uc^Vkz?$(ldBqZsyj7N}_x1X(r{mlhtq8c_TzlC*8em;1r z`{p_@DfN50IEGZj&Ak#@{>nk5?P0I#6sLtEn(y>XU%dl@x;uCM>q?k?XEeHs8Q1FX zw>|%sq2Z85c=&47NBVjB_9AAHho^SmWU!GGx|DmnaM2?VtHYi1J7O{n4+%_k5O#}D z3i`;h=&$U$_2p-`2MTyRTX8m7QT_gExsNSvGfcQzUMs29|KnUTZH7xQ(@bTxnej}C z9Vf4+HEuZaMA^1ddbyhXr7KT_-F-{GxcK|WU7lRtQ6fB1VvqZh$sH;Wc$N0nvOJ1p znWxOO_Hk-!JYzwx;D-ElI-A}U39$cv9bu?e@}8Mty@$k!rv(;s4Si~UvboL;?{evL zGZx~N`tkE{g29U^H@|HErF}m0pG9{^5X(VvhI(zwl~X!Sw1iJLXIO9N-DR*~OSI*~ zyeD71H4SpFF-+6eb~1`fe-~2o`dA_lPZWEI@?tKHj85^@yMJ7|+;l=vy-7R_|SH*;6ukID=&Ce(eM4bVcq0itDG0S dS&%5-$UaZ{>ykAI`JX|l+SAp~Wt~$(699;d3^V`$ literal 0 HcmV?d00001 diff --git a/Pods/HockeySDK/Resources/fr.lproj/HockeySDK.strings b/Pods/HockeySDK/Resources/fr.lproj/HockeySDK.strings new file mode 100644 index 0000000..76d9e2a --- /dev/null +++ b/Pods/HockeySDK/Resources/fr.lproj/HockeySDK.strings @@ -0,0 +1,276 @@ +/* + Localization provided by Wordcrafts + The Mac OS X and iOS localization experts. + http://www.wordcrafts.de + */ + + +/* General */ + +/* For dialogs yes buttons */ +"HockeyYes" = "Oui"; + +/* For dialogs no buttons */ +"HockeyNo" = "Non"; + +/* For dialogs ok buttons */ +"HockeyOK" = "OK"; + +/* Replacement for app name, if it could not be detected */ +"HockeyAppNamePlaceholder" = "Cette application"; + +/* Crash */ + + +/* Crash dialog */ + +/* Title showing in the alert box when crash report data has been found */ +"CrashDataFoundTitle" = "%@ a quitté inopinément."; + +/* Description explaining that crash data has been found and ask the user if the data might be uploaded to the developers server */ +"CrashDataFoundAnonymousDescription" = "Voulez-vous envoyer un rapport anonyme pour nous aider à corriger le problème ?"; + +/* Description explaining that crash data has been found and ask the user if the non anonymous data might be uplaoded to the developers server */ +"CrashDataFoundDescription" = "Voulez-vous envoyer un rapport pour nous aider à corriger le problème ?"; + +/* Alert box button if the users wants to send crash data always automatically */ +"CrashSendReportAlways" = "Toujours envoyer"; + +/* Alert box button to send the crash report once */ +"CrashSendReport" = "Envoyer"; + +/* Alert box button to decline sending the report */ +"CrashDontSendReport" = "Ne pas envoyer"; + +/* Text showing in a processing box that the crash data is being uploaded to the server */ +"CrashReportSending" = "Envoi…"; + + +/* Update */ + + +/* Update Alert view */ + +/* Update available */ +"UpdateAvailable" = "Mise à jour disponible"; + +"UpdateAlertTextWithAppVersion" = "%@ est disponible."; + +"UpdateAlertMandatoryTextWithAppVersion" = "%@ est disponible. Cette mise à jour est obligatoire !"; + +"UpdateIgnore" = "Ignorer"; + +"UpdateShow" = "Afficher"; + +"UpdateInstall" = "Installer"; + +"UpdateRemindMe" = "M'avertir"; + + +/* Update Details */ + +"UpdateScreenTitle" = "Mise à jour"; + +"UpdateButtonCheck" = "RECHERCHER"; + +"UpdateButtonSearching" = "RECHERCHE"; + +"UpdateButtonUpdate" = "METTRE À JOUR"; + +"UpdateButtonInstalling" = "INSTALLATION"; + +"UpdateButtonOffline" = "HORS LIGNE"; + +"UpdateInstalled" = "INSTALLÉ"; + +"UpdateVersion" = "Version"; + +"UpdateShowPreviousVersions" = "Afficher les versions précédentes…"; + +"UpdateNoUpdateAvailableTitle" = "Aucune mise à jour disponible"; + +"UpdateNoUpdateAvailableMessage" = "%@ est la dernière version."; + +"UpdateError" = "Erreur"; + +"UpdateWarning" = "Avertissement"; + +"UpdateNoReleaseNotesAvailable" = "Aucune note de version."; + + +/* Update Authorization */ + +"UpdateAuthorizationProgress" = "Autorisation…"; + +"UpdateAuthorizationOffline" = "Connexion Internet requise !"; + +"UpdateAuthorizationDenied" = "Autorisation refusée. Contactez le développeur."; + + +/* Update Expiry */ + +"UpdateExpired" = "%@ a expiré et n'est plus utilisable."; + + +/* Update Simulator Warning */ + +"UpdateSimulatorMessage" = "Le service de mise à jour Hockey ne fonctionne pas dans le simulateur.\nLe modèle d'URL itms-services:// est implémenté mais n'est pas encore opérationnel."; + + +/* Feedback */ + + +/* New Message Alert */ + +/* Alert Title */ +"HockeyFeedbackNewMessageTitle" = "Nouvelle réponse au commentaire"; + +/* Alert Text */ +"HockeyFeedbackNewMessageText" = "Une nouvelle réponse à votre commentaire est disponible. Voulez-vous la consulter ?"; + +/* Alert Ignore Button */ +"HockeyFeedbackIgnore" = "Ignorer"; + +/* Alert Show Button */ +"HockeyFeedbackShow" = "Afficher"; + + +/* List View */ + +/* Title */ +"HockeyFeedbackListTitle" = "Commentaires"; + +/* Last Updated */ +"HockeyFeedbackListLastUpdated" = "Dernière mise à jour : %@"; + +/* Never Updated */ +"HockeyFeedbackListNeverUpdated" = "Jamais"; + +/* Provide Feedback Button Title */ +"HockeyFeedbackListButtonWriteFeedback" = "Émettre un commentaire"; + +/* Add a Response Button Title */ +"HockeyFeedbackListButtonWriteResponse" = "Répondre"; + +/* User Data Set Name Button Title */ +"HockeyFeedbackListButtonUserDataSetName" = "Spécifier votre nom"; + +/* User Data Set Email Button Title */ +"HockeyFeedbackListButtonUserDataSetEmail" = "Spécifier votre adresse"; + +/* User Data With Name Button Title */ +"HockeyFeedbackListButtonUserDataWithName" = "Nom : %@"; + +/* User Data With Email Button Title */ +"HockeyFeedbackListButtonUserDataWithEmail" = "Adresse : %@"; + +/* Button title for deleting all local messages*/ +"HockeyFeedbackListButtonDeleteAllMessages" = "Supprimer les messages"; + +/* Message pending to be send */ +"HockeyFeedbackListMessagePending" = "En attente"; + + +/* Delete All Messages Action Sheet / Alert View */ + +/* Title for the Action Sheet */ +"HockeyFeedbackListDeleteAllTitle" = "Ceci supprime tous les messages présents sur l'appareil."; + +/* Button Title to perform delete action */ +"HockeyFeedbackListDeleteAllDelete" = "Supprimer"; + +/* Button Title to cancel delete action */ +"HockeyFeedbackListDeleteAllCancel" = "Annuler"; + + +/* Open Link In Safari Action Sheet / Alert View */ + +/* Button Title to cancel */ +"HockeyFeedbackListLinkActionCancel" = "Annuler"; + +/* Button Title to Open the Link */ +"HockeyFeedbackListLinkActionOpen" = "Ouvrir"; + +/* Button Title to Copy the Link */ +"HockeyFeedbackListLinkActionCopy" = "Copier"; + + +/* UIActivity */ + +/* Activity Sharing Button Title, App Name will be inserted */ +"HockeyFeedbackActivityButtonTitle" = "Commentaire sur %@"; + +/* if there can no app name be found, use this instead for HockeyFeedbackActivityButtonTitle */ +"HockeyFeedbackActivityAppPlaceholder" = "Application"; + + +/* Compose Message */ + +/* Title */ +"HockeyFeedbackComposeTitle" = "Commentaire"; + +/* Send button */ +"HockeyFeedbackComposeSend" = "Envoyer"; + +/* Add Image button for attachment actions */ +"HockeyFeedbackComposeAttachmentAddImage" = "Ajouter une image"; + +/* Edit button for attachment actions */ +"HockeyFeedbackComposeAttachmentEdit" = "Modifier l’image"; + +/* Delete button for attachment actions */ +"HockeyFeedbackComposeAttachmentDelete" = "Supprimer l’image"; + +/* Cancel button for attachment actions */ +"HockeyFeedbackComposeAttachmentCancel" = "Annuler"; + + +/* Set User Data */ + +/* Title */ +"HockeyFeedbackUserDataTitle" = "Mes infos"; + +/* Description On What Should Be Entered */ +"HockeyFeedbackUserDataDescription" = "Merci de fournir vos informations avant de rédiger votre commentaire."; + +/* Name Field */ +"HockeyFeedbackUserDataName" = "Nom"; + +/* Name Placeholder */ +"HockeyFeedbackUserDataNamePlaceHolder" = "Jean Dubois"; + +/* Email Field */ +"HockeyFeedbackUserDataEmail" = "Adresse"; + +/* Email Placeholder */ +"HockeyFeedbackUserDataEmailPlaceholder" = "email@exemple.com"; + + +/* Authenticator */ + +/* View Controller Title*/ +"HockeyAuthenticatorViewControllerTitle" = "HockeyApp"; + +/* BITAuthenticatorAuthTypeUDIDProvider */ +"HockeyAuthenticationViewControllerWebUDIDLoginDescription" = "Le développeur a demandé l'identifiant unique de l'appareil. Touchez ci-dessous pour accéder au site Web de HockeyApp et autoriser l'accès."; +"HockeyAuthenticationViewControllerWebLoginButtonTitle" = "Ouvrir HockeyApp"; + +/* BITAuthenticatorIdentificationTypeWebAuth */ +"HockeyAuthenticationViewControllerWebAuthLoginDescription" = "Le développeur a demandé l'adresse électronique de votre compte HockeyApp. Touchez ci-dessous pour accéder au site Web de HockeyApp et autoriser l'accès."; + +/* BITAuthenticatorAuthTypeEmail and BITAuthenticatorAuthTypeEmailAndPassword */ +"HockeyAuthenticationViewControllerDataEmailAndPasswordDescription" = "Saisissez l'adresse électronique et le mot de passe de votre compte HockeyApp pour autoriser l'accès à cette application."; +"HockeyAuthenticationViewControllerDataEmailDescription" = "Saisissez l'adresse électronique de votre compte HockeyApp pour autoriser l'accès à cette application."; +"HockeyAuthenticationViewControllerEmailPlaceholder" = "email@exemple.com"; +"HockeyAuthenticationViewControllerPasswordPlaceholder" = "Requis"; +"HockeyAuthenticationViewControllerEmailDescription" = "Adresse"; +"HockeyAuthenticationViewControllerPasswordDescription" = "Mot de passe"; + +/* Error presented to the user if authentication failed because of networking issues */ +"HockeyAuthenticationViewControllerNetworkError" = "Échec de l'autorisation. Votre appareil semble déconnecté d'Internet. Réessayez."; + +"HockeyAuthenticationFailedAuthenticate" = "Échec de l'autorisation. Réessayez ou contactez le développeur de l'application."; +"HockeyAuthenticationNotMember" = "Vous n'êtes pas autorisé à utiliser cette application. Contactez le développeur de l'application."; +"HockeyAuthenticationContactDeveloper" = "Erreur d'autorisation. Contactez le développeur de l'application."; +"HockeyAuthenticationWrongEmailPassword" = "L'adresse électronique ou le mot de passe sont incorrects. Vérifiez votre saisie et réessayez."; +"HockeyAuthenticationAuthSecretMissing" = "« HockeySDK authorization secret » non défini. Contactez le développeur de l'application."; diff --git a/Pods/HockeySDK/Resources/hr.lproj/HockeySDK.strings b/Pods/HockeySDK/Resources/hr.lproj/HockeySDK.strings new file mode 100644 index 0000000..27af3c4 --- /dev/null +++ b/Pods/HockeySDK/Resources/hr.lproj/HockeySDK.strings @@ -0,0 +1,277 @@ +/* + Localization provided by Wordcrafts + The Mac OS X and iOS localization experts. + http://www.wordcrafts.de + */ + + +/* General */ + +/* For dialogs yes buttons */ +"HockeyYes" = "Da"; + +/* For dialogs no buttons */ +"HockeyNo" = "Ne"; + +/* For dialogs ok buttons */ +"HockeyOK" = "U redu"; + +/* Replacement for app name, if it could not be detected */ +"HockeyAppNamePlaceholder" = "Ova aplikacija"; + +/* Crash */ + + +/* Crash dialog */ + +/* Title showing in the alert box when crash report data has been found */ +"CrashDataFoundTitle" = "%@ Neočekivani Završetak"; + +/* Description explaining that crash data has been found and ask the user if the data might be uploaded to the developers server */ +"CrashDataFoundAnonymousDescription" = "Želite li poslati anonimno izviješće da možemo riješiti problem?"; + +/* Description explaining that crash data has been found and ask the user if the non anonymous data might be uplaoded to the developers server */ +"CrashDataFoundDescription" = "Želite li poslati izviješće da možemo riješiti problem?"; + +/* Alert box button if the users wants to send crash data always automatically */ +"CrashSendReportAlways" = "Uvijek Šalji"; + +/* Alert box button to send the crash report once */ +"CrashSendReport" = "Pošalji Izvijeće"; + +/* Alert box button to decline sending the report */ +"CrashDontSendReport" = "Ne Šalji"; + +/* Text showing in a processing box that the crash data is being uploaded to the server */ +"CrashReportSending" = "Slanje…"; + + +/* Update */ + + +/* Update Alert view */ + +/* Update available */ +"UpdateAvailable" = "Ažuriranje je dostupno"; + +"UpdateAlertTextWithAppVersion" = "%@ je dostupna."; + +"UpdateAlertMandatoryTextWithAppVersion" = "%@ je dostupna i obavezno je ažuriranje!"; + +"UpdateIgnore" = "Zanemari"; + +"UpdateShow" = "Prikaz"; + +"UpdateInstall" = "Instaliraj"; + +"UpdateRemindMe" = "Podsjeti me"; + + +/* Update Details */ + +"UpdateScreenTitle" = "Ažuriranje"; + +"UpdateButtonCheck" = "PROVJERA"; + +"UpdateButtonSearching" = "PROVJERA"; + +"UpdateButtonUpdate" = "AŽURIRANJE"; + +"UpdateButtonInstalling" = "INSTALIRANJE"; + +"UpdateButtonOffline" = "VAN MREŽE"; + +"UpdateInstalled" = "INSTALIRANO"; + +"UpdateVersion" = "Verzija"; + +"UpdateShowPreviousVersions" = "Prikaz prethodnih verzija..."; + +"UpdateNoUpdateAvailableTitle" = "Ažuriranja nisu dostupna"; + +"UpdateNoUpdateAvailableMessage" = "%@ je već najnovija verzija."; + +"UpdateError" = "Greška"; + +"UpdateWarning" = "Upozorenje"; + +"UpdateNoReleaseNotesAvailable" = "Nisu dostupne bilješke izdanja."; + + +/* Update Authorization */ + +"UpdateAuthorizationProgress" = "Autorizacija..."; + +"UpdateAuthorizationOffline" = "Potrebna je internetska veza!"; + +"UpdateAuthorizationDenied" = "Autorizacija je odbijena. Molimo obratite se razvojnom programeru."; + + +/* Update Expiry */ + +"UpdateExpired" = "%@ je isteklo i ne može se više koristiti."; + + +/* Update Simulator Warning */ + +"UpdateSimulatorMessage" = "Hockey ažuriranje ne radi u Simulatoru.\nThe itms-services:// url scheme is implemented but nonfunctional."; + + +/* Feedback */ + + +/* New Message Alert */ + +/* Alert Title */ +"HockeyFeedbackNewMessageTitle" = "Novi Odgovor na Povratnu Informaciju"; + +/* Alert Text */ +"HockeyFeedbackNewMessageText" = "Dostupan je novi odgovor na Vašu povratnu informaciju. Želite li ga pogledati?"; + +/* Alert Ignore Button */ +"HockeyFeedbackIgnore" = "Zanemari"; + +/* Alert Show Button */ +"HockeyFeedbackShow" = "Prikaži"; + + +/* List View */ + +/* Title */ +"HockeyFeedbackListTitle" = "Povratna Informacija"; + +/* Last Updated */ +"HockeyFeedbackListLastUpdated" = "Zadnje Ažuriranje: %@"; + +/* Never Updated */ +"HockeyFeedbackListNeverUpdated" = "Nikada"; + +/* Provide Feedback Button Title */ +"HockeyFeedbackListButtonWriteFeedback" = "Osigurajte Povratnu Informaciju"; + +/* Add a Response Button Title */ +"HockeyFeedbackListButtonWriteResponse" = "Dodaj Odgovor"; + +/* User Data Set Name Button Title */ +"HockeyFeedbackListButtonUserDataSetName" = "Postavite Vaše Ime"; + +/* User Data Set Email Button Title */ +"HockeyFeedbackListButtonUserDataSetEmail" = "Postavite Vaš E-mail"; + +/* User Data With Name Button Title */ +"HockeyFeedbackListButtonUserDataWithName" = "Ime: %@"; + +/* User Data With Email Button Title */ +"HockeyFeedbackListButtonUserDataWithEmail" = "E-mail: %@"; + +/* Button title for deleting all local messages*/ +"HockeyFeedbackListButtonDeleteAllMessages" = "Obriši Sve Poruke"; + +/* Message pending to be send */ +"HockeyFeedbackListMessagePending" = "Čekanje"; + + +/* Delete All Messages Action Sheet / Alert View */ + +/* Title for the Action Sheet */ +"HockeyFeedbackListDeleteAllTitle" = "Ovo će obrisati sve poruke na ovom uređaju."; + +/* Button Title to perform delete action */ +"HockeyFeedbackListDeleteAllDelete" = "Obriši"; + +/* Button Title to cancel delete action */ +"HockeyFeedbackListDeleteAllCancel" = "Prekid"; + + +/* Open Link In Safari Action Sheet / Alert View */ + +/* Button Title to cancel */ +"HockeyFeedbackListLinkActionCancel" = "Prekid"; + +/* Button Title to Open the Link */ +"HockeyFeedbackListLinkActionOpen" = "Otvori"; + +/* Button Title to Copy the Link */ +"HockeyFeedbackListLinkActionCopy" = "Kopiraj"; + + +/* UIActivity */ + +/* Activity Sharing Button Title, App Name will be inserted */ +"HockeyFeedbackActivityButtonTitle" = "%@ Povratna Informacija"; + +/* if there can no app name be found, use this instead for HockeyFeedbackActivityButtonTitle */ +"HockeyFeedbackActivityAppPlaceholder" = "Aplikacija"; + + +/* Compose Message */ + +/* Title */ +"HockeyFeedbackComposeTitle" = "Nova Povratna Informacija"; + +/* Send button */ +"HockeyFeedbackComposeSend" = "Šalji"; + +/* Add Image button for attachment actions */ +"HockeyFeedbackComposeAttachmentAddImage" = "Add Image"; + +/* Edit button for attachment actions */ +"HockeyFeedbackComposeAttachmentEdit" = "Edit Image"; + +/* Delete button for attachment actions */ +"HockeyFeedbackComposeAttachmentDelete" = "Delete Image"; + +/* Cancel button for attachment actions */ +"HockeyFeedbackComposeAttachmentCancel" = "Prekid"; + + +/* Set User Data */ + +/* Title */ +"HockeyFeedbackUserDataTitle" = "Moj Info"; + +/* Description On What Should Be Entered */ +"HockeyFeedbackUserDataDescription" = "Prije pisanja povratne informacije navedite svoje podatke."; + +/* Name Field */ +"HockeyFeedbackUserDataName" = "Ime"; + +/* Name Placeholder */ +"HockeyFeedbackUserDataNamePlaceHolder" = "Ivan Horvat"; + +/* Email Field */ +"HockeyFeedbackUserDataEmail" = "E-mail"; + +/* Email Placeholder */ +"HockeyFeedbackUserDataEmailPlaceholder" = "email@primjer.com"; + + +/* Authenticator */ + +/* View Controller Title*/ +"HockeyAuthenticatorViewControllerTitle" = "HockeyApp"; + +/* BITAuthenticatorAuthTypeUDIDProvider */ +"HockeyAuthenticationViewControllerWebUDIDLoginDescription" = "Razvojni programer je zatražio UDID Vašeg uređaja. Dodirnite ispod kako biste otvorili HockeyApp web stranicu i autorizirali pristup."; +"HockeyAuthenticationViewControllerWebLoginButtonTitle" = "Otvori HockeyApp"; + +/* BITAuthenticatorIdentificationTypeWebAuth */ +"HockeyAuthenticationViewControllerWebAuthLoginDescription" = "Razvojni programer je zatražio e-mail adresu Vašeg HockeyApp računa. Dodirnite ispod kako biste otvorili HockeyApp web stranicu i autorizirali pristup."; + +/* BITAuthenticatorAuthTypeEmail and BITAuthenticatorAuthTypeEmailAndPassword */ +"HockeyAuthenticationViewControllerDataEmailAndPasswordDescription" = "Unesite molimo Vas e-mail adresu i lozinku Vašeg HockeyApp računa kako biste autorizirali pristup ovoj aplikaciji."; +"HockeyAuthenticationViewControllerDataEmailDescription" = "Molimo Vas unesite e-mail adresu Vašeg HockeyApp računa za autorizaciju pristupa aplikaciji."; +"HockeyAuthenticationViewControllerEmailPlaceholder" = "email@primjer.com"; +"HockeyAuthenticationViewControllerPasswordPlaceholder" = "Obavezno"; +"HockeyAuthenticationViewControllerEmailDescription" = "E-mail"; +"HockeyAuthenticationViewControllerPasswordDescription" = "Lozinka"; + +/* Error presented to the user if authentication failed because of networking issues */ +"HockeyAuthenticationViewControllerNetworkError" = "Autorizacija nije uspjela. Vaš uređaj nema pristup internetu. Molimo Vas pokušajte iznova."; + + +"HockeyAuthenticationFailedAuthenticate" = "Autorizacija nije uspjela. Molimo Vas pokušajte iznova ili kontaktirajte razvojnog programera ove aplikacije."; +"HockeyAuthenticationNotMember" = "Vi niste autorizirani za korištenje ove aplikacije. Molimo Vas kontaktirajte razvojnog programera ove aplikacije."; +"HockeyAuthenticationContactDeveloper" = "Pogreška u autoriziranju. Molimo Vas kontaktirajte razvojnog programera ove aplikacije."; +"HockeyAuthenticationWrongEmailPassword" = "E-mail adresa ili lozinka koju ste unijeli nije ispravna. Molimo Vas provjerite Vaš unos i pokušajte iznova."; +"HockeyAuthenticationAuthSecretMissing" = "HockeySDK \"authorization secret\" nije postavljen. Molimo Vas kontaktirajte razvojnog programera ove aplikacije."; diff --git a/Pods/HockeySDK/Resources/hu.lproj/HockeySDK.strings b/Pods/HockeySDK/Resources/hu.lproj/HockeySDK.strings new file mode 100644 index 0000000..bea21b6 --- /dev/null +++ b/Pods/HockeySDK/Resources/hu.lproj/HockeySDK.strings @@ -0,0 +1,276 @@ +/* + Localization provided by Wordcrafts + The Mac OS X and iOS localization experts. + http://www.wordcrafts.de + */ + + +/* General */ + +/* For dialogs yes buttons */ +"HockeyYes" = "Igen"; + +/* For dialogs no buttons */ +"HockeyNo" = "Nem"; + +/* For dialogs ok buttons */ +"HockeyOK" = "OK"; + +/* Replacement for app name, if it could not be detected */ +"HockeyAppNamePlaceholder" = "Az alkalmazás"; + +/* Crash */ + + +/* Crash dialog */ + +/* Title showing in the alert box when crash report data has been found */ +"CrashDataFoundTitle" = "%@ váratlanul kilépett"; + +/* Description explaining that crash data has been found and ask the user if the data might be uploaded to the developers server */ +"CrashDataFoundAnonymousDescription" = "Szeretne hibajelentést küldeni, hogy javíthassuk a problémát? A küldés névtelenül történik."; + +/* Description explaining that crash data has been found and ask the user if the non anonymous data might be uplaoded to the developers server */ +"CrashDataFoundDescription" = "Szeretne hibajelentést küldeni, hogy javíthassuk a problémát?"; + +/* Alert box button if the users wants to send crash data always automatically */ +"CrashSendReportAlways" = "Mindig küldjön"; + +/* Alert box button to send the crash report once */ +"CrashSendReport" = "Jelentés küldése"; + +/* Alert box button to decline sending the report */ +"CrashDontSendReport" = "Ne küldjön"; + +/* Text showing in a processing box that the crash data is being uploaded to the server */ +"CrashReportSending" = "Küldés…"; + + +/* Update */ + + +/* Update Alert view */ + +/* Update available */ +"UpdateAvailable" = "Frissítés elérhető"; + +"UpdateAlertTextWithAppVersion" = "%@ elérhető."; + +"UpdateAlertMandatoryTextWithAppVersion" = "%@ elérhető, és szükséges frissíteni!"; + +"UpdateIgnore" = "Most nem"; + +"UpdateShow" = "Megjelenítés"; + +"UpdateInstall" = "Telepítés"; + +"UpdateRemindMe" = "Emlékeztessen később"; + + +/* Update Details */ + +"UpdateScreenTitle" = "Frissítés"; + +"UpdateButtonCheck" = "ELLENŐRZÉS"; + +"UpdateButtonSearching" = "KERESÉS"; + +"UpdateButtonUpdate" = "FRISSÍTÉS"; + +"UpdateButtonInstalling" = "TELEPÍTÉS"; + +"UpdateButtonOffline" = "NINCS KAPCSOLAT"; + +"UpdateInstalled" = "TELEPÍTVE"; + +"UpdateVersion" = "verzió"; + +"UpdateShowPreviousVersions" = "Korábbi verziók megtekintése…"; + +"UpdateNoUpdateAvailableTitle" = "Nincs elérhető frissítés"; + +"UpdateNoUpdateAvailableMessage" = "%@ már a legfrissebb verzió."; + +"UpdateError" = "Hiba"; + +"UpdateWarning" = "Figyelmeztetés"; + +"UpdateNoReleaseNotesAvailable" = "Nem elérhető a változások listája."; + + +/* Update Authorization */ + +"UpdateAuthorizationProgress" = "Engedélyezés…"; + +"UpdateAuthorizationOffline" = "Internetkapcsolat szükséges!"; + +"UpdateAuthorizationDenied" = "Engedélyezés megtagadva. Lépjen kapcsolatba a fejlesztővel."; + + +/* Update Expiry */ + +"UpdateExpired" = "%@ érvényessége lejárt, és már nem használható."; + + +/* Update Simulator Warning */ + +"UpdateSimulatorMessage" = "A Hockey Update nem használható a szimulátorban.\nAz itms-services:// URL séma elérhető, de nem működőképes."; + + +/* Feedback */ + + +/* New Message Alert */ + +/* Alert Title */ +"HockeyFeedbackNewMessageTitle" = "Új válasz"; + +/* Alert Text */ +"HockeyFeedbackNewMessageText" = "Új válasz érkezett az Ön visszajelzésére. Kívánja most megtekinteni?"; + +/* Alert Ignore Button */ +"HockeyFeedbackIgnore" = "Most nem"; + +/* Alert Show Button */ +"HockeyFeedbackShow" = "Megtekintés"; + + +/* List View */ + +/* Title */ +"HockeyFeedbackListTitle" = "Visszajelzés"; + +/* Last Updated */ +"HockeyFeedbackListLastUpdated" = "Utolsó frissítés: %@"; + +/* Never Updated */ +"HockeyFeedbackListNeverUpdated" = "Soha"; + +/* Provide Feedback Button Title */ +"HockeyFeedbackListButtonWriteFeedback" = "Visszajelzés küldése"; + +/* Add a Response Button Title */ +"HockeyFeedbackListButtonWriteResponse" = "Válasz küldése"; + +/* User Data Set Name Button Title */ +"HockeyFeedbackListButtonUserDataSetName" = "Adja meg a nevét"; + +/* User Data Set Email Button Title */ +"HockeyFeedbackListButtonUserDataSetEmail" = "Adja meg az e-mail címét"; + +/* User Data With Name Button Title */ +"HockeyFeedbackListButtonUserDataWithName" = "Név: %@"; + +/* User Data With Email Button Title */ +"HockeyFeedbackListButtonUserDataWithEmail" = "E-mail: %@"; + +/* Button title for deleting all local messages*/ +"HockeyFeedbackListButtonDeleteAllMessages" = "Összes üzenet törlése"; + +/* Message pending to be send */ +"HockeyFeedbackListMessagePending" = "Folyamatban"; + + +/* Delete All Messages Action Sheet / Alert View */ + +/* Title for the Action Sheet */ +"HockeyFeedbackListDeleteAllTitle" = "Minden üzenet törlődni fog erről az eszközről."; + +/* Button Title to perform delete action */ +"HockeyFeedbackListDeleteAllDelete" = "Törlés"; + +/* Button Title to cancel delete action */ +"HockeyFeedbackListDeleteAllCancel" = "Mégsem"; + + +/* Open Link In Safari Action Sheet / Alert View */ + +/* Button Title to cancel */ +"HockeyFeedbackListLinkActionCancel" = "Mégsem"; + +/* Button Title to Open the Link */ +"HockeyFeedbackListLinkActionOpen" = "Megnyitás"; + +/* Button Title to Copy the Link */ +"HockeyFeedbackListLinkActionCopy" = "Másolás"; + + +/* UIActivity */ + +/* Activity Sharing Button Title, App Name will be inserted */ +"HockeyFeedbackActivityButtonTitle" = "Visszajelzés: %@"; + +/* if there can no app name be found, use this instead for HockeyFeedbackActivityButtonTitle */ +"HockeyFeedbackActivityAppPlaceholder" = "az alkalmazásról"; + + +/* Compose Message */ + +/* Title */ +"HockeyFeedbackComposeTitle" = "Új visszajelzés"; + +/* Send button */ +"HockeyFeedbackComposeSend" = "Küldés"; + +/* Add Image button for attachment actions */ +"HockeyFeedbackComposeAttachmentAddImage" = "Fotó hozzáadása"; + +/* Edit button for attachment actions */ +"HockeyFeedbackComposeAttachmentEdit" = "Fotó szerkesztése"; + +/* Delete button for attachment actions */ +"HockeyFeedbackComposeAttachmentDelete" = "Fotó törlése"; + +/* Cancel button for attachment actions */ +"HockeyFeedbackComposeAttachmentCancel" = "Mégsem"; + + +/* Set User Data */ + +/* Title */ +"HockeyFeedbackUserDataTitle" = "Felhasználói adatok"; + +/* Description On What Should Be Entered */ +"HockeyFeedbackUserDataDescription" = "Kérjük, adja meg néhány adatát, mielőtt megírja a visszajelzést."; + +/* Name Field */ +"HockeyFeedbackUserDataName" = "Név"; + +/* Name Placeholder */ +"HockeyFeedbackUserDataNamePlaceHolder" = "Gipsz Jakab"; + +/* Email Field */ +"HockeyFeedbackUserDataEmail" = "E-mail"; + +/* Email Placeholder */ +"HockeyFeedbackUserDataEmailPlaceholder" = "email@example.com"; + + +/* Authenticator */ + +/* View Controller Title*/ +"HockeyAuthenticatorViewControllerTitle" = "HockeyApp"; + +/* BITAuthenticatorAuthTypeUDIDProvider */ +"HockeyAuthenticationViewControllerWebUDIDLoginDescription" = "A fejlesztő szeretné hozzáférni készüléke UDID azonosítójához. Kattintással nyissa meg a HockeyApp weblapot és engedélyezze a hozzáférést."; +"HockeyAuthenticationViewControllerWebLoginButtonTitle" = "HockeyApp megnyitása"; + +/* BITAuthenticatorIdentificationTypeWebAuth */ +"HockeyAuthenticationViewControllerWebAuthLoginDescription" = "A fejlesztő szeretné hozzáférni a HockeyApp fiókjának e-mail címéhez. Kattintással nyissa meg a HockeyApp weblapot és engedélyezze a hozzáférést."; + +/* BITAuthenticatorAuthTypeEmail and BITAuthenticatorAuthTypeEmailAndPassword */ +"HockeyAuthenticationViewControllerDataEmailAndPasswordDescription" = "Kérjük, adja meg HockeyApp fiókjához tartozó e-mail címét és jelszavát az alkalmazáshoz történő hozzáférés engedélyezéséhez."; +"HockeyAuthenticationViewControllerDataEmailDescription" = "Kérjük, adja meg HockeyApp fiókjához tartozó e-mail címét az alkalmazáshoz történő hozzáférés engedélyezéséhez."; +"HockeyAuthenticationViewControllerEmailPlaceholder" = "email@example.com"; +"HockeyAuthenticationViewControllerPasswordPlaceholder" = "Szükséges mező"; +"HockeyAuthenticationViewControllerEmailDescription" = "E-mail"; +"HockeyAuthenticationViewControllerPasswordDescription" = "Jelszó"; + +/* Error presented to the user if authentication failed because of networking issues */ +"HockeyAuthenticationViewControllerNetworkError" = "A hitelesítés sikertelen, mert készüléke nem csatlakozik az internethez. Kérjük, próbálja meg később újra."; + +"HockeyAuthenticationFailedAuthenticate" = "A hitelesítés sikertelen. Kérjük, próbálja meg később újra vagy lépjen kapcsolatba az alkalmazás fejlesztőjével."; +"HockeyAuthenticationNotMember" = "Nem jogosult az alkalmazás használatára. Kérjük, lépjen kapcsolatba az alkalmazás fejlesztőjével."; +"HockeyAuthenticationContactDeveloper" = "Hitelesítési hiba. Kérjük, lépjen kapcsolatba az alkalmazás fejlesztőjével."; +"HockeyAuthenticationWrongEmailPassword" = "Érvénytelen e-mail címet vagy jelszót adott meg. Kérjük, ellenőrizze a bevitelt és adja meg az adatokat újra."; +"HockeyAuthenticationAuthSecretMissing" = "A HockeySDK \"authorization secret\" még nincs beállítva. Kérjük, lépjen kapcsolatba az alkalmazás fejlesztőjével."; diff --git a/Pods/HockeySDK/Resources/iconCamera.png b/Pods/HockeySDK/Resources/iconCamera.png new file mode 100644 index 0000000000000000000000000000000000000000..80eecd09d213c39ad5ff5506d0473210665415d2 GIT binary patch literal 260 zcmeAS@N?(olHy`uVBq!ia0vp^5M`#pcSr z|67=(oVUFCqf^4v+N6DftD$}BTzRK8tx=OakRlbMHmO2iB>JPsi?1`Si$gfr z9OpC@D;nPQ<7gLaTzX8yX17@1-}M{TZ<@XO@15`bW%t}StvcDI8?BUYZCxO2>9KgV P0mzY_u6{1-oD!MtgY?OW zH1dZJT#+BRmM^9c`RRhZ!{sdfZC8IgMQ;ZoX1ev9^~q4Q!zRyad>NgSGX_~#?-}~0 zyNaHnPr57V`3CJ?fQOr>d4hwdh%8vK6jq^U8fqu{+EM%?XUqDWKCn^{kQpq$F(1?m zxg z`a-BTknGD9#>q*;u)@ReT}HXiB9b*xUjmg^Sk(pm2V7PwdvLg<9smFU07*qoM6N<$ Eg59&D0RR91 literal 0 HcmV?d00001 diff --git a/Pods/HockeySDK/Resources/it.lproj/HockeySDK.strings b/Pods/HockeySDK/Resources/it.lproj/HockeySDK.strings new file mode 100644 index 0000000..b88dae6 --- /dev/null +++ b/Pods/HockeySDK/Resources/it.lproj/HockeySDK.strings @@ -0,0 +1,276 @@ +/* + Localization provided by Wordcrafts + The Mac OS X and iOS localization experts. + http://www.wordcrafts.de + */ + + +/* General */ + +/* For dialogs yes buttons */ +"HockeyYes" = "Sì"; + +/* For dialogs no buttons */ +"HockeyNo" = "Non inviare"; + +/* For dialogs ok buttons */ +"HockeyOK" = "OK"; + +/* Replacement for app name, if it could not be detected */ +"HockeyAppNamePlaceholder" = "Questa app"; + +/* Crash */ + + +/* Crash dialog */ + +/* Title showing in the alert box when crash report data has been found */ +"CrashDataFoundTitle" = "%@ si è chiusa inaspettatamente"; + +/* Description explaining that crash data has been found and ask the user if the data might be uploaded to the developers server */ +"CrashDataFoundAnonymousDescription" = "Vuoi inviare un report anonimo per aiutarci a risolvere il problema?"; + +/* Description explaining that crash data has been found and ask the user if the non anonymous data might be uplaoded to the developers server */ +"CrashDataFoundDescription" = "Vuoi inviare un report con i dettagli del crash per aiutarci a risolvere il problema?"; + +/* Alert box button if the users wants to send crash data always automatically */ +"CrashSendReportAlways" = "Invia sempre"; + +/* Alert box button to send the crash report once */ +"CrashSendReport" = "Invia"; + +/* Alert box button to decline sending the report */ +"CrashDontSendReport" = "Non inviare"; + +/* Text showing in a processing box that the crash data is being uploaded to the server */ +"CrashReportSending" = "Invio..."; + + +/* Update */ + + +/* Update Alert view */ + +/* Update available */ +"UpdateAvailable" = "Nuovo aggiornamento"; + +"UpdateAlertTextWithAppVersion" = "È disponibile %@."; + +"UpdateAlertMandatoryTextWithAppVersion" = "È disponibile %@ ed è un aggiornamento obbligatorio!"; + +"UpdateIgnore" = "Ignora"; + +"UpdateShow" = "Visualizza"; + +"UpdateInstall" = "Installa"; + +"UpdateRemindMe" = "Ricordamelo"; + + +/* Update Details */ + +"UpdateScreenTitle" = "Aggiornamento"; + +"UpdateButtonCheck" = "VERIFICA"; + +"UpdateButtonSearching" = "VERIFICO"; + +"UpdateButtonUpdate" = "AGGIORNA"; + +"UpdateButtonInstalling" = "INSTALLO"; + +"UpdateButtonOffline" = "OFFLINE"; + +"UpdateInstalled" = "INSTALLATO"; + +"UpdateVersion" = "Versione"; + +"UpdateShowPreviousVersions" = "Visualizzo versioni precedenti..."; + +"UpdateNoUpdateAvailableTitle" = "Non sono disponibili aggiornamenti"; + +"UpdateNoUpdateAvailableMessage" = "%@ è già la versione attuale."; + +"UpdateError" = "Errore"; + +"UpdateWarning" = "Avviso"; + +"UpdateNoReleaseNotesAvailable" = "Non sono disponibili note sulla release."; + + +/* Update Authorization */ + +"UpdateAuthorizationProgress" = "Autorizzazione..."; + +"UpdateAuthorizationOffline" = "È necessario un collegamento a Internet!"; + +"UpdateAuthorizationDenied" = "Autorizzazione negata. Contattare lo sviluppatore."; + + +/* Update Expiry */ + +"UpdateExpired" = "%@ è scaduta e non può più essere utilizzata."; + + +/* Update Simulator Warning */ + +"UpdateSimulatorMessage" = "L'aggiornamento di Hockey non funziona nel Simulator.\nLo schema url tms-services:// è implementato ma non è funzionante."; + + +/* Feedback */ + + +/* New Message Alert */ + +/* Alert Title */ +"HockeyFeedbackNewMessageTitle" = "Nuova risposta a un commento"; + +/* Alert Text */ +"HockeyFeedbackNewMessageText" = "C'è una nuova risposta al tuo commento. Vuoi visualizzarla?"; + +/* Alert Ignore Button */ +"HockeyFeedbackIgnore" = "Ignora"; + +/* Alert Show Button */ +"HockeyFeedbackShow" = "Visualizza"; + + +/* List View */ + +/* Title */ +"HockeyFeedbackListTitle" = "Commento"; + +/* Last Updated */ +"HockeyFeedbackListLastUpdated" = "Ultimo aggiornamento: %@"; + +/* Never Updated */ +"HockeyFeedbackListNeverUpdated" = "Mai"; + +/* Provide Feedback Button Title */ +"HockeyFeedbackListButtonWriteFeedback" = "Commenta"; + +/* Add a Response Button Title */ +"HockeyFeedbackListButtonWriteResponse" = "Aggiungi una risposta"; + +/* User Data Set Name Button Title */ +"HockeyFeedbackListButtonUserDataSetName" = "Imposta il tuo nome"; + +/* User Data Set Email Button Title */ +"HockeyFeedbackListButtonUserDataSetEmail" = "Imposta la tua e-mail"; + +/* User Data With Name Button Title */ +"HockeyFeedbackListButtonUserDataWithName" = "Nome: %@"; + +/* User Data With Email Button Title */ +"HockeyFeedbackListButtonUserDataWithEmail" = "E-mail: %@"; + +/* Button title for deleting all local messages*/ +"HockeyFeedbackListButtonDeleteAllMessages" = "Cancella tutti i messagi"; + +/* Message pending to be send */ +"HockeyFeedbackListMessagePending" = "In attesa"; + + +/* Delete All Messages Action Sheet / Alert View */ + +/* Title for the Action Sheet */ +"HockeyFeedbackListDeleteAllTitle" = "Tutti i messaggi presenti sul dispositivo saranno cancellati."; + +/* Button Title to perform delete action */ +"HockeyFeedbackListDeleteAllDelete" = "Cancella"; + +/* Button Title to cancel delete action */ +"HockeyFeedbackListDeleteAllCancel" = "Annulla"; + + +/* Open Link In Safari Action Sheet / Alert View */ + +/* Button Title to cancel */ +"HockeyFeedbackListLinkActionCancel" = "Annulla"; + +/* Button Title to Open the Link */ +"HockeyFeedbackListLinkActionOpen" = "Apri"; + +/* Button Title to Copy the Link */ +"HockeyFeedbackListLinkActionCopy" = "Copia"; + + +/* UIActivity */ + +/* Activity Sharing Button Title, App Name will be inserted */ +"HockeyFeedbackActivityButtonTitle" = "Commento su %@ "; + +/* if there can no app name be found, use this instead for HockeyFeedbackActivityButtonTitle */ +"HockeyFeedbackActivityAppPlaceholder" = "App"; + + +/* Compose Message */ + +/* Title */ +"HockeyFeedbackComposeTitle" = "Nuovo commento"; + +/* Send button */ +"HockeyFeedbackComposeSend" = "Invia"; + +/* Add Image button for attachment actions */ +"HockeyFeedbackComposeAttachmentAddImage" = "Aggiungi immagine"; + +/* Edit button for attachment actions */ +"HockeyFeedbackComposeAttachmentEdit" = "Modifica immagine"; + +/* Delete button for attachment actions */ +"HockeyFeedbackComposeAttachmentDelete" = "Elimina immagine"; + +/* Cancel button for attachment actions */ +"HockeyFeedbackComposeAttachmentCancel" = "Annulla"; + + +/* Set User Data */ + +/* Title */ +"HockeyFeedbackUserDataTitle" = "Le mie info"; + +/* Description On What Should Be Entered */ +"HockeyFeedbackUserDataDescription" = "Prima di scrivere il commento inserisci i tuoi dati."; + +/* Name Field */ +"HockeyFeedbackUserDataName" = "Nome"; + +/* Name Placeholder */ +"HockeyFeedbackUserDataNamePlaceHolder" = "Mario Rossi"; + +/* Email Field */ +"HockeyFeedbackUserDataEmail" = "E-mail"; + +/* Email Placeholder */ +"HockeyFeedbackUserDataEmailPlaceholder" = "email@esempio.com"; + + +/* Authenticator */ + +/* View Controller Title*/ +"HockeyAuthenticatorViewControllerTitle" = "HockeyApp"; + +/* BITAuthenticatorAuthTypeUDIDProvider */ +"HockeyAuthenticationViewControllerWebUDIDLoginDescription" = "Lo sviluppatore ha richiesto l'UDID di questo dispositivo. Tocca in basso per aprire il sito di HockeyApp e autorizza l'accesso."; +"HockeyAuthenticationViewControllerWebLoginButtonTitle" = "Apri HockeyApp"; + +/* BITAuthenticatorIdentificationTypeWebAuth */ +"HockeyAuthenticationViewControllerWebAuthLoginDescription" = "Lo sviluppatore ha richiesto l'indirizzo e-mail del tuo account HockeyApp. Tocca in basso per aprire il sito di HockeyApp e autorizza l'accesso."; + +/* BITAuthenticatorAuthTypeEmail and BITAuthenticatorAuthTypeEmailAndPassword */ +"HockeyAuthenticationViewControllerDataEmailAndPasswordDescription" = "Inserisci l'indirizzo e-mail e la password del tuo account HockeyApp per autorizzare l'accesso a questa app."; +"HockeyAuthenticationViewControllerDataEmailDescription" = "Inserisci l'indirizzo e-mail del tuo account HockeyApp per autorizzare l'accesso a questa app."; +"HockeyAuthenticationViewControllerEmailPlaceholder" = "email@esempio.com"; +"HockeyAuthenticationViewControllerPasswordPlaceholder" = "Richiesto"; +"HockeyAuthenticationViewControllerEmailDescription" = "E-mail"; +"HockeyAuthenticationViewControllerPasswordDescription" = "Password"; + +/* Error presented to the user if authentication failed because of networking issues */ +"HockeyAuthenticationViewControllerNetworkError" = "Autorizzazione non riuscita. Pare che il dispositivo non sia connesso a Internet. Riprova."; + +"HockeyAuthenticationFailedAuthenticate" = "Autorizzazione non riuscita. Riprova o contatta lo sviluppatore di questa app."; +"HockeyAuthenticationNotMember" = "Non sei autorizzato a usare questa app. Contatta lo sviluppatore di questa app."; +"HockeyAuthenticationContactDeveloper" = "Errore di autorizzazione. Contatta lo sviluppatore di questa app."; +"HockeyAuthenticationWrongEmailPassword" = "L'indirizzo e-mail o la password non sono corretti. Controlla i dati inseriti e riprova."; +"HockeyAuthenticationAuthSecretMissing" = "Non è stato impostato l'\"authorization secret\" HockeySDK. Contatta lo sviluppatore di questa app."; diff --git a/Pods/HockeySDK/Resources/ja.lproj/HockeySDK.strings b/Pods/HockeySDK/Resources/ja.lproj/HockeySDK.strings new file mode 100644 index 0000000..1fb856d --- /dev/null +++ b/Pods/HockeySDK/Resources/ja.lproj/HockeySDK.strings @@ -0,0 +1,276 @@ +/* + Localization provided by Wordcrafts + The Mac OS X and iOS localization experts. + http://www.wordcrafts.de + */ + + +/* General */ + +/* For dialogs yes buttons */ +"HockeyYes" = "はい"; + +/* For dialogs no buttons */ +"HockeyNo" = "いいえ"; + +/* For dialogs ok buttons */ +"HockeyOK" = "OK"; + +/* Replacement for app name, if it could not be detected */ +"HockeyAppNamePlaceholder" = "このApp"; + +/* Crash */ + + +/* Crash dialog */ + +/* Title showing in the alert box when crash report data has been found */ +"CrashDataFoundTitle" = "%@が予期しない理由で終了"; + +/* Description explaining that crash data has been found and ask the user if the data might be uploaded to the developers server */ +"CrashDataFoundAnonymousDescription" = "問題が修正できるよう、匿名のレポートを送信しますか。"; + +/* Description explaining that crash data has been found and ask the user if the non anonymous data might be uplaoded to the developers server */ +"CrashDataFoundDescription" = "問題が修正できるよう、レポートを送信しますか。"; + +/* Alert box button if the users wants to send crash data always automatically */ +"CrashSendReportAlways" = "常に送信"; + +/* Alert box button to send the crash report once */ +"CrashSendReport" = "レポートを送信"; + +/* Alert box button to decline sending the report */ +"CrashDontSendReport" = "送信しない"; + +/* Text showing in a processing box that the crash data is being uploaded to the server */ +"CrashReportSending" = "送信中…"; + + +/* Update */ + + +/* Update Alert view */ + +/* Update available */ +"UpdateAvailable" = "アップデートあり"; + +"UpdateAlertTextWithAppVersion" = "%@が入手できます。"; + +"UpdateAlertMandatoryTextWithAppVersion" = "必須アップデート%@が利用可能です!"; + +"UpdateIgnore" = "無視"; + +"UpdateShow" = "表示"; + +"UpdateInstall" = "インストール"; + +"UpdateRemindMe" = "後で通知"; + + +/* Update Details */ + +"UpdateScreenTitle" = "アップデート"; + +"UpdateButtonCheck" = "確認"; + +"UpdateButtonSearching" = "確認中"; + +"UpdateButtonUpdate" = "アップデート"; + +"UpdateButtonInstalling" = "インストール中"; + +"UpdateButtonOffline" = "オフライン"; + +"UpdateInstalled" = "インストール済み"; + +"UpdateVersion" = "バージョン"; + +"UpdateShowPreviousVersions" = "前のバージョンを表示…"; + +"UpdateNoUpdateAvailableTitle" = "アップデートなし"; + +"UpdateNoUpdateAvailableMessage" = "%@は現在入手できる最新バージョンです。"; + +"UpdateError" = "エラー"; + +"UpdateWarning" = "警告"; + +"UpdateNoReleaseNotesAvailable" = "リリースノートがありません。"; + + +/* Update Authorization */ + +"UpdateAuthorizationProgress" = "認証中…"; + +"UpdateAuthorizationOffline" = "インターネット接続が必要です!"; + +"UpdateAuthorizationDenied" = "認証が拒否されました。デベロッパに連絡してください。"; + + +/* Update Expiry */ + +"UpdateExpired" = "%@の有効期限が切れたため、これ以上使用できません。"; + + +/* Update Simulator Warning */ + +"UpdateSimulatorMessage" = "HockeyのアップデートはSimulatorでは作動しません。\nitms-services:// のURL方式は実装されていますが、機能しません。"; + + +/* Feedback */ + + +/* New Message Alert */ + +/* Alert Title */ +"HockeyFeedbackNewMessageTitle" = "新規フィードバックの応答"; + +/* Alert Text */ +"HockeyFeedbackNewMessageText" = "フィードバックに対する新しい応答があります。表示しますか。"; + +/* Alert Ignore Button */ +"HockeyFeedbackIgnore" = "無視"; + +/* Alert Show Button */ +"HockeyFeedbackShow" = "表示"; + + +/* List View */ + +/* Title */ +"HockeyFeedbackListTitle" = "フィードバック"; + +/* Last Updated */ +"HockeyFeedbackListLastUpdated" = "前回のアップデート:%@"; + +/* Never Updated */ +"HockeyFeedbackListNeverUpdated" = "しない"; + +/* Provide Feedback Button Title */ +"HockeyFeedbackListButtonWriteFeedback" = "フィードバックを送信"; + +/* Add a Response Button Title */ +"HockeyFeedbackListButtonWriteResponse" = "応答を追加"; + +/* User Data Set Name Button Title */ +"HockeyFeedbackListButtonUserDataSetName" = "名前を設定"; + +/* User Data Set Email Button Title */ +"HockeyFeedbackListButtonUserDataSetEmail" = "メールを設定"; + +/* User Data With Name Button Title */ +"HockeyFeedbackListButtonUserDataWithName" = "名前:%@"; + +/* User Data With Email Button Title */ +"HockeyFeedbackListButtonUserDataWithEmail" = "メール:%@"; + +/* Button title for deleting all local messages*/ +"HockeyFeedbackListButtonDeleteAllMessages" = "すべてのメッセージを削除"; + +/* Message pending to be send */ +"HockeyFeedbackListMessagePending" = "保留中"; + + +/* Delete All Messages Action Sheet / Alert View */ + +/* Title for the Action Sheet */ +"HockeyFeedbackListDeleteAllTitle" = "この操作はこのデバイスのメッセージすべてを削除します。"; + +/* Button Title to perform delete action */ +"HockeyFeedbackListDeleteAllDelete" = "消去"; + +/* Button Title to cancel delete action */ +"HockeyFeedbackListDeleteAllCancel" = "キャンセル"; + + +/* Open Link In Safari Action Sheet / Alert View */ + +/* Button Title to cancel */ +"HockeyFeedbackListLinkActionCancel" = "キャンセル"; + +/* Button Title to Open the Link */ +"HockeyFeedbackListLinkActionOpen" = "開く"; + +/* Button Title to Copy the Link */ +"HockeyFeedbackListLinkActionCopy" = "コピー"; + + +/* UIActivity */ + +/* Activity Sharing Button Title, App Name will be inserted */ +"HockeyFeedbackActivityButtonTitle" = "%@フィードバック"; + +/* if there can no app name be found, use this instead for HockeyFeedbackActivityButtonTitle */ +"HockeyFeedbackActivityAppPlaceholder" = "App"; + + +/* Compose Message */ + +/* Title */ +"HockeyFeedbackComposeTitle" = "新規フィードバック"; + +/* Send button */ +"HockeyFeedbackComposeSend" = "送信"; + +/* Add Image button for attachment actions */ +"HockeyFeedbackComposeAttachmentAddImage" = "イメージを追加"; + +/* Edit button for attachment actions */ +"HockeyFeedbackComposeAttachmentEdit" = "イメージを編集"; + +/* Delete button for attachment actions */ +"HockeyFeedbackComposeAttachmentDelete" = "イメージを削除"; + +/* Cancel button for attachment actions */ +"HockeyFeedbackComposeAttachmentCancel" = "キャンセル"; + + +/* Set User Data */ + +/* Title */ +"HockeyFeedbackUserDataTitle" = "自分の情報"; + +/* Description On What Should Be Entered */ +"HockeyFeedbackUserDataDescription" = "フィードバックを記入する前に情報を入力してください。"; + +/* Name Field */ +"HockeyFeedbackUserDataName" = "名前"; + +/* Name Placeholder */ +"HockeyFeedbackUserDataNamePlaceHolder" = "Hiromi Sato"; + +/* Email Field */ +"HockeyFeedbackUserDataEmail" = "メール"; + +/* Email Placeholder */ +"HockeyFeedbackUserDataEmailPlaceholder" = "email@example.com"; + + +/* Authenticator */ + +/* View Controller Title*/ +"HockeyAuthenticatorViewControllerTitle" = "HockeyApp"; + +/* BITAuthenticatorAuthTypeUDIDProvider */ +"HockeyAuthenticationViewControllerWebUDIDLoginDescription" = "デベロッパからこのデバイスのUDIDを要求されています。以下をタップしてHockeyAppウェブサイトを開き、アクセスを認証してください。"; +"HockeyAuthenticationViewControllerWebLoginButtonTitle" = "HockeyAppを開く"; + +/* BITAuthenticatorIdentificationTypeWebAuth */ +"HockeyAuthenticationViewControllerWebAuthLoginDescription" = "デベロッパからHockeyAppアカウントのメールアドレスを要求されています。以下をタップしてHockeyAppウェブサイトを開き、アクセスを認証してください。"; + +/* BITAuthenticatorAuthTypeEmail and BITAuthenticatorAuthTypeEmailAndPassword */ +"HockeyAuthenticationViewControllerDataEmailAndPasswordDescription" = "HockeyAppアカウントのメールアドレスとパスワードを入力し、このAppへのアクセスを認証してください。"; +"HockeyAuthenticationViewControllerDataEmailDescription" = "HockeyAppアカウントのメールアドレスを入力し、このAppへのアクセスを認証してください。"; +"HockeyAuthenticationViewControllerEmailPlaceholder" = "email@example.com"; +"HockeyAuthenticationViewControllerPasswordPlaceholder" = "必須"; +"HockeyAuthenticationViewControllerEmailDescription" = "メール"; +"HockeyAuthenticationViewControllerPasswordDescription" = "パスワード"; + +/* Error presented to the user if authentication failed because of networking issues */ +"HockeyAuthenticationViewControllerNetworkError" = "デバイスがインターネットに接続されていないため、認証できません。やり直してください。"; + +"HockeyAuthenticationFailedAuthenticate" = "認証できませんでした。やり直すか、このAppのデベロッパに連絡してください。"; +"HockeyAuthenticationNotMember" = "このAppの使用を認証されていません。このAppのデベロッパに連絡してください。"; +"HockeyAuthenticationContactDeveloper" = "認証エラー。このAppのデベロッパに連絡してください。"; +"HockeyAuthenticationWrongEmailPassword" = "無効なメールアドレスまたはパスワードが入力されました。入力を確認し、やり直してください。"; +"HockeyAuthenticationAuthSecretMissing" = "HockeySDK “authorization secret” が設定されていません。このAppのデベロッパに連絡してください。"; diff --git a/Pods/HockeySDK/Resources/nl.lproj/HockeySDK.strings b/Pods/HockeySDK/Resources/nl.lproj/HockeySDK.strings new file mode 100644 index 0000000..5c77f2a --- /dev/null +++ b/Pods/HockeySDK/Resources/nl.lproj/HockeySDK.strings @@ -0,0 +1,276 @@ +/* + Localization provided by Wordcrafts + The Mac OS X and iOS localization experts. + http://www.wordcrafts.de + */ + + +/* General */ + +/* For dialogs yes buttons */ +"HockeyYes" = "Ja"; + +/* For dialogs no buttons */ +"HockeyNo" = "Nee"; + +/* For dialogs ok buttons */ +"HockeyOK" = "OK"; + +/* Replacement for app name, if it could not be detected */ +"HockeyAppNamePlaceholder" = "Deze app"; + +/* Crash */ + + +/* Crash dialog */ + +/* Title showing in the alert box when crash report data has been found */ +"CrashDataFoundTitle" = "%@ is onverwacht gestopt"; + +/* Description explaining that crash data has been found and ask the user if the data might be uploaded to the developers server */ +"CrashDataFoundAnonymousDescription" = "Wilt u een anoniem rapport versturen zodat we het probleem kunnen oplossen?"; + +/* Description explaining that crash data has been found and ask the user if the non anonymous data might be uplaoded to the developers server */ +"CrashDataFoundDescription" = "Wilt u een rapport versturen zodat we het probleem kunnen oplossen?"; + +/* Alert box button if the users wants to send crash data always automatically */ +"CrashSendReportAlways" = "Verstuur altijd"; + +/* Alert box button to send the crash report once */ +"CrashSendReport" = "Verstuur rapport"; + +/* Alert box button to decline sending the report */ +"CrashDontSendReport" = "Verstuur niet"; + +/* Text showing in a processing box that the crash data is being uploaded to the server */ +"CrashReportSending" = "Versturen…"; + + +/* Update */ + + +/* Update Alert view */ + +/* Update available */ +"UpdateAvailable" = "Update beschikbaar"; + +"UpdateAlertTextWithAppVersion" = "%@ is beschikbaar."; + +"UpdateAlertMandatoryTextWithAppVersion" = "%@ is beschikbaar en is een verplichte update!"; + +"UpdateIgnore" = "Negeer"; + +"UpdateShow" = "Toon"; + +"UpdateInstall" = "Installeer"; + +"UpdateRemindMe" = "Herinner me"; + + +/* Update Details */ + +"UpdateScreenTitle" = "Update"; + +"UpdateButtonCheck" = "CONTROLEER"; + +"UpdateButtonSearching" = "CONTROLEREN"; + +"UpdateButtonUpdate" = "WERK BIJ"; + +"UpdateButtonInstalling" = "INSTALLEREN"; + +"UpdateButtonOffline" = "OFFLINE"; + +"UpdateInstalled" = "GEÏNSTALLEERD"; + +"UpdateVersion" = "Versie"; + +"UpdateShowPreviousVersions" = "Toon vorige versies..."; + +"UpdateNoUpdateAvailableTitle" = "Geen update beschikbaar"; + +"UpdateNoUpdateAvailableMessage" = "%@ is al de nieuwste versie."; + +"UpdateError" = "Fout"; + +"UpdateWarning" = "Waarschuwing"; + +"UpdateNoReleaseNotesAvailable" = "Geen versiebeschrijvingen beschikbaar."; + + +/* Update Authorization */ + +"UpdateAuthorizationProgress" = "Identiteit controleren..."; + +"UpdateAuthorizationOffline" = "Internetverbinding vereist!"; + +"UpdateAuthorizationDenied" = "Identiteitscontrole geweigerd. Neem contact op met de ontwikkelaar."; + + +/* Update Expiry */ + +"UpdateExpired" = "%@ is verlopen en kan niet langer worden gebruikt."; + + +/* Update Simulator Warning */ + +"UpdateSimulatorMessage" = "Hockey Update werkt niet in de Simulator.\nHet URL-schema voor itms-voorzieningen:// is geïmplementeerd maar niet functioneel."; + + +/* Feedback */ + + +/* New Message Alert */ + +/* Alert Title */ +"HockeyFeedbackNewMessageTitle" = "Nieuwe reactie op feedback"; + +/* Alert Text */ +"HockeyFeedbackNewMessageText" = "Er is een nieuwe reactie op uw feedback. Wilt u deze bekijken?"; + +/* Alert Ignore Button */ +"HockeyFeedbackIgnore" = "Negeer"; + +/* Alert Show Button */ +"HockeyFeedbackShow" = "Toon"; + + +/* List View */ + +/* Title */ +"HockeyFeedbackListTitle" = "Feedback"; + +/* Last Updated */ +"HockeyFeedbackListLastUpdated" = "Laatst bijgewerkt: %@"; + +/* Never Updated */ +"HockeyFeedbackListNeverUpdated" = "Nooit"; + +/* Provide Feedback Button Title */ +"HockeyFeedbackListButtonWriteFeedback" = "Stuur feedback"; + +/* Add a Response Button Title */ +"HockeyFeedbackListButtonWriteResponse" = "Voeg een reactie toe"; + +/* User Data Set Name Button Title */ +"HockeyFeedbackListButtonUserDataSetName" = "Stel uw naam in"; + +/* User Data Set Email Button Title */ +"HockeyFeedbackListButtonUserDataSetEmail" = "Stel uw e-mail in"; + +/* User Data With Name Button Title */ +"HockeyFeedbackListButtonUserDataWithName" = "Naam: %@"; + +/* User Data With Email Button Title */ +"HockeyFeedbackListButtonUserDataWithEmail" = "E-mail: %@"; + +/* Button title for deleting all local messages*/ +"HockeyFeedbackListButtonDeleteAllMessages" = "Verwijder alle berichten"; + +/* Message pending to be send */ +"HockeyFeedbackListMessagePending" = "In wachtrij"; + + +/* Delete All Messages Action Sheet / Alert View */ + +/* Title for the Action Sheet */ +"HockeyFeedbackListDeleteAllTitle" = "Dit verwijdert alle berichten op dit apparaat."; + +/* Button Title to perform delete action */ +"HockeyFeedbackListDeleteAllDelete" = "Verwijder"; + +/* Button Title to cancel delete action */ +"HockeyFeedbackListDeleteAllCancel" = "Annuleer"; + + +/* Open Link In Safari Action Sheet / Alert View */ + +/* Button Title to cancel */ +"HockeyFeedbackListLinkActionCancel" = "Annuleer"; + +/* Button Title to Open the Link */ +"HockeyFeedbackListLinkActionOpen" = "Open"; + +/* Button Title to Copy the Link */ +"HockeyFeedbackListLinkActionCopy" = "Kopieer"; + + +/* UIActivity */ + +/* Activity Sharing Button Title, App Name will be inserted */ +"HockeyFeedbackActivityButtonTitle" = "Feedback over %@"; + +/* if there can no app name be found, use this instead for HockeyFeedbackActivityButtonTitle */ +"HockeyFeedbackActivityAppPlaceholder" = "App"; + + +/* Compose Message */ + +/* Title */ +"HockeyFeedbackComposeTitle" = "Nieuwe feedback"; + +/* Send button */ +"HockeyFeedbackComposeSend" = "Verstuur"; + +/* Add Image button for attachment actions */ +"HockeyFeedbackComposeAttachmentAddImage" = "Voeg afbeelding toe"; + +/* Edit button for attachment actions */ +"HockeyFeedbackComposeAttachmentEdit" = "Wijzig afbeelding"; + +/* Delete button for attachment actions */ +"HockeyFeedbackComposeAttachmentDelete" = "Verwijder afbeelding"; + +/* Cancel button for attachment actions */ +"HockeyFeedbackComposeAttachmentCancel" = "Annuleer"; + + +/* Set User Data */ + +/* Title */ +"HockeyFeedbackUserDataTitle" = "Mijn info"; + +/* Description On What Should Be Entered */ +"HockeyFeedbackUserDataDescription" = "Geef uw gegevens op alvorens uw feedback te schrijven."; + +/* Name Field */ +"HockeyFeedbackUserDataName" = "Naam"; + +/* Name Placeholder */ +"HockeyFeedbackUserDataNamePlaceHolder" = "Jan Smit"; + +/* Email Field */ +"HockeyFeedbackUserDataEmail" = "E-mail"; + +/* Email Placeholder */ +"HockeyFeedbackUserDataEmailPlaceholder" = "e-mail@voorbeeld.com"; + + +/* Authenticator */ + +/* View Controller Title*/ +"HockeyAuthenticatorViewControllerTitle" = "HockeyApp"; + +/* BITAuthenticatorAuthTypeUDIDProvider */ +"HockeyAuthenticationViewControllerWebUDIDLoginDescription" = "De ontwikkelaar heeft de UDID van dit apparaat gevraagd. Tik hieronder om de website van HockeyApp te openen en toegang te verlenen."; +"HockeyAuthenticationViewControllerWebLoginButtonTitle" = "Open HockeyApp"; + +/* BITAuthenticatorIdentificationTypeWebAuth */ +"HockeyAuthenticationViewControllerWebAuthLoginDescription" = "De ontwikkelaar heeft het e-mailadres van uw HockeyApp-account gevraagd. Tik hieronder om de website van HockeyApp te openen en toegang te verlenen."; + +/* BITAuthenticatorAuthTypeEmail and BITAuthenticatorAuthTypeEmailAndPassword */ +"HockeyAuthenticationViewControllerDataEmailAndPasswordDescription" = "Voer het e-mailadres en wachtwoord van uw HockeyApp-account in om toegang tot deze app te verlenen."; +"HockeyAuthenticationViewControllerDataEmailDescription" = "Voer het e-mailadres van uw HockeyApp-account in om toegang tot deze app te verlenen."; +"HockeyAuthenticationViewControllerEmailPlaceholder" = "mail@voorbeeld.com"; +"HockeyAuthenticationViewControllerPasswordPlaceholder" = "Verplicht"; +"HockeyAuthenticationViewControllerEmailDescription" = "E-mail"; +"HockeyAuthenticationViewControllerPasswordDescription" = "Wachtwoord"; + +/* Error presented to the user if authentication failed because of networking issues */ +"HockeyAuthenticationViewControllerNetworkError" = "Identiteitscontrole mislukt omdat uw apparaat niet is verbonden met het internet. Probeer opnieuw."; + +"HockeyAuthenticationFailedAuthenticate" = "Identiteitscontrole mislukt. Probeer opnieuw of neem contact op met de ontwikkelaar van deze app."; +"HockeyAuthenticationNotMember" = "U bent niet gemachtigd om deze app te gebruiken. Neem contact op met de ontwikkelaar van deze app."; +"HockeyAuthenticationContactDeveloper" = "Fout bij identiteitscontrole. Neem contact op met de ontwikkelaar van deze app."; +"HockeyAuthenticationWrongEmailPassword" = "U hebt een ongeldig e-mailadres of wachtwoord ingevoerd. Controleer uw gegevens en probeer opnieuw."; +"HockeyAuthenticationAuthSecretMissing" = "Het 'Authorization secret' van HockeySDK is nog niet ingesteld. Neem contact op met de ontwikkelaar van deze app."; diff --git a/Pods/HockeySDK/Resources/pt-PT.lproj/HockeySDK.strings b/Pods/HockeySDK/Resources/pt-PT.lproj/HockeySDK.strings new file mode 100644 index 0000000..63b923a --- /dev/null +++ b/Pods/HockeySDK/Resources/pt-PT.lproj/HockeySDK.strings @@ -0,0 +1,276 @@ +/* + Localization provided by Wordcrafts + The Mac OS X and iOS localization experts. + http://www.wordcrafts.de + */ + + +/* General */ + +/* For dialogs yes buttons */ +"HockeyYes" = "Sim"; + +/* For dialogs no buttons */ +"HockeyNo" = "Não"; + +/* For dialogs ok buttons */ +"HockeyOK" = "OK"; + +/* Replacement for app name, if it could not be detected */ +"HockeyAppNamePlaceholder" = "Esta aplicação"; + +/* Crash */ + + +/* Crash dialog */ + +/* Title showing in the alert box when crash report data has been found */ +"CrashDataFoundTitle" = "%@ fechou inesperadamente"; + +/* Description explaining that crash data has been found and ask the user if the data might be uploaded to the developers server */ +"CrashDataFoundAnonymousDescription" = "Pretende enviar um relatório anónimo para que possamos resolver o problema?"; + +/* Description explaining that crash data has been found and ask the user if the non anonymous data might be uplaoded to the developers server */ +"CrashDataFoundDescription" = "Pretende enviar um relatório para que possamos resolver o problema?"; + +/* Alert box button if the users wants to send crash data always automatically */ +"CrashSendReportAlways" = "Enviar sempre"; + +/* Alert box button to send the crash report once */ +"CrashSendReport" = "Enviar relatório"; + +/* Alert box button to decline sending the report */ +"CrashDontSendReport" = "Não enviar"; + +/* Text showing in a processing box that the crash data is being uploaded to the server */ +"CrashReportSending" = "A enviar..."; + + +/* Update */ + + +/* Update Alert view */ + +/* Update available */ +"UpdateAvailable" = "Actualização disponível"; + +"UpdateAlertTextWithAppVersion" = "%@ está disponível."; + +"UpdateAlertMandatoryTextWithAppVersion" = "%@ está disponível e é uma actualização obrigatória!"; + +"UpdateIgnore" = "Ignorar"; + +"UpdateShow" = "Mostrar"; + +"UpdateInstall" = "Instalar"; + +"UpdateRemindMe" = "Lembrar-me"; + + +/* Update Details */ + +"UpdateScreenTitle" = "Actualização"; + +"UpdateButtonCheck" = "VERIFICAR"; + +"UpdateButtonSearching" = "A VERIFICAR"; + +"UpdateButtonUpdate" = "ACTUALIZAR"; + +"UpdateButtonInstalling" = "A INSTALAR"; + +"UpdateButtonOffline" = "OFFLINE"; + +"UpdateInstalled" = "INSTALADO"; + +"UpdateVersion" = "Versão"; + +"UpdateShowPreviousVersions" = "Mostrar versões anteriores..."; + +"UpdateNoUpdateAvailableTitle" = "Nenhuma actualização disponível"; + +"UpdateNoUpdateAvailableMessage" = "%@ é a mais recente."; + +"UpdateError" = "Erro"; + +"UpdateWarning" = "Aviso"; + +"UpdateNoReleaseNotesAvailable" = "Nenhuma nota de lançamento disponível."; + + +/* Update Authorization */ + +"UpdateAuthorizationProgress" = "A autorizar..."; + +"UpdateAuthorizationOffline" = "É necessária uma ligação à Internet!"; + +"UpdateAuthorizationDenied" = "Autorização negada. Contacte o programador."; + + +/* Update Expiry */ + +"UpdateExpired" = "%@ expirou e já não pode ser utilizada."; + + +/* Update Simulator Warning */ + +"UpdateSimulatorMessage" = "A actualização do Hockey não funciona com o Simulador.\nO url scheme itms-services:// está implementado mas não funciona."; + + +/* Feedback */ + + +/* New Message Alert */ + +/* Alert Title */ +"HockeyFeedbackNewMessageTitle" = "Nova resposta a comentário"; + +/* Alert Text */ +"HockeyFeedbackNewMessageText" = "Está disponível uma nova resposta ao seu comentário. Pretende vê-la?"; + +/* Alert Ignore Button */ +"HockeyFeedbackIgnore" = "Ignorar"; + +/* Alert Show Button */ +"HockeyFeedbackShow" = "Mostrar"; + + +/* List View */ + +/* Title */ +"HockeyFeedbackListTitle" = "Comentário"; + +/* Last Updated */ +"HockeyFeedbackListLastUpdated" = "Última actualização: %@"; + +/* Never Updated */ +"HockeyFeedbackListNeverUpdated" = "Nunca"; + +/* Provide Feedback Button Title */ +"HockeyFeedbackListButtonWriteFeedback" = "Fornecer comentário"; + +/* Add a Response Button Title */ +"HockeyFeedbackListButtonWriteResponse" = "Adicionar uma resposta"; + +/* User Data Set Name Button Title */ +"HockeyFeedbackListButtonUserDataSetName" = "Definir nome"; + +/* User Data Set Email Button Title */ +"HockeyFeedbackListButtonUserDataSetEmail" = "Definir e-mail"; + +/* User Data With Name Button Title */ +"HockeyFeedbackListButtonUserDataWithName" = "Nome: %@"; + +/* User Data With Email Button Title */ +"HockeyFeedbackListButtonUserDataWithEmail" = "E-mail: %@"; + +/* Button title for deleting all local messages*/ +"HockeyFeedbackListButtonDeleteAllMessages" = "Eliminar todas as mensagens"; + +/* Message pending to be send */ +"HockeyFeedbackListMessagePending" = "Pendente"; + + +/* Delete All Messages Action Sheet / Alert View */ + +/* Title for the Action Sheet */ +"HockeyFeedbackListDeleteAllTitle" = "Todas as mensagens do dispositivo serão eliminadas."; + +/* Button Title to perform delete action */ +"HockeyFeedbackListDeleteAllDelete" = "Eliminar"; + +/* Button Title to cancel delete action */ +"HockeyFeedbackListDeleteAllCancel" = "Cancelar"; + + +/* Open Link In Safari Action Sheet / Alert View */ + +/* Button Title to cancel */ +"HockeyFeedbackListLinkActionCancel" = "Cancelar"; + +/* Button Title to Open the Link */ +"HockeyFeedbackListLinkActionOpen" = "Abrir"; + +/* Button Title to Copy the Link */ +"HockeyFeedbackListLinkActionCopy" = "Copiar"; + + +/* UIActivity */ + +/* Activity Sharing Button Title, App Name will be inserted */ +"HockeyFeedbackActivityButtonTitle" = "Comentário de %@"; + +/* if there can no app name be found, use this instead for HockeyFeedbackActivityButtonTitle */ +"HockeyFeedbackActivityAppPlaceholder" = "Aplicação"; + + +/* Compose Message */ + +/* Title */ +"HockeyFeedbackComposeTitle" = "Novo comentário"; + +/* Send button */ +"HockeyFeedbackComposeSend" = "Enviar"; + +/* Add Image button for attachment actions */ +"HockeyFeedbackComposeAttachmentAddImage" = "Adicionar imagem"; + +/* Edit button for attachment actions */ +"HockeyFeedbackComposeAttachmentEdit" = "Editar imagem"; + +/* Delete button for attachment actions */ +"HockeyFeedbackComposeAttachmentDelete" = "Apagar imagem"; + +/* Cancel button for attachment actions */ +"HockeyFeedbackComposeAttachmentCancel" = "Cancelar"; + + +/* Set User Data */ + +/* Title */ +"HockeyFeedbackUserDataTitle" = "Os meus dados"; + +/* Description On What Should Be Entered */ +"HockeyFeedbackUserDataDescription" = "Forneça os seus dados antes de escrever o comentário."; + +/* Name Field */ +"HockeyFeedbackUserDataName" = "Nome"; + +/* Name Placeholder */ +"HockeyFeedbackUserDataNamePlaceHolder" = "João Silva"; + +/* Email Field */ +"HockeyFeedbackUserDataEmail" = "E-mail"; + +/* Email Placeholder */ +"HockeyFeedbackUserDataEmailPlaceholder" = "email@exemplo.com"; + + +/* Authenticator */ + +/* View Controller Title*/ +"HockeyAuthenticatorViewControllerTitle" = "HockeyApp"; + +/* BITAuthenticatorAuthTypeUDIDProvider */ +"HockeyAuthenticationViewControllerWebUDIDLoginDescription" = "O programador solicitou o UDID deste dispositivo. Toque em baixo para abrir o website do HockeyApp e autorizar o acesso."; +"HockeyAuthenticationViewControllerWebLoginButtonTitle" = "Abrir o HockeyApp"; + +/* BITAuthenticatorIdentificationTypeWebAuth */ +"HockeyAuthenticationViewControllerWebAuthLoginDescription" = "O programador solicitou o endereço de e-mail e a palavra-passe da sua conta HockeyApp. Toque em baixo para abrir o website do HockeyApp e autorizar o acesso."; + +/* BITAuthenticatorAuthTypeEmail and BITAuthenticatorAuthTypeEmailAndPassword */ +"HockeyAuthenticationViewControllerDataEmailAndPasswordDescription" = "Introduza o endereço de e-mail e a palavra-passe da sua conta HockeyApp para autorizar o acesso a esta aplicação."; +"HockeyAuthenticationViewControllerDataEmailDescription" = "Introduza o endereço de e-mail da sua conta HockeyApp para autorizar o acesso a esta aplicação."; +"HockeyAuthenticationViewControllerEmailPlaceholder" = "email@exemplo.com"; +"HockeyAuthenticationViewControllerPasswordPlaceholder" = "Necessário"; +"HockeyAuthenticationViewControllerEmailDescription" = "E-mail"; +"HockeyAuthenticationViewControllerPasswordDescription" = "Palavra-passe"; + +/* Error presented to the user if authentication failed because of networking issues */ +"HockeyAuthenticationViewControllerNetworkError" = "Falha ao autorizar porque provavelmente o dispositivo não tem ligação à Internet. Tente novamente."; + +"HockeyAuthenticationFailedAuthenticate" = "Falha ao autorizar. Tente novamente ou contacte o programador desta aplicação."; +"HockeyAuthenticationNotMember" = "Não está autorizado a utilizar esta aplicação. Contacte o programador desta aplicação."; +"HockeyAuthenticationContactDeveloper" = "Erro de autorização. Contacte o programador desta aplicação."; +"HockeyAuthenticationWrongEmailPassword" = "Introduziu um e-mail ou palavra-passe inválida. Verifique e tente novamente."; +"HockeyAuthenticationAuthSecretMissing" = "O \"authorization secret\" do HockeySDK não foi definido. Contacte o programador desta aplicação."; diff --git a/Pods/HockeySDK/Resources/pt.lproj/HockeySDK.strings b/Pods/HockeySDK/Resources/pt.lproj/HockeySDK.strings new file mode 100644 index 0000000..2651eea --- /dev/null +++ b/Pods/HockeySDK/Resources/pt.lproj/HockeySDK.strings @@ -0,0 +1,276 @@ +/* + Localization provided by Wordcrafts + The Mac OS X and iOS localization experts. + http://www.wordcrafts.de + */ + + +/* General */ + +/* For dialogs yes buttons */ +"HockeyYes" = "Sim"; + +/* For dialogs no buttons */ +"HockeyNo" = "Não"; + +/* For dialogs ok buttons */ +"HockeyOK" = "OK"; + +/* Replacement for app name, if it could not be detected */ +"HockeyAppNamePlaceholder" = "Este app"; + +/* Crash */ + + +/* Crash dialog */ + +/* Title showing in the alert box when crash report data has been found */ +"CrashDataFoundTitle" = "%@ fechou repentinamente"; + +/* Description explaining that crash data has been found and ask the user if the data might be uploaded to the developers server */ +"CrashDataFoundAnonymousDescription" = "Gostaria de enviar um relatório anônimo para que possamos resolver o problema?"; + +/* Description explaining that crash data has been found and ask the user if the non anonymous data might be uplaoded to the developers server */ +"CrashDataFoundDescription" = "Gostaria de enviar um relatório para que possamos resolver o problema?"; + +/* Alert box button if the users wants to send crash data always automatically */ +"CrashSendReportAlways" = "Sempre enviar"; + +/* Alert box button to send the crash report once */ +"CrashSendReport" = "Enviar relatório"; + +/* Alert box button to decline sending the report */ +"CrashDontSendReport" = "Não enviar"; + +/* Text showing in a processing box that the crash data is being uploaded to the server */ +"CrashReportSending" = "Enviando…"; + + +/* Update */ + + +/* Update Alert view */ + +/* Update available */ +"UpdateAvailable" = "Atualização disponível"; + +"UpdateAlertTextWithAppVersion" = "%@ está disponível."; + +"UpdateAlertMandatoryTextWithAppVersion" = "%@ está disponível e é uma atualização obrigatória."; + +"UpdateIgnore" = "Ignorar"; + +"UpdateShow" = "Exibir"; + +"UpdateInstall" = "Instalar"; + +"UpdateRemindMe" = "Lembrar"; + + +/* Update Details */ + +"UpdateScreenTitle" = "Atualizar"; + +"UpdateButtonCheck" = "VERIFICAR"; + +"UpdateButtonSearching" = "VERIFICANDO"; + +"UpdateButtonUpdate" = "ATUALIZAR"; + +"UpdateButtonInstalling" = "INSTALANDO"; + +"UpdateButtonOffline" = "OFFLINE"; + +"UpdateInstalled" = "INSTALADO"; + +"UpdateVersion" = "Versão"; + +"UpdateShowPreviousVersions" = "Mostrar versões anteriores..."; + +"UpdateNoUpdateAvailableTitle" = "Não há atualização disponível"; + +"UpdateNoUpdateAvailableMessage" = "%@ já é a versão mais recente."; + +"UpdateError" = "Erro"; + +"UpdateWarning" = "Aviso"; + +"UpdateNoReleaseNotesAvailable" = "Não há notas de versão disponíveis."; + + +/* Update Authorization */ + +"UpdateAuthorizationProgress" = "Autorizando..."; + +"UpdateAuthorizationOffline" = "É necessário ter conexão à internet."; + +"UpdateAuthorizationDenied" = "Autorização recusada. Entre em contato com o desenvolvedor."; + + +/* Update Expiry */ + +"UpdateExpired" = "%@ expirou e não pode mais ser usado."; + + +/* Update Simulator Warning */ + +"UpdateSimulatorMessage" = "A atualização do Hockey não funciona no simulador.\nO protocolo itms-services:// está implementado, mas não funcional."; + + +/* Feedback */ + + +/* New Message Alert */ + +/* Alert Title */ +"HockeyFeedbackNewMessageTitle" = "Nova resposta de feedback"; + +/* Alert Text */ +"HockeyFeedbackNewMessageText" = "Uma nova resposta a seu feedback está disponível. Gostaria de vê-la?"; + +/* Alert Ignore Button */ +"HockeyFeedbackIgnore" = "Ignorar"; + +/* Alert Show Button */ +"HockeyFeedbackShow" = "Exibir"; + + +/* List View */ + +/* Title */ +"HockeyFeedbackListTitle" = "Feedback"; + +/* Last Updated */ +"HockeyFeedbackListLastUpdated" = "Atualizado em: %@"; + +/* Never Updated */ +"HockeyFeedbackListNeverUpdated" = "Nunca"; + +/* Provide Feedback Button Title */ +"HockeyFeedbackListButtonWriteFeedback" = "Fornecer feedback"; + +/* Add a Response Button Title */ +"HockeyFeedbackListButtonWriteResponse" = "Adicionar uma resposta"; + +/* User Data Set Name Button Title */ +"HockeyFeedbackListButtonUserDataSetName" = "Informe seu nome"; + +/* User Data Set Email Button Title */ +"HockeyFeedbackListButtonUserDataSetEmail" = "Informe seu e-mail"; + +/* User Data With Name Button Title */ +"HockeyFeedbackListButtonUserDataWithName" = "Nome: %@"; + +/* User Data With Email Button Title */ +"HockeyFeedbackListButtonUserDataWithEmail" = "E-mail: %@"; + +/* Button title for deleting all local messages*/ +"HockeyFeedbackListButtonDeleteAllMessages" = "Excluir todas as mensagens"; + +/* Message pending to be send */ +"HockeyFeedbackListMessagePending" = "Pendente"; + + +/* Delete All Messages Action Sheet / Alert View */ + +/* Title for the Action Sheet */ +"HockeyFeedbackListDeleteAllTitle" = "Todas as mensagens serão excluídas deste dispositivo."; + +/* Button Title to perform delete action */ +"HockeyFeedbackListDeleteAllDelete" = "Excluir"; + +/* Button Title to cancel delete action */ +"HockeyFeedbackListDeleteAllCancel" = "Cancelar"; + + +/* Open Link In Safari Action Sheet / Alert View */ + +/* Button Title to cancel */ +"HockeyFeedbackListLinkActionCancel" = "Cancelar"; + +/* Button Title to Open the Link */ +"HockeyFeedbackListLinkActionOpen" = "Abrir"; + +/* Button Title to Copy the Link */ +"HockeyFeedbackListLinkActionCopy" = "Copiar"; + + +/* UIActivity */ + +/* Activity Sharing Button Title, App Name will be inserted */ +"HockeyFeedbackActivityButtonTitle" = "Feedback para %@"; + +/* if there can no app name be found, use this instead for HockeyFeedbackActivityButtonTitle */ +"HockeyFeedbackActivityAppPlaceholder" = "App"; + + +/* Compose Message */ + +/* Title */ +"HockeyFeedbackComposeTitle" = "Novo feedback"; + +/* Send button */ +"HockeyFeedbackComposeSend" = "Enviar"; + +/* Add Image button for attachment actions */ +"HockeyFeedbackComposeAttachmentAddImage" = "Adicionar imagem"; + +/* Edit button for attachment actions */ +"HockeyFeedbackComposeAttachmentEdit" = "Editar imagem"; + +/* Delete button for attachment actions */ +"HockeyFeedbackComposeAttachmentDelete" = "Excluir imagem"; + +/* Cancel button for attachment actions */ +"HockeyFeedbackComposeAttachmentCancel" = "Cancelar"; + + +/* Set User Data */ + +/* Title */ +"HockeyFeedbackUserDataTitle" = "Meus dados"; + +/* Description On What Should Be Entered */ +"HockeyFeedbackUserDataDescription" = "Informe seus dados antes de redigir o feedback."; + +/* Name Field */ +"HockeyFeedbackUserDataName" = "Nome"; + +/* Name Placeholder */ +"HockeyFeedbackUserDataNamePlaceHolder" = "José da Silva"; + +/* Email Field */ +"HockeyFeedbackUserDataEmail" = "E-mail"; + +/* Email Placeholder */ +"HockeyFeedbackUserDataEmailPlaceholder" = "email@exemplo.com"; + + +/* Authenticator */ + +/* View Controller Title*/ +"HockeyAuthenticatorViewControllerTitle" = "HockeyApp"; + +/* BITAuthenticatorAuthTypeUDIDProvider */ +"HockeyAuthenticationViewControllerWebUDIDLoginDescription" = "O desenvolvedor solicitou a UDID deste dispositivo. Toque abaixo para abrir o site do HockeyApp e autorizar o acesso."; +"HockeyAuthenticationViewControllerWebLoginButtonTitle" = "Abrir HockeyApp"; + +/* BITAuthenticatorIdentificationTypeWebAuth */ +"HockeyAuthenticationViewControllerWebAuthLoginDescription" = "O desenvolvedor solicitou o endereço de e-mail de sua conta do HockeyApp. Toque abaixo para abrir o site do HockeyApp e autorizar o acesso."; + +/* BITAuthenticatorAuthTypeEmail and BITAuthenticatorAuthTypeEmailAndPassword */ +"HockeyAuthenticationViewControllerDataEmailAndPasswordDescription" = "Informe seu e-mail e senha da conta do HockeyApp para autorizar o acesso a este aplicativo."; +"HockeyAuthenticationViewControllerDataEmailDescription" = "Informe seu e-mail da conta do HockeyApp para autorizar o acesso a este aplicativo."; +"HockeyAuthenticationViewControllerEmailPlaceholder" = "email@exemplo.com"; +"HockeyAuthenticationViewControllerPasswordPlaceholder" = "Necessário"; +"HockeyAuthenticationViewControllerEmailDescription" = "E-mail"; +"HockeyAuthenticationViewControllerPasswordDescription" = "Senha"; + +/* Error presented to the user if authentication failed because of networking issues */ +"HockeyAuthenticationViewControllerNetworkError" = "Não foi possível autorizar porque seu dispositivo parece estar desconectado da Internet. Tente novamente."; + +"HockeyAuthenticationFailedAuthenticate" = "Falha ao autorizar. Tente novamente ou contate o desenvolvedor deste aplicativo."; +"HockeyAuthenticationNotMember" = "Você não tem autorização para usar este aplicativo. Contate o desenvolvedor deste aplicativo."; +"HockeyAuthenticationContactDeveloper" = "Erro de autorização. Contate o desenvolvedor deste aplicativo."; +"HockeyAuthenticationWrongEmailPassword" = "Você informou um e-mail ou senha inválidos. Verifique os dados e tente novamente."; +"HockeyAuthenticationAuthSecretMissing" = "O “authorization secret” do HockeySDK não foi definido. Contate o desenvolvedor deste aplicativo."; diff --git a/Pods/HockeySDK/Resources/ru.lproj/HockeySDK.strings b/Pods/HockeySDK/Resources/ru.lproj/HockeySDK.strings new file mode 100644 index 0000000..2ef9d0d --- /dev/null +++ b/Pods/HockeySDK/Resources/ru.lproj/HockeySDK.strings @@ -0,0 +1,276 @@ +/* + Localization provided by Wordcrafts + The Mac OS X and iOS localization experts. + http://www.wordcrafts.de + */ + + +/* General */ + +/* For dialogs yes buttons */ +"HockeyYes" = "Да"; + +/* For dialogs no buttons */ +"HockeyNo" = "Нет"; + +/* For dialogs ok buttons */ +"HockeyOK" = "OK"; + +/* Replacement for app name, if it could not be detected */ +"HockeyAppNamePlaceholder" = "Эта программа"; + +/* Crash */ + + +/* Crash dialog */ + +/* Title showing in the alert box when crash report data has been found */ +"CrashDataFoundTitle" = "Неожиданное завершение %@"; + +/* Description explaining that crash data has been found and ask the user if the data might be uploaded to the developers server */ +"CrashDataFoundAnonymousDescription" = "Пошлете анонимный отчет, чтобы мы могли исправить эту ошибку?"; + +/* Description explaining that crash data has been found and ask the user if the non anonymous data might be uplaoded to the developers server */ +"CrashDataFoundDescription" = "Пошлете отчет, чтобы мы могли исправить эту ошибку?"; + +/* Alert box button if the users wants to send crash data always automatically */ +"CrashSendReportAlways" = "Отправлять всегда"; + +/* Alert box button to send the crash report once */ +"CrashSendReport" = "Отправить отчет"; + +/* Alert box button to decline sending the report */ +"CrashDontSendReport" = "Не отправлять"; + +/* Text showing in a processing box that the crash data is being uploaded to the server */ +"CrashReportSending" = "Отправка..."; + + +/* Update */ + + +/* Update Alert view */ + +/* Update available */ +"UpdateAvailable" = "Имеется обновление"; + +"UpdateAlertTextWithAppVersion" = " Доступно: %@."; + +"UpdateAlertMandatoryTextWithAppVersion" = "Доступно обязательное обновление %@!"; + +"UpdateIgnore" = "Игнорировать"; + +"UpdateShow" = "Показать"; + +"UpdateInstall" = "Установить"; + +"UpdateRemindMe" = "Напомнить"; + + +/* Update Details */ + +"UpdateScreenTitle" = "Обновление"; + +"UpdateButtonCheck" = "ПРОВЕРИТЬ"; + +"UpdateButtonSearching" = "ПРОВЕРКА"; + +"UpdateButtonUpdate" = "ОБНОВИТЬ"; + +"UpdateButtonInstalling" = "УСТАНОВКА"; + +"UpdateButtonOffline" = "ОФЛАЙН"; + +"UpdateInstalled" = "УСТАНОВЛЕНО"; + +"UpdateVersion" = "Версия"; + +"UpdateShowPreviousVersions" = "Показать предыдущие версии..."; + +"UpdateNoUpdateAvailableTitle" = "Нет обновлений"; + +"UpdateNoUpdateAvailableMessage" = "%@: самая новая версия."; + +"UpdateError" = "Ошибка"; + +"UpdateWarning" = "Предупреждение"; + +"UpdateNoReleaseNotesAvailable" = "Нет комментариев по этой версии."; + + +/* Update Authorization */ + +"UpdateAuthorizationProgress" = "Авторизация..."; + +"UpdateAuthorizationOffline" = "Нужно подключить Интернет!"; + +"UpdateAuthorizationDenied" = "Отказано в авторизации. Свяжитесь с разработчиком."; + + +/* Update Expiry */ + +"UpdateExpired" = "Срок использования %@ истек, использование прекращено."; + + +/* Update Simulator Warning */ + +"UpdateSimulatorMessage" = "Hockey Update не работает в Simulator.\nСхема itms-services:// url применена, но не работает."; + + +/* Feedback */ + + +/* New Message Alert */ + +/* Alert Title */ +"HockeyFeedbackNewMessageTitle" = "Новый ответ на отклик"; + +/* Alert Text */ +"HockeyFeedbackNewMessageText" = "Поступил новый ответ на ваш отклик. Просмотреть его?"; + +/* Alert Ignore Button */ +"HockeyFeedbackIgnore" = "Игнорировать"; + +/* Alert Show Button */ +"HockeyFeedbackShow" = "Показать"; + + +/* List View */ + +/* Title */ +"HockeyFeedbackListTitle" = "Отклик"; + +/* Last Updated */ +"HockeyFeedbackListLastUpdated" = "Последнее обновление: %@"; + +/* Never Updated */ +"HockeyFeedbackListNeverUpdated" = "Не было"; + +/* Provide Feedback Button Title */ +"HockeyFeedbackListButtonWriteFeedback" = "Написать отклик"; + +/* Add a Response Button Title */ +"HockeyFeedbackListButtonWriteResponse" = "Добавить ответ"; + +/* User Data Set Name Button Title */ +"HockeyFeedbackListButtonUserDataSetName" = "Ввести ваше имя"; + +/* User Data Set Email Button Title */ +"HockeyFeedbackListButtonUserDataSetEmail" = "Ввести ваш email"; + +/* User Data With Name Button Title */ +"HockeyFeedbackListButtonUserDataWithName" = "Имя: %@"; + +/* User Data With Email Button Title */ +"HockeyFeedbackListButtonUserDataWithEmail" = "Email: %@"; + +/* Button title for deleting all local messages*/ +"HockeyFeedbackListButtonDeleteAllMessages" = "Удалить все сообщения"; + +/* Message pending to be send */ +"HockeyFeedbackListMessagePending" = "Ожидание"; + + +/* Delete All Messages Action Sheet / Alert View */ + +/* Title for the Action Sheet */ +"HockeyFeedbackListDeleteAllTitle" = "Этим действием будут стерты все сообщения на этом устройстве."; + +/* Button Title to perform delete action */ +"HockeyFeedbackListDeleteAllDelete" = "Удалить"; + +/* Button Title to cancel delete action */ +"HockeyFeedbackListDeleteAllCancel" = "Отменить"; + + +/* Open Link In Safari Action Sheet / Alert View */ + +/* Button Title to cancel */ +"HockeyFeedbackListLinkActionCancel" = "Отменить"; + +/* Button Title to Open the Link */ +"HockeyFeedbackListLinkActionOpen" = "Открыть"; + +/* Button Title to Copy the Link */ +"HockeyFeedbackListLinkActionCopy" = "Копировать"; + + +/* UIActivity */ + +/* Activity Sharing Button Title, App Name will be inserted */ +"HockeyFeedbackActivityButtonTitle" = "Отклик на %@"; + +/* if there can no app name be found, use this instead for HockeyFeedbackActivityButtonTitle */ +"HockeyFeedbackActivityAppPlaceholder" = "Программа"; + + +/* Compose Message */ + +/* Title */ +"HockeyFeedbackComposeTitle" = "Новый"; + +/* Send button */ +"HockeyFeedbackComposeSend" = "Отправить"; + +/* Add Image button for attachment actions */ +"HockeyFeedbackComposeAttachmentAddImage" = "Добавить фото"; + +/* Edit button for attachment actions */ +"HockeyFeedbackComposeAttachmentEdit" = "Изменить фото"; + +/* Delete button for attachment actions */ +"HockeyFeedbackComposeAttachmentDelete" = "Удалить фото"; + +/* Cancel button for attachment actions */ +"HockeyFeedbackComposeAttachmentCancel" = "Отменить"; + + +/* Set User Data */ + +/* Title */ +"HockeyFeedbackUserDataTitle" = "Мои данные"; + +/* Description On What Should Be Entered */ +"HockeyFeedbackUserDataDescription" = "Перед отправкой отклика необходимо ввести ваши личные данные."; + +/* Name Field */ +"HockeyFeedbackUserDataName" = "Имя"; + +/* Name Placeholder */ +"HockeyFeedbackUserDataNamePlaceHolder" = "Имя"; + +/* Email Field */ +"HockeyFeedbackUserDataEmail" = "Email"; + +/* Email Placeholder */ +"HockeyFeedbackUserDataEmailPlaceholder" = "email@example.com"; + + +/* Authenticator */ + +/* View Controller Title*/ +"HockeyAuthenticatorViewControllerTitle" = "HockeyApp"; + +/* BITAuthenticatorAuthTypeUDIDProvider */ +"HockeyAuthenticationViewControllerWebUDIDLoginDescription" = "Разработчик запросил UDID этого устройства. Нажмите на ссылку ниже, чтобы открыть сайт HockeyApp и авторизовать доступ."; +"HockeyAuthenticationViewControllerWebLoginButtonTitle" = "Открыть HockeyApp"; + +/* BITAuthenticatorIdentificationTypeWebAuth */ +"HockeyAuthenticationViewControllerWebAuthLoginDescription" = "Разработчик запросил email аккаунта HockeyApp. Нажмите на ссылку внизу, чтобы попасть на сайт HockeyApp и авторизовать доступ."; + +/* BITAuthenticatorAuthTypeEmail and BITAuthenticatorAuthTypeEmailAndPassword */ +"HockeyAuthenticationViewControllerDataEmailAndPasswordDescription" = "Введите email и пароль аккаунта HockeyApp, чтобы авторизовать доступ к этому приложению."; +"HockeyAuthenticationViewControllerDataEmailDescription" = "Введите email аккаунта HockeyApp, чтобы авторизовать доступ к этому приложению."; +"HockeyAuthenticationViewControllerEmailPlaceholder" = "email@example.com"; +"HockeyAuthenticationViewControllerPasswordPlaceholder" = "Обязательное поле"; +"HockeyAuthenticationViewControllerEmailDescription" = "Email"; +"HockeyAuthenticationViewControllerPasswordDescription" = "Пароль"; + +/* Error presented to the user if authentication failed because of networking issues */ +"HockeyAuthenticationViewControllerNetworkError" = "Не удалось авторизоваться, так как ваше устройство не подключено к интернету. Попробуйте еще раз "; + +"HockeyAuthenticationFailedAuthenticate" = "Авторизация не удалась. Попробуйте еще раз или свяжитесь с разработчиком приложения."; +"HockeyAuthenticationNotMember" = "У вас нет разрешения использовать это приложение. Обратитесь к разработчику приложения."; +"HockeyAuthenticationContactDeveloper" = "Ошибка авторизации. Свяжитесь с разработчиком приложения."; +"HockeyAuthenticationWrongEmailPassword" = "Вы ввели неверный email или пароль. Проверьте его правильность и попробуйте еще раз."; +"HockeyAuthenticationAuthSecretMissing" = "HockeySDK authorization secret не настроен. Свяжитесь с разработчиком приложения."; diff --git a/Pods/HockeySDK/Resources/zh-Hans.lproj/HockeySDK.strings b/Pods/HockeySDK/Resources/zh-Hans.lproj/HockeySDK.strings new file mode 100644 index 0000000..9df5c18 --- /dev/null +++ b/Pods/HockeySDK/Resources/zh-Hans.lproj/HockeySDK.strings @@ -0,0 +1,276 @@ +/* + Localization provided by Wordcrafts + The Mac OS X and iOS localization experts. + http://www.wordcrafts.de + */ + + +/* General */ + +/* For dialogs yes buttons */ +"HockeyYes" = "是"; + +/* For dialogs no buttons */ +"HockeyNo" = "无"; + +/* For dialogs ok buttons */ +"HockeyOK" = "确定"; + +/* Replacement for app name, if it could not be detected */ +"HockeyAppNamePlaceholder" = "这个 app"; + +/* Crash */ + + +/* Crash dialog */ + +/* Title showing in the alert box when crash report data has been found */ +"CrashDataFoundTitle" = "%@ 意外退出"; + +/* Description explaining that crash data has been found and ask the user if the data might be uploaded to the developers server */ +"CrashDataFoundAnonymousDescription" = "你想要发送一个匿名报告来帮助我们解决这个问题吗?"; + +/* Description explaining that crash data has been found and ask the user if the non anonymous data might be uplaoded to the developers server */ +"CrashDataFoundDescription" = "你想要发送一个报告来帮助我们解决这个问题吗?"; + +/* Alert box button if the users wants to send crash data always automatically */ +"CrashSendReportAlways" = "总是发送"; + +/* Alert box button to send the crash report once */ +"CrashSendReport" = "发送报告"; + +/* Alert box button to decline sending the report */ +"CrashDontSendReport" = "不发送"; + +/* Text showing in a processing box that the crash data is being uploaded to the server */ +"CrashReportSending" = "正在发送..."; + + +/* Update */ + + +/* Update Alert view */ + +/* Update available */ +"UpdateAvailable" = "更新已推出"; + +"UpdateAlertTextWithAppVersion" = "%@ 已可用。"; + +"UpdateAlertMandatoryTextWithAppVersion" = "%@ 已可用,并且是一个强制更新。"; + +"UpdateIgnore" = "忽略"; + +"UpdateShow" = "显示"; + +"UpdateInstall" = "安装"; + +"UpdateRemindMe" = "提醒我"; + + +/* Update Details */ + +"UpdateScreenTitle" = "更新"; + +"UpdateButtonCheck" = "检查"; + +"UpdateButtonSearching" = "正在检查"; + +"UpdateButtonUpdate" = "更新"; + +"UpdateButtonInstalling" = "正在安装"; + +"UpdateButtonOffline" = "离线"; + +"UpdateInstalled" = "已安装"; + +"UpdateVersion" = "版本"; + +"UpdateShowPreviousVersions" = "显示之前版本..."; + +"UpdateNoUpdateAvailableTitle" = "无可用更新"; + +"UpdateNoUpdateAvailableMessage" = "%@是最新版本。"; + +"UpdateError" = "错误"; + +"UpdateWarning" = "警告"; + +"UpdateNoReleaseNotesAvailable" = "无发行说明。"; + + +/* Update Authorization */ + +"UpdateAuthorizationProgress" = "授权中..."; + +"UpdateAuthorizationOffline" = "需要 Internet 连接!"; + +"UpdateAuthorizationDenied" = "授权被拒绝。请与开发人员联系。"; + + +/* Update Expiry */ + +"UpdateExpired" = "%@ 已过期,所以无法使用。"; + + +/* Update Simulator Warning */ + +"UpdateSimulatorMessage" = "Hockey 更新无法在仿真器中进行。\n这个 itms-services:// 网页连接架构已开始实施但无法正常工作。"; + + +/* Feedback */ + + +/* New Message Alert */ + +/* Alert Title */ +"HockeyFeedbackNewMessageTitle" = "新的意见反馈响应"; + +/* Alert Text */ +"HockeyFeedbackNewMessageText" = "你的意见反馈已有一个新的响应,想查看它吗?"; + +/* Alert Ignore Button */ +"HockeyFeedbackIgnore" = "忽略"; + +/* Alert Show Button */ +"HockeyFeedbackShow" = "显示"; + + +/* List View */ + +/* Title */ +"HockeyFeedbackListTitle" = "意见反馈"; + +/* Last Updated */ +"HockeyFeedbackListLastUpdated" = "上次更新: %@"; + +/* Never Updated */ +"HockeyFeedbackListNeverUpdated" = "从不"; + +/* Provide Feedback Button Title */ +"HockeyFeedbackListButtonWriteFeedback" = "提供意见反馈"; + +/* Add a Response Button Title */ +"HockeyFeedbackListButtonWriteResponse" = "添加一个响应"; + +/* User Data Set Name Button Title */ +"HockeyFeedbackListButtonUserDataSetName" = "设置你的姓名"; + +/* User Data Set Email Button Title */ +"HockeyFeedbackListButtonUserDataSetEmail" = "设置你的邮件"; + +/* User Data With Name Button Title */ +"HockeyFeedbackListButtonUserDataWithName" = "姓名: %@"; + +/* User Data With Email Button Title */ +"HockeyFeedbackListButtonUserDataWithEmail" = "邮件: %@"; + +/* Button title for deleting all local messages*/ +"HockeyFeedbackListButtonDeleteAllMessages" = "删除全部信息"; + +/* Message pending to be send */ +"HockeyFeedbackListMessagePending" = "待定"; + + +/* Delete All Messages Action Sheet / Alert View */ + +/* Title for the Action Sheet */ +"HockeyFeedbackListDeleteAllTitle" = "这将会删除此设备上的所有信息。"; + +/* Button Title to perform delete action */ +"HockeyFeedbackListDeleteAllDelete" = "删除"; + +/* Button Title to cancel delete action */ +"HockeyFeedbackListDeleteAllCancel" = "取消"; + + +/* Open Link In Safari Action Sheet / Alert View */ + +/* Button Title to cancel */ +"HockeyFeedbackListLinkActionCancel" = "取消"; + +/* Button Title to Open the Link */ +"HockeyFeedbackListLinkActionOpen" = "打开"; + +/* Button Title to Copy the Link */ +"HockeyFeedbackListLinkActionCopy" = "拷贝"; + + +/* UIActivity */ + +/* Activity Sharing Button Title, App Name will be inserted */ +"HockeyFeedbackActivityButtonTitle" = "%@ 意见反馈"; + +/* if there can no app name be found, use this instead for HockeyFeedbackActivityButtonTitle */ +"HockeyFeedbackActivityAppPlaceholder" = "App"; + + +/* Compose Message */ + +/* Title */ +"HockeyFeedbackComposeTitle" = "新的意见反馈"; + +/* Send button */ +"HockeyFeedbackComposeSend" = "发送"; + +/* Add Image button for attachment actions */ +"HockeyFeedbackComposeAttachmentAddImage" = "添加图像"; + +/* Edit button for attachment actions */ +"HockeyFeedbackComposeAttachmentEdit" = "编辑图像"; + +/* Delete button for attachment actions */ +"HockeyFeedbackComposeAttachmentDelete" = "删除图像"; + +/* Cancel button for attachment actions */ +"HockeyFeedbackComposeAttachmentCancel" = "取消"; + + +/* Set User Data */ + +/* Title */ +"HockeyFeedbackUserDataTitle" = "我的信息"; + +/* Description On What Should Be Entered */ +"HockeyFeedbackUserDataDescription" = "请提供你的信息,再写入意见反馈。"; + +/* Name Field */ +"HockeyFeedbackUserDataName" = "姓名"; + +/* Name Placeholder */ +"HockeyFeedbackUserDataNamePlaceHolder" = "姓名"; + +/* Email Field */ +"HockeyFeedbackUserDataEmail" = "邮件"; + +/* Email Placeholder */ +"HockeyFeedbackUserDataEmailPlaceholder" = "email@example.com"; + + +/* Authenticator */ + +/* View Controller Title*/ +"HockeyAuthenticatorViewControllerTitle" = "HockeyApp"; + +/* BITAuthenticatorAuthTypeUDIDProvider */ +"HockeyAuthenticationViewControllerWebUDIDLoginDescription" = "开发人员已经要求该设备的 UDID。点击下面来打开 HockeyApp 网站并授权访问。"; +"HockeyAuthenticationViewControllerWebLoginButtonTitle" = "打开 HockeyApp"; + +/* BITAuthenticatorIdentificationTypeWebAuth */ +"HockeyAuthenticationViewControllerWebAuthLoginDescription" = "开发人员已经要求你的 HockeyApp 帐户的电子邮件。点击下面来打开 HockeyApp 网站并授权访问。"; + +/* BITAuthenticatorAuthTypeEmail and BITAuthenticatorAuthTypeEmailAndPassword */ +"HockeyAuthenticationViewControllerDataEmailAndPasswordDescription" = "请输入你的 HockeyApp 帐户的电子邮件和密码来授权访问这个 app。"; +"HockeyAuthenticationViewControllerDataEmailDescription" = "请输入你的 HockeyApp 帐户的电子邮件来授权访问这个 app。"; +"HockeyAuthenticationViewControllerEmailPlaceholder" = "email@example.com"; +"HockeyAuthenticationViewControllerPasswordPlaceholder" = "必需的"; +"HockeyAuthenticationViewControllerEmailDescription" = "邮件"; +"HockeyAuthenticationViewControllerPasswordDescription" = "密码"; + +/* Error presented to the user if authentication failed because of networking issues */ +"HockeyAuthenticationViewControllerNetworkError" = "你设备的 Internet 连接似乎已断开,导致授权失败。请再试一次。"; + +"HockeyAuthenticationFailedAuthenticate" = "授权错误。请再试一次或联系这个 app 的开发人员。"; +"HockeyAuthenticationNotMember" = "你未获授权使用这个程序。请联系这个 app 的开发人员。"; +"HockeyAuthenticationContactDeveloper" = "授权错误。请联系这个 app 开发人员。"; +"HockeyAuthenticationWrongEmailPassword" = "你输入了一个无效的电子邮件或密码,请检查后再试一次。"; +"HockeyAuthenticationAuthSecretMissing" = "尚未设置 HockeySDK authorization secret。请联系这个 app 的开发人员。"; diff --git a/Pods/HockeySDK/Support/HockeySDK.xcconfig b/Pods/HockeySDK/Support/HockeySDK.xcconfig new file mode 100644 index 0000000..7f04f3f --- /dev/null +++ b/Pods/HockeySDK/Support/HockeySDK.xcconfig @@ -0,0 +1,3 @@ +OTHER_LDFLAGS=$(inherited) -framework CoreText -framework CoreGraphics -framework Foundation -framework QuartzCore -framework SystemConfiguration -framework UIKit -framework Security -framework AssetsLibrary -framework MobileCoreServices +HOCKEYSDK_DOCSET_NAME=HockeySDK-iOS +GCC_PREPROCESSOR_DEFINITIONS=$(inherited) CONFIGURATION_$(CONFIGURATION) diff --git a/Pods/HockeySDK/Support/HockeySDK.xcodeproj/project.pbxproj b/Pods/HockeySDK/Support/HockeySDK.xcodeproj/project.pbxproj new file mode 100644 index 0000000..50c2065 --- /dev/null +++ b/Pods/HockeySDK/Support/HockeySDK.xcodeproj/project.pbxproj @@ -0,0 +1,1725 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 46; + objects = { + +/* Begin PBXAggregateTarget section */ + 1E4F61E91621AD970033EFC5 /* HockeySDK Framework */ = { + isa = PBXAggregateTarget; + buildConfigurationList = 1E4F61EA1621AD970033EFC5 /* Build configuration list for PBXAggregateTarget "HockeySDK Framework" */; + buildPhases = ( + 1E4F61ED1621ADE70033EFC5 /* Build universal embedded framework */, + ); + dependencies = ( + 1E754E431621F6290070AB92 /* PBXTargetDependency */, + ); + name = "HockeySDK Framework"; + productName = "HockeySDK Framework"; + }; + 1E8E66AD15BC3D7700632A2E /* HockeySDK Documentation */ = { + isa = PBXAggregateTarget; + buildConfigurationList = 1E8E66B015BC3D7700632A2E /* Build configuration list for PBXAggregateTarget "HockeySDK Documentation" */; + buildPhases = ( + 1E8E66B215BC3D8200632A2E /* ShellScript */, + ); + dependencies = ( + ); + name = "HockeySDK Documentation"; + productName = Documentation; + }; +/* End PBXAggregateTarget section */ + +/* Begin PBXBuildFile section */ + 1E0829001708F69A0073050E /* BITStoreUpdateManagerDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = 1E0828FF1708F69A0073050E /* BITStoreUpdateManagerDelegate.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 1E0FEE28173BDB260061331F /* BITKeychainUtils.h in Headers */ = {isa = PBXBuildFile; fileRef = 1E0FEE26173BDB260061331F /* BITKeychainUtils.h */; }; + 1E0FEE29173BDB260061331F /* BITKeychainUtils.m in Sources */ = {isa = PBXBuildFile; fileRef = 1E0FEE27173BDB260061331F /* BITKeychainUtils.m */; }; + 1E1127C416580C87007067A2 /* buttonRoundedDelete.png in Resources */ = {isa = PBXBuildFile; fileRef = 1E1127BC16580C87007067A2 /* buttonRoundedDelete.png */; }; + 1E1127C516580C87007067A2 /* buttonRoundedDelete@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 1E1127BD16580C87007067A2 /* buttonRoundedDelete@2x.png */; }; + 1E1127C616580C87007067A2 /* buttonRoundedDeleteHighlighted.png in Resources */ = {isa = PBXBuildFile; fileRef = 1E1127BE16580C87007067A2 /* buttonRoundedDeleteHighlighted.png */; }; + 1E1127C716580C87007067A2 /* buttonRoundedDeleteHighlighted@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 1E1127BF16580C87007067A2 /* buttonRoundedDeleteHighlighted@2x.png */; }; + 1E1127C816580C87007067A2 /* buttonRoundedRegular.png in Resources */ = {isa = PBXBuildFile; fileRef = 1E1127C016580C87007067A2 /* buttonRoundedRegular.png */; }; + 1E1127C916580C87007067A2 /* buttonRoundedRegular@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 1E1127C116580C87007067A2 /* buttonRoundedRegular@2x.png */; }; + 1E1127CA16580C87007067A2 /* buttonRoundedRegularHighlighted.png in Resources */ = {isa = PBXBuildFile; fileRef = 1E1127C216580C87007067A2 /* buttonRoundedRegularHighlighted.png */; }; + 1E1127CB16580C87007067A2 /* buttonRoundedRegularHighlighted@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 1E1127C316580C87007067A2 /* buttonRoundedRegularHighlighted@2x.png */; }; + 1E494AEC19491943001EFF74 /* AppIcon.png in Resources */ = {isa = PBXBuildFile; fileRef = 1E494AEA19491943001EFF74 /* AppIcon.png */; }; + 1E494AED19491943001EFF74 /* AppIcon@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 1E494AEB19491943001EFF74 /* AppIcon@2x.png */; }; + 1E49A43C1612223B00463151 /* BITFeedbackComposeViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = 1E49A42D1612223B00463151 /* BITFeedbackComposeViewController.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 1E49A43F1612223B00463151 /* BITFeedbackComposeViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 1E49A42E1612223B00463151 /* BITFeedbackComposeViewController.m */; }; + 1E49A4421612223B00463151 /* BITFeedbackListViewCell.h in Headers */ = {isa = PBXBuildFile; fileRef = 1E49A42F1612223B00463151 /* BITFeedbackListViewCell.h */; }; + 1E49A4451612223B00463151 /* BITFeedbackListViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 1E49A4301612223B00463151 /* BITFeedbackListViewCell.m */; }; + 1E49A4481612223B00463151 /* BITFeedbackListViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = 1E49A4311612223B00463151 /* BITFeedbackListViewController.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 1E49A44B1612223B00463151 /* BITFeedbackListViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 1E49A4321612223B00463151 /* BITFeedbackListViewController.m */; }; + 1E49A44E1612223B00463151 /* BITFeedbackManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 1E49A4331612223B00463151 /* BITFeedbackManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 1E49A4511612223B00463151 /* BITFeedbackManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 1E49A4341612223B00463151 /* BITFeedbackManager.m */; }; + 1E49A4541612223B00463151 /* BITFeedbackManagerPrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = 1E49A4351612223B00463151 /* BITFeedbackManagerPrivate.h */; }; + 1E49A4571612223B00463151 /* BITFeedbackMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = 1E49A4361612223B00463151 /* BITFeedbackMessage.h */; }; + 1E49A45A1612223B00463151 /* BITFeedbackMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = 1E49A4371612223B00463151 /* BITFeedbackMessage.m */; }; + 1E49A45D1612223B00463151 /* BITFeedbackUserDataViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = 1E49A4381612223B00463151 /* BITFeedbackUserDataViewController.h */; }; + 1E49A4601612223B00463151 /* BITFeedbackUserDataViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 1E49A4391612223B00463151 /* BITFeedbackUserDataViewController.m */; }; + 1E49A46D1612226D00463151 /* BITAppVersionMetaInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = 1E49A4621612226D00463151 /* BITAppVersionMetaInfo.h */; }; + 1E49A4701612226D00463151 /* BITAppVersionMetaInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = 1E49A4631612226D00463151 /* BITAppVersionMetaInfo.m */; }; + 1E49A4731612226D00463151 /* BITUpdateManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 1E49A4641612226D00463151 /* BITUpdateManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 1E49A4761612226D00463151 /* BITUpdateManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 1E49A4651612226D00463151 /* BITUpdateManager.m */; }; + 1E49A4791612226D00463151 /* BITUpdateManagerDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = 1E49A4661612226D00463151 /* BITUpdateManagerDelegate.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 1E49A47C1612226D00463151 /* BITUpdateManagerPrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = 1E49A4671612226D00463151 /* BITUpdateManagerPrivate.h */; }; + 1E49A47F1612226D00463151 /* BITUpdateViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = 1E49A4681612226D00463151 /* BITUpdateViewController.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 1E49A4821612226D00463151 /* BITUpdateViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 1E49A4691612226D00463151 /* BITUpdateViewController.m */; }; + 1E49A4851612226D00463151 /* BITUpdateViewControllerPrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = 1E49A46A1612226D00463151 /* BITUpdateViewControllerPrivate.h */; }; + 1E49A4AF161222B900463151 /* BITHockeyBaseManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 1E49A4A0161222B900463151 /* BITHockeyBaseManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 1E49A4B2161222B900463151 /* BITHockeyBaseManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 1E49A4A1161222B900463151 /* BITHockeyBaseManager.m */; }; + 1E49A4B5161222B900463151 /* BITHockeyBaseManagerPrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = 1E49A4A2161222B900463151 /* BITHockeyBaseManagerPrivate.h */; }; + 1E49A4B8161222B900463151 /* BITHockeyBaseViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = 1E49A4A3161222B900463151 /* BITHockeyBaseViewController.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 1E49A4BB161222B900463151 /* BITHockeyBaseViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 1E49A4A4161222B900463151 /* BITHockeyBaseViewController.m */; }; + 1E49A4BE161222B900463151 /* BITHockeyHelper.h in Headers */ = {isa = PBXBuildFile; fileRef = 1E49A4A5161222B900463151 /* BITHockeyHelper.h */; }; + 1E49A4C1161222B900463151 /* BITHockeyHelper.m in Sources */ = {isa = PBXBuildFile; fileRef = 1E49A4A6161222B900463151 /* BITHockeyHelper.m */; }; + 1E49A4C4161222B900463151 /* BITAppStoreHeader.h in Headers */ = {isa = PBXBuildFile; fileRef = 1E49A4A7161222B900463151 /* BITAppStoreHeader.h */; }; + 1E49A4C7161222B900463151 /* BITAppStoreHeader.m in Sources */ = {isa = PBXBuildFile; fileRef = 1E49A4A8161222B900463151 /* BITAppStoreHeader.m */; }; + 1E49A4CA161222B900463151 /* BITStoreButton.h in Headers */ = {isa = PBXBuildFile; fileRef = 1E49A4A9161222B900463151 /* BITStoreButton.h */; }; + 1E49A4CD161222B900463151 /* BITStoreButton.m in Sources */ = {isa = PBXBuildFile; fileRef = 1E49A4AA161222B900463151 /* BITStoreButton.m */; }; + 1E49A4D0161222B900463151 /* BITWebTableViewCell.h in Headers */ = {isa = PBXBuildFile; fileRef = 1E49A4AB161222B900463151 /* BITWebTableViewCell.h */; }; + 1E49A4D3161222B900463151 /* BITWebTableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 1E49A4AC161222B900463151 /* BITWebTableViewCell.m */; }; + 1E49A4D8161222D400463151 /* HockeySDKPrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = 1E49A4D4161222D400463151 /* HockeySDKPrivate.h */; }; + 1E49A4DB161222D400463151 /* HockeySDKPrivate.m in Sources */ = {isa = PBXBuildFile; fileRef = 1E49A4D5161222D400463151 /* HockeySDKPrivate.m */; }; + 1E4CD1E419D17E9D00019DD4 /* Arrow@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 1E4CD1E319D17E9D00019DD4 /* Arrow@3x.png */; }; + 1E4CD1E619D17EA300019DD4 /* Blur@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 1E4CD1E519D17EA300019DD4 /* Blur@3x.png */; }; + 1E4CD1E819D17EAD00019DD4 /* Cancel@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 1E4CD1E719D17EAD00019DD4 /* Cancel@3x.png */; }; + 1E4CD1EA19D17EB700019DD4 /* Ok@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 1E4CD1E919D17EB700019DD4 /* Ok@3x.png */; }; + 1E4CD1EC19D17EBE00019DD4 /* Rectangle@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 1E4CD1EB19D17EBE00019DD4 /* Rectangle@3x.png */; }; + 1E4CD1F019D17EE400019DD4 /* authorize_denied@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 1E4CD1EF19D17EE400019DD4 /* authorize_denied@3x.png */; }; + 1E566D071A275C4C0070F514 /* BITCrashReportTextFormatterTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 1E566D061A275C4C0070F514 /* BITCrashReportTextFormatterTests.m */; }; + 1E5954D315B6F24A00A03429 /* BITHockeyManager.m in Sources */ = {isa = PBXBuildFile; fileRef = E41EB466148D7BF50015DEDC /* BITHockeyManager.m */; }; + 1E5954DC15B6F24A00A03429 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E400561D148D79B500EB22B9 /* Foundation.framework */; }; + 1E5954DD15B6F24A00A03429 /* CrashReporter.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E41EB48B148D7C4E0015DEDC /* CrashReporter.framework */; }; + 1E59559A15B6FDA500A03429 /* BITHockeyManager.h in Headers */ = {isa = PBXBuildFile; fileRef = E41EB465148D7BF50015DEDC /* BITHockeyManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 1E59559B15B6FDA500A03429 /* HockeySDK.h in Headers */ = {isa = PBXBuildFile; fileRef = 1E71509A15B5C76F004E88FF /* HockeySDK.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 1E5955C615B71C8600A03429 /* authorize_denied.png in Resources */ = {isa = PBXBuildFile; fileRef = 1E5955BB15B71C8600A03429 /* authorize_denied.png */; }; + 1E5955C715B71C8600A03429 /* authorize_denied@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 1E5955BC15B71C8600A03429 /* authorize_denied@2x.png */; }; + 1E5955CA15B71C8600A03429 /* bg.png in Resources */ = {isa = PBXBuildFile; fileRef = 1E5955BF15B71C8600A03429 /* bg.png */; }; + 1E5955CF15B71C8600A03429 /* IconGradient.png in Resources */ = {isa = PBXBuildFile; fileRef = 1E5955C415B71C8600A03429 /* IconGradient.png */; }; + 1E5955D015B71C8600A03429 /* IconGradient@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 1E5955C515B71C8600A03429 /* IconGradient@2x.png */; }; + 1E5955FD15B7877B00A03429 /* BITHockeyManagerDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = 1E5955FA15B7877A00A03429 /* BITHockeyManagerDelegate.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 1E5A459516F0DFC200B55C04 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E400561D148D79B500EB22B9 /* Foundation.framework */; }; + 1E5A459B16F0DFC200B55C04 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 1E5A459916F0DFC200B55C04 /* InfoPlist.strings */; }; + 1E5A459E16F0DFC200B55C04 /* BITStoreUpdateManagerTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 1E5A459D16F0DFC200B55C04 /* BITStoreUpdateManagerTests.m */; }; + 1E61CCAF18E0585A00A5E38E /* BITFeedbackManagerTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 1E61CCAE18E0585A00A5E38E /* BITFeedbackManagerTests.m */; }; + 1E70A23217F2F982001BB32D /* live_report_empty.plcrash in Resources */ = {isa = PBXBuildFile; fileRef = 1E70A22F17F2F982001BB32D /* live_report_empty.plcrash */; }; + 1E70A23317F2F982001BB32D /* live_report_exception.plcrash in Resources */ = {isa = PBXBuildFile; fileRef = 1E70A23017F2F982001BB32D /* live_report_exception.plcrash */; }; + 1E70A23417F2F982001BB32D /* live_report_signal.plcrash in Resources */ = {isa = PBXBuildFile; fileRef = 1E70A23117F2F982001BB32D /* live_report_signal.plcrash */; }; + 1E70A23617F31B82001BB32D /* BITHockeyHelperTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 1E70A23517F31B82001BB32D /* BITHockeyHelperTests.m */; }; + 1E754E5C1621FBB70070AB92 /* BITCrashManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 1E754E561621FBB70070AB92 /* BITCrashManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 1E754E5D1621FBB70070AB92 /* BITCrashManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 1E754E571621FBB70070AB92 /* BITCrashManager.m */; }; + 1E754E5E1621FBB70070AB92 /* BITCrashManagerDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = 1E754E581621FBB70070AB92 /* BITCrashManagerDelegate.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 1E754E601621FBB70070AB92 /* BITCrashReportTextFormatter.h in Headers */ = {isa = PBXBuildFile; fileRef = 1E754E5A1621FBB70070AB92 /* BITCrashReportTextFormatter.h */; }; + 1E754E611621FBB70070AB92 /* BITCrashReportTextFormatter.m in Sources */ = {isa = PBXBuildFile; fileRef = 1E754E5B1621FBB70070AB92 /* BITCrashReportTextFormatter.m */; }; + 1E7A45FC16F54FB5005B08F1 /* OCHamcrestIOS.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1E7A45FA16F54FB5005B08F1 /* OCHamcrestIOS.framework */; }; + 1E7A45FD16F54FB5005B08F1 /* OCMockitoIOS.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1E7A45FB16F54FB5005B08F1 /* OCMockitoIOS.framework */; }; + 1E84DB3417E099BA00AC83FD /* HockeySDKFeatureConfig.h in Headers */ = {isa = PBXBuildFile; fileRef = 1E84DB3317E0977C00AC83FD /* HockeySDKFeatureConfig.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 1E90D97F19DAD8A800188C43 /* feedbackActivity.png in Resources */ = {isa = PBXBuildFile; fileRef = 1E90D97A19DAD8A800188C43 /* feedbackActivity.png */; }; + 1E90D98019DAD8A800188C43 /* feedbackActivity@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 1E90D97B19DAD8A800188C43 /* feedbackActivity@2x.png */; }; + 1E90D98119DAD8A800188C43 /* feedbackActivity@2x~ipad.png in Resources */ = {isa = PBXBuildFile; fileRef = 1E90D97C19DAD8A800188C43 /* feedbackActivity@2x~ipad.png */; }; + 1E90D98219DAD8A800188C43 /* feedbackActivity@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 1E90D97D19DAD8A800188C43 /* feedbackActivity@3x.png */; }; + 1E90D98319DAD8A800188C43 /* feedbackActivity~ipad.png in Resources */ = {isa = PBXBuildFile; fileRef = 1E90D97E19DAD8A800188C43 /* feedbackActivity~ipad.png */; }; + 1E90FD7318EDB86400CF0417 /* BITCrashDetails.h in Headers */ = {isa = PBXBuildFile; fileRef = 1E90FD7118EDB86400CF0417 /* BITCrashDetails.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 1E90FD7418EDB86400CF0417 /* BITCrashDetails.m in Sources */ = {isa = PBXBuildFile; fileRef = 1E90FD7218EDB86400CF0417 /* BITCrashDetails.m */; }; + 1E94F9E116E91330006570AD /* BITStoreUpdateManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 1E94F9DF16E91330006570AD /* BITStoreUpdateManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 1E94F9E216E91330006570AD /* BITStoreUpdateManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 1E94F9E016E91330006570AD /* BITStoreUpdateManager.m */; }; + 1E94F9E416E9136B006570AD /* BITStoreUpdateManagerPrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = 1E94F9E316E9136B006570AD /* BITStoreUpdateManagerPrivate.h */; }; + 1EA1170016F4D32C001C015C /* libHockeySDK.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 1E5954F215B6F24A00A03429 /* libHockeySDK.a */; }; + 1EA1170116F4D354001C015C /* CrashReporter.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E41EB48B148D7C4E0015DEDC /* CrashReporter.framework */; }; + 1EA1170416F53B49001C015C /* StoreBundleIdentifierUnknown.json in Resources */ = {isa = PBXBuildFile; fileRef = 1EA1170316F53B49001C015C /* StoreBundleIdentifierUnknown.json */; }; + 1EA1170716F53B91001C015C /* BITTestHelper.m in Sources */ = {isa = PBXBuildFile; fileRef = 1EA1170616F53B91001C015C /* BITTestHelper.m */; }; + 1EA1170916F53E3A001C015C /* StoreBundleIdentifierKnown.json in Resources */ = {isa = PBXBuildFile; fileRef = 1EA1170816F53E3A001C015C /* StoreBundleIdentifierKnown.json */; }; + 1EA1170C16F54A64001C015C /* HockeySDKResources.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 1E59550A15B6F45800A03429 /* HockeySDKResources.bundle */; }; + 1EACC97B162F041E007578C5 /* BITAttributedLabel.h in Headers */ = {isa = PBXBuildFile; fileRef = 1EACC979162F041E007578C5 /* BITAttributedLabel.h */; }; + 1EACC97C162F041E007578C5 /* BITAttributedLabel.m in Sources */ = {isa = PBXBuildFile; fileRef = 1EACC97A162F041E007578C5 /* BITAttributedLabel.m */; }; + 1EB52FD5167B766100C801D5 /* HockeySDK.strings in Resources */ = {isa = PBXBuildFile; fileRef = 1E59555F15B6F80E00A03429 /* HockeySDK.strings */; }; + 1EB92E731955C38C0093C8B6 /* BITHockeyAttachment.h in Headers */ = {isa = PBXBuildFile; fileRef = 1EB92E711955C38C0093C8B6 /* BITHockeyAttachment.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 1EB92E741955C38C0093C8B6 /* BITHockeyAttachment.m in Sources */ = {isa = PBXBuildFile; fileRef = 1EB92E721955C38C0093C8B6 /* BITHockeyAttachment.m */; }; + 1ECA8F4D192B5BD8006B9416 /* BITCrashDetailsPrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = 1ECA8F4B192B5BD8006B9416 /* BITCrashDetailsPrivate.h */; }; + 1ECA8F51192B6954006B9416 /* BITCrashMetaData.h in Headers */ = {isa = PBXBuildFile; fileRef = 1ECA8F4F192B6954006B9416 /* BITCrashMetaData.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 1ECA8F52192B6954006B9416 /* BITCrashMetaData.m in Sources */ = {isa = PBXBuildFile; fileRef = 1ECA8F50192B6954006B9416 /* BITCrashMetaData.m */; }; + 1ED570C718BF878C00AB3350 /* BITCrashAttachment.h in Headers */ = {isa = PBXBuildFile; fileRef = 1ED570C518BF878C00AB3350 /* BITCrashAttachment.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 1ED570C818BF878C00AB3350 /* BITCrashAttachment.m in Sources */ = {isa = PBXBuildFile; fileRef = 1ED570C618BF878C00AB3350 /* BITCrashAttachment.m */; }; + 1EF95CA6162CB037000AE3AD /* BITFeedbackActivity.h in Headers */ = {isa = PBXBuildFile; fileRef = 1EF95CA4162CB036000AE3AD /* BITFeedbackActivity.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 1EF95CA7162CB037000AE3AD /* BITFeedbackActivity.m in Sources */ = {isa = PBXBuildFile; fileRef = 1EF95CA5162CB036000AE3AD /* BITFeedbackActivity.m */; }; + 1EF95CAA162CB314000AE3AD /* BITFeedbackComposeViewControllerDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = 1EF95CA9162CB313000AE3AD /* BITFeedbackComposeViewControllerDelegate.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 1EFF03E517F2485500A5F13C /* BITCrashManagerTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 1EFF03E417F2485500A5F13C /* BITCrashManagerTests.m */; }; + 973EC8B418BCA7BC00DBFFBB /* BITImageAnnotationViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 97F0FA0018AE375E00EF50AA /* BITImageAnnotationViewController.m */; }; + 973EC8B718BCA8A200DBFFBB /* BITRectangleImageAnnotation.h in Headers */ = {isa = PBXBuildFile; fileRef = 973EC8B518BCA8A200DBFFBB /* BITRectangleImageAnnotation.h */; }; + 973EC8B818BCA8A200DBFFBB /* BITRectangleImageAnnotation.m in Sources */ = {isa = PBXBuildFile; fileRef = 973EC8B618BCA8A200DBFFBB /* BITRectangleImageAnnotation.m */; }; + 973EC8BB18BDE29800DBFFBB /* BITArrowImageAnnotation.h in Headers */ = {isa = PBXBuildFile; fileRef = 973EC8B918BDE29800DBFFBB /* BITArrowImageAnnotation.h */; }; + 973EC8BC18BDE29800DBFFBB /* BITArrowImageAnnotation.m in Sources */ = {isa = PBXBuildFile; fileRef = 973EC8BA18BDE29800DBFFBB /* BITArrowImageAnnotation.m */; }; + 973EC8BF18BE2B5B00DBFFBB /* BITBlurImageAnnotation.h in Headers */ = {isa = PBXBuildFile; fileRef = 973EC8BD18BE2B5B00DBFFBB /* BITBlurImageAnnotation.h */; }; + 973EC8C018BE2B5B00DBFFBB /* BITBlurImageAnnotation.m in Sources */ = {isa = PBXBuildFile; fileRef = 973EC8BE18BE2B5B00DBFFBB /* BITBlurImageAnnotation.m */; }; + 9760F6C418BB4D2D00959B93 /* AssetsLibrary.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9760F6C318BB4D2D00959B93 /* AssetsLibrary.framework */; }; + 9760F6CF18BB685600959B93 /* BITImageAnnotation.h in Headers */ = {isa = PBXBuildFile; fileRef = 9760F6CD18BB685600959B93 /* BITImageAnnotation.h */; }; + 9760F6D018BB685600959B93 /* BITImageAnnotation.m in Sources */ = {isa = PBXBuildFile; fileRef = 9760F6CE18BB685600959B93 /* BITImageAnnotation.m */; }; + 9774BCFF192CB20A00085EB5 /* BITActivityIndicatorButton.h in Headers */ = {isa = PBXBuildFile; fileRef = 9774BCFD192CB20A00085EB5 /* BITActivityIndicatorButton.h */; }; + 9774BD00192CB20A00085EB5 /* BITActivityIndicatorButton.m in Sources */ = {isa = PBXBuildFile; fileRef = 9774BCFE192CB20A00085EB5 /* BITActivityIndicatorButton.m */; }; + 9782023218F81BFC00A98D8B /* Arrow.png in Resources */ = {isa = PBXBuildFile; fileRef = 9782022818F81BFC00A98D8B /* Arrow.png */; }; + 9782023318F81BFC00A98D8B /* Arrow@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 9782022918F81BFC00A98D8B /* Arrow@2x.png */; }; + 9782023418F81BFC00A98D8B /* Blur.png in Resources */ = {isa = PBXBuildFile; fileRef = 9782022A18F81BFC00A98D8B /* Blur.png */; }; + 9782023518F81BFC00A98D8B /* Blur@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 9782022B18F81BFC00A98D8B /* Blur@2x.png */; }; + 9782023618F81BFC00A98D8B /* Cancel.png in Resources */ = {isa = PBXBuildFile; fileRef = 9782022C18F81BFC00A98D8B /* Cancel.png */; }; + 9782023718F81BFC00A98D8B /* Cancel@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 9782022D18F81BFC00A98D8B /* Cancel@2x.png */; }; + 9782023818F81BFC00A98D8B /* Ok.png in Resources */ = {isa = PBXBuildFile; fileRef = 9782022E18F81BFC00A98D8B /* Ok.png */; }; + 9782023918F81BFC00A98D8B /* Ok@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 9782022F18F81BFC00A98D8B /* Ok@2x.png */; }; + 9782023A18F81BFC00A98D8B /* Rectangle.png in Resources */ = {isa = PBXBuildFile; fileRef = 9782023018F81BFC00A98D8B /* Rectangle.png */; }; + 9782023B18F81BFC00A98D8B /* Rectangle@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 9782023118F81BFC00A98D8B /* Rectangle@2x.png */; }; + 97BD9BD5191109730043FD59 /* QuickLook.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 97BD9BD4191109730043FD59 /* QuickLook.framework */; }; + 97CC11F71917AB7C0028768F /* QuickLook.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 97BD9BD4191109730043FD59 /* QuickLook.framework */; }; + 97CC11F91917C0310028768F /* MobileCoreServices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 97CC11F81917C0310028768F /* MobileCoreServices.framework */; }; + 97CC11FA1917C0390028768F /* MobileCoreServices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 97CC11F81917C0310028768F /* MobileCoreServices.framework */; }; + 97F0F9FD18ABAECD00EF50AA /* iconCamera.png in Resources */ = {isa = PBXBuildFile; fileRef = 97F0F9FB18ABAECD00EF50AA /* iconCamera.png */; }; + 97F0F9FE18ABAECD00EF50AA /* iconCamera@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 97F0F9FC18ABAECD00EF50AA /* iconCamera@2x.png */; }; + 97F0FA0518B2294D00EF50AA /* BITFeedbackMessageAttachment.m in Sources */ = {isa = PBXBuildFile; fileRef = 97F0FA0318AE5AED00EF50AA /* BITFeedbackMessageAttachment.m */; }; + E405266217A2AD300096359C /* BITFeedbackManagerDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = E405266117A2AD300096359C /* BITFeedbackManagerDelegate.h */; settings = {ATTRIBUTES = (Public, ); }; }; + E40E0B0917DA19DC005E38C1 /* BITHockeyAppClientTests.m in Sources */ = {isa = PBXBuildFile; fileRef = E40E0B0817DA19DC005E38C1 /* BITHockeyAppClientTests.m */; }; + E40E0B0C17DA1AFF005E38C1 /* BITHockeyAppClient.h in Headers */ = {isa = PBXBuildFile; fileRef = E40E0B0A17DA1AFF005E38C1 /* BITHockeyAppClient.h */; }; + E40E0B0D17DA1AFF005E38C1 /* BITHockeyAppClient.m in Sources */ = {isa = PBXBuildFile; fileRef = E40E0B0B17DA1AFF005E38C1 /* BITHockeyAppClient.m */; }; + E4507E4317F0658F00171A0D /* BITKeychainUtilsTests.m in Sources */ = {isa = PBXBuildFile; fileRef = E4507E4217F0658F00171A0D /* BITKeychainUtilsTests.m */; }; + E48A3DEC17B3ED1C00924C3D /* BITAuthenticator.h in Headers */ = {isa = PBXBuildFile; fileRef = E48A3DEA17B3ED1C00924C3D /* BITAuthenticator.h */; settings = {ATTRIBUTES = (Public, ); }; }; + E48A3DED17B3ED1C00924C3D /* BITAuthenticator.m in Sources */ = {isa = PBXBuildFile; fileRef = E48A3DEB17B3ED1C00924C3D /* BITAuthenticator.m */; }; + E48A3DEF17B3EFF100924C3D /* BITAuthenticatorTests.m in Sources */ = {isa = PBXBuildFile; fileRef = E48A3DEE17B3EFF100924C3D /* BITAuthenticatorTests.m */; }; + E4933E8017B66CDA00B11ACC /* BITHTTPOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = E4933E7E17B66CDA00B11ACC /* BITHTTPOperation.h */; }; + E4933E8117B66CDA00B11ACC /* BITHTTPOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = E4933E7F17B66CDA00B11ACC /* BITHTTPOperation.m */; }; + E4B4DB7D17B435550099C67F /* BITAuthenticationViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = E4B4DB7B17B435550099C67F /* BITAuthenticationViewController.h */; }; + E4B4DB7E17B435550099C67F /* BITAuthenticationViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = E4B4DB7C17B435550099C67F /* BITAuthenticationViewController.m */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + 1E59557D15B6F97100A03429 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = E4005611148D79B500EB22B9 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 1E59550915B6F45800A03429; + remoteInfo = HockeySDKResources; + }; + 1E754E421621F6290070AB92 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = E4005611148D79B500EB22B9 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 1E8E66AD15BC3D7700632A2E; + remoteInfo = "HockeySDK Documentation"; + }; + 1EA116FE16F4D302001C015C /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = E4005611148D79B500EB22B9 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 1E5954CB15B6F24A00A03429; + remoteInfo = HockeySDK; + }; + 1EA1170A16F54A5C001C015C /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = E4005611148D79B500EB22B9 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 1E59550915B6F45800A03429; + remoteInfo = HockeySDKResources; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXFileReference section */ + 1E0828FF1708F69A0073050E /* BITStoreUpdateManagerDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BITStoreUpdateManagerDelegate.h; sourceTree = ""; }; + 1E0FEE26173BDB260061331F /* BITKeychainUtils.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BITKeychainUtils.h; sourceTree = ""; }; + 1E0FEE27173BDB260061331F /* BITKeychainUtils.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BITKeychainUtils.m; sourceTree = ""; }; + 1E1127BC16580C87007067A2 /* buttonRoundedDelete.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = buttonRoundedDelete.png; sourceTree = ""; }; + 1E1127BD16580C87007067A2 /* buttonRoundedDelete@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "buttonRoundedDelete@2x.png"; sourceTree = ""; }; + 1E1127BE16580C87007067A2 /* buttonRoundedDeleteHighlighted.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = buttonRoundedDeleteHighlighted.png; sourceTree = ""; }; + 1E1127BF16580C87007067A2 /* buttonRoundedDeleteHighlighted@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "buttonRoundedDeleteHighlighted@2x.png"; sourceTree = ""; }; + 1E1127C016580C87007067A2 /* buttonRoundedRegular.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = buttonRoundedRegular.png; sourceTree = ""; }; + 1E1127C116580C87007067A2 /* buttonRoundedRegular@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "buttonRoundedRegular@2x.png"; sourceTree = ""; }; + 1E1127C216580C87007067A2 /* buttonRoundedRegularHighlighted.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = buttonRoundedRegularHighlighted.png; sourceTree = ""; }; + 1E1127C316580C87007067A2 /* buttonRoundedRegularHighlighted@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "buttonRoundedRegularHighlighted@2x.png"; sourceTree = ""; }; + 1E20A57F181E9D4600D5B770 /* nl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = nl; path = nl.lproj/HockeySDK.strings; sourceTree = ""; }; + 1E36D8B816667611000B134C /* hr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = hr; path = hr.lproj/HockeySDK.strings; sourceTree = ""; }; + 1E494AEA19491943001EFF74 /* AppIcon.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = AppIcon.png; sourceTree = ""; }; + 1E494AEB19491943001EFF74 /* AppIcon@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "AppIcon@2x.png"; sourceTree = ""; }; + 1E49A42D1612223B00463151 /* BITFeedbackComposeViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BITFeedbackComposeViewController.h; sourceTree = ""; }; + 1E49A42E1612223B00463151 /* BITFeedbackComposeViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BITFeedbackComposeViewController.m; sourceTree = ""; }; + 1E49A42F1612223B00463151 /* BITFeedbackListViewCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BITFeedbackListViewCell.h; sourceTree = ""; }; + 1E49A4301612223B00463151 /* BITFeedbackListViewCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BITFeedbackListViewCell.m; sourceTree = ""; }; + 1E49A4311612223B00463151 /* BITFeedbackListViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BITFeedbackListViewController.h; sourceTree = ""; }; + 1E49A4321612223B00463151 /* BITFeedbackListViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BITFeedbackListViewController.m; sourceTree = ""; }; + 1E49A4331612223B00463151 /* BITFeedbackManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BITFeedbackManager.h; sourceTree = ""; }; + 1E49A4341612223B00463151 /* BITFeedbackManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BITFeedbackManager.m; sourceTree = ""; }; + 1E49A4351612223B00463151 /* BITFeedbackManagerPrivate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BITFeedbackManagerPrivate.h; sourceTree = ""; }; + 1E49A4361612223B00463151 /* BITFeedbackMessage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BITFeedbackMessage.h; sourceTree = ""; }; + 1E49A4371612223B00463151 /* BITFeedbackMessage.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BITFeedbackMessage.m; sourceTree = ""; }; + 1E49A4381612223B00463151 /* BITFeedbackUserDataViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BITFeedbackUserDataViewController.h; sourceTree = ""; }; + 1E49A4391612223B00463151 /* BITFeedbackUserDataViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BITFeedbackUserDataViewController.m; sourceTree = ""; }; + 1E49A4621612226D00463151 /* BITAppVersionMetaInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BITAppVersionMetaInfo.h; sourceTree = ""; }; + 1E49A4631612226D00463151 /* BITAppVersionMetaInfo.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BITAppVersionMetaInfo.m; sourceTree = ""; }; + 1E49A4641612226D00463151 /* BITUpdateManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BITUpdateManager.h; sourceTree = ""; }; + 1E49A4651612226D00463151 /* BITUpdateManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BITUpdateManager.m; sourceTree = ""; }; + 1E49A4661612226D00463151 /* BITUpdateManagerDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BITUpdateManagerDelegate.h; sourceTree = ""; }; + 1E49A4671612226D00463151 /* BITUpdateManagerPrivate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BITUpdateManagerPrivate.h; sourceTree = ""; }; + 1E49A4681612226D00463151 /* BITUpdateViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BITUpdateViewController.h; sourceTree = ""; }; + 1E49A4691612226D00463151 /* BITUpdateViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BITUpdateViewController.m; sourceTree = ""; }; + 1E49A46A1612226D00463151 /* BITUpdateViewControllerPrivate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BITUpdateViewControllerPrivate.h; sourceTree = ""; }; + 1E49A4A0161222B900463151 /* BITHockeyBaseManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BITHockeyBaseManager.h; sourceTree = ""; }; + 1E49A4A1161222B900463151 /* BITHockeyBaseManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BITHockeyBaseManager.m; sourceTree = ""; }; + 1E49A4A2161222B900463151 /* BITHockeyBaseManagerPrivate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BITHockeyBaseManagerPrivate.h; sourceTree = ""; }; + 1E49A4A3161222B900463151 /* BITHockeyBaseViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BITHockeyBaseViewController.h; sourceTree = ""; }; + 1E49A4A4161222B900463151 /* BITHockeyBaseViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BITHockeyBaseViewController.m; sourceTree = ""; }; + 1E49A4A5161222B900463151 /* BITHockeyHelper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BITHockeyHelper.h; sourceTree = ""; }; + 1E49A4A6161222B900463151 /* BITHockeyHelper.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BITHockeyHelper.m; sourceTree = ""; }; + 1E49A4A7161222B900463151 /* BITAppStoreHeader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BITAppStoreHeader.h; sourceTree = ""; }; + 1E49A4A8161222B900463151 /* BITAppStoreHeader.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BITAppStoreHeader.m; sourceTree = ""; }; + 1E49A4A9161222B900463151 /* BITStoreButton.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BITStoreButton.h; sourceTree = ""; }; + 1E49A4AA161222B900463151 /* BITStoreButton.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BITStoreButton.m; sourceTree = ""; }; + 1E49A4AB161222B900463151 /* BITWebTableViewCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BITWebTableViewCell.h; sourceTree = ""; }; + 1E49A4AC161222B900463151 /* BITWebTableViewCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BITWebTableViewCell.m; sourceTree = ""; }; + 1E49A4D4161222D400463151 /* HockeySDKPrivate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HockeySDKPrivate.h; sourceTree = ""; }; + 1E49A4D5161222D400463151 /* HockeySDKPrivate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HockeySDKPrivate.m; sourceTree = ""; }; + 1E4CD1E319D17E9D00019DD4 /* Arrow@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Arrow@3x.png"; sourceTree = ""; }; + 1E4CD1E519D17EA300019DD4 /* Blur@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Blur@3x.png"; sourceTree = ""; }; + 1E4CD1E719D17EAD00019DD4 /* Cancel@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Cancel@3x.png"; sourceTree = ""; }; + 1E4CD1E919D17EB700019DD4 /* Ok@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Ok@3x.png"; sourceTree = ""; }; + 1E4CD1EB19D17EBE00019DD4 /* Rectangle@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Rectangle@3x.png"; sourceTree = ""; }; + 1E4CD1EF19D17EE400019DD4 /* authorize_denied@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "authorize_denied@3x.png"; sourceTree = ""; }; + 1E566D061A275C4C0070F514 /* BITCrashReportTextFormatterTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BITCrashReportTextFormatterTests.m; sourceTree = ""; }; + 1E5954F215B6F24A00A03429 /* libHockeySDK.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libHockeySDK.a; sourceTree = BUILT_PRODUCTS_DIR; }; + 1E59550A15B6F45800A03429 /* HockeySDKResources.bundle */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = HockeySDKResources.bundle; sourceTree = BUILT_PRODUCTS_DIR; }; + 1E59556015B6F80E00A03429 /* de */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.strings; name = de; path = de.lproj/HockeySDK.strings; sourceTree = ""; }; + 1E59556415B6F81C00A03429 /* es */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.strings; name = es; path = es.lproj/HockeySDK.strings; sourceTree = ""; }; + 1E59556615B6F82300A03429 /* fr */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/HockeySDK.strings; sourceTree = ""; }; + 1E59556815B6F82A00A03429 /* it */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.strings; name = it; path = it.lproj/HockeySDK.strings; sourceTree = ""; }; + 1E59556A15B6F83100A03429 /* ja */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.strings; name = ja; path = ja.lproj/HockeySDK.strings; sourceTree = ""; }; + 1E59557015B6F84700A03429 /* pt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.strings; name = pt; path = pt.lproj/HockeySDK.strings; sourceTree = ""; }; + 1E59557215B6F84D00A03429 /* ru */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.strings; name = ru; path = ru.lproj/HockeySDK.strings; sourceTree = ""; }; + 1E5955BB15B71C8600A03429 /* authorize_denied.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = authorize_denied.png; sourceTree = ""; }; + 1E5955BC15B71C8600A03429 /* authorize_denied@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "authorize_denied@2x.png"; sourceTree = ""; }; + 1E5955BF15B71C8600A03429 /* bg.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = bg.png; sourceTree = ""; }; + 1E5955C415B71C8600A03429 /* IconGradient.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = IconGradient.png; sourceTree = ""; }; + 1E5955C515B71C8600A03429 /* IconGradient@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "IconGradient@2x.png"; sourceTree = ""; }; + 1E5955FA15B7877A00A03429 /* BITHockeyManagerDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BITHockeyManagerDelegate.h; sourceTree = ""; }; + 1E5A459016F0DFC200B55C04 /* HockeySDKTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = HockeySDKTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; + 1E5A459816F0DFC200B55C04 /* HockeySDKTests-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "HockeySDKTests-Info.plist"; sourceTree = ""; }; + 1E5A459A16F0DFC200B55C04 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = ""; }; + 1E5A459D16F0DFC200B55C04 /* BITStoreUpdateManagerTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = BITStoreUpdateManagerTests.m; sourceTree = ""; }; + 1E5A459F16F0DFC200B55C04 /* HockeySDKTests-Prefix.pch */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "HockeySDKTests-Prefix.pch"; sourceTree = ""; }; + 1E61CCAE18E0585A00A5E38E /* BITFeedbackManagerTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BITFeedbackManagerTests.m; sourceTree = ""; }; + 1E66CA9115D4100500F35BED /* buildnumber.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = buildnumber.xcconfig; sourceTree = ""; }; + 1E6F0450167B5E5600ED1C86 /* pt-PT */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "pt-PT"; path = "pt-PT.lproj/HockeySDK.strings"; sourceTree = ""; }; + 1E70A22F17F2F982001BB32D /* live_report_empty.plcrash */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = live_report_empty.plcrash; sourceTree = ""; }; + 1E70A23017F2F982001BB32D /* live_report_exception.plcrash */ = {isa = PBXFileReference; lastKnownFileType = file; path = live_report_exception.plcrash; sourceTree = ""; }; + 1E70A23117F2F982001BB32D /* live_report_signal.plcrash */ = {isa = PBXFileReference; lastKnownFileType = file; path = live_report_signal.plcrash; sourceTree = ""; }; + 1E70A23517F31B82001BB32D /* BITHockeyHelperTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BITHockeyHelperTests.m; sourceTree = ""; }; + 1E71509A15B5C76F004E88FF /* HockeySDK.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HockeySDK.h; sourceTree = ""; }; + 1E754DC61621BC170070AB92 /* HockeySDK.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = HockeySDK.xcconfig; sourceTree = ""; }; + 1E754E561621FBB70070AB92 /* BITCrashManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BITCrashManager.h; sourceTree = ""; }; + 1E754E571621FBB70070AB92 /* BITCrashManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BITCrashManager.m; sourceTree = ""; }; + 1E754E581621FBB70070AB92 /* BITCrashManagerDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BITCrashManagerDelegate.h; sourceTree = ""; }; + 1E754E5A1621FBB70070AB92 /* BITCrashReportTextFormatter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BITCrashReportTextFormatter.h; sourceTree = ""; }; + 1E754E5B1621FBB70070AB92 /* BITCrashReportTextFormatter.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BITCrashReportTextFormatter.m; sourceTree = ""; }; + 1E7A45FA16F54FB5005B08F1 /* OCHamcrestIOS.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = OCHamcrestIOS.framework; sourceTree = ""; }; + 1E7A45FB16F54FB5005B08F1 /* OCMockitoIOS.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = OCMockitoIOS.framework; sourceTree = ""; }; + 1E7DE39619D44DC6009AB8E5 /* crashonly.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = crashonly.xcconfig; sourceTree = ""; }; + 1E84DB3317E0977C00AC83FD /* HockeySDKFeatureConfig.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = HockeySDKFeatureConfig.h; sourceTree = ""; }; + 1E90D97A19DAD8A800188C43 /* feedbackActivity.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = feedbackActivity.png; sourceTree = ""; }; + 1E90D97B19DAD8A800188C43 /* feedbackActivity@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "feedbackActivity@2x.png"; sourceTree = ""; }; + 1E90D97C19DAD8A800188C43 /* feedbackActivity@2x~ipad.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "feedbackActivity@2x~ipad.png"; sourceTree = ""; }; + 1E90D97D19DAD8A800188C43 /* feedbackActivity@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "feedbackActivity@3x.png"; sourceTree = ""; }; + 1E90D97E19DAD8A800188C43 /* feedbackActivity~ipad.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "feedbackActivity~ipad.png"; sourceTree = ""; }; + 1E90FD7118EDB86400CF0417 /* BITCrashDetails.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BITCrashDetails.h; sourceTree = ""; }; + 1E90FD7218EDB86400CF0417 /* BITCrashDetails.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BITCrashDetails.m; sourceTree = ""; }; + 1E91D84619B924E600E9616D /* module.modulemap */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.module-map"; path = module.modulemap; sourceTree = ""; }; + 1E94F9DF16E91330006570AD /* BITStoreUpdateManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BITStoreUpdateManager.h; sourceTree = ""; }; + 1E94F9E016E91330006570AD /* BITStoreUpdateManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BITStoreUpdateManager.m; sourceTree = ""; }; + 1E94F9E316E9136B006570AD /* BITStoreUpdateManagerPrivate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BITStoreUpdateManagerPrivate.h; sourceTree = ""; }; + 1EA1170316F53B49001C015C /* StoreBundleIdentifierUnknown.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = StoreBundleIdentifierUnknown.json; sourceTree = ""; }; + 1EA1170516F53B91001C015C /* BITTestHelper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BITTestHelper.h; sourceTree = ""; }; + 1EA1170616F53B91001C015C /* BITTestHelper.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BITTestHelper.m; sourceTree = ""; }; + 1EA1170816F53E3A001C015C /* StoreBundleIdentifierKnown.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = StoreBundleIdentifierKnown.json; sourceTree = ""; }; + 1EA512DF167F7EF000FC9FBA /* zh-Hans */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-Hans"; path = "zh-Hans.lproj/HockeySDK.strings"; sourceTree = ""; }; + 1EACC979162F041E007578C5 /* BITAttributedLabel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BITAttributedLabel.h; sourceTree = ""; }; + 1EACC97A162F041E007578C5 /* BITAttributedLabel.m */ = {isa = PBXFileReference; fileEncoding = 4; indentWidth = 4; lastKnownFileType = sourcecode.c.objc; path = BITAttributedLabel.m; sourceTree = ""; }; + 1EB52FC3167B73D400C801D5 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/HockeySDK.strings; sourceTree = ""; }; + 1EB92E711955C38C0093C8B6 /* BITHockeyAttachment.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BITHockeyAttachment.h; sourceTree = ""; }; + 1EB92E721955C38C0093C8B6 /* BITHockeyAttachment.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BITHockeyAttachment.m; sourceTree = ""; }; + 1ECA8F4B192B5BD8006B9416 /* BITCrashDetailsPrivate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BITCrashDetailsPrivate.h; sourceTree = ""; }; + 1ECA8F4F192B6954006B9416 /* BITCrashMetaData.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BITCrashMetaData.h; sourceTree = ""; }; + 1ECA8F50192B6954006B9416 /* BITCrashMetaData.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BITCrashMetaData.m; sourceTree = ""; }; + 1ED570C518BF878C00AB3350 /* BITCrashAttachment.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BITCrashAttachment.h; sourceTree = ""; }; + 1ED570C618BF878C00AB3350 /* BITCrashAttachment.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BITCrashAttachment.m; sourceTree = ""; }; + 1EDA60CF15C2C1450032D10B /* HockeySDK-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "HockeySDK-Info.plist"; sourceTree = ""; }; + 1EF95CA4162CB036000AE3AD /* BITFeedbackActivity.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BITFeedbackActivity.h; sourceTree = ""; }; + 1EF95CA5162CB036000AE3AD /* BITFeedbackActivity.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BITFeedbackActivity.m; sourceTree = ""; }; + 1EF95CA9162CB313000AE3AD /* BITFeedbackComposeViewControllerDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BITFeedbackComposeViewControllerDelegate.h; sourceTree = ""; }; + 1EFF03D717F20F8300A5F13C /* BITCrashManagerPrivate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = BITCrashManagerPrivate.h; sourceTree = ""; }; + 1EFF03E417F2485500A5F13C /* BITCrashManagerTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BITCrashManagerTests.m; sourceTree = ""; }; + 973EC8B518BCA8A200DBFFBB /* BITRectangleImageAnnotation.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BITRectangleImageAnnotation.h; sourceTree = ""; }; + 973EC8B618BCA8A200DBFFBB /* BITRectangleImageAnnotation.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BITRectangleImageAnnotation.m; sourceTree = ""; }; + 973EC8B918BDE29800DBFFBB /* BITArrowImageAnnotation.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BITArrowImageAnnotation.h; sourceTree = ""; }; + 973EC8BA18BDE29800DBFFBB /* BITArrowImageAnnotation.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BITArrowImageAnnotation.m; sourceTree = ""; }; + 973EC8BD18BE2B5B00DBFFBB /* BITBlurImageAnnotation.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BITBlurImageAnnotation.h; sourceTree = ""; }; + 973EC8BE18BE2B5B00DBFFBB /* BITBlurImageAnnotation.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BITBlurImageAnnotation.m; sourceTree = ""; }; + 9760F6C318BB4D2D00959B93 /* AssetsLibrary.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AssetsLibrary.framework; path = System/Library/Frameworks/AssetsLibrary.framework; sourceTree = SDKROOT; }; + 9760F6CD18BB685600959B93 /* BITImageAnnotation.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BITImageAnnotation.h; sourceTree = ""; }; + 9760F6CE18BB685600959B93 /* BITImageAnnotation.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BITImageAnnotation.m; sourceTree = ""; }; + 9774BCFD192CB20A00085EB5 /* BITActivityIndicatorButton.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BITActivityIndicatorButton.h; sourceTree = ""; }; + 9774BCFE192CB20A00085EB5 /* BITActivityIndicatorButton.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BITActivityIndicatorButton.m; sourceTree = ""; }; + 9782022818F81BFC00A98D8B /* Arrow.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = Arrow.png; sourceTree = ""; }; + 9782022918F81BFC00A98D8B /* Arrow@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Arrow@2x.png"; sourceTree = ""; }; + 9782022A18F81BFC00A98D8B /* Blur.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = Blur.png; sourceTree = ""; }; + 9782022B18F81BFC00A98D8B /* Blur@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Blur@2x.png"; sourceTree = ""; }; + 9782022C18F81BFC00A98D8B /* Cancel.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = Cancel.png; sourceTree = ""; }; + 9782022D18F81BFC00A98D8B /* Cancel@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Cancel@2x.png"; sourceTree = ""; }; + 9782022E18F81BFC00A98D8B /* Ok.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = Ok.png; sourceTree = ""; }; + 9782022F18F81BFC00A98D8B /* Ok@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Ok@2x.png"; sourceTree = ""; }; + 9782023018F81BFC00A98D8B /* Rectangle.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = Rectangle.png; sourceTree = ""; }; + 9782023118F81BFC00A98D8B /* Rectangle@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Rectangle@2x.png"; sourceTree = ""; }; + 97BD9BD4191109730043FD59 /* QuickLook.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuickLook.framework; path = System/Library/Frameworks/QuickLook.framework; sourceTree = SDKROOT; }; + 97CC11F81917C0310028768F /* MobileCoreServices.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = MobileCoreServices.framework; path = System/Library/Frameworks/MobileCoreServices.framework; sourceTree = SDKROOT; }; + 97F0F9FB18ABAECD00EF50AA /* iconCamera.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = iconCamera.png; sourceTree = ""; }; + 97F0F9FC18ABAECD00EF50AA /* iconCamera@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "iconCamera@2x.png"; sourceTree = ""; }; + 97F0F9FF18AE375E00EF50AA /* BITImageAnnotationViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BITImageAnnotationViewController.h; sourceTree = ""; }; + 97F0FA0018AE375E00EF50AA /* BITImageAnnotationViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BITImageAnnotationViewController.m; sourceTree = ""; }; + 97F0FA0218AE5AED00EF50AA /* BITFeedbackMessageAttachment.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BITFeedbackMessageAttachment.h; sourceTree = ""; }; + 97F0FA0318AE5AED00EF50AA /* BITFeedbackMessageAttachment.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BITFeedbackMessageAttachment.m; sourceTree = ""; }; + BEE0207C16C5107E004426EA /* hu */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = hu; path = hu.lproj/HockeySDK.strings; sourceTree = ""; }; + E400561D148D79B500EB22B9 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; + E405266117A2AD300096359C /* BITFeedbackManagerDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BITFeedbackManagerDelegate.h; sourceTree = ""; }; + E40E0B0817DA19DC005E38C1 /* BITHockeyAppClientTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BITHockeyAppClientTests.m; sourceTree = ""; }; + E40E0B0A17DA1AFF005E38C1 /* BITHockeyAppClient.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BITHockeyAppClient.h; sourceTree = ""; }; + E40E0B0B17DA1AFF005E38C1 /* BITHockeyAppClient.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BITHockeyAppClient.m; sourceTree = ""; }; + E41EB465148D7BF50015DEDC /* BITHockeyManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BITHockeyManager.h; sourceTree = ""; }; + E41EB466148D7BF50015DEDC /* BITHockeyManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BITHockeyManager.m; sourceTree = ""; }; + E41EB48B148D7C4E0015DEDC /* CrashReporter.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CrashReporter.framework; path = ../Vendor/CrashReporter.framework; sourceTree = ""; }; + E4507E4217F0658F00171A0D /* BITKeychainUtilsTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BITKeychainUtilsTests.m; sourceTree = ""; }; + E48A3DEA17B3ED1C00924C3D /* BITAuthenticator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BITAuthenticator.h; sourceTree = ""; }; + E48A3DEB17B3ED1C00924C3D /* BITAuthenticator.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BITAuthenticator.m; sourceTree = ""; }; + E48A3DEE17B3EFF100924C3D /* BITAuthenticatorTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BITAuthenticatorTests.m; sourceTree = ""; }; + E48A3DF117B408F400924C3D /* BITAuthenticator_Private.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = BITAuthenticator_Private.h; sourceTree = ""; }; + E4933E7E17B66CDA00B11ACC /* BITHTTPOperation.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BITHTTPOperation.h; sourceTree = ""; }; + E4933E7F17B66CDA00B11ACC /* BITHTTPOperation.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BITHTTPOperation.m; sourceTree = ""; }; + E4B4DB7B17B435550099C67F /* BITAuthenticationViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BITAuthenticationViewController.h; sourceTree = ""; }; + E4B4DB7C17B435550099C67F /* BITAuthenticationViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BITAuthenticationViewController.m; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 1E5954DB15B6F24A00A03429 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 97CC11F91917C0310028768F /* MobileCoreServices.framework in Frameworks */, + 97BD9BD5191109730043FD59 /* QuickLook.framework in Frameworks */, + 9760F6C418BB4D2D00959B93 /* AssetsLibrary.framework in Frameworks */, + 1E5954DC15B6F24A00A03429 /* Foundation.framework in Frameworks */, + 1E5954DD15B6F24A00A03429 /* CrashReporter.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 1E59550715B6F45800A03429 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 1E5A458C16F0DFC200B55C04 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 97CC11FA1917C0390028768F /* MobileCoreServices.framework in Frameworks */, + 97CC11F71917AB7C0028768F /* QuickLook.framework in Frameworks */, + 1EA1170016F4D32C001C015C /* libHockeySDK.a in Frameworks */, + 1EA1170116F4D354001C015C /* CrashReporter.framework in Frameworks */, + 1E5A459516F0DFC200B55C04 /* Foundation.framework in Frameworks */, + 1E7A45FC16F54FB5005B08F1 /* OCHamcrestIOS.framework in Frameworks */, + 1E7A45FD16F54FB5005B08F1 /* OCMockitoIOS.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 1E5955A415B71BDC00A03429 /* Images */ = { + isa = PBXGroup; + children = ( + 9782022818F81BFC00A98D8B /* Arrow.png */, + 9782022918F81BFC00A98D8B /* Arrow@2x.png */, + 1E4CD1E319D17E9D00019DD4 /* Arrow@3x.png */, + 9782022A18F81BFC00A98D8B /* Blur.png */, + 9782022B18F81BFC00A98D8B /* Blur@2x.png */, + 1E4CD1E519D17EA300019DD4 /* Blur@3x.png */, + 9782022C18F81BFC00A98D8B /* Cancel.png */, + 9782022D18F81BFC00A98D8B /* Cancel@2x.png */, + 1E4CD1E719D17EAD00019DD4 /* Cancel@3x.png */, + 9782022E18F81BFC00A98D8B /* Ok.png */, + 9782022F18F81BFC00A98D8B /* Ok@2x.png */, + 1E4CD1E919D17EB700019DD4 /* Ok@3x.png */, + 9782023018F81BFC00A98D8B /* Rectangle.png */, + 9782023118F81BFC00A98D8B /* Rectangle@2x.png */, + 1E4CD1EB19D17EBE00019DD4 /* Rectangle@3x.png */, + 97F0F9FB18ABAECD00EF50AA /* iconCamera.png */, + 97F0F9FC18ABAECD00EF50AA /* iconCamera@2x.png */, + 1E5955BB15B71C8600A03429 /* authorize_denied.png */, + 1E5955BC15B71C8600A03429 /* authorize_denied@2x.png */, + 1E4CD1EF19D17EE400019DD4 /* authorize_denied@3x.png */, + 1E5955BF15B71C8600A03429 /* bg.png */, + 1E1127BC16580C87007067A2 /* buttonRoundedDelete.png */, + 1E1127BD16580C87007067A2 /* buttonRoundedDelete@2x.png */, + 1E1127BE16580C87007067A2 /* buttonRoundedDeleteHighlighted.png */, + 1E1127BF16580C87007067A2 /* buttonRoundedDeleteHighlighted@2x.png */, + 1E1127C016580C87007067A2 /* buttonRoundedRegular.png */, + 1E1127C116580C87007067A2 /* buttonRoundedRegular@2x.png */, + 1E1127C216580C87007067A2 /* buttonRoundedRegularHighlighted.png */, + 1E1127C316580C87007067A2 /* buttonRoundedRegularHighlighted@2x.png */, + 1E5955C415B71C8600A03429 /* IconGradient.png */, + 1E5955C515B71C8600A03429 /* IconGradient@2x.png */, + 1E90D97A19DAD8A800188C43 /* feedbackActivity.png */, + 1E90D97B19DAD8A800188C43 /* feedbackActivity@2x.png */, + 1E90D97C19DAD8A800188C43 /* feedbackActivity@2x~ipad.png */, + 1E90D97D19DAD8A800188C43 /* feedbackActivity@3x.png */, + 1E90D97E19DAD8A800188C43 /* feedbackActivity~ipad.png */, + ); + name = Images; + sourceTree = ""; + }; + 1E5A459616F0DFC200B55C04 /* HockeySDKTests */ = { + isa = PBXGroup; + children = ( + 1EA1170216F53B49001C015C /* Fixtures */, + 1E5A459716F0DFC200B55C04 /* Supporting Files */, + 1E5A459D16F0DFC200B55C04 /* BITStoreUpdateManagerTests.m */, + E48A3DEE17B3EFF100924C3D /* BITAuthenticatorTests.m */, + 1EFF03E417F2485500A5F13C /* BITCrashManagerTests.m */, + 1E61CCAE18E0585A00A5E38E /* BITFeedbackManagerTests.m */, + E40E0B0817DA19DC005E38C1 /* BITHockeyAppClientTests.m */, + E4507E4217F0658F00171A0D /* BITKeychainUtilsTests.m */, + 1E70A23517F31B82001BB32D /* BITHockeyHelperTests.m */, + 1E566D061A275C4C0070F514 /* BITCrashReportTextFormatterTests.m */, + ); + path = HockeySDKTests; + sourceTree = ""; + }; + 1E5A459716F0DFC200B55C04 /* Supporting Files */ = { + isa = PBXGroup; + children = ( + 1E7A45FA16F54FB5005B08F1 /* OCHamcrestIOS.framework */, + 1E7A45FB16F54FB5005B08F1 /* OCMockitoIOS.framework */, + 1E5A459816F0DFC200B55C04 /* HockeySDKTests-Info.plist */, + 1E5A459916F0DFC200B55C04 /* InfoPlist.strings */, + 1E5A459F16F0DFC200B55C04 /* HockeySDKTests-Prefix.pch */, + 1EA1170516F53B91001C015C /* BITTestHelper.h */, + 1EA1170616F53B91001C015C /* BITTestHelper.m */, + ); + name = "Supporting Files"; + sourceTree = ""; + }; + 1E66CA8F15D40FF600F35BED /* Support */ = { + isa = PBXGroup; + children = ( + 1E754DC61621BC170070AB92 /* HockeySDK.xcconfig */, + 1E66CA9115D4100500F35BED /* buildnumber.xcconfig */, + 1E7DE39619D44DC6009AB8E5 /* crashonly.xcconfig */, + 1E91D84619B924E600E9616D /* module.modulemap */, + ); + name = Support; + sourceTree = ""; + }; + 1E754E441621F95E0070AB92 /* Helper */ = { + isa = PBXGroup; + children = ( + 1E49A4D4161222D400463151 /* HockeySDKPrivate.h */, + 1E49A4D5161222D400463151 /* HockeySDKPrivate.m */, + 1E49A4A0161222B900463151 /* BITHockeyBaseManager.h */, + 1E49A4A1161222B900463151 /* BITHockeyBaseManager.m */, + 1E49A4A2161222B900463151 /* BITHockeyBaseManagerPrivate.h */, + 1E49A4A3161222B900463151 /* BITHockeyBaseViewController.h */, + 1E49A4A4161222B900463151 /* BITHockeyBaseViewController.m */, + 1E49A4A5161222B900463151 /* BITHockeyHelper.h */, + 1E49A4A6161222B900463151 /* BITHockeyHelper.m */, + 1E0FEE26173BDB260061331F /* BITKeychainUtils.h */, + 1E0FEE27173BDB260061331F /* BITKeychainUtils.m */, + 1EACC979162F041E007578C5 /* BITAttributedLabel.h */, + 1EACC97A162F041E007578C5 /* BITAttributedLabel.m */, + 1E49A4A7161222B900463151 /* BITAppStoreHeader.h */, + 1E49A4A8161222B900463151 /* BITAppStoreHeader.m */, + 1E49A4A9161222B900463151 /* BITStoreButton.h */, + 1E49A4AA161222B900463151 /* BITStoreButton.m */, + 1E49A4AB161222B900463151 /* BITWebTableViewCell.h */, + 1E49A4AC161222B900463151 /* BITWebTableViewCell.m */, + 1EB92E711955C38C0093C8B6 /* BITHockeyAttachment.h */, + 1EB92E721955C38C0093C8B6 /* BITHockeyAttachment.m */, + ); + name = Helper; + sourceTree = ""; + }; + 1E754E461621FA9A0070AB92 /* Feedback */ = { + isa = PBXGroup; + children = ( + 9760F6CC18BB684200959B93 /* Image Editor */, + 1E49A4361612223B00463151 /* BITFeedbackMessage.h */, + 1E49A4371612223B00463151 /* BITFeedbackMessage.m */, + 97F0FA0218AE5AED00EF50AA /* BITFeedbackMessageAttachment.h */, + 97F0FA0318AE5AED00EF50AA /* BITFeedbackMessageAttachment.m */, + 1E49A42D1612223B00463151 /* BITFeedbackComposeViewController.h */, + 1E49A42E1612223B00463151 /* BITFeedbackComposeViewController.m */, + 1EF95CA9162CB313000AE3AD /* BITFeedbackComposeViewControllerDelegate.h */, + 1E49A4381612223B00463151 /* BITFeedbackUserDataViewController.h */, + 1E49A4391612223B00463151 /* BITFeedbackUserDataViewController.m */, + 1E49A42F1612223B00463151 /* BITFeedbackListViewCell.h */, + 1E49A4301612223B00463151 /* BITFeedbackListViewCell.m */, + 1E49A4311612223B00463151 /* BITFeedbackListViewController.h */, + 1E49A4321612223B00463151 /* BITFeedbackListViewController.m */, + 1EF95CA4162CB036000AE3AD /* BITFeedbackActivity.h */, + 1EF95CA5162CB036000AE3AD /* BITFeedbackActivity.m */, + 1E49A4331612223B00463151 /* BITFeedbackManager.h */, + 1E49A4341612223B00463151 /* BITFeedbackManager.m */, + E405266117A2AD300096359C /* BITFeedbackManagerDelegate.h */, + 1E49A4351612223B00463151 /* BITFeedbackManagerPrivate.h */, + 9774BCFD192CB20A00085EB5 /* BITActivityIndicatorButton.h */, + 9774BCFE192CB20A00085EB5 /* BITActivityIndicatorButton.m */, + ); + name = Feedback; + sourceTree = ""; + }; + 1E754E471621FAD00070AB92 /* Update */ = { + isa = PBXGroup; + children = ( + 1E49A4621612226D00463151 /* BITAppVersionMetaInfo.h */, + 1E49A4631612226D00463151 /* BITAppVersionMetaInfo.m */, + 1E49A4641612226D00463151 /* BITUpdateManager.h */, + 1E49A4651612226D00463151 /* BITUpdateManager.m */, + 1E49A4661612226D00463151 /* BITUpdateManagerDelegate.h */, + 1E49A4671612226D00463151 /* BITUpdateManagerPrivate.h */, + 1E49A4681612226D00463151 /* BITUpdateViewController.h */, + 1E49A4691612226D00463151 /* BITUpdateViewController.m */, + 1E49A46A1612226D00463151 /* BITUpdateViewControllerPrivate.h */, + ); + name = Update; + sourceTree = ""; + }; + 1E754E551621FBAF0070AB92 /* CrashReports */ = { + isa = PBXGroup; + children = ( + 1E754E561621FBB70070AB92 /* BITCrashManager.h */, + 1E754E571621FBB70070AB92 /* BITCrashManager.m */, + 1EFF03D717F20F8300A5F13C /* BITCrashManagerPrivate.h */, + 1E754E581621FBB70070AB92 /* BITCrashManagerDelegate.h */, + 1E90FD7118EDB86400CF0417 /* BITCrashDetails.h */, + 1E90FD7218EDB86400CF0417 /* BITCrashDetails.m */, + 1ECA8F4B192B5BD8006B9416 /* BITCrashDetailsPrivate.h */, + 1ECA8F4F192B6954006B9416 /* BITCrashMetaData.h */, + 1ECA8F50192B6954006B9416 /* BITCrashMetaData.m */, + 1ED570C518BF878C00AB3350 /* BITCrashAttachment.h */, + 1ED570C618BF878C00AB3350 /* BITCrashAttachment.m */, + 1E754E5A1621FBB70070AB92 /* BITCrashReportTextFormatter.h */, + 1E754E5B1621FBB70070AB92 /* BITCrashReportTextFormatter.m */, + ); + name = CrashReports; + sourceTree = ""; + }; + 1E94F9DE16E912DD006570AD /* StoreUpdate */ = { + isa = PBXGroup; + children = ( + 1E94F9DF16E91330006570AD /* BITStoreUpdateManager.h */, + 1E94F9E016E91330006570AD /* BITStoreUpdateManager.m */, + 1E94F9E316E9136B006570AD /* BITStoreUpdateManagerPrivate.h */, + 1E0828FF1708F69A0073050E /* BITStoreUpdateManagerDelegate.h */, + ); + name = StoreUpdate; + sourceTree = ""; + }; + 1EA1170216F53B49001C015C /* Fixtures */ = { + isa = PBXGroup; + children = ( + 1E494AEA19491943001EFF74 /* AppIcon.png */, + 1E494AEB19491943001EFF74 /* AppIcon@2x.png */, + 1EA1170316F53B49001C015C /* StoreBundleIdentifierUnknown.json */, + 1EA1170816F53E3A001C015C /* StoreBundleIdentifierKnown.json */, + 1E70A22F17F2F982001BB32D /* live_report_empty.plcrash */, + 1E70A23017F2F982001BB32D /* live_report_exception.plcrash */, + 1E70A23117F2F982001BB32D /* live_report_signal.plcrash */, + ); + path = Fixtures; + sourceTree = ""; + }; + 1EFF03DB17F2212E00A5F13C /* Authenticator */ = { + isa = PBXGroup; + children = ( + 1EFF03DC17F2214700A5F13C /* Private */, + E48A3DEA17B3ED1C00924C3D /* BITAuthenticator.h */, + E48A3DEB17B3ED1C00924C3D /* BITAuthenticator.m */, + ); + name = Authenticator; + sourceTree = ""; + }; + 1EFF03DC17F2214700A5F13C /* Private */ = { + isa = PBXGroup; + children = ( + E48A3DF117B408F400924C3D /* BITAuthenticator_Private.h */, + E4B4DB7B17B435550099C67F /* BITAuthenticationViewController.h */, + E4B4DB7C17B435550099C67F /* BITAuthenticationViewController.m */, + ); + name = Private; + sourceTree = ""; + }; + 9760F6CC18BB684200959B93 /* Image Editor */ = { + isa = PBXGroup; + children = ( + 97F0F9FF18AE375E00EF50AA /* BITImageAnnotationViewController.h */, + 97F0FA0018AE375E00EF50AA /* BITImageAnnotationViewController.m */, + 9760F6CD18BB685600959B93 /* BITImageAnnotation.h */, + 9760F6CE18BB685600959B93 /* BITImageAnnotation.m */, + 973EC8B518BCA8A200DBFFBB /* BITRectangleImageAnnotation.h */, + 973EC8B618BCA8A200DBFFBB /* BITRectangleImageAnnotation.m */, + 973EC8B918BDE29800DBFFBB /* BITArrowImageAnnotation.h */, + 973EC8BA18BDE29800DBFFBB /* BITArrowImageAnnotation.m */, + 973EC8BD18BE2B5B00DBFFBB /* BITBlurImageAnnotation.h */, + 973EC8BE18BE2B5B00DBFFBB /* BITBlurImageAnnotation.m */, + ); + name = "Image Editor"; + sourceTree = ""; + }; + E400560F148D79B500EB22B9 = { + isa = PBXGroup; + children = ( + E41EB489148D7BF90015DEDC /* HockeySDK */, + 1E5A459616F0DFC200B55C04 /* HockeySDKTests */, + E400561C148D79B500EB22B9 /* Frameworks */, + E4005648148D7A3000EB22B9 /* Resources */, + 1E66CA8F15D40FF600F35BED /* Support */, + E400561B148D79B500EB22B9 /* Products */, + ); + indentWidth = 2; + sourceTree = ""; + tabWidth = 2; + usesTabs = 0; + }; + E400561B148D79B500EB22B9 /* Products */ = { + isa = PBXGroup; + children = ( + 1E5954F215B6F24A00A03429 /* libHockeySDK.a */, + 1E59550A15B6F45800A03429 /* HockeySDKResources.bundle */, + 1E5A459016F0DFC200B55C04 /* HockeySDKTests.xctest */, + ); + name = Products; + sourceTree = ""; + }; + E400561C148D79B500EB22B9 /* Frameworks */ = { + isa = PBXGroup; + children = ( + 97CC11F81917C0310028768F /* MobileCoreServices.framework */, + 97BD9BD4191109730043FD59 /* QuickLook.framework */, + 9760F6C318BB4D2D00959B93 /* AssetsLibrary.framework */, + E41EB48B148D7C4E0015DEDC /* CrashReporter.framework */, + E400561D148D79B500EB22B9 /* Foundation.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; + E4005648148D7A3000EB22B9 /* Resources */ = { + isa = PBXGroup; + children = ( + 1EDA60CF15C2C1450032D10B /* HockeySDK-Info.plist */, + 1E5955A415B71BDC00A03429 /* Images */, + 1E59555F15B6F80E00A03429 /* HockeySDK.strings */, + ); + name = Resources; + path = ../Resources; + sourceTree = ""; + }; + E41EB458148D7BF50015DEDC /* Classes */ = { + isa = PBXGroup; + children = ( + E48A3DE917B3ECF900924C3D /* Network */, + 1E754E441621F95E0070AB92 /* Helper */, + 1EFF03DB17F2212E00A5F13C /* Authenticator */, + 1E754E551621FBAF0070AB92 /* CrashReports */, + 1E754E461621FA9A0070AB92 /* Feedback */, + 1E754E471621FAD00070AB92 /* Update */, + 1E94F9DE16E912DD006570AD /* StoreUpdate */, + E41EB465148D7BF50015DEDC /* BITHockeyManager.h */, + E41EB466148D7BF50015DEDC /* BITHockeyManager.m */, + 1E5955FA15B7877A00A03429 /* BITHockeyManagerDelegate.h */, + 1E71509A15B5C76F004E88FF /* HockeySDK.h */, + 1E84DB3317E0977C00AC83FD /* HockeySDKFeatureConfig.h */, + ); + name = Classes; + path = ../Classes; + sourceTree = ""; + }; + E41EB489148D7BF90015DEDC /* HockeySDK */ = { + isa = PBXGroup; + children = ( + E41EB458148D7BF50015DEDC /* Classes */, + ); + name = HockeySDK; + sourceTree = ""; + }; + E48A3DE917B3ECF900924C3D /* Network */ = { + isa = PBXGroup; + children = ( + E48A3DF017B408D800924C3D /* private */, + E40E0B0A17DA1AFF005E38C1 /* BITHockeyAppClient.h */, + E40E0B0B17DA1AFF005E38C1 /* BITHockeyAppClient.m */, + ); + name = Network; + sourceTree = ""; + }; + E48A3DF017B408D800924C3D /* private */ = { + isa = PBXGroup; + children = ( + E4933E7E17B66CDA00B11ACC /* BITHTTPOperation.h */, + E4933E7F17B66CDA00B11ACC /* BITHTTPOperation.m */, + ); + name = private; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXHeadersBuildPhase section */ + 1E59558B15B6FD8800A03429 /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + 1E59559B15B6FDA500A03429 /* HockeySDK.h in Headers */, + 1E59559A15B6FDA500A03429 /* BITHockeyManager.h in Headers */, + 1E5955FD15B7877B00A03429 /* BITHockeyManagerDelegate.h in Headers */, + E48A3DEC17B3ED1C00924C3D /* BITAuthenticator.h in Headers */, + 1E754E5C1621FBB70070AB92 /* BITCrashManager.h in Headers */, + 1E754E5E1621FBB70070AB92 /* BITCrashManagerDelegate.h in Headers */, + 1ED570C718BF878C00AB3350 /* BITCrashAttachment.h in Headers */, + 1ECA8F51192B6954006B9416 /* BITCrashMetaData.h in Headers */, + 1E90FD7318EDB86400CF0417 /* BITCrashDetails.h in Headers */, + 1E49A4731612226D00463151 /* BITUpdateManager.h in Headers */, + 1E49A4791612226D00463151 /* BITUpdateManagerDelegate.h in Headers */, + 1E49A44E1612223B00463151 /* BITFeedbackManager.h in Headers */, + E405266217A2AD300096359C /* BITFeedbackManagerDelegate.h in Headers */, + 973EC8BF18BE2B5B00DBFFBB /* BITBlurImageAnnotation.h in Headers */, + E4B4DB7D17B435550099C67F /* BITAuthenticationViewController.h in Headers */, + 1E49A4481612223B00463151 /* BITFeedbackListViewController.h in Headers */, + 1ECA8F4D192B5BD8006B9416 /* BITCrashDetailsPrivate.h in Headers */, + 1E94F9E116E91330006570AD /* BITStoreUpdateManager.h in Headers */, + 1E49A47F1612226D00463151 /* BITUpdateViewController.h in Headers */, + 1E49A43C1612223B00463151 /* BITFeedbackComposeViewController.h in Headers */, + E40E0B0C17DA1AFF005E38C1 /* BITHockeyAppClient.h in Headers */, + 1EF95CAA162CB314000AE3AD /* BITFeedbackComposeViewControllerDelegate.h in Headers */, + 1EF95CA6162CB037000AE3AD /* BITFeedbackActivity.h in Headers */, + 1E49A4B8161222B900463151 /* BITHockeyBaseViewController.h in Headers */, + 1EB92E731955C38C0093C8B6 /* BITHockeyAttachment.h in Headers */, + 1E49A4AF161222B900463151 /* BITHockeyBaseManager.h in Headers */, + 1E0829001708F69A0073050E /* BITStoreUpdateManagerDelegate.h in Headers */, + 1E49A4421612223B00463151 /* BITFeedbackListViewCell.h in Headers */, + 1E49A4541612223B00463151 /* BITFeedbackManagerPrivate.h in Headers */, + 1E49A4571612223B00463151 /* BITFeedbackMessage.h in Headers */, + 1E49A45D1612223B00463151 /* BITFeedbackUserDataViewController.h in Headers */, + 1E49A46D1612226D00463151 /* BITAppVersionMetaInfo.h in Headers */, + 1E49A47C1612226D00463151 /* BITUpdateManagerPrivate.h in Headers */, + 1E49A4851612226D00463151 /* BITUpdateViewControllerPrivate.h in Headers */, + 1E49A4B5161222B900463151 /* BITHockeyBaseManagerPrivate.h in Headers */, + 9774BCFF192CB20A00085EB5 /* BITActivityIndicatorButton.h in Headers */, + E4933E8017B66CDA00B11ACC /* BITHTTPOperation.h in Headers */, + 1E49A4BE161222B900463151 /* BITHockeyHelper.h in Headers */, + 973EC8BB18BDE29800DBFFBB /* BITArrowImageAnnotation.h in Headers */, + 1E49A4C4161222B900463151 /* BITAppStoreHeader.h in Headers */, + 1E49A4CA161222B900463151 /* BITStoreButton.h in Headers */, + 973EC8B718BCA8A200DBFFBB /* BITRectangleImageAnnotation.h in Headers */, + 1E49A4D0161222B900463151 /* BITWebTableViewCell.h in Headers */, + 1E49A4D8161222D400463151 /* HockeySDKPrivate.h in Headers */, + 1E754E601621FBB70070AB92 /* BITCrashReportTextFormatter.h in Headers */, + 1E84DB3417E099BA00AC83FD /* HockeySDKFeatureConfig.h in Headers */, + 1EACC97B162F041E007578C5 /* BITAttributedLabel.h in Headers */, + 1E0FEE28173BDB260061331F /* BITKeychainUtils.h in Headers */, + 1E94F9E416E9136B006570AD /* BITStoreUpdateManagerPrivate.h in Headers */, + 9760F6CF18BB685600959B93 /* BITImageAnnotation.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXHeadersBuildPhase section */ + +/* Begin PBXNativeTarget section */ + 1E5954CB15B6F24A00A03429 /* HockeySDK */ = { + isa = PBXNativeTarget; + buildConfigurationList = 1E5954EF15B6F24A00A03429 /* Build configuration list for PBXNativeTarget "HockeySDK" */; + buildPhases = ( + 1E5954CC15B6F24A00A03429 /* Sources */, + 1E5954DB15B6F24A00A03429 /* Frameworks */, + 1E59558B15B6FD8800A03429 /* Headers */, + 1EE9071A16F6871F003DDE1D /* ShellScript */, + ); + buildRules = ( + ); + dependencies = ( + 1E59557E15B6F97100A03429 /* PBXTargetDependency */, + ); + name = HockeySDK; + productName = HockeySDK; + productReference = 1E5954F215B6F24A00A03429 /* libHockeySDK.a */; + productType = "com.apple.product-type.library.static"; + }; + 1E59550915B6F45800A03429 /* HockeySDKResources */ = { + isa = PBXNativeTarget; + buildConfigurationList = 1E59551415B6F45800A03429 /* Build configuration list for PBXNativeTarget "HockeySDKResources" */; + buildPhases = ( + 1E59550615B6F45800A03429 /* Sources */, + 1E59550715B6F45800A03429 /* Frameworks */, + 1E59550815B6F45800A03429 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = HockeySDKResources; + productName = HockeySDKBundle; + productReference = 1E59550A15B6F45800A03429 /* HockeySDKResources.bundle */; + productType = "com.apple.product-type.bundle"; + }; + 1E5A458F16F0DFC200B55C04 /* HockeySDKTests */ = { + isa = PBXNativeTarget; + buildConfigurationList = 1E5A45A216F0DFC200B55C04 /* Build configuration list for PBXNativeTarget "HockeySDKTests" */; + buildPhases = ( + 1E5A458B16F0DFC200B55C04 /* Sources */, + 1E5A458C16F0DFC200B55C04 /* Frameworks */, + 1E5A458D16F0DFC200B55C04 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + 1EA1170B16F54A5C001C015C /* PBXTargetDependency */, + 1EA116FF16F4D302001C015C /* PBXTargetDependency */, + ); + name = HockeySDKTests; + productName = HockeySDKTests; + productReference = 1E5A459016F0DFC200B55C04 /* HockeySDKTests.xctest */; + productType = "com.apple.product-type.bundle.unit-test"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + E4005611148D79B500EB22B9 /* Project object */ = { + isa = PBXProject; + attributes = { + LastTestingUpgradeCheck = 0600; + LastUpgradeCheck = 0600; + }; + buildConfigurationList = E4005614148D79B500EB22B9 /* Build configuration list for PBXProject "HockeySDK" */; + compatibilityVersion = "Xcode 3.2"; + developmentRegion = English; + hasScannedForEncodings = 0; + knownRegions = ( + en, + de, + es, + fr, + it, + ja, + nl, + "pt-PT", + pt, + ru, + sv, + tr, + hr, + zh, + "zh-Hans", + ro, + hu, + ); + mainGroup = E400560F148D79B500EB22B9; + productRefGroup = E400561B148D79B500EB22B9 /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 1E5954CB15B6F24A00A03429 /* HockeySDK */, + 1E59550915B6F45800A03429 /* HockeySDKResources */, + 1E8E66AD15BC3D7700632A2E /* HockeySDK Documentation */, + 1E4F61E91621AD970033EFC5 /* HockeySDK Framework */, + 1E5A458F16F0DFC200B55C04 /* HockeySDKTests */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 1E59550815B6F45800A03429 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 1E5955C615B71C8600A03429 /* authorize_denied.png in Resources */, + 1E5955C715B71C8600A03429 /* authorize_denied@2x.png in Resources */, + 9782023B18F81BFC00A98D8B /* Rectangle@2x.png in Resources */, + 1E5955CA15B71C8600A03429 /* bg.png in Resources */, + 1E4CD1E819D17EAD00019DD4 /* Cancel@3x.png in Resources */, + 1E4CD1EA19D17EB700019DD4 /* Ok@3x.png in Resources */, + 97F0F9FD18ABAECD00EF50AA /* iconCamera.png in Resources */, + 9782023618F81BFC00A98D8B /* Cancel.png in Resources */, + 9782023318F81BFC00A98D8B /* Arrow@2x.png in Resources */, + 1E90D98119DAD8A800188C43 /* feedbackActivity@2x~ipad.png in Resources */, + 9782023818F81BFC00A98D8B /* Ok.png in Resources */, + 1E90D98219DAD8A800188C43 /* feedbackActivity@3x.png in Resources */, + 1E5955CF15B71C8600A03429 /* IconGradient.png in Resources */, + 1E5955D015B71C8600A03429 /* IconGradient@2x.png in Resources */, + 1E90D98019DAD8A800188C43 /* feedbackActivity@2x.png in Resources */, + 9782023218F81BFC00A98D8B /* Arrow.png in Resources */, + 9782023A18F81BFC00A98D8B /* Rectangle.png in Resources */, + 9782023918F81BFC00A98D8B /* Ok@2x.png in Resources */, + 9782023418F81BFC00A98D8B /* Blur.png in Resources */, + 9782023518F81BFC00A98D8B /* Blur@2x.png in Resources */, + 1E1127C416580C87007067A2 /* buttonRoundedDelete.png in Resources */, + 1E1127C516580C87007067A2 /* buttonRoundedDelete@2x.png in Resources */, + 1E90D97F19DAD8A800188C43 /* feedbackActivity.png in Resources */, + 1E1127C616580C87007067A2 /* buttonRoundedDeleteHighlighted.png in Resources */, + 9782023718F81BFC00A98D8B /* Cancel@2x.png in Resources */, + 1E1127C716580C87007067A2 /* buttonRoundedDeleteHighlighted@2x.png in Resources */, + 1E4CD1F019D17EE400019DD4 /* authorize_denied@3x.png in Resources */, + 1E1127C816580C87007067A2 /* buttonRoundedRegular.png in Resources */, + 97F0F9FE18ABAECD00EF50AA /* iconCamera@2x.png in Resources */, + 1E4CD1E619D17EA300019DD4 /* Blur@3x.png in Resources */, + 1E4CD1E419D17E9D00019DD4 /* Arrow@3x.png in Resources */, + 1E1127C916580C87007067A2 /* buttonRoundedRegular@2x.png in Resources */, + 1E1127CA16580C87007067A2 /* buttonRoundedRegularHighlighted.png in Resources */, + 1E1127CB16580C87007067A2 /* buttonRoundedRegularHighlighted@2x.png in Resources */, + 1E4CD1EC19D17EBE00019DD4 /* Rectangle@3x.png in Resources */, + 1E90D98319DAD8A800188C43 /* feedbackActivity~ipad.png in Resources */, + 1EB52FD5167B766100C801D5 /* HockeySDK.strings in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 1E5A458D16F0DFC200B55C04 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 1E494AEC19491943001EFF74 /* AppIcon.png in Resources */, + 1EA1170C16F54A64001C015C /* HockeySDKResources.bundle in Resources */, + 1E5A459B16F0DFC200B55C04 /* InfoPlist.strings in Resources */, + 1E70A23417F2F982001BB32D /* live_report_signal.plcrash in Resources */, + 1EA1170416F53B49001C015C /* StoreBundleIdentifierUnknown.json in Resources */, + 1E70A23317F2F982001BB32D /* live_report_exception.plcrash in Resources */, + 1E70A23217F2F982001BB32D /* live_report_empty.plcrash in Resources */, + 1E494AED19491943001EFF74 /* AppIcon@2x.png in Resources */, + 1EA1170916F53E3A001C015C /* StoreBundleIdentifierKnown.json in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXShellScriptBuildPhase section */ + 1E4F61ED1621ADE70033EFC5 /* Build universal embedded framework */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "Build universal embedded framework"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "# Sets the target folders and the final framework product.\nFMK_NAME=HockeySDK\nFMK_VERSION=A\nFMK_RESOURCE_BUNDLE=HockeySDKResources\n\n# Documentation\nHOCKEYSDK_DOCSET_VERSION_NAME=\"de.bitstadium.${HOCKEYSDK_DOCSET_NAME}-${VERSION_STRING}\"\n\n# Install dir will be the final output to the framework.\n# The following line create it in the root folder of the current project.\nPRODUCTS_DIR=${SRCROOT}/../Products\nZIP_FOLDER=HockeySDK-iOS\nTEMP_DIR=${PRODUCTS_DIR}/${ZIP_FOLDER}\nINSTALL_DIR=${TEMP_DIR}/${FMK_NAME}.framework\n\n# Working dir will be deleted after the framework creation.\nWRK_DIR=build\nDEVICE_DIR=${WRK_DIR}/Release-iphoneos\nSIMULATOR_DIR=${WRK_DIR}/Release-iphonesimulator\nDEVICE_CRASH_ONLY_DIR=${WRK_DIR}/ReleaseCrashOnly-iphoneos\nSIMULATOR_CRASH_ONLY_DIR=${WRK_DIR}/ReleaseCrashOnly-iphonesimulator\n\n# Building the full featured SDK\n\n# Building both architectures.\nxcodebuild -project \"HockeySDK.xcodeproj\" -configuration \"Release\" -target \"${FMK_NAME}\" -sdk iphoneos\nxcodebuild -project \"HockeySDK.xcodeproj\" -configuration \"Release\" -target \"${FMK_NAME}\" -sdk iphonesimulator\n\n# Cleaning the oldest.\nif [ -d \"${TEMP_DIR}\" ]\nthen\nrm -rf \"${TEMP_DIR}\"\nfi\n\n# Creates and renews the final product folder.\nmkdir -p \"${INSTALL_DIR}\"\nmkdir -p \"${INSTALL_DIR}/Modules\"\nmkdir -p \"${INSTALL_DIR}/Versions\"\nmkdir -p \"${INSTALL_DIR}/Versions/${FMK_VERSION}\"\nmkdir -p \"${INSTALL_DIR}/Versions/${FMK_VERSION}/Resources\"\nmkdir -p \"${INSTALL_DIR}/Versions/${FMK_VERSION}/Headers\"\n\n# Creates the internal links.\n# It MUST uses relative path, otherwise will not work when the folder is copied/moved.\nln -s \"${FMK_VERSION}\" \"${INSTALL_DIR}/Versions/Current\"\nln -s \"Versions/Current/Headers\" \"${INSTALL_DIR}/Headers\"\nln -s \"Versions/Current/Resources\" \"${INSTALL_DIR}/Resources\"\nln -s \"Versions/Current/${FMK_NAME}\" \"${INSTALL_DIR}/${FMK_NAME}\"\n\n# Copy the swift import file\ncp -f \"${SRCROOT}/module.modulemap\" \"${INSTALL_DIR}/Modules/\"\n\n# Copies the headers and resources files to the final product folder.\ncp -R \"${SRCROOT}/build/Release-iphoneos/include/HockeySDK/\" \"${INSTALL_DIR}/Versions/${FMK_VERSION}/Headers/\"\ncp -R \"${DEVICE_DIR}/${FMK_RESOURCE_BUNDLE}.bundle\" \"${INSTALL_DIR}/Versions/${FMK_VERSION}/Resources/\"\ncp -f \"${SRCROOT}/${FMK_NAME}.xcconfig\" \"${INSTALL_DIR}/Versions/${FMK_VERSION}/Resources/\"\n\n# Uses the Lipo Tool to merge both binary files (i386 + armv6/armv7) into one Universal final product.\nlipo -create \"${DEVICE_DIR}/lib${FMK_NAME}.a\" \"${SIMULATOR_DIR}/lib${FMK_NAME}.a\" -output \"${INSTALL_DIR}/Versions/${FMK_VERSION}/${FMK_NAME}\"\n\n# Combine the CrashReporter static library into a new Hockey static library file if they are not already present and copy the public headers too\nif [ -z $(otool -L \"${INSTALL_DIR}/Versions/${FMK_VERSION}/${FMK_NAME}\" | grep 'libCrashReporter') ]\nthen\nlibtool -static -o \"${INSTALL_DIR}/Versions/${FMK_VERSION}/${FMK_NAME}\" \"${INSTALL_DIR}/Versions/${FMK_VERSION}/${FMK_NAME}\" \"${SRCROOT}/../Vendor/CrashReporter.framework/Versions/A/CrashReporter\"\nfi\n\nrm -r \"${WRK_DIR}\"\n\n# build embeddedframework folder and move framework into it\nmkdir \"${INSTALL_DIR}/../${FMK_NAME}.embeddedframework\"\nmv \"${INSTALL_DIR}\" \"${INSTALL_DIR}/../${FMK_NAME}.embeddedframework/${FMK_NAME}.framework\"\n\n# link Resources\nNEW_INSTALL_DIR=${TEMP_DIR}/${FMK_NAME}.embeddedframework\nmkdir \"${NEW_INSTALL_DIR}/Resources\"\nln -s \"../${FMK_NAME}.framework/Resources/${FMK_RESOURCE_BUNDLE}.bundle\" \"${NEW_INSTALL_DIR}/Resources/${FMK_RESOURCE_BUNDLE}.bundle\"\nln -s \"../${FMK_NAME}.framework/Resources/${FMK_NAME}.xcconfig\" \"${NEW_INSTALL_DIR}/Resources/${FMK_NAME}.xcconfig\"\n\n\n# Building the crash only SDK without resources\n\n# Building both architectures.\nxcodebuild -project \"HockeySDK.xcodeproj\" -configuration \"ReleaseCrashOnly\" -target \"${FMK_NAME}\" -sdk iphoneos\nxcodebuild -project \"HockeySDK.xcodeproj\" -configuration \"ReleaseCrashOnly\" -target \"${FMK_NAME}\" -sdk iphonesimulator\n\n# Creates and renews the final product folder.\nmkdir -p \"${INSTALL_DIR}\"\nmkdir -p \"${INSTALL_DIR}/Modules\"\nmkdir -p \"${INSTALL_DIR}/Versions\"\nmkdir -p \"${INSTALL_DIR}/Versions/${FMK_VERSION}\"\nmkdir -p \"${INSTALL_DIR}/Versions/${FMK_VERSION}/Resources\"\nmkdir -p \"${INSTALL_DIR}/Versions/${FMK_VERSION}/Headers\"\n\n# Creates the internal links.\n# It MUST uses relative path, otherwise will not work when the folder is copied/moved.\nln -s \"${FMK_VERSION}\" \"${INSTALL_DIR}/Versions/Current\"\nln -s \"Versions/Current/Headers\" \"${INSTALL_DIR}/Headers\"\nln -s \"Versions/Current/Resources\" \"${INSTALL_DIR}/Resources\"\nln -s \"Versions/Current/${FMK_NAME}\" \"${INSTALL_DIR}/${FMK_NAME}\"\n\n# Copy the swift import file\ncp -f \"${SRCROOT}/module.modulemap\" \"${INSTALL_DIR}/Modules/\"\n\n# Copies the headers and resources files to the final product folder.\ncp -R \"${SRCROOT}\"/build/ReleaseCrashOnly-iphoneos/include/HockeySDK/BITCrash*.h \"${INSTALL_DIR}/Versions/${FMK_VERSION}/Headers/\"\ncp -R \"${SRCROOT}/\"build/ReleaseCrashOnly-iphoneos/include/HockeySDK/BITHockeyAttachment.h \"${INSTALL_DIR}/Versions/${FMK_VERSION}/Headers/\"\ncp -R \"${SRCROOT}/\"build/ReleaseCrashOnly-iphoneos/include/HockeySDK/BITHockeyBaseManager.h \"${INSTALL_DIR}/Versions/${FMK_VERSION}/Headers/\"\ncp -R \"${SRCROOT}/\"build/ReleaseCrashOnly-iphoneos/include/HockeySDK/BITHockeyManager.h \"${INSTALL_DIR}/Versions/${FMK_VERSION}/Headers/\"\ncp -R \"${SRCROOT}/\"build/ReleaseCrashOnly-iphoneos/include/HockeySDK/BITHockeyManagerDelegate.h \"${INSTALL_DIR}/Versions/${FMK_VERSION}/Headers/\"\ncp -R \"${SRCROOT}/build/ReleaseCrashOnly-iphoneos/include/HockeySDK/HockeySDK.h\" \"${INSTALL_DIR}/Versions/${FMK_VERSION}/Headers/\"\ncp -f \"${SRCROOT}/${FMK_NAME}.xcconfig\" \"${INSTALL_DIR}/Versions/${FMK_VERSION}/Resources/\"\n\n# Copy the patched feature header\ncp -f \"${SRCROOT}/HockeySDKCrashOnlyConfig.h\" \"${INSTALL_DIR}/Versions/${FMK_VERSION}/Headers/HockeySDKFeatureConfig.h\"\n\n# Uses the Lipo Tool to merge both binary files (i386 + armv6/armv7) into one Universal final product.\nlipo -create \"${DEVICE_CRASH_ONLY_DIR}/lib${FMK_NAME}.a\" \"${SIMULATOR_CRASH_ONLY_DIR}/lib${FMK_NAME}.a\" -output \"${INSTALL_DIR}/Versions/${FMK_VERSION}/${FMK_NAME}\"\n\n# Combine the CrashReporter static library into a new Hockey static library file if they are not already present and copy the public headers too\nif [ -z $(otool -L \"${INSTALL_DIR}/Versions/${FMK_VERSION}/${FMK_NAME}\" | grep 'libCrashReporter') ]\nthen\nlibtool -static -o \"${INSTALL_DIR}/Versions/${FMK_VERSION}/${FMK_NAME}\" \"${INSTALL_DIR}/Versions/${FMK_VERSION}/${FMK_NAME}\" \"${SRCROOT}/../Vendor/CrashReporter.framework/Versions/A/CrashReporter\"\nfi\n\n# Move the crash reporting only framework into a new folder\nmkdir \"${INSTALL_DIR}/../${FMK_NAME}CrashOnly\"\nmv \"${INSTALL_DIR}\" \"${INSTALL_DIR}/../${FMK_NAME}CrashOnly/${FMK_NAME}.framework\"\n\nrm -r \"${WRK_DIR}\"\n\n\n\n# copy license, changelog, documentation, integration json\ncp -f \"${SRCROOT}/../Docs/Changelog-template.md\" \"${TEMP_DIR}/CHANGELOG\"\ncp -f \"${SRCROOT}/../Docs/Guide-Installation-Setup-template.md\" \"${TEMP_DIR}/README.md\"\ncp -f \"${SRCROOT}/../LICENSE\" \"${TEMP_DIR}\"\nmkdir \"${TEMP_DIR}/${HOCKEYSDK_DOCSET_VERSION_NAME}.docset\"\ncp -R \"${SRCROOT}/../documentation/docset/Contents\" \"${TEMP_DIR}/${HOCKEYSDK_DOCSET_VERSION_NAME}.docset\"\n\n# build zip\ncd \"${PRODUCTS_DIR}\"\nrm -f \"${FMK_NAME}-iOS-${VERSION_STRING}.zip\"\nzip -yr \"${FMK_NAME}-iOS-${VERSION_STRING}.zip\" \"${ZIP_FOLDER}\" -x \\*/.*\n"; + }; + 1E8E66B215BC3D8200632A2E /* ShellScript */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "/usr/local/bin/appledoc \\\n --output \"${SOURCE_ROOT}/../documentation\" \\\n --ignore Vendor \\\n --ignore Products \\\n --ignore Support \\\n --ignore .m \\\n --ignore *Private.h \\\n --ignore BITAttributedLabel.h \\\n --ignore BITStoreButton.h \\\n --ignore BITFeedbackListViewCell.h \\\n --ignore BITAppStoreHeader.h \\\n --ignore BITFeedbackMessage.h \\\n --ignore BITFeedbackMessageAttachment.h \\\n --ignore BITAuthenticationViewController.h \\\n --ignore BITHockeyAppClient.h \\\n --create-html \\\n --create-docset \\\n --install-docset \\\n --keep-intermediate-files \\\n --project-name \"${HOCKEYSDK_DOCSET_NAME} ${VERSION_STRING}\" \\\n --project-version \"${VERSION_STRING}\" \\\n --project-company \"Bit Stadium GmbH\" \\\n --company-id \"de.bitstadium\" \\\n --docset-bundle-name \"${HOCKEYSDK_DOCSET_NAME} ${VERSION_STRING}\" \\\n --docset-feed-name \"${HOCKEYSDK_DOCSET_NAME}\" \\\n --docset-desc \"\" \\\n --docset-platform-family \"iphoneos\" \\\n --index-desc \"${SOURCE_ROOT}/../docs/index.md\" \\\n --include \"${SOURCE_ROOT}/../docs/index.html\" \\\n --include \"${SOURCE_ROOT}/../docs/\" \\\n --merge-categories \\\n --no-repeat-first-par \\\n --warn-undocumented-object \\\n --warn-undocumented-member \\\n --warn-empty-description \\\n --warn-unknown-directive \\\n --warn-invalid-crossref \\\n --warn-missing-arg \\\n --logformat xcode \\\n --exit-threshold 2 \\\n \"${SOURCE_ROOT}/../\"\n"; + }; + 1EE9071A16F6871F003DDE1D /* ShellScript */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${SRCROOT}/../Vendor/XcodeCoverage/exportenv.sh\""; + }; +/* End PBXShellScriptBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 1E5954CC15B6F24A00A03429 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 1E5954D315B6F24A00A03429 /* BITHockeyManager.m in Sources */, + 1E49A43F1612223B00463151 /* BITFeedbackComposeViewController.m in Sources */, + E40E0B0D17DA1AFF005E38C1 /* BITHockeyAppClient.m in Sources */, + 1E49A4451612223B00463151 /* BITFeedbackListViewCell.m in Sources */, + 973EC8B818BCA8A200DBFFBB /* BITRectangleImageAnnotation.m in Sources */, + 1E49A44B1612223B00463151 /* BITFeedbackListViewController.m in Sources */, + 1E49A4511612223B00463151 /* BITFeedbackManager.m in Sources */, + 1ECA8F52192B6954006B9416 /* BITCrashMetaData.m in Sources */, + E4933E8117B66CDA00B11ACC /* BITHTTPOperation.m in Sources */, + 1E49A45A1612223B00463151 /* BITFeedbackMessage.m in Sources */, + 1ED570C818BF878C00AB3350 /* BITCrashAttachment.m in Sources */, + 1E49A4601612223B00463151 /* BITFeedbackUserDataViewController.m in Sources */, + 1E49A4701612226D00463151 /* BITAppVersionMetaInfo.m in Sources */, + 1E49A4761612226D00463151 /* BITUpdateManager.m in Sources */, + 1E49A4C1161222B900463151 /* BITHockeyHelper.m in Sources */, + 9774BD00192CB20A00085EB5 /* BITActivityIndicatorButton.m in Sources */, + 1E49A4821612226D00463151 /* BITUpdateViewController.m in Sources */, + E4B4DB7E17B435550099C67F /* BITAuthenticationViewController.m in Sources */, + 1E49A4B2161222B900463151 /* BITHockeyBaseManager.m in Sources */, + 973EC8C018BE2B5B00DBFFBB /* BITBlurImageAnnotation.m in Sources */, + 9760F6D018BB685600959B93 /* BITImageAnnotation.m in Sources */, + 1E49A4BB161222B900463151 /* BITHockeyBaseViewController.m in Sources */, + 97F0FA0518B2294D00EF50AA /* BITFeedbackMessageAttachment.m in Sources */, + 1E49A4C7161222B900463151 /* BITAppStoreHeader.m in Sources */, + 1E49A4CD161222B900463151 /* BITStoreButton.m in Sources */, + 1E90FD7418EDB86400CF0417 /* BITCrashDetails.m in Sources */, + 1E49A4D3161222B900463151 /* BITWebTableViewCell.m in Sources */, + 1EB92E741955C38C0093C8B6 /* BITHockeyAttachment.m in Sources */, + E48A3DED17B3ED1C00924C3D /* BITAuthenticator.m in Sources */, + 1E49A4DB161222D400463151 /* HockeySDKPrivate.m in Sources */, + 1E754E5D1621FBB70070AB92 /* BITCrashManager.m in Sources */, + 1E754E611621FBB70070AB92 /* BITCrashReportTextFormatter.m in Sources */, + 1EF95CA7162CB037000AE3AD /* BITFeedbackActivity.m in Sources */, + 1EACC97C162F041E007578C5 /* BITAttributedLabel.m in Sources */, + 973EC8BC18BDE29800DBFFBB /* BITArrowImageAnnotation.m in Sources */, + 973EC8B418BCA7BC00DBFFBB /* BITImageAnnotationViewController.m in Sources */, + 1E0FEE29173BDB260061331F /* BITKeychainUtils.m in Sources */, + 1E94F9E216E91330006570AD /* BITStoreUpdateManager.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 1E59550615B6F45800A03429 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 1E5A458B16F0DFC200B55C04 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 1E5A459E16F0DFC200B55C04 /* BITStoreUpdateManagerTests.m in Sources */, + 1E566D071A275C4C0070F514 /* BITCrashReportTextFormatterTests.m in Sources */, + 1EFF03E517F2485500A5F13C /* BITCrashManagerTests.m in Sources */, + E40E0B0917DA19DC005E38C1 /* BITHockeyAppClientTests.m in Sources */, + 1E70A23617F31B82001BB32D /* BITHockeyHelperTests.m in Sources */, + E48A3DEF17B3EFF100924C3D /* BITAuthenticatorTests.m in Sources */, + 1EA1170716F53B91001C015C /* BITTestHelper.m in Sources */, + 1E61CCAF18E0585A00A5E38E /* BITFeedbackManagerTests.m in Sources */, + E4507E4317F0658F00171A0D /* BITKeychainUtilsTests.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXTargetDependency section */ + 1E59557E15B6F97100A03429 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 1E59550915B6F45800A03429 /* HockeySDKResources */; + targetProxy = 1E59557D15B6F97100A03429 /* PBXContainerItemProxy */; + }; + 1E754E431621F6290070AB92 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 1E8E66AD15BC3D7700632A2E /* HockeySDK Documentation */; + targetProxy = 1E754E421621F6290070AB92 /* PBXContainerItemProxy */; + }; + 1EA116FF16F4D302001C015C /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 1E5954CB15B6F24A00A03429 /* HockeySDK */; + targetProxy = 1EA116FE16F4D302001C015C /* PBXContainerItemProxy */; + }; + 1EA1170B16F54A5C001C015C /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 1E59550915B6F45800A03429 /* HockeySDKResources */; + targetProxy = 1EA1170A16F54A5C001C015C /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin PBXVariantGroup section */ + 1E59555F15B6F80E00A03429 /* HockeySDK.strings */ = { + isa = PBXVariantGroup; + children = ( + 1E59556015B6F80E00A03429 /* de */, + 1E59556415B6F81C00A03429 /* es */, + 1E59556615B6F82300A03429 /* fr */, + 1E59556815B6F82A00A03429 /* it */, + 1E59556A15B6F83100A03429 /* ja */, + 1E59557015B6F84700A03429 /* pt */, + 1E59557215B6F84D00A03429 /* ru */, + 1E36D8B816667611000B134C /* hr */, + 1E6F0450167B5E5600ED1C86 /* pt-PT */, + 1EB52FC3167B73D400C801D5 /* en */, + 1EA512DF167F7EF000FC9FBA /* zh-Hans */, + BEE0207C16C5107E004426EA /* hu */, + 1E20A57F181E9D4600D5B770 /* nl */, + ); + name = HockeySDK.strings; + sourceTree = ""; + }; + 1E5A459916F0DFC200B55C04 /* InfoPlist.strings */ = { + isa = PBXVariantGroup; + children = ( + 1E5A459A16F0DFC200B55C04 /* en */, + ); + name = InfoPlist.strings; + sourceTree = ""; + }; +/* End PBXVariantGroup section */ + +/* Begin XCBuildConfiguration section */ + 1E4F61EB1621AD970033EFC5 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + PRODUCT_NAME = HockeySDK.framework; + }; + name = Debug; + }; + 1E4F61EC1621AD970033EFC5 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + PRODUCT_NAME = HockeySDK.framework; + }; + name = Release; + }; + 1E5954F015B6F24A00A03429 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + "ARCHS[sdk=iphonesimulator*]" = "$(BIT_SIM_ARCHS)"; + DSTROOT = /tmp/HockeySDK.dst; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "\"$(SRCROOT)/../Vendor\"", + ); + GCC_THUMB_SUPPORT = NO; + PRODUCT_NAME = HockeySDK; + PUBLIC_HEADERS_FOLDER_PATH = "include/$(PRODUCT_NAME)"; + SKIP_INSTALL = YES; + "VALID_ARCHS[sdk=iphonesimulator*]" = "$(BIT_SIM_ARCHS)"; + }; + name = Debug; + }; + 1E5954F115B6F24A00A03429 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + "ARCHS[sdk=iphonesimulator*]" = "$(BIT_SIM_ARCHS)"; + DSTROOT = /tmp/HockeySDK.dst; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "\"$(SRCROOT)/../Vendor\"", + ); + GCC_THUMB_SUPPORT = NO; + OTHER_CFLAGS = ( + "$(inherited)", + "-DNS_BLOCK_ASSERTIONS=1", + ); + PRODUCT_NAME = HockeySDK; + PUBLIC_HEADERS_FOLDER_PATH = "include/$(PRODUCT_NAME)"; + SKIP_INSTALL = YES; + "VALID_ARCHS[sdk=iphonesimulator*]" = "$(BIT_SIM_ARCHS)"; + }; + name = Release; + }; + 1E59551515B6F45800A03429 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + GCC_THUMB_SUPPORT = NO; + INFOPLIST_FILE = "../Resources/HockeySDK-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Bundles"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SKIP_INSTALL = YES; + WRAPPER_EXTENSION = bundle; + }; + name = Debug; + }; + 1E59551615B6F45800A03429 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + GCC_THUMB_SUPPORT = NO; + INFOPLIST_FILE = "../Resources/HockeySDK-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Bundles"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SKIP_INSTALL = YES; + WRAPPER_EXTENSION = bundle; + }; + name = Release; + }; + 1E5A45A016F0DFC200B55C04 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + FRAMEWORK_SEARCH_PATHS = ( + "\"$(SDKROOT)/Developer/Library/Frameworks\"", + "\"$(DEVELOPER_LIBRARY_DIR)/Frameworks\"", + "\"$(SRCROOT)/../Vendor\"", + "\"$(SRCROOT)/HockeySDKTests\"", + "$(inherited)", + ); + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = "HockeySDKTests/HockeySDKTests-Prefix.pch"; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_UNINITIALIZED_AUTOS = YES; + INFOPLIST_FILE = "HockeySDKTests/HockeySDKTests-Info.plist"; + IPHONEOS_DEPLOYMENT_TARGET = 6.1; + LIBRARY_SEARCH_PATHS = ( + "$(inherited)", + "\"$(SRCROOT)/HockeySDKTests\"", + ); + ONLY_ACTIVE_ARCH = YES; + PRODUCT_NAME = "$(TARGET_NAME)"; + }; + name = Debug; + }; + 1E5A45A116F0DFC200B55C04 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = YES; + FRAMEWORK_SEARCH_PATHS = ( + "\"$(SDKROOT)/Developer/Library/Frameworks\"", + "\"$(DEVELOPER_LIBRARY_DIR)/Frameworks\"", + "\"$(SRCROOT)/../Vendor\"", + "\"$(SRCROOT)/HockeySDKTests\"", + "$(inherited)", + ); + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = "HockeySDKTests/HockeySDKTests-Prefix.pch"; + GCC_WARN_UNINITIALIZED_AUTOS = YES; + INFOPLIST_FILE = "HockeySDKTests/HockeySDKTests-Info.plist"; + IPHONEOS_DEPLOYMENT_TARGET = 6.1; + LIBRARY_SEARCH_PATHS = ( + "$(inherited)", + "\"$(SRCROOT)/HockeySDKTests\"", + ); + ONLY_ACTIVE_ARCH = YES; + PRODUCT_NAME = "$(TARGET_NAME)"; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; + 1E68F4A716F7843F00053706 /* CodeCoverage */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 1E66CA9115D4100500F35BED /* buildnumber.xcconfig */; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + COMPRESS_PNG_FILES = NO; + COPY_PHASE_STRIP = NO; + DEAD_CODE_STRIPPING = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_DYNAMIC_NO_PIC = NO; + GCC_GENERATE_TEST_COVERAGE_FILES = YES; + GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "BITHOCKEY_STATIC_LIBRARY=1", + "DEBUG=1", + "$(inherited)", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_THUMB_SUPPORT = NO; + GCC_VERSION = ""; + GCC_WARN_ABOUT_MISSING_NEWLINE = YES; + GCC_WARN_ABOUT_MISSING_PROTOTYPES = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_STRICT_SELECTOR_MATCH = YES; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + INFOPLIST_FILE = "../Resources/HockeySDK-Info.plist"; + IPHONEOS_DEPLOYMENT_TARGET = 6.0; + "IPHONEOS_DEPLOYMENT_TARGET[arch=arm64]" = 7.0; + MACOSX_DEPLOYMENT_TARGET = 10.5; + OTHER_CFLAGS = ( + "-Wshorten-64-to-32", + "-Wall", + ); + RUN_CLANG_STATIC_ANALYZER = YES; + SDKROOT = iphoneos; + }; + name = CodeCoverage; + }; + 1E68F4A816F7843F00053706 /* CodeCoverage */ = { + isa = XCBuildConfiguration; + buildSettings = { + "ARCHS[sdk=iphonesimulator*]" = "$(BIT_SIM_ARCHS)"; + DSTROOT = /tmp/HockeySDK.dst; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "\"$(SRCROOT)/../Vendor\"", + ); + GCC_THUMB_SUPPORT = NO; + GENERATE_PROFILING_CODE = YES; + PRODUCT_NAME = HockeySDK; + PUBLIC_HEADERS_FOLDER_PATH = "include/$(PRODUCT_NAME)"; + SKIP_INSTALL = YES; + "VALID_ARCHS[sdk=iphonesimulator*]" = "$(BIT_SIM_ARCHS)"; + }; + name = CodeCoverage; + }; + 1E68F4A916F7843F00053706 /* CodeCoverage */ = { + isa = XCBuildConfiguration; + buildSettings = { + GCC_THUMB_SUPPORT = NO; + INFOPLIST_FILE = "../Resources/HockeySDK-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Bundles"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SKIP_INSTALL = YES; + WRAPPER_EXTENSION = bundle; + }; + name = CodeCoverage; + }; + 1E68F4AA16F7843F00053706 /* CodeCoverage */ = { + isa = XCBuildConfiguration; + buildSettings = { + GCC_THUMB_SUPPORT = NO; + PRODUCT_NAME = "$(TARGET_NAME)"; + }; + name = CodeCoverage; + }; + 1E68F4AB16F7843F00053706 /* CodeCoverage */ = { + isa = XCBuildConfiguration; + buildSettings = { + PRODUCT_NAME = HockeySDK.framework; + }; + name = CodeCoverage; + }; + 1E68F4AC16F7843F00053706 /* CodeCoverage */ = { + isa = XCBuildConfiguration; + buildSettings = { + "ARCHS[sdk=iphonesimulator*]" = "$(BIT_SIM_ARCHS)"; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + FRAMEWORK_SEARCH_PATHS = ( + "\"$(SDKROOT)/Developer/Library/Frameworks\"", + "\"$(DEVELOPER_LIBRARY_DIR)/Frameworks\"", + "\"$(SRCROOT)/../Vendor\"", + "\"$(SRCROOT)/HockeySDKTests\"", + "$(inherited)", + ); + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = "HockeySDKTests/HockeySDKTests-Prefix.pch"; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_UNINITIALIZED_AUTOS = YES; + GENERATE_PROFILING_CODE = YES; + INFOPLIST_FILE = "HockeySDKTests/HockeySDKTests-Info.plist"; + IPHONEOS_DEPLOYMENT_TARGET = 6.1; + LIBRARY_SEARCH_PATHS = ( + "$(inherited)", + "\"$(SRCROOT)/HockeySDKTests\"", + ); + ONLY_ACTIVE_ARCH = YES; + PRODUCT_NAME = "$(TARGET_NAME)"; + }; + name = CodeCoverage; + }; + 1E7DE39019D44D88009AB8E5 /* ReleaseCrashOnly */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 1E7DE39619D44DC6009AB8E5 /* crashonly.xcconfig */; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + COMPRESS_PNG_FILES = NO; + COPY_PHASE_STRIP = NO; + DEAD_CODE_STRIPPING = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_PREPROCESSOR_DEFINITIONS = ( + "BITHOCKEY_STATIC_LIBRARY=1", + "$(inherited)", + ); + GCC_THUMB_SUPPORT = NO; + GCC_VERSION = ""; + GCC_WARN_ABOUT_MISSING_NEWLINE = YES; + GCC_WARN_ABOUT_MISSING_PROTOTYPES = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_STRICT_SELECTOR_MATCH = YES; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + INFOPLIST_FILE = "../Resources/HockeySDK-Info.plist"; + IPHONEOS_DEPLOYMENT_TARGET = 6.0; + "IPHONEOS_DEPLOYMENT_TARGET[arch=arm64]" = 7.0; + MACOSX_DEPLOYMENT_TARGET = 10.5; + OTHER_CFLAGS = ( + "-Wshorten-64-to-32", + "-Wall", + ); + RUN_CLANG_STATIC_ANALYZER = YES; + SDKROOT = iphoneos; + VALIDATE_PRODUCT = NO; + }; + name = ReleaseCrashOnly; + }; + 1E7DE39119D44D88009AB8E5 /* ReleaseCrashOnly */ = { + isa = XCBuildConfiguration; + buildSettings = { + "ARCHS[sdk=iphonesimulator*]" = "$(BIT_SIM_ARCHS)"; + DSTROOT = /tmp/HockeySDK.dst; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "\"$(SRCROOT)/../Vendor\"", + ); + GCC_THUMB_SUPPORT = NO; + OTHER_CFLAGS = ( + "$(inherited)", + "-DNS_BLOCK_ASSERTIONS=1", + ); + PRODUCT_NAME = HockeySDK; + PUBLIC_HEADERS_FOLDER_PATH = "include/$(PRODUCT_NAME)"; + SKIP_INSTALL = YES; + "VALID_ARCHS[sdk=iphonesimulator*]" = "$(BIT_SIM_ARCHS)"; + }; + name = ReleaseCrashOnly; + }; + 1E7DE39219D44D88009AB8E5 /* ReleaseCrashOnly */ = { + isa = XCBuildConfiguration; + buildSettings = { + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + GCC_THUMB_SUPPORT = NO; + INFOPLIST_FILE = "../Resources/HockeySDK-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Bundles"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SKIP_INSTALL = YES; + WRAPPER_EXTENSION = bundle; + }; + name = ReleaseCrashOnly; + }; + 1E7DE39319D44D88009AB8E5 /* ReleaseCrashOnly */ = { + isa = XCBuildConfiguration; + buildSettings = { + GCC_THUMB_SUPPORT = NO; + PRODUCT_NAME = "$(TARGET_NAME)"; + }; + name = ReleaseCrashOnly; + }; + 1E7DE39419D44D88009AB8E5 /* ReleaseCrashOnly */ = { + isa = XCBuildConfiguration; + buildSettings = { + PRODUCT_NAME = HockeySDK.framework; + }; + name = ReleaseCrashOnly; + }; + 1E7DE39519D44D88009AB8E5 /* ReleaseCrashOnly */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = YES; + FRAMEWORK_SEARCH_PATHS = ( + "\"$(SDKROOT)/Developer/Library/Frameworks\"", + "\"$(DEVELOPER_LIBRARY_DIR)/Frameworks\"", + "\"$(SRCROOT)/../Vendor\"", + "\"$(SRCROOT)/HockeySDKTests\"", + "$(inherited)", + ); + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = "HockeySDKTests/HockeySDKTests-Prefix.pch"; + GCC_WARN_UNINITIALIZED_AUTOS = YES; + INFOPLIST_FILE = "HockeySDKTests/HockeySDKTests-Info.plist"; + IPHONEOS_DEPLOYMENT_TARGET = 6.1; + LIBRARY_SEARCH_PATHS = ( + "$(inherited)", + "\"$(SRCROOT)/HockeySDKTests\"", + ); + ONLY_ACTIVE_ARCH = YES; + PRODUCT_NAME = "$(TARGET_NAME)"; + VALIDATE_PRODUCT = YES; + }; + name = ReleaseCrashOnly; + }; + 1E8E66AE15BC3D7700632A2E /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + GCC_THUMB_SUPPORT = NO; + PRODUCT_NAME = "$(TARGET_NAME)"; + }; + name = Debug; + }; + 1E8E66AF15BC3D7700632A2E /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + GCC_THUMB_SUPPORT = NO; + PRODUCT_NAME = "$(TARGET_NAME)"; + }; + name = Release; + }; + E400563C148D79B500EB22B9 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 1E66CA9115D4100500F35BED /* buildnumber.xcconfig */; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + COMPRESS_PNG_FILES = NO; + COPY_PHASE_STRIP = NO; + DEAD_CODE_STRIPPING = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_DYNAMIC_NO_PIC = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "BITHOCKEY_STATIC_LIBRARY=1", + "DEBUG=1", + "$(inherited)", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_THUMB_SUPPORT = NO; + GCC_VERSION = ""; + GCC_WARN_ABOUT_MISSING_NEWLINE = YES; + GCC_WARN_ABOUT_MISSING_PROTOTYPES = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_STRICT_SELECTOR_MATCH = YES; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + INFOPLIST_FILE = "../Resources/HockeySDK-Info.plist"; + IPHONEOS_DEPLOYMENT_TARGET = 6.0; + "IPHONEOS_DEPLOYMENT_TARGET[arch=arm64]" = 7.0; + MACOSX_DEPLOYMENT_TARGET = 10.5; + ONLY_ACTIVE_ARCH = YES; + OTHER_CFLAGS = ( + "-Wshorten-64-to-32", + "-Wall", + ); + RUN_CLANG_STATIC_ANALYZER = YES; + SDKROOT = iphoneos; + }; + name = Debug; + }; + E400563D148D79B500EB22B9 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 1E66CA9115D4100500F35BED /* buildnumber.xcconfig */; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + COMPRESS_PNG_FILES = NO; + COPY_PHASE_STRIP = NO; + DEAD_CODE_STRIPPING = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_PREPROCESSOR_DEFINITIONS = ( + "BITHOCKEY_STATIC_LIBRARY=1", + "$(inherited)", + ); + GCC_THUMB_SUPPORT = NO; + GCC_VERSION = ""; + GCC_WARN_ABOUT_MISSING_NEWLINE = YES; + GCC_WARN_ABOUT_MISSING_PROTOTYPES = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_STRICT_SELECTOR_MATCH = YES; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + INFOPLIST_FILE = "../Resources/HockeySDK-Info.plist"; + IPHONEOS_DEPLOYMENT_TARGET = 6.0; + "IPHONEOS_DEPLOYMENT_TARGET[arch=arm64]" = 7.0; + MACOSX_DEPLOYMENT_TARGET = 10.5; + OTHER_CFLAGS = ( + "-Wshorten-64-to-32", + "-Wall", + ); + RUN_CLANG_STATIC_ANALYZER = YES; + SDKROOT = iphoneos; + VALIDATE_PRODUCT = NO; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 1E4F61EA1621AD970033EFC5 /* Build configuration list for PBXAggregateTarget "HockeySDK Framework" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 1E4F61EB1621AD970033EFC5 /* Debug */, + 1E68F4AB16F7843F00053706 /* CodeCoverage */, + 1E4F61EC1621AD970033EFC5 /* Release */, + 1E7DE39419D44D88009AB8E5 /* ReleaseCrashOnly */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 1E5954EF15B6F24A00A03429 /* Build configuration list for PBXNativeTarget "HockeySDK" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 1E5954F015B6F24A00A03429 /* Debug */, + 1E68F4A816F7843F00053706 /* CodeCoverage */, + 1E5954F115B6F24A00A03429 /* Release */, + 1E7DE39119D44D88009AB8E5 /* ReleaseCrashOnly */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 1E59551415B6F45800A03429 /* Build configuration list for PBXNativeTarget "HockeySDKResources" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 1E59551515B6F45800A03429 /* Debug */, + 1E68F4A916F7843F00053706 /* CodeCoverage */, + 1E59551615B6F45800A03429 /* Release */, + 1E7DE39219D44D88009AB8E5 /* ReleaseCrashOnly */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 1E5A45A216F0DFC200B55C04 /* Build configuration list for PBXNativeTarget "HockeySDKTests" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 1E5A45A016F0DFC200B55C04 /* Debug */, + 1E68F4AC16F7843F00053706 /* CodeCoverage */, + 1E5A45A116F0DFC200B55C04 /* Release */, + 1E7DE39519D44D88009AB8E5 /* ReleaseCrashOnly */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 1E8E66B015BC3D7700632A2E /* Build configuration list for PBXAggregateTarget "HockeySDK Documentation" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 1E8E66AE15BC3D7700632A2E /* Debug */, + 1E68F4AA16F7843F00053706 /* CodeCoverage */, + 1E8E66AF15BC3D7700632A2E /* Release */, + 1E7DE39319D44D88009AB8E5 /* ReleaseCrashOnly */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + E4005614148D79B500EB22B9 /* Build configuration list for PBXProject "HockeySDK" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + E400563C148D79B500EB22B9 /* Debug */, + 1E68F4A716F7843F00053706 /* CodeCoverage */, + E400563D148D79B500EB22B9 /* Release */, + 1E7DE39019D44D88009AB8E5 /* ReleaseCrashOnly */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = E4005611148D79B500EB22B9 /* Project object */; +} diff --git a/Pods/HockeySDK/Support/HockeySDK.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/Pods/HockeySDK/Support/HockeySDK.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..7aed921 --- /dev/null +++ b/Pods/HockeySDK/Support/HockeySDK.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/Pods/HockeySDK/Support/HockeySDK.xcodeproj/xcshareddata/xcschemes/HockeySDK Documentation.xcscheme b/Pods/HockeySDK/Support/HockeySDK.xcodeproj/xcshareddata/xcschemes/HockeySDK Documentation.xcscheme new file mode 100644 index 0000000..8063f8e --- /dev/null +++ b/Pods/HockeySDK/Support/HockeySDK.xcodeproj/xcshareddata/xcschemes/HockeySDK Documentation.xcscheme @@ -0,0 +1,68 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Pods/HockeySDK/Support/HockeySDK.xcodeproj/xcshareddata/xcschemes/HockeySDK Framework.xcscheme b/Pods/HockeySDK/Support/HockeySDK.xcodeproj/xcshareddata/xcschemes/HockeySDK Framework.xcscheme new file mode 100644 index 0000000..352573e --- /dev/null +++ b/Pods/HockeySDK/Support/HockeySDK.xcodeproj/xcshareddata/xcschemes/HockeySDK Framework.xcscheme @@ -0,0 +1,68 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Pods/HockeySDK/Support/HockeySDK.xcodeproj/xcshareddata/xcschemes/HockeySDK.xcscheme b/Pods/HockeySDK/Support/HockeySDK.xcodeproj/xcshareddata/xcschemes/HockeySDK.xcscheme new file mode 100644 index 0000000..0f4fbf0 --- /dev/null +++ b/Pods/HockeySDK/Support/HockeySDK.xcodeproj/xcshareddata/xcschemes/HockeySDK.xcscheme @@ -0,0 +1,110 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Pods/HockeySDK/Support/HockeySDK.xcodeproj/xcshareddata/xcschemes/HockeySDKResources.xcscheme b/Pods/HockeySDK/Support/HockeySDK.xcodeproj/xcshareddata/xcschemes/HockeySDKResources.xcscheme new file mode 100644 index 0000000..800f3cb --- /dev/null +++ b/Pods/HockeySDK/Support/HockeySDK.xcodeproj/xcshareddata/xcschemes/HockeySDKResources.xcscheme @@ -0,0 +1,68 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Pods/HockeySDK/Support/HockeySDKCrashOnlyConfig.h b/Pods/HockeySDK/Support/HockeySDKCrashOnlyConfig.h new file mode 100644 index 0000000..b0d0ff2 --- /dev/null +++ b/Pods/HockeySDK/Support/HockeySDKCrashOnlyConfig.h @@ -0,0 +1,90 @@ +/* + * Author: Andreas Linde + * + * Copyright (c) 2013-2014 HockeyApp, Bit Stadium GmbH. + * All rights reserved. + * + * Permission is hereby granted, free of charge, to any person + * obtaining a copy of this software and associated documentation + * files (the "Software"), to deal in the Software without + * restriction, including without limitation the rights to use, + * copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following + * conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES + * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + */ + +/* + * This file is only used by the binary framework target when building + * and creating the crash reporting only framework + * + * Attention: Do not include this into your projects yourself! + */ + +#ifndef HockeySDK_HockeySDKFeatureConfig_h +#define HockeySDK_HockeySDKFeatureConfig_h + + +/** + * If true, include support for handling crash reports + * + * _Default_: Enabled + */ +#ifndef HOCKEYSDK_FEATURE_CRASH_REPORTER +# define HOCKEYSDK_FEATURE_CRASH_REPORTER 1 +#endif /* HOCKEYSDK_FEATURE_CRASH_REPORTER */ + + +/** + * If true, include support for managing user feedback + * + * _Default_: Enabled + */ +#ifndef HOCKEYSDK_FEATURE_FEEDBACK +# define HOCKEYSDK_FEATURE_FEEDBACK 0 +#endif /* HOCKEYSDK_FEATURE_FEEDBACK */ + + +/** + * If true, include support for informing the user about new updates pending in the App Store + * + * _Default_: Enabled + */ +#ifndef HOCKEYSDK_FEATURE_STORE_UPDATES +# define HOCKEYSDK_FEATURE_STORE_UPDATES 0 +#endif /* HOCKEYSDK_FEATURE_STORE_UPDATES */ + + +/** + * If true, include support for authentication installations for Ad-Hoc and Enterprise builds + * + * _Default_: Enabled + */ +#ifndef HOCKEYSDK_FEATURE_AUTHENTICATOR +# define HOCKEYSDK_FEATURE_AUTHENTICATOR 0 +#endif /* HOCKEYSDK_FEATURE_AUTHENTICATOR */ + + +/** + * If true, include support for handling in-app updates for Ad-Hoc and Enterprise builds + * + * _Default_: Enabled + */ +#ifndef HOCKEYSDK_FEATURE_UPDATES +# define HOCKEYSDK_FEATURE_UPDATES 0 +#endif /* HOCKEYSDK_FEATURE_UPDATES */ + + +#endif /* HockeySDK_HockeySDKFeatureConfig_h */ diff --git a/Pods/HockeySDK/Support/HockeySDKTests/BITAuthenticatorTests.m b/Pods/HockeySDK/Support/HockeySDKTests/BITAuthenticatorTests.m new file mode 100644 index 0000000..07a6ff6 --- /dev/null +++ b/Pods/HockeySDK/Support/HockeySDKTests/BITAuthenticatorTests.m @@ -0,0 +1,332 @@ +// +// HockeySDKTests.m +// HockeySDKTests +// +// Created by Andreas Linde on 13.03.13. +// +// + +#import + +#define HC_SHORTHAND +#import + +#define MOCKITO_SHORTHAND +#import + +#import "HockeySDK.h" +#import "BITAuthenticator.h" +#import "BITAuthenticator_Private.h" +#import "BITHTTPOperation.h" +#import "BITTestHelper.h" +#import "BITHockeyAppClient.h" + +@interface MyDevice : NSObject +- (NSString*) uniqueIdentifier; +@end +@implementation MyDevice +- (NSString*) uniqueIdentifier {return @"reallyUnique";} +@end + +@interface MyDeviceWithIdentifierForVendor : MyDevice +@property (copy) NSUUID *identifierForVendor; +@end +@implementation MyDeviceWithIdentifierForVendor + +- (instancetype)init { + self = [super init]; + if( self ) { + _identifierForVendor = [NSUUID UUID]; + } + return self; +} + +@end + +static void *kInstallationIdentification = &kInstallationIdentification; + +@interface BITAuthenticatorTests : XCTestCase +@end + +@implementation BITAuthenticatorTests { + BITAuthenticator *_sut; + BOOL _KVOCalled; +} + +- (void)setUp { + [super setUp]; + + _sut = [[BITAuthenticator alloc] initWithAppIdentifier:nil isAppStoreEnvironment:NO]; +} + +- (void)tearDown { +# pragma clang diagnostic push +# pragma clang diagnostic ignored "-Wimplicit" + __gcov_flush(); +# pragma clang diagnostic pop + + [_sut cleanupInternalStorage]; + _sut = nil; + + [super tearDown]; +} + +#pragma mark - Setup helpers +- (NSDictionary *)jsonFromFixture:(NSString *)fixture { + NSString *dataString = [BITTestHelper jsonFixture:fixture]; + + NSData *data = [dataString dataUsingEncoding:NSUTF8StringEncoding]; + NSError *error = nil; + NSDictionary *json = (NSDictionary *)[NSJSONSerialization JSONObjectWithData:data options:0 error:&error]; + + return json; +} + +#pragma mark - Setup Tests +- (void) testThatItInstantiates { + XCTAssertNotNil(_sut, @"Should be there"); +} + +#pragma mark - Persistence Tests +- (void) testThatLastAuthenticatedVersionIsPersisted { + _sut.lastAuthenticatedVersion = @"1.2.1"; + _sut = [[BITAuthenticator alloc] initWithAppIdentifier:nil isAppStoreEnvironment:YES]; + assertThat(_sut.lastAuthenticatedVersion, equalTo(@"1.2.1")); +} + +- (void) testThatCleanupWorks { + _sut.lastAuthenticatedVersion = @"1.2"; + + [_sut cleanupInternalStorage]; + + assertThat(_sut.lastAuthenticatedVersion, equalTo(nil)); + assertThat(_sut.installationIdentifier, equalTo(nil)); +} + +#pragma mark - Initial defaults +- (void) testDefaultValues { + assertThatBool(_sut.restrictApplicationUsage, equalToBool(NO)); + assertThatBool(_sut.isIdentified, equalToBool(NO)); + assertThatBool(_sut.isValidated, equalToBool(NO)); + assertThat(_sut.authenticationSecret, equalTo(nil)); + assertThat(_sut.installationIdentifier, equalTo(nil)); + assertThat(_sut.installationIdentifierParameterString, equalTo(@"uuid")); +} + +#pragma mark - General identification tests +- (void) testThatIsDoesntShowMoreThanOneAuthenticationController { + id delegateMock = mockProtocol(@protocol(BITAuthenticatorDelegate)); + _sut.delegate = delegateMock; + _sut.identificationType = BITAuthenticatorIdentificationTypeDevice; + + [_sut identifyWithCompletion:nil]; + [_sut identifyWithCompletion:nil]; + [_sut identifyWithCompletion:nil]; + + [verifyCount(delegateMock, times(1)) authenticator:_sut willShowAuthenticationController:(id)anything()]; +} + +- (void) testThatChangingIdentificationTypeResetsIdentifiedFlag { + _sut.identified = YES; + _sut.identificationType = BITAuthenticatorIdentificationTypeHockeyAppUser; + assertThatBool(_sut.identified, equalToBool(NO)); +} + +- (void) testThatAfterChangingIdentificationTypeIdentificationIsRedone { + [_sut storeInstallationIdentifier:@"meh" withType:BITAuthenticatorIdentificationTypeHockeyAppEmail]; + _sut.identified = YES; + _sut.identificationType = BITAuthenticatorIdentificationTypeHockeyAppUser; + [_sut identifyWithCompletion:nil]; + assertThatBool(_sut.identified, equalToBool(NO)); + assertThat(_sut.installationIdentifier, nilValue()); +} + +- (void) testThatIdentifyingAnAlreadyIdentifiedInstanceDoesNothing { + id delegateMock = mockProtocol(@protocol(BITAuthenticatorDelegate)); + _sut.delegate = delegateMock; + + _sut.identificationType = BITAuthenticatorIdentificationTypeHockeyAppEmail; + [_sut storeInstallationIdentifier:@"meh" withType:BITAuthenticatorIdentificationTypeHockeyAppEmail]; + _sut.identified = YES; + + [_sut identifyWithCompletion:nil]; + + [verifyCount(delegateMock, never()) authenticator:_sut willShowAuthenticationController:(id)anything()]; +} + + +#pragma mark - Anonymous identification type +- (void) testAnonymousIdentification { + _sut.identificationType = BITAuthenticatorIdentificationTypeAnonymous; + assertThatBool(_sut.isIdentified, equalToBool(NO)); + [_sut identifyWithCompletion:^(BOOL identified, NSError *error) { + assertThatBool(identified, equalToBool(YES)); + assertThat(error, equalTo(nil)); + }]; + assertThatBool(_sut.isIdentified, equalToBool(YES)); + assertThat(_sut.installationIdentifier, notNilValue()); +} + +//anoynmous users can't be validated +- (void) testAnonymousValidation { + _sut.identificationType = BITAuthenticatorIdentificationTypeAnonymous; + assertThatBool(_sut.isValidated, equalToBool(NO)); + [_sut validateWithCompletion:^(BOOL validated, NSError *error) { + assertThatBool(_sut.validated, equalToBool(NO)); + assertThat(error, notNilValue()); + }]; + assertThatBool(_sut.isValidated, equalToBool(NO)); +} + +#pragma mark - Device identification type +- (void) testDeviceIdentificationShowsViewController { + _sut.identificationType = BITAuthenticatorIdentificationTypeDevice; + id delegateMock = mockProtocol(@protocol(BITAuthenticatorDelegate)); + _sut.delegate = delegateMock; + + [_sut identifyWithCompletion:nil]; + + [verifyCount(delegateMock, times(1)) authenticator:_sut willShowAuthenticationController:(id)anything()]; +} +#pragma mark - Web auth identification type +- (void) testWebAuthIdentificationShowsViewController { + _sut.identificationType = BITAuthenticatorIdentificationTypeWebAuth; + id delegateMock = mockProtocol(@protocol(BITAuthenticatorDelegate)); + _sut.delegate = delegateMock; + + [_sut identifyWithCompletion:nil]; + + [verifyCount(delegateMock, times(1)) authenticator:_sut willShowAuthenticationController:(id)anything()]; +} + +#pragma mark - Email identification type +- (void) testEmailIdentificationFailsWithMissingSecret { + _sut.identificationType = BITAuthenticatorIdentificationTypeHockeyAppEmail; + [_sut identifyWithCompletion:^(BOOL identified, NSError *error) { + assertThatBool(identified, equalToBool(NO)); + assertThat(error, notNilValue()); + }]; +} + +- (void) testEmailIdentificationShowsViewController { + _sut.identificationType = BITAuthenticatorIdentificationTypeHockeyAppEmail; + _sut.authenticationSecret = @"mySecret"; + id delegateMock = mockProtocol(@protocol(BITAuthenticatorDelegate)); + _sut.delegate = delegateMock; + + [_sut identifyWithCompletion:nil]; + + [verifyCount(delegateMock, times(1)) authenticator:_sut willShowAuthenticationController:(id)anything()]; +} + +- (void) testEmailValidationFailsWithMissingSecret { + _sut.identificationType = BITAuthenticatorIdentificationTypeHockeyAppEmail; + [_sut validateWithCompletion:^(BOOL validated, NSError *error) { + assertThatBool(validated, equalToBool(NO)); + assertThat(error, notNilValue()); + }]; +} + +- (void) testThatEmailIdentificationQueuesAnOperation { + id httpClientMock = mock(BITHockeyAppClient.class); + _sut.hockeyAppClient = httpClientMock; + _sut.identificationType = BITAuthenticatorIdentificationTypeHockeyAppEmail; + [_sut storeInstallationIdentifier:@"meh" withType:BITAuthenticatorIdentificationTypeHockeyAppEmail]; + _sut.authenticationSecret = @"double"; + [_sut authenticationViewController:nil + handleAuthenticationWithEmail:@"stephan@dd.de" + password:@"nopass" + completion:nil]; + [verify(httpClientMock) enqeueHTTPOperation:anything()]; +} + +#pragma mark - User identification type +- (void) testUserIdentificationShowsViewController { + _sut.identificationType = BITAuthenticatorIdentificationTypeHockeyAppUser; + id delegateMock = mockProtocol(@protocol(BITAuthenticatorDelegate)); + _sut.delegate = delegateMock; + + [_sut identifyWithCompletion:nil]; + + [verifyCount(delegateMock, times(1)) authenticator:_sut willShowAuthenticationController:(id)anything()]; +} + + +#pragma mark - Generic validation tests +- (void) testThatValidationFailsIfNotIdentified { + _sut.identified = NO; + _sut.identificationType = BITAuthenticatorIdentificationTypeHockeyAppUser; + [_sut validateWithCompletion:^(BOOL validated, NSError *error) { + assertThatBool(validated, equalToBool(NO)); + assertThatLong(error.code, equalToLong(BITAuthenticatorNotIdentified)); + }]; +} + +- (void) testThatValidationCreatesAGETRequest { + id httpClientMock = mock(BITHockeyAppClient.class); + _sut.hockeyAppClient = httpClientMock; + _sut.identificationType = BITAuthenticatorIdentificationTypeHockeyAppEmail; + [_sut storeInstallationIdentifier:@"meh" withType:BITAuthenticatorIdentificationTypeHockeyAppEmail]; + _sut.authenticationSecret = @"double"; + [_sut validateWithCompletion:nil]; + [verify(httpClientMock) getPath:(id)anything() + parameters:(id)anything() + completion:(id)anything()]; +} + +#pragma mark - Authentication +- (void) testThatEnabledRestrictionTriggersValidation { + id clientMock = mock(BITHockeyAppClient.class); + _sut.hockeyAppClient = clientMock; + _sut.authenticationSecret = @"sekret"; + _sut.restrictApplicationUsage = YES; + _sut.identificationType = BITAuthenticatorIdentificationTypeHockeyAppEmail; + [_sut storeInstallationIdentifier:@"asd" withType:BITAuthenticatorIdentificationTypeHockeyAppEmail]; + [_sut authenticate]; + + [verify(clientMock) getPath:(id)anything() parameters:(id)anything() completion:(id)anything()]; +} + +- (void) testThatDisabledRestrictionDoesntTriggerValidation { + id clientMock = mock(BITHockeyAppClient.class); + _sut.hockeyAppClient = clientMock; + _sut.authenticationSecret = @"sekret"; + _sut.restrictApplicationUsage = NO; + _sut.identificationType = BITAuthenticatorIdentificationTypeHockeyAppEmail; + [_sut storeInstallationIdentifier:@"asd" withType:BITAuthenticatorIdentificationTypeHockeyAppEmail]; + [_sut authenticate]; + + [verifyCount(clientMock, never()) getPath:(id)anything() parameters:(id)anything() completion:(id)anything()]; +} + +#pragma mark - Lifetime checks +- (void) testThatValidationTriggersOnDidBecomeActive { + id delegateMock = mockProtocol(@protocol(BITAuthenticatorDelegate)); + _sut.delegate = delegateMock; + _sut.identificationType = BITAuthenticatorIdentificationTypeDevice; + _sut.restrictApplicationUsage = YES; + + [_sut applicationDidBecomeActive:nil]; + + [verify(delegateMock) authenticator:_sut willShowAuthenticationController:(id)anything()]; +} + +#pragma mark - Validation helper checks +- (void) testThatValidationTriggersOnNewVersion { + _sut.restrictApplicationUsage = YES; + _sut.restrictionEnforcementFrequency = BITAuthenticatorAppRestrictionEnforcementOnFirstLaunch; + _sut.identificationType = BITAuthenticatorIdentificationTypeDevice; + _sut.validated = YES; + _sut.lastAuthenticatedVersion = @"111xxx"; + assertThatBool(_sut.needsValidation, equalToBool(YES)); +} + +- (void) testThatValidationDoesNotTriggerOnSameVersion { + _sut.restrictApplicationUsage = YES; + _sut.restrictionEnforcementFrequency = BITAuthenticatorAppRestrictionEnforcementOnFirstLaunch; + _sut.validated = YES; + _sut.lastAuthenticatedVersion = _sut.executableUUID; + assertThatBool(_sut.needsValidation, equalToBool(NO)); +} + +@end diff --git a/Pods/HockeySDK/Support/HockeySDKTests/BITCrashManagerTests.m b/Pods/HockeySDK/Support/HockeySDKTests/BITCrashManagerTests.m new file mode 100644 index 0000000..51609cc --- /dev/null +++ b/Pods/HockeySDK/Support/HockeySDKTests/BITCrashManagerTests.m @@ -0,0 +1,295 @@ +// +// BITCrashManagerTests.m +// HockeySDK +// +// Created by Andreas Linde on 25.09.13. +// +// + +#import + +#define HC_SHORTHAND +#import + +#define MOCKITO_SHORTHAND +#import + +#import "HockeySDK.h" +#import "HockeySDKPrivate.h" +#import "BITCrashManager.h" +#import "BITCrashManagerPrivate.h" +#import "BITHockeyBaseManager.h" +#import "BITHockeyBaseManagerPrivate.h" + +#import "BITTestHelper.h" + +#define kBITCrashMetaAttachment @"BITCrashMetaAttachment" + +@interface BITCrashManagerTests : XCTestCase + +@end + + +@implementation BITCrashManagerTests { + BITCrashManager *_sut; + BOOL _startManagerInitialized; +} + +- (void)setUp { + [super setUp]; + + _startManagerInitialized = NO; + _sut = [[BITCrashManager alloc] initWithAppIdentifier:nil isAppStoreEnvironment:NO]; +} + +- (void)tearDown { +# pragma clang diagnostic push +# pragma clang diagnostic ignored "-Wimplicit" + __gcov_flush(); +# pragma clang diagnostic pop + + [_sut cleanCrashReports]; + [super tearDown]; +} + +#pragma mark - Private + +- (void)startManager { + [_sut startManager]; + [NSObject cancelPreviousPerformRequestsWithTarget:_sut selector:@selector(invokeDelayedProcessing) object:nil]; + _startManagerInitialized = YES; +} + +- (void)startManagerDisabled { + _sut.crashManagerStatus = BITCrashManagerStatusDisabled; + if (_startManagerInitialized) return; + [self startManager]; +} + +- (void)startManagerAutoSend { + _sut.crashManagerStatus = BITCrashManagerStatusAutoSend; + if (_startManagerInitialized) return; + [self startManager]; +} + +#pragma mark - Setup Tests + +- (void)testThatItInstantiates { + XCTAssertNotNil(_sut, @"Should be there"); +} + + +#pragma mark - Persistence tests + +- (void)testPersistUserProvidedMetaData { + NSString *tempCrashName = @"tempCrash"; + [_sut setLastCrashFilename:tempCrashName]; + + BITCrashMetaData *metaData = [BITCrashMetaData new]; + [metaData setUserDescription:@"Test string"]; + [_sut persistUserProvidedMetaData:metaData]; + + NSError *error; + NSString *description = [NSString stringWithContentsOfFile:[NSString stringWithFormat:@"%@.desc", [[_sut crashesDir] stringByAppendingPathComponent: tempCrashName]] encoding:NSUTF8StringEncoding error:&error]; + assertThat(description, equalTo(@"Test string")); +} + +- (void)testPersistAttachment { + NSString *filename = @"TestAttachment"; + NSData *data = [[NSData alloc] initWithBase64Encoding:@"TestData"]; + NSString* type = @"text/plain"; + + BITHockeyAttachment *originalAttachment = [[BITHockeyAttachment alloc] initWithFilename:filename hockeyAttachmentData:data contentType:type]; + NSString *attachmentFilename = [[_sut crashesDir] stringByAppendingPathComponent:@"testAttachment"]; + + [_sut persistAttachment:originalAttachment withFilename:attachmentFilename]; + + BITHockeyAttachment *decodedAttachment = [_sut attachmentForCrashReport:attachmentFilename]; + + assertThat(decodedAttachment.filename, equalTo(filename)); + assertThat(decodedAttachment.hockeyAttachmentData, equalTo(data)); + assertThat(decodedAttachment.contentType, equalTo(type)); +} + +#pragma mark - Helper + +- (void)testUserIDForCrashReport { + BITHockeyManager *hm = [BITHockeyManager sharedHockeyManager]; + id delegateMock = mockProtocol(@protocol(BITHockeyManagerDelegate)); + hm.delegate = delegateMock; + _sut.delegate = delegateMock; + + NSString *result = [_sut userIDForCrashReport]; + + assertThat(result, notNilValue()); + + [verifyCount(delegateMock, times(1)) userIDForHockeyManager:hm componentManager:_sut]; +} + +- (void)testUserNameForCrashReport { + BITHockeyManager *hm = [BITHockeyManager sharedHockeyManager]; + id delegateMock = mockProtocol(@protocol(BITHockeyManagerDelegate)); + hm.delegate = delegateMock; + _sut.delegate = delegateMock; + + NSString *result = [_sut userNameForCrashReport]; + + assertThat(result, notNilValue()); + + [verifyCount(delegateMock, times(1)) userNameForHockeyManager:hm componentManager:_sut]; +} + +- (void)testUserEmailForCrashReport { + BITHockeyManager *hm = [BITHockeyManager sharedHockeyManager]; + id delegateMock = mockProtocol(@protocol(BITHockeyManagerDelegate)); + hm.delegate = delegateMock; + _sut.delegate = delegateMock; + + NSString *result = [_sut userEmailForCrashReport]; + + assertThat(result, notNilValue()); + + [verifyCount(delegateMock, times(1)) userEmailForHockeyManager:hm componentManager:_sut]; +} + +#pragma mark - Handle User Input + +- (void)testHandleUserInputDontSend { + id delegateMock = mockProtocol(@protocol(BITCrashManagerDelegate)); + _sut.delegate = delegateMock; + + assertThatBool([_sut handleUserInput:BITCrashManagerUserInputDontSend withUserProvidedMetaData:nil], equalToBool(YES)); + + [verify(delegateMock) crashManagerWillCancelSendingCrashReport:_sut]; + +} + +- (void)testHandleUserInputSend { + assertThatBool([_sut handleUserInput:BITCrashManagerUserInputSend withUserProvidedMetaData:nil], equalToBool(YES)); +} + +- (void)testHandleUserInputAlwaysSend { + id delegateMock = mockProtocol(@protocol(BITCrashManagerDelegate)); + _sut.delegate = delegateMock; + NSUserDefaults *mockUserDefaults = mock([NSUserDefaults class]); + + //Test if CrashManagerStatus is unset + [given([mockUserDefaults integerForKey:@"BITCrashManagerStatus"]) willReturn:nil]; + + //Test if method runs through + assertThatBool([_sut handleUserInput:BITCrashManagerUserInputAlwaysSend withUserProvidedMetaData:nil], equalToBool(YES)); + + //Test if correct CrashManagerStatus is now set + [given([mockUserDefaults integerForKey:@"BITCrashManagerStauts"]) willReturnInt:BITCrashManagerStatusAutoSend]; + + //Verify that delegate method has been called + [verify(delegateMock) crashManagerWillSendCrashReportsAlways:_sut]; + +} + +- (void)testHandleUserInputWithInvalidInput { + assertThatBool([_sut handleUserInput:3 withUserProvidedMetaData:nil], equalToBool(NO)); +} + +#pragma mark - Debugger + +/** + * We are running this usually witin Xcode + * TODO: what to do if we do run this e.g. on Jenkins or Xcode bots ? + */ +- (void)testIsDebuggerAttached { + assertThatBool([_sut isDebuggerAttached], equalToBool(YES)); +} + + +#pragma mark - Helper + +- (void)testHasPendingCrashReportWithNoFiles { + _sut.crashManagerStatus = BITCrashManagerStatusAutoSend; + assertThatBool([_sut hasPendingCrashReport], equalToBool(NO)); +} + +- (void)testFirstNotApprovedCrashReportWithNoFiles { + _sut.crashManagerStatus = BITCrashManagerStatusAutoSend; + assertThat([_sut firstNotApprovedCrashReport], equalTo(nil)); +} + + +#pragma mark - StartManager + +- (void)testStartManagerWithModuleDisabled { + [self startManagerDisabled]; + + assertThat(_sut.plCrashReporter, equalTo(nil)); +} + +- (void)testStartManagerWithAutoSend { + // since PLCR is only initialized once ever, we need to pack all tests that rely on a PLCR instance + // in this test method. Ugly but otherwise this would require a major redesign of BITCrashManager + // which we can't do at this moment + // This also limits us not being able to test various scenarios having a custom exception handler + // which would require us to run without a debugger anyway and which would also require a redesign + // to make this better testable with unit tests + + id delegateMock = mockProtocol(@protocol(BITCrashManagerDelegate)); + _sut.delegate = delegateMock; + + [self startManagerAutoSend]; + + assertThat(_sut.plCrashReporter, notNilValue()); + + // When running from the debugger this is always nil and not the exception handler from PLCR + NSUncaughtExceptionHandler *currentHandler = NSGetUncaughtExceptionHandler(); + + BOOL result = (_sut.exceptionHandler == currentHandler); + + assertThatBool(result, equalToBool(YES)); + + // No files at startup + assertThatBool([_sut hasPendingCrashReport], equalToBool(NO)); + assertThat([_sut firstNotApprovedCrashReport], equalTo(nil)); + + [_sut invokeDelayedProcessing]; + + // handle a new empty crash report + assertThatBool([BITTestHelper copyFixtureCrashReportWithFileName:@"live_report_empty"], equalToBool(YES)); + + [_sut handleCrashReport]; + + // we should have 0 pending crash report + assertThatBool([_sut hasPendingCrashReport], equalToBool(NO)); + assertThat([_sut firstNotApprovedCrashReport], equalTo(nil)); + + [_sut cleanCrashReports]; + + // handle a new signal crash report + assertThatBool([BITTestHelper copyFixtureCrashReportWithFileName:@"live_report_signal"], equalToBool(YES)); + + [_sut handleCrashReport]; + + [verifyCount(delegateMock, times(1)) applicationLogForCrashManager:_sut]; + [verifyCount(delegateMock, times(1)) attachmentForCrashManager:_sut]; + + // we should have now 1 pending crash report + assertThatBool([_sut hasPendingCrashReport], equalToBool(YES)); + assertThat([_sut firstNotApprovedCrashReport], notNilValue()); + + // this is currently sending blindly, needs refactoring to test properly + [_sut sendNextCrashReport]; + [verifyCount(delegateMock, times(1)) crashManagerWillSendCrashReport:_sut]; + + [_sut cleanCrashReports]; + + // handle a new signal crash report + assertThatBool([BITTestHelper copyFixtureCrashReportWithFileName:@"live_report_exception"], equalToBool(YES)); + + [_sut handleCrashReport]; + + // we should have now 1 pending crash report + assertThatBool([_sut hasPendingCrashReport], equalToBool(YES)); + assertThat([_sut firstNotApprovedCrashReport], notNilValue()); + + [_sut cleanCrashReports]; +} + +@end diff --git a/Pods/HockeySDK/Support/HockeySDKTests/BITCrashReportTextFormatterTests.m b/Pods/HockeySDK/Support/HockeySDKTests/BITCrashReportTextFormatterTests.m new file mode 100644 index 0000000..170fa8f --- /dev/null +++ b/Pods/HockeySDK/Support/HockeySDKTests/BITCrashReportTextFormatterTests.m @@ -0,0 +1,196 @@ +// +// BITCrashReportTextFormatterTests.m +// HockeySDK +// +// Created by Andreas Linde on 27.11.14. +// +// + +#import +#import "BITCrashReportTextFormatter.h" + +@interface BITCrashReportTextFormatterTests : XCTestCase + +@end + +@implementation BITCrashReportTextFormatterTests + +- (void)setUp { + [super setUp]; + // Put setup code here. This method is called before the invocation of each test method in the class. +} + +- (void)tearDown { +# pragma clang diagnostic push +# pragma clang diagnostic ignored "-Wimplicit" + __gcov_flush(); +# pragma clang diagnostic pop + + [super tearDown]; +} + +- (void)testOSXImages { + NSString *processPath = nil; + NSString *appBundlePath = nil; + + appBundlePath = @"/Applications/MyTestApp.App"; + + // Test with default OS X app path + processPath = [appBundlePath stringByAppendingString:@"/Contents/MacOS/MyApp"]; + [self testOSXNonAppSpecificImagesForProcessPath:processPath]; + [self testAppBinaryWithImagePath:processPath processPath:processPath]; + + // Test with OS X LoginItems app helper path + processPath = [appBundlePath stringByAppendingString:@"/Contents/Library/LoginItems/net.hockeyapp.helper.app/Contents/MacOS/Helper"]; + [self testOSXNonAppSpecificImagesForProcessPath:processPath]; + [self testAppBinaryWithImagePath:processPath processPath:processPath]; + + // Test with OS X app in Resources folder + processPath = @"/Applications/MyTestApp.App/Contents/Resources/Helper"; + [self testOSXNonAppSpecificImagesForProcessPath:processPath]; + [self testAppBinaryWithImagePath:processPath processPath:processPath]; +} + +- (void)testiOSImages { + NSString *processPath = nil; + NSString *appBundlePath = nil; + + appBundlePath = @"/private/var/mobile/Containers/Bundle/Application/9107B4E2-CD8C-486E-A3B2-82A5B818F2A0/MyApp.app"; + + // Test with iOS App + processPath = [appBundlePath stringByAppendingString:@"/MyApp"]; + [self testiOSNonAppSpecificImagesForProcessPath:processPath]; + [self testAppBinaryWithImagePath:processPath processPath:processPath]; + [self testiOSAppFrameworkAtProcessPath:processPath appBundlePath:appBundlePath]; + + // Test with iOS App Extension + processPath = [appBundlePath stringByAppendingString:@"/Plugins/MyAppExtension.appex/MyAppExtension"]; + [self testiOSNonAppSpecificImagesForProcessPath:processPath]; + [self testAppBinaryWithImagePath:processPath processPath:processPath]; + [self testiOSAppFrameworkAtProcessPath:processPath appBundlePath:appBundlePath]; +} + + +#pragma mark - Test Helper + +- (void)testAppBinaryWithImagePath:(NSString *)imagePath processPath:(NSString *)processPath { + BITBinaryImageType imageType = [BITCrashReportTextFormatter bit_imageTypeForImagePath:imagePath + processPath:processPath]; + XCTAssert((imageType == BITBinaryImageTypeAppBinary), @"Test app %@ with process %@", imagePath, processPath); +} + + +#pragma mark - OS X Test Helper + +- (void)testOSXAppFrameworkAtProcessPath:(NSString *)processPath appBundlePath:(NSString *)appBundlePath { + NSString *frameworkPath = [appBundlePath stringByAppendingString:@"/Contents/Frameworks/MyFrameworkLib.framework/Versions/A/MyFrameworkLib"]; + BITBinaryImageType imageType = [BITCrashReportTextFormatter bit_imageTypeForImagePath:frameworkPath + processPath:processPath]; + XCTAssert((imageType == BITBinaryImageTypeAppFramework), @"Test framework %@ with process %@", frameworkPath, processPath); + + frameworkPath = [appBundlePath stringByAppendingString:@"/Contents/Frameworks/libSwiftMyLib.framework/Versions/A/libSwiftMyLib"]; + imageType = [BITCrashReportTextFormatter bit_imageTypeForImagePath:frameworkPath + processPath:processPath]; + XCTAssert((imageType == BITBinaryImageTypeAppFramework), @"Test framework %@ with process %@", frameworkPath, processPath); + + NSMutableArray *swiftFrameworkPaths = [NSMutableArray new]; + [swiftFrameworkPaths addObject:[appBundlePath stringByAppendingString:@"/Contents/Frameworks/libswiftCore.dylib"]]; + [swiftFrameworkPaths addObject:[appBundlePath stringByAppendingString:@"/Contents/Frameworks/libswiftDarwin.dylib"]]; + [swiftFrameworkPaths addObject:[appBundlePath stringByAppendingString:@"/Contents/Frameworks/libswiftDispatch.dylib"]]; + [swiftFrameworkPaths addObject:[appBundlePath stringByAppendingString:@"/Contents/Frameworks/libswiftFoundation.dylib"]]; + [swiftFrameworkPaths addObject:[appBundlePath stringByAppendingString:@"/Contents/Frameworks/libswiftObjectiveC.dylib"]]; + [swiftFrameworkPaths addObject:[appBundlePath stringByAppendingString:@"/Contents/Frameworks/libswiftSecurity.dylib"]]; + [swiftFrameworkPaths addObject:[appBundlePath stringByAppendingString:@"/Contents/Frameworks/libswiftCoreGraphics.dylib"]]; + + for (NSString *imagePath in swiftFrameworkPaths) { + BITBinaryImageType imageType = [BITCrashReportTextFormatter bit_imageTypeForImagePath:imagePath + processPath:processPath]; + XCTAssert((imageType == BITBinaryImageTypeOther), @"Test swift image %@ with process %@", imagePath, processPath); + } +} + +- (void)testOSXNonAppSpecificImagesForProcessPath:(NSString *)processPath { + // system test paths + NSMutableArray *nonAppSpecificImagePaths = [NSMutableArray new]; + + // OS X frameworks + [nonAppSpecificImagePaths addObject:@"cl_kernels"]; + [nonAppSpecificImagePaths addObject:@""]; + [nonAppSpecificImagePaths addObject:@"???"]; + [nonAppSpecificImagePaths addObject:@"/System/Library/Frameworks/CFNetwork.framework/Versions/A/CFNetwork"]; + [nonAppSpecificImagePaths addObject:@"/usr/lib/system/libsystem_platform.dylib"]; + [nonAppSpecificImagePaths addObject:@"/System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/vecLib"]; + [nonAppSpecificImagePaths addObject:@"/System/Library/PrivateFrameworks/Sharing.framework/Versions/A/Sharing"]; + [nonAppSpecificImagePaths addObject:@"/usr/lib/libbsm.0.dylib"]; + + for (NSString *imagePath in nonAppSpecificImagePaths) { + BITBinaryImageType imageType = [BITCrashReportTextFormatter bit_imageTypeForImagePath:imagePath + processPath:processPath]; + XCTAssert((imageType == BITBinaryImageTypeOther), @"Test other image %@ with process %@", imagePath, processPath); + } +} + + +#pragma mark - iOS Test Helper + +- (void)testiOSAppFrameworkAtProcessPath:(NSString *)processPath appBundlePath:(NSString *)appBundlePath { + NSString *frameworkPath = [appBundlePath stringByAppendingString:@"/Frameworks/MyFrameworkLib.framework/MyFrameworkLib"]; + BITBinaryImageType imageType = [BITCrashReportTextFormatter bit_imageTypeForImagePath:frameworkPath + processPath:processPath]; + XCTAssert((imageType == BITBinaryImageTypeAppFramework), @"Test framework %@ with process %@", frameworkPath, processPath); + + frameworkPath = [appBundlePath stringByAppendingString:@"/Frameworks/libSwiftMyLib.framework/libSwiftMyLib"]; + imageType = [BITCrashReportTextFormatter bit_imageTypeForImagePath:frameworkPath + processPath:processPath]; + XCTAssert((imageType == BITBinaryImageTypeAppFramework), @"Test framework %@ with process %@", frameworkPath, processPath); + + NSMutableArray *swiftFrameworkPaths = [NSMutableArray new]; + [swiftFrameworkPaths addObject:[appBundlePath stringByAppendingString:@"/Frameworks/libswiftCore.dylib"]]; + [swiftFrameworkPaths addObject:[appBundlePath stringByAppendingString:@"/Frameworks/libswiftDarwin.dylib"]]; + [swiftFrameworkPaths addObject:[appBundlePath stringByAppendingString:@"/Frameworks/libswiftDispatch.dylib"]]; + [swiftFrameworkPaths addObject:[appBundlePath stringByAppendingString:@"/Frameworks/libswiftFoundation.dylib"]]; + [swiftFrameworkPaths addObject:[appBundlePath stringByAppendingString:@"/Frameworks/libswiftObjectiveC.dylib"]]; + [swiftFrameworkPaths addObject:[appBundlePath stringByAppendingString:@"/Frameworks/libswiftSecurity.dylib"]]; + [swiftFrameworkPaths addObject:[appBundlePath stringByAppendingString:@"/Frameworks/libswiftCoreGraphics.dylib"]]; + + for (NSString *imagePath in swiftFrameworkPaths) { + BITBinaryImageType imageType = [BITCrashReportTextFormatter bit_imageTypeForImagePath:imagePath + processPath:processPath]; + XCTAssert((imageType == BITBinaryImageTypeOther), @"Test swift image %@ with process %@", imagePath, processPath); + } +} + +- (void)testiOSNonAppSpecificImagesForProcessPath:(NSString *)processPath { + // system test paths + NSMutableArray *nonAppSpecificImagePaths = [NSMutableArray new]; + + // iOS frameworks + [nonAppSpecificImagePaths addObject:@"/System/Library/AccessibilityBundles/AccessibilitySettingsLoader.bundle/AccessibilitySettingsLoader"]; + [nonAppSpecificImagePaths addObject:@"/System/Library/Frameworks/AVFoundation.framework/AVFoundation"]; + [nonAppSpecificImagePaths addObject:@"/System/Library/Frameworks/AVFoundation.framework/libAVFAudio.dylib"]; + [nonAppSpecificImagePaths addObject:@"/System/Library/PrivateFrameworks/AOSNotification.framework/AOSNotification"]; + [nonAppSpecificImagePaths addObject:@"/System/Library/PrivateFrameworks/Accessibility.framework/Frameworks/AccessibilityUI.framework/AccessibilityUI"]; + [nonAppSpecificImagePaths addObject:@"/System/Library/PrivateFrameworks/Accessibility.framework/Frameworks/AccessibilityUIUtilities.framework/AccessibilityUIUtilities"]; + [nonAppSpecificImagePaths addObject:@"/usr/lib/libAXSafeCategoryBundle.dylib"]; + [nonAppSpecificImagePaths addObject:@"/usr/lib/libAXSpeechManager.dylib"]; + [nonAppSpecificImagePaths addObject:@"/usr/lib/libAccessibility.dylib"]; + [nonAppSpecificImagePaths addObject:@"/usr/lib/system/libcache.dylib"]; + [nonAppSpecificImagePaths addObject:@"/usr/lib/system/libcommonCrypto.dylib"]; + [nonAppSpecificImagePaths addObject:@"/usr/lib/system/libcompiler_rt.dylib"]; + + // iOS Jailbreak libraries + [nonAppSpecificImagePaths addObject:@"/Library/MobileSubstrate/MobileSubstrate.dylib"]; + [nonAppSpecificImagePaths addObject:@"/Library/MobileSubstrate/DynamicLibraries/WeeLoader.dylib"]; + [nonAppSpecificImagePaths addObject:@"/Library/Frameworks/CydiaSubstrate.framework/Libraries/SubstrateLoader.dylib"]; + [nonAppSpecificImagePaths addObject:@"/Library/Frameworks/CydiaSubstrate.framework/CydiaSubstrate"]; + [nonAppSpecificImagePaths addObject:@"/Library/MobileSubstrate/DynamicLibraries/WinterBoard.dylib"]; + + for (NSString *imagePath in nonAppSpecificImagePaths) { + BITBinaryImageType imageType = [BITCrashReportTextFormatter bit_imageTypeForImagePath:imagePath + processPath:processPath]; + XCTAssert((imageType == BITBinaryImageTypeOther), @"Test other image %@ with process %@", imagePath, processPath); + } +} + + +@end diff --git a/Pods/HockeySDK/Support/HockeySDKTests/BITFeedbackManagerTests.m b/Pods/HockeySDK/Support/HockeySDKTests/BITFeedbackManagerTests.m new file mode 100644 index 0000000..ac00063 --- /dev/null +++ b/Pods/HockeySDK/Support/HockeySDKTests/BITFeedbackManagerTests.m @@ -0,0 +1,216 @@ +// +// BITFeedbackManagerTests.m +// HockeySDK +// +// Created by Andreas Linde on 24.03.14. +// +// + +#import + +#define HC_SHORTHAND +#import + +#define MOCKITO_SHORTHAND +#import + +#import "HockeySDK.h" +#import "HockeySDKPrivate.h" +#import "BITFeedbackManager.h" +#import "BITFeedbackManagerPrivate.h" +#import "BITHockeyBaseManager.h" +#import "BITHockeyBaseManagerPrivate.h" + +#import "BITTestHelper.h" + +@interface BITFeedbackManagerTests : XCTestCase + +@end + +@implementation BITFeedbackManagerTests { + BITFeedbackManager *_sut; +} + +- (void)setUp { + [super setUp]; + + BITHockeyManager *hm = [BITHockeyManager sharedHockeyManager]; + hm.delegate = nil; + _sut = [[BITFeedbackManager alloc] initWithAppIdentifier:nil isAppStoreEnvironment:NO]; + _sut.delegate = nil; +} + +- (void)tearDown { +# pragma clang diagnostic push +# pragma clang diagnostic ignored "-Wimplicit" + __gcov_flush(); +# pragma clang diagnostic pop + + [_sut removeKeyFromKeychain:kBITHockeyMetaUserID]; + [_sut removeKeyFromKeychain:kBITHockeyMetaUserName]; + [_sut removeKeyFromKeychain:kBITHockeyMetaUserEmail]; + + _sut = nil; + + [super tearDown]; +} + +#pragma mark - Private + +- (void)startManager { + [_sut startManager]; +} + +#pragma mark - Setup Tests + + +#pragma mark - User Metadata + +- (void)testUpdateUserIDWithNoDataPresent { + BITHockeyManager *hm = [BITHockeyManager sharedHockeyManager]; + id delegateMock = mockProtocol(@protocol(BITHockeyManagerDelegate)); + hm.delegate = delegateMock; + _sut.delegate = delegateMock; + + BOOL dataAvailable = [_sut updateUserIDUsingKeychainAndDelegate]; + + assertThatBool(dataAvailable, equalToBool(NO)); + assertThat(_sut.userID, nilValue()); + + [verifyCount(delegateMock, times(1)) userIDForHockeyManager:hm componentManager:_sut]; +} + +- (void)testUpdateUserIDWithDelegateReturningData { + BITHockeyManager *hm = [BITHockeyManager sharedHockeyManager]; + NSObject *classMock = mockObjectAndProtocol([NSObject class], @protocol(BITHockeyManagerDelegate)); + [given([classMock userIDForHockeyManager:hm componentManager:_sut]) willReturn:@"test"]; + hm.delegate = classMock; + _sut.delegate = classMock; + + BOOL dataAvailable = [_sut updateUserIDUsingKeychainAndDelegate]; + + assertThatBool(dataAvailable, equalToBool(YES)); + assertThat(_sut.userID, equalTo(@"test")); + + [verifyCount(classMock, times(1)) userIDForHockeyManager:hm componentManager:_sut]; +} + +- (void)testUpdateUserIDWithValueInKeychain { + [_sut addStringValueToKeychain:@"test" forKey:kBITHockeyMetaUserID]; + + BOOL dataAvailable = [_sut updateUserIDUsingKeychainAndDelegate]; + + assertThatBool(dataAvailable, equalToBool(YES)); + assertThat(_sut.userID, equalTo(@"test")); +} + +- (void)testUpdateUserIDWithGlobalSetter { + BITHockeyManager *hm = [BITHockeyManager sharedHockeyManager]; + [hm setUserID:@"test"]; + + BOOL dataAvailable = [_sut updateUserIDUsingKeychainAndDelegate]; + + assertThatBool(dataAvailable, equalToBool(YES)); + assertThat(_sut.userID, equalTo(@"test")); +} + + +- (void)testUpdateUserNameWithNoDataPresent { + BITHockeyManager *hm = [BITHockeyManager sharedHockeyManager]; + id delegateMock = mockProtocol(@protocol(BITHockeyManagerDelegate)); + hm.delegate = delegateMock; + _sut.delegate = delegateMock; + + BOOL dataAvailable = [_sut updateUserNameUsingKeychainAndDelegate]; + + assertThatBool(dataAvailable, equalToBool(NO)); + assertThat(_sut.userName, nilValue()); + + [verifyCount(delegateMock, times(1)) userNameForHockeyManager:hm componentManager:_sut]; +} + +- (void)testUpdateUserNameWithDelegateReturningData { + BITHockeyManager *hm = [BITHockeyManager sharedHockeyManager]; + NSObject *classMock = mockObjectAndProtocol([NSObject class], @protocol(BITHockeyManagerDelegate)); + [given([classMock userNameForHockeyManager:hm componentManager:_sut]) willReturn:@"test"]; + hm.delegate = classMock; + _sut.delegate = classMock; + + BOOL dataAvailable = [_sut updateUserNameUsingKeychainAndDelegate]; + + assertThatBool(dataAvailable, equalToBool(YES)); + assertThat(_sut.userName, equalTo(@"test")); + + [verifyCount(classMock, times(1)) userNameForHockeyManager:hm componentManager:_sut]; +} + +- (void)testUpdateUserNameWithValueInKeychain { + [_sut addStringValueToKeychain:@"test" forKey:kBITHockeyMetaUserName]; + + BOOL dataAvailable = [_sut updateUserNameUsingKeychainAndDelegate]; + + assertThatBool(dataAvailable, equalToBool(YES)); + assertThat(_sut.userName, equalTo(@"test")); +} + +- (void)testUpdateUserNameWithGlobalSetter { + BITHockeyManager *hm = [BITHockeyManager sharedHockeyManager]; + [hm setUserName:@"test"]; + + BOOL dataAvailable = [_sut updateUserNameUsingKeychainAndDelegate]; + + assertThatBool(dataAvailable, equalToBool(YES)); + assertThat(_sut.userName, equalTo(@"test")); +} + + +- (void)testUpdateUserEmailWithNoDataPresent { + BITHockeyManager *hm = [BITHockeyManager sharedHockeyManager]; + id delegateMock = mockProtocol(@protocol(BITHockeyManagerDelegate)); + hm.delegate = delegateMock; + _sut.delegate = delegateMock; + + BOOL dataAvailable = [_sut updateUserEmailUsingKeychainAndDelegate]; + + assertThatBool(dataAvailable, equalToBool(NO)); + assertThat(_sut.userEmail, nilValue()); + + [verifyCount(delegateMock, times(1)) userEmailForHockeyManager:hm componentManager:_sut]; +} + +- (void)testUpdateUserEmailWithDelegateReturningData { + BITHockeyManager *hm = [BITHockeyManager sharedHockeyManager]; + NSObject *classMock = mockObjectAndProtocol([NSObject class], @protocol(BITHockeyManagerDelegate)); + [given([classMock userEmailForHockeyManager:hm componentManager:_sut]) willReturn:@"test"]; + hm.delegate = classMock; + _sut.delegate = classMock; + + BOOL dataAvailable = [_sut updateUserEmailUsingKeychainAndDelegate]; + + assertThatBool(dataAvailable, equalToBool(YES)); + assertThat(_sut.userEmail, equalTo(@"test")); + + [verifyCount(classMock, times(1)) userEmailForHockeyManager:hm componentManager:_sut]; +} + +- (void)testUpdateUserEmailWithValueInKeychain { + [_sut addStringValueToKeychain:@"test" forKey:kBITHockeyMetaUserEmail]; + + BOOL dataAvailable = [_sut updateUserEmailUsingKeychainAndDelegate]; + + assertThatBool(dataAvailable, equalToBool(YES)); + assertThat(_sut.userEmail, equalTo(@"test")); +} + +- (void)testUpdateUserEmailWithGlobalSetter { + BITHockeyManager *hm = [BITHockeyManager sharedHockeyManager]; + [hm setUserEmail:@"test"]; + + BOOL dataAvailable = [_sut updateUserEmailUsingKeychainAndDelegate]; + + assertThatBool(dataAvailable, equalToBool(YES)); + assertThat(_sut.userEmail, equalTo(@"test")); +} + + +@end diff --git a/Pods/HockeySDK/Support/HockeySDKTests/BITHockeyAppClientTests.m b/Pods/HockeySDK/Support/HockeySDKTests/BITHockeyAppClientTests.m new file mode 100644 index 0000000..5f1f66b --- /dev/null +++ b/Pods/HockeySDK/Support/HockeySDKTests/BITHockeyAppClientTests.m @@ -0,0 +1,236 @@ +// +// BITHockeyAppClientTests +// HockeySDKTests +// +// Created by Stephan Diederich on 06.09.13. +// +// + +#import + +#define HC_SHORTHAND +#import + +#define MOCKITO_SHORTHAND +#import + +#import "HockeySDK.h" +#import "BITHockeyAppClient.h" +#import "BITHTTPOperation.h" +#import "BITTestHelper.h" + +@interface BITHockeyAppClientTests : XCTestCase +@end + +@implementation BITHockeyAppClientTests { + BITHockeyAppClient *_sut; +} + +- (void)setUp { + [super setUp]; + + _sut = [[BITHockeyAppClient alloc] initWithBaseURL:[NSURL URLWithString:@"http://bitbaseurl.com"]]; +} + +- (void)tearDown { +# pragma clang diagnostic push +# pragma clang diagnostic ignored "-Wimplicit" + __gcov_flush(); +# pragma clang diagnostic pop + + [_sut cancelOperationsWithPath:nil method:nil]; + _sut = nil; + + [super tearDown]; +} + +#pragma mark - Setup helpers +- (NSDictionary *)jsonFromFixture:(NSString *)fixture { + NSString *dataString = [BITTestHelper jsonFixture:fixture]; + + NSData *data = [dataString dataUsingEncoding:NSUTF8StringEncoding]; + NSError *error = nil; + NSDictionary *json = (NSDictionary *)[NSJSONSerialization JSONObjectWithData:data options:0 error:&error]; + + return json; +} + +#pragma mark - Setup Tests +- (void) testThatItInstantiates { + XCTAssertNotNil(_sut, @"Should be there"); +} + +#pragma mark - Networking base tests +- (void) testThatURLRequestHasBaseURLSet { + _sut.baseURL = [NSURL URLWithString:@"http://myserver.com"]; + NSMutableURLRequest *request = [_sut requestWithMethod:@"GET" path:nil parameters:nil]; + assertThat(request.URL, equalTo([NSURL URLWithString:@"http://myserver.com/"])); +} + +- (void) testThatURLRequestHasPathAppended { + _sut.baseURL = [NSURL URLWithString:@"http://myserver.com"]; + NSMutableURLRequest *request = [_sut requestWithMethod:@"GET" path:@"projects" parameters:nil]; + assertThat(request.URL, equalTo([NSURL URLWithString:@"http://myserver.com/projects"])); +} + +- (void) testThatURLRequestHasMethodSet { + NSMutableURLRequest *request = [_sut requestWithMethod:@"POST" path:nil parameters:nil]; + + assertThat(request.HTTPMethod, equalTo(@"POST")); +} + +- (void) testThatOperationHasURLRequestSet { + _sut.baseURL = [NSURL URLWithString:@"http://myserver.com"]; + NSURLRequest *r = [_sut requestWithMethod:@"PUT" path:@"x" parameters:nil]; + BITHTTPOperation *op = [_sut operationWithURLRequest:r + completion:nil]; + assertThat(op.URLRequest, equalTo(r)); +} + +- (void) testThatURLRequestHasParametersInGetAppended { + NSDictionary *parameters = @{ + @"email" : @"peter@pan.de", + @"push" : @"pop", + }; + NSMutableURLRequest *request = [_sut requestWithMethod:@"GET" + path:@"something" + parameters:parameters]; + NSURL *url = request.URL; + NSString *params = [url query]; + NSArray *paramPairs = [params componentsSeparatedByString:@"&"]; + assertThat(paramPairs, hasCountOf(2)); + + NSMutableDictionary *dict = [NSMutableDictionary new]; + for(NSString *paramPair in paramPairs) { + NSArray *a = [paramPair componentsSeparatedByString:@"="]; + assertThat(a, hasCountOf(2)); + dict[a[0]] = a[1]; + } + assertThat(dict, equalTo(parameters)); +} + +- (void) testThatURLRequestHasParametersInPostInTheBody { + //pending +} + +#pragma mark - Convenience methods +- (void) testThatGetPathCreatesAndEnquesAnOperation { + assertThatUnsignedLong(_sut.operationQueue.operationCount, equalToUnsignedLong(0)); + [given([_sut operationWithURLRequest:(id)anything() + completion:nil]) willReturn:[NSOperation new]]; + + [_sut getPath:@"endpoint" + parameters:nil + completion:nil]; + assertThatUnsignedLong(_sut.operationQueue.operationCount, equalToUnsignedLong(1)); +} + +- (void) testThatPostPathCreatesAndEnquesAnOperation { + assertThatUnsignedLong(_sut.operationQueue.operationCount, equalToUnsignedLong(0)); + [given([_sut operationWithURLRequest:nil + completion:nil]) willReturn:[NSOperation new]]; + + [_sut postPath:@"endpoint" + parameters:nil + completion:nil]; + assertThatUnsignedLong(_sut.operationQueue.operationCount, equalToUnsignedLong(1)); +} + +#pragma mark - Completion Tests +- (void) testThatCompletionIsCalled { + //TODO +} + +#pragma mark - HTTPOperation enqueuing / cancellation +- (void) testThatOperationIsQueued { + assertThatUnsignedLong(_sut.operationQueue.operationCount, equalToUnsignedLong(0)); + [_sut.operationQueue setSuspended:YES]; + BITHTTPOperation *op = [BITHTTPOperation new]; + [_sut enqeueHTTPOperation:op]; + + assertThatUnsignedLong(_sut.operationQueue.operationCount, equalToUnsignedLong(1)); +} + +- (void) testThatOperationCancellingMatchesAllOperationsWithNilMethod { + [_sut.operationQueue setSuspended:YES]; + NSURLRequest *requestGet = [_sut requestWithMethod:@"GET" path:nil parameters:nil]; + NSURLRequest *requestPut = [_sut requestWithMethod:@"PUT" path:nil parameters:nil]; + NSURLRequest *requestPost = [_sut requestWithMethod:@"POST" path:nil parameters:nil]; + [_sut enqeueHTTPOperation:[_sut operationWithURLRequest:requestGet + completion:nil]]; + [_sut enqeueHTTPOperation:[_sut operationWithURLRequest:requestPut + completion:nil]]; + [_sut enqeueHTTPOperation:[_sut operationWithURLRequest:requestPost + completion:nil]]; + assertThatUnsignedLong(_sut.operationQueue.operationCount, equalToUnsignedLong(3)); + NSUInteger numCancelled = [_sut cancelOperationsWithPath:nil method:nil]; + assertThatUnsignedLong(numCancelled, equalToUnsignedLong(3)); +} + +- (void) testThatOperationCancellingMatchesAllOperationsWithNilPath { + [_sut.operationQueue setSuspended:YES]; + NSURLRequest *requestGet = [_sut requestWithMethod:@"GET" path:@"test" parameters:nil]; + NSURLRequest *requestPut = [_sut requestWithMethod:@"PUT" path:@"Another/acas" parameters:nil]; + NSURLRequest *requestPost = [_sut requestWithMethod:@"POST" path:nil parameters:nil]; + [_sut enqeueHTTPOperation:[_sut operationWithURLRequest:requestGet + completion:nil]]; + [_sut enqeueHTTPOperation:[_sut operationWithURLRequest:requestPut + completion:nil]]; + [_sut enqeueHTTPOperation:[_sut operationWithURLRequest:requestPost + completion:nil]]; + assertThatUnsignedLong(_sut.operationQueue.operationCount, equalToUnsignedLong(3)); + NSUInteger numCancelled = [_sut cancelOperationsWithPath:nil method:nil]; + assertThatUnsignedLong(numCancelled, equalToUnsignedLong(3)); +} + + +- (void) testThatOperationCancellingMatchesAllOperationsWithSetPath { + NSURLRequest *requestGet = [_sut requestWithMethod:@"GET" path:@"test" parameters:nil]; + NSURLRequest *requestPut = [_sut requestWithMethod:@"PUT" path:@"Another/acas" parameters:nil]; + NSURLRequest *requestPost = [_sut requestWithMethod:@"POST" path:nil parameters:nil]; + [_sut.operationQueue setSuspended:YES]; + + [_sut enqeueHTTPOperation:[_sut operationWithURLRequest:requestGet + completion:nil]]; + [_sut enqeueHTTPOperation:[_sut operationWithURLRequest:requestPut + completion:nil]]; + [_sut enqeueHTTPOperation:[_sut operationWithURLRequest:requestPost + completion:nil]]; + assertThatUnsignedLong(_sut.operationQueue.operationCount, equalToUnsignedLong(3)); + NSUInteger numCancelled = [_sut cancelOperationsWithPath:@"Another/acas" method:nil]; + assertThatUnsignedLong(numCancelled, equalToUnsignedLong(1)); +} + +- (void) testThatOperationCancellingMatchesAllOperationsWithSetMethod { + NSURLRequest *requestGet = [_sut requestWithMethod:@"GET" path:@"test" parameters:nil]; + NSURLRequest *requestPut = [_sut requestWithMethod:@"PUT" path:@"Another/acas" parameters:nil]; + NSURLRequest *requestPost = [_sut requestWithMethod:@"POST" path:nil parameters:nil]; + [_sut enqeueHTTPOperation:[_sut operationWithURLRequest:requestGet + completion:nil]]; + [_sut enqeueHTTPOperation:[_sut operationWithURLRequest:requestPut + completion:nil]]; + [_sut enqeueHTTPOperation:[_sut operationWithURLRequest:requestPost + completion:nil]]; + assertThatUnsignedLong(_sut.operationQueue.operationCount, equalToUnsignedLong(3)); + NSUInteger numCancelled = [_sut cancelOperationsWithPath:nil method:@"POST"]; + assertThatUnsignedLong(numCancelled, equalToUnsignedLong(1)); +} + +- (void) testThatOperationCancellingMatchesAllOperationsWithSetMethodAndPath { + NSURLRequest *requestGet = [_sut requestWithMethod:@"GET" path:@"test" parameters:nil]; + NSURLRequest *requestPut = [_sut requestWithMethod:@"PUT" path:@"Another/acas" parameters:nil]; + NSURLRequest *requestPost = [_sut requestWithMethod:@"POST" path:nil parameters:nil]; + [_sut enqeueHTTPOperation:[_sut operationWithURLRequest:requestGet + completion:nil]]; + [_sut enqeueHTTPOperation:[_sut operationWithURLRequest:requestPut + completion:nil]]; + [_sut enqeueHTTPOperation:[_sut operationWithURLRequest:requestPost + completion:nil]]; + assertThatUnsignedLong(_sut.operationQueue.operationCount, equalToUnsignedLong(3)); + NSUInteger numCancelled = [_sut cancelOperationsWithPath:@"Another/acas" method:@"PUT"]; + assertThatUnsignedLong(numCancelled, equalToUnsignedLong(1)); +} + +#pragma mark - Operation Testing + +@end diff --git a/Pods/HockeySDK/Support/HockeySDKTests/BITHockeyHelperTests.m b/Pods/HockeySDK/Support/HockeySDKTests/BITHockeyHelperTests.m new file mode 100644 index 0000000..b6a0bf9 --- /dev/null +++ b/Pods/HockeySDK/Support/HockeySDKTests/BITHockeyHelperTests.m @@ -0,0 +1,153 @@ +// +// HockeySDKPrivateTests.m +// HockeySDK +// +// Created by Andreas Linde on 25.09.13. +// +// + +#import + +#define HC_SHORTHAND +#import + +#define MOCKITO_SHORTHAND +#import + +#import "HockeySDK.h" +#import "BITHockeyHelper.h" +#import "BITKeychainUtils.h" + + +@interface BITHockeyHelperTests : XCTestCase + +@end + +@implementation BITHockeyHelperTests + + +- (void)setUp { + [super setUp]; + // Put setup code here; it will be run once, before the first test case. +} + +- (void)tearDown { + // Tear-down code here. +# pragma clang diagnostic push +# pragma clang diagnostic ignored "-Wimplicit" + __gcov_flush(); +# pragma clang diagnostic pop + + [super tearDown]; +} + +- (void)testValidateEmail { + BOOL result = NO; + + // valid email + result = bit_validateEmail(@"mail@test.com"); + assertThatBool(result, equalToBool(YES)); + + // invalid emails + + result = bit_validateEmail(@"mail@test"); + assertThatBool(result, equalToBool(NO)); + + result = bit_validateEmail(@"mail@.com"); + assertThatBool(result, equalToBool(NO)); + + result = bit_validateEmail(@"mail.com"); + assertThatBool(result, equalToBool(NO)); + +} + +- (void)testAppName { + NSString *resultString = bit_appName(@"Placeholder"); + assertThatBool([resultString isEqualToString:@"Placeholder"], equalToBool(YES)); +} + +- (void)testUUIDPreiOS6 { + NSString *resultString = bit_UUIDPreiOS6(); + assertThat(resultString, notNilValue()); + assertThatInteger([resultString length], equalToInteger(36)); +} + +- (void)testUUID { + NSString *resultString = bit_UUID(); + assertThat(resultString, notNilValue()); + assertThatInteger([resultString length], equalToInteger(36)); +} + +- (void)testAppAnonID { + // clean keychain cache + NSError *error = NULL; + [BITKeychainUtils deleteItemForUsername:@"appAnonID" + andServiceName:bit_keychainHockeySDKServiceName() + error:&error]; + + NSString *resultString = bit_appAnonID(); + assertThat(resultString, notNilValue()); + assertThatInteger([resultString length], equalToInteger(36)); +} + +- (void)testValidAppIconFilename { + NSString *resultString = nil; + NSBundle *mockBundle = mock([NSBundle class]); + NSBundle *resourceBundle = [NSBundle bundleForClass:self.class]; + NSString *validIconPath = @"AppIcon"; + NSString *validIconPath2x = @"AppIcon@2x"; + + // No valid icons defined at all + [given([mockBundle objectForInfoDictionaryKey:@"CFBundleIconFiles"]) willReturn:nil]; + [given([mockBundle objectForInfoDictionaryKey:@"CFBundleIcons"]) willReturn:nil]; + [given([mockBundle objectForInfoDictionaryKey:@"CFBundleIcons~ipad"]) willReturn:nil]; + [given([mockBundle objectForInfoDictionaryKey:@"CFBundleIconFile"]) willReturn:@"invalidFilename.png"]; + + resultString = bit_validAppIconFilename(mockBundle, resourceBundle); + assertThat(resultString, nilValue()); + + // CFBundleIconFiles contains valid filenames + [given([mockBundle objectForInfoDictionaryKey:@"CFBundleIconFiles"]) willReturn:@[validIconPath, validIconPath2x]]; + [given([mockBundle objectForInfoDictionaryKey:@"CFBundleIcons"]) willReturn:nil]; + [given([mockBundle objectForInfoDictionaryKey:@"CFBundleIcons~ipad"]) willReturn:nil]; + [given([mockBundle objectForInfoDictionaryKey:@"CFBundleIconFile"]) willReturn:nil]; + + resultString = bit_validAppIconFilename(mockBundle, resourceBundle); + assertThat(resultString, notNilValue()); + + // CFBundleIcons contains valid dictionary filenames + [given([mockBundle objectForInfoDictionaryKey:@"CFBundleIconFiles"]) willReturn:@[@"invalidFilename.png"]]; + [given([mockBundle objectForInfoDictionaryKey:@"CFBundleIcons"]) willReturn:@{@"CFBundlePrimaryIcon":@{@"CFBundleIconFiles":@[validIconPath, validIconPath2x]}}]; + [given([mockBundle objectForInfoDictionaryKey:@"CFBundleIcons~ipad"]) willReturn:nil]; + [given([mockBundle objectForInfoDictionaryKey:@"CFBundleIconFile"]) willReturn:nil]; + + // CFBundleIcons contains valid ipad dictionary and valid default dictionary filenames + [given([mockBundle objectForInfoDictionaryKey:@"CFBundleIconFiles"]) willReturn:@[@"invalidFilename.png"]]; + [given([mockBundle objectForInfoDictionaryKey:@"CFBundleIcons"]) willReturn:@{@"CFBundlePrimaryIcon":@{@"CFBundleIconFiles":@[validIconPath, validIconPath2x]}}]; + [given([mockBundle objectForInfoDictionaryKey:@"CFBundleIcons~ipad"]) willReturn:@{@"CFBundlePrimaryIcon":@{@"CFBundleIconFiles":@[validIconPath, validIconPath2x]}}]; + [given([mockBundle objectForInfoDictionaryKey:@"CFBundleIconFile"]) willReturn:nil]; + + resultString = bit_validAppIconFilename(mockBundle, resourceBundle); + assertThat(resultString, notNilValue()); + + // CFBundleIcons contains valid filenames + [given([mockBundle objectForInfoDictionaryKey:@"CFBundleIconFiles"]) willReturn:@[@"invalidFilename.png"]]; + [given([mockBundle objectForInfoDictionaryKey:@"CFBundleIcons"]) willReturn:@[validIconPath, validIconPath2x]]; + [given([mockBundle objectForInfoDictionaryKey:@"CFBundleIcons~ipad"]) willReturn:nil]; + [given([mockBundle objectForInfoDictionaryKey:@"CFBundleIconFile"]) willReturn:nil]; + + resultString = bit_validAppIconFilename(mockBundle, resourceBundle); + assertThat(resultString, notNilValue()); + + // CFBundleIcon contains valid filename + [given([mockBundle objectForInfoDictionaryKey:@"CFBundleIconFiles"]) willReturn:@[@"invalidFilename.png"]]; + [given([mockBundle objectForInfoDictionaryKey:@"CFBundleIcons"]) willReturn:nil]; + [given([mockBundle objectForInfoDictionaryKey:@"CFBundleIcons~ipad"]) willReturn:nil]; + [given([mockBundle objectForInfoDictionaryKey:@"CFBundleIconFile"]) willReturn:validIconPath]; + + resultString = bit_validAppIconFilename(mockBundle, resourceBundle); + assertThat(resultString, notNilValue()); +} + + +@end diff --git a/Pods/HockeySDK/Support/HockeySDKTests/BITKeychainUtilsTests.m b/Pods/HockeySDK/Support/HockeySDKTests/BITKeychainUtilsTests.m new file mode 100644 index 0000000..1bd87ff --- /dev/null +++ b/Pods/HockeySDK/Support/HockeySDKTests/BITKeychainUtilsTests.m @@ -0,0 +1,88 @@ +// +// BITKeychainHelperTests.m +// HockeySDK +// +// Created by Stephan Diederich on 23.09.13. +// Copyright (c) 2013 __MyCompanyName__. All rights reserved. +// + +#import + +#define HC_SHORTHAND +#import + +#define MOCKITO_SHORTHAND +#import + +#import "HockeySDK.h" +#import "BITKeychainUtils.h" + +@interface BITKeychainUtilsTests : XCTestCase { + +} +@end + + +@implementation BITKeychainUtilsTests +- (void)setUp { + [super setUp]; + + // Set-up code here. +} + +- (void)tearDown { + // Tear-down code here. +# pragma clang diagnostic push +# pragma clang diagnostic ignored "-Wimplicit" + __gcov_flush(); +# pragma clang diagnostic pop + + [super tearDown]; +} + +- (void)testThatBITKeychainHelperStoresAndRetrievesPassword { + [BITKeychainUtils deleteItemForUsername:@"Peter" andServiceName:@"Test" error:nil]; + BOOL success = [BITKeychainUtils storeUsername:@"Peter" + andPassword:@"Pan" + forServiceName:@"Test" + updateExisting:YES + error:nil]; + assertThatBool(success, equalToBool(YES)); + NSString *pass = [BITKeychainUtils getPasswordForUsername:@"Peter" + andServiceName:@"Test" + error:NULL]; + assertThat(pass, equalTo(@"Pan")); +} + +- (void)testThatBITKeychainHelperStoresAndRetrievesPasswordThisDeviceOnly { + [BITKeychainUtils deleteItemForUsername:@"Peter" andServiceName:@"Test" error:nil]; + BOOL success = [BITKeychainUtils storeUsername:@"Peter" + andPassword:@"PanThisDeviceOnly" + forServiceName:@"Test" + updateExisting:YES + accessibility:kSecAttrAccessibleAlwaysThisDeviceOnly + error:nil]; + assertThatBool(success, equalToBool(YES)); + NSString *pass = [BITKeychainUtils getPasswordForUsername:@"Peter" + andServiceName:@"Test" + error:NULL]; + assertThat(pass, equalTo(@"PanThisDeviceOnly")); +} + +- (void)testThatBITKeychainHelperRemovesAStoredPassword { + [BITKeychainUtils deleteItemForUsername:@"Peter" andServiceName:@"Test" error:nil]; + [BITKeychainUtils storeUsername:@"Peter" + andPassword:@"Pan" + forServiceName:@"Test" + updateExisting:YES + error:nil]; + BOOL success = [BITKeychainUtils deleteItemForUsername:@"Peter" andServiceName:@"Test" error:nil]; + assertThatBool(success, equalToBool(YES)); + + NSString *pass = [BITKeychainUtils getPasswordForUsername:@"Peter" + andServiceName:@"Test" + error:NULL]; + assertThat(pass, equalTo(nil)); +} + +@end diff --git a/Pods/HockeySDK/Support/HockeySDKTests/BITStoreUpdateManagerTests.m b/Pods/HockeySDK/Support/HockeySDKTests/BITStoreUpdateManagerTests.m new file mode 100644 index 0000000..a9e2d9c --- /dev/null +++ b/Pods/HockeySDK/Support/HockeySDKTests/BITStoreUpdateManagerTests.m @@ -0,0 +1,319 @@ +// +// HockeySDKTests.m +// HockeySDKTests +// +// Created by Andreas Linde on 13.03.13. +// +// + +#import + +// Uncomment the next two lines to use OCHamcrest for test assertions: +#define HC_SHORTHAND +#import + +// Uncomment the next two lines to use OCMockito for mock objects: +#define MOCKITO_SHORTHAND +#import + +#import "HockeySDKFeatureConfig.h" +#import "BITStoreUpdateManager.h" +#import "BITStoreUpdateManagerPrivate.h" +#import "BITHockeyBaseManager.h" +#import "BITHockeyBaseManagerPrivate.h" + +#import "BITTestHelper.h" + + +@interface BITStoreUpdateManagerTests : XCTestCase + +@end + + +@implementation BITStoreUpdateManagerTests { + BITStoreUpdateManager *_storeUpdateManager; +} + +- (void)setUp { + [super setUp]; + + // Set-up code here. + _storeUpdateManager = [[BITStoreUpdateManager alloc] initWithAppIdentifier:nil isAppStoreEnvironment:YES]; +} + +- (void)tearDown { + // Tear-down code here. +# pragma clang diagnostic push +# pragma clang diagnostic ignored "-Wimplicit" + __gcov_flush(); +# pragma clang diagnostic pop + + _storeUpdateManager = nil; + + [super tearDown]; +} + + +#pragma mark - Private + +- (NSDictionary *)jsonFromFixture:(NSString *)fixture { + NSString *dataString = [BITTestHelper jsonFixture:fixture]; + + NSData *data = [dataString dataUsingEncoding:NSUTF8StringEncoding]; + NSError *error = nil; + NSDictionary *json = (NSDictionary *)[NSJSONSerialization JSONObjectWithData:data options:0 error:&error]; + + return json; +} + +- (void)startManager { + _storeUpdateManager.enableStoreUpdateManager = YES; + [_storeUpdateManager startManager]; + [NSObject cancelPreviousPerformRequestsWithTarget:_storeUpdateManager selector:@selector(checkForUpdateDelayed) object:nil]; +} + + +#pragma mark - Time + +- (void)testUpdateCheckDailyFirstTimeEver { + NSUserDefaults *mockUserDefaults = mock([NSUserDefaults class]); + _storeUpdateManager.userDefaults = mockUserDefaults; + + [self startManager]; + + BOOL result = [_storeUpdateManager shouldAutoCheckForUpdates]; + + XCTAssertTrue(result, @"Checking daily first time ever"); +} + +- (void)testUpdateCheckDailyFirstTimeTodayLastCheckPreviousDay { + NSUserDefaults *mockUserDefaults = mock([NSUserDefaults class]); + [given([mockUserDefaults objectForKey:@"BITStoreUpdateDateOfLastCheck"]) willReturn:[NSDate dateWithTimeIntervalSinceNow:-(60*60*24)]]; + _storeUpdateManager.userDefaults = mockUserDefaults; + _storeUpdateManager.updateSetting = BITStoreUpdateCheckDaily; + + [self startManager]; + + BOOL result = [_storeUpdateManager shouldAutoCheckForUpdates]; + + XCTAssertTrue(result, @"Checking daily first time today with last check done previous day"); +} + +- (void)testUpdateCheckDailySecondTimeOfTheDay { + NSUserDefaults *mockUserDefaults = mock([NSUserDefaults class]); + _storeUpdateManager.userDefaults = mockUserDefaults; + _storeUpdateManager.lastCheck = [NSDate date]; + + [self startManager]; + + BOOL result = [_storeUpdateManager shouldAutoCheckForUpdates]; + + XCTAssertFalse(result, @"Checking daily second time of the day"); +} + +- (void)testUpdateCheckWeeklyFirstTimeEver { + NSUserDefaults *mockUserDefaults = mock([NSUserDefaults class]); + _storeUpdateManager.userDefaults = mockUserDefaults; + _storeUpdateManager.updateSetting = BITStoreUpdateCheckWeekly; + + [self startManager]; + + BOOL result = [_storeUpdateManager shouldAutoCheckForUpdates]; + + XCTAssertTrue(result, @"Checking weekly first time ever"); +} + +- (void)testUpdateCheckWeeklyFirstTimeTodayLastCheckPreviousWeek { + NSUserDefaults *mockUserDefaults = mock([NSUserDefaults class]); + [given([mockUserDefaults objectForKey:@"BITStoreUpdateDateOfLastCheck"]) willReturn:[NSDate dateWithTimeIntervalSinceNow:-(60*60*24*7)]]; + _storeUpdateManager.userDefaults = mockUserDefaults; + _storeUpdateManager.updateSetting = BITStoreUpdateCheckWeekly; + + [self startManager]; + + BOOL result = [_storeUpdateManager shouldAutoCheckForUpdates]; + + XCTAssertTrue(result, @"Checking weekly first time after one week"); +} + +- (void)testUpdateCheckWeeklyFirstTimeFiveDaysAfterPreviousCheck { + NSUserDefaults *mockUserDefaults = mock([NSUserDefaults class]); + [given([mockUserDefaults objectForKey:@"BITStoreUpdateDateOfLastCheck"]) willReturn:[NSDate dateWithTimeIntervalSinceNow:-(60*60*24*5)]]; + _storeUpdateManager.userDefaults = mockUserDefaults; + _storeUpdateManager.updateSetting = BITStoreUpdateCheckWeekly; + + [self startManager]; + + BOOL result = [_storeUpdateManager shouldAutoCheckForUpdates]; + + XCTAssertFalse(result, @"Checking weekly first time five days after previous check"); +} + +- (void)testUpdateCheckManuallyFirstTimeEver { + NSUserDefaults *mockUserDefaults = mock([NSUserDefaults class]); + _storeUpdateManager.userDefaults = mockUserDefaults; + _storeUpdateManager.updateSetting = BITStoreUpdateCheckManually; + + [self startManager]; + + BOOL result = [_storeUpdateManager shouldAutoCheckForUpdates]; + + XCTAssertFalse(result, @"Checking manually first time ever"); +} + +- (void)testUpdateCheckManuallyFirstTimeTodayLastCheckDonePreviousDay { + NSUserDefaults *mockUserDefaults = mock([NSUserDefaults class]); + [given([mockUserDefaults objectForKey:@"BITStoreUpdateDateOfLastCheck"]) willReturn:[NSDate dateWithTimeIntervalSinceNow:-(60*60*24)]]; + _storeUpdateManager.userDefaults = mockUserDefaults; + _storeUpdateManager.updateSetting = BITStoreUpdateCheckManually; + + [self startManager]; + + BOOL result = [_storeUpdateManager shouldAutoCheckForUpdates]; + + XCTAssertFalse(result, @"Checking manually first time ever"); +} + + +#pragma mark - JSON Response Processing + +- (void)testProcessStoreResponseWithEmptyData { + BOOL result = [_storeUpdateManager processStoreResponseWithString:nil]; + + XCTAssertFalse(result, @"Empty data was handled correctly"); +} + +- (void)testProcessStoreResponseWithInvalidData { + NSString *invalidString = @"8a@c&)if"; + BOOL result = [_storeUpdateManager processStoreResponseWithString:invalidString]; + + XCTAssertFalse(result, @"Invalid JSON data was handled correctly"); +} + +- (void)testProcessStoreResponseWithUnknownBundleIdentifier { + NSString *dataString = [BITTestHelper jsonFixture:@"StoreBundleIdentifierUnknown"]; + BOOL result = [_storeUpdateManager processStoreResponseWithString:dataString]; + + XCTAssertFalse(result, @"Valid but empty json data was handled correctly"); +} + +- (void)testProcessStoreResponseWithKnownBundleIdentifier { + NSString *dataString = [BITTestHelper jsonFixture:@"StoreBundleIdentifierKnown"]; + BOOL result = [_storeUpdateManager processStoreResponseWithString:dataString]; + + XCTAssertTrue(result, @"Valid and correct JSON data was handled correctly"); +} + + +#pragma mark - Last version + +#pragma mark - Version compare + +- (void)testFirstStartHasNewVersionReturnsFalseWithFirstCheck { + NSUserDefaults *mockUserDefaults = mock([NSUserDefaults class]); + _storeUpdateManager.userDefaults = mockUserDefaults; + + [self startManager]; + + NSDictionary *json = [self jsonFromFixture:@"StoreBundleIdentifierKnown"]; + + BOOL result = [_storeUpdateManager hasNewVersion:json]; + + XCTAssertFalse(result, @"There is no udpate available"); +} + +- (void)testFirstStartHasNewVersionReturnsFalseWithSameVersion { + NSUserDefaults *mockUserDefaults = mock([NSUserDefaults class]); + [given([mockUserDefaults objectForKey:@"BITStoreUpdateLastStoreVersion"]) willReturn:@"4.1.2"]; + [given([mockUserDefaults objectForKey:@"BITStoreUpdateLastUUID"]) willReturn:@""]; + _storeUpdateManager.userDefaults = mockUserDefaults; + + [self startManager]; + + NSDictionary *json = [self jsonFromFixture:@"StoreBundleIdentifierKnown"]; + + BOOL result = [_storeUpdateManager hasNewVersion:json]; + + XCTAssertFalse(result, @"There is no udpate available"); +} + + +- (void)testFirstStartHasNewVersionReturnsFalseWithSameVersionButDifferentUUID { + NSUserDefaults *mockUserDefaults = mock([NSUserDefaults class]); + [given([mockUserDefaults objectForKey:@"BITStoreUpdateLastStoreVersion"]) willReturn:@"4.1.2"]; + [given([mockUserDefaults objectForKey:@"BITStoreUpdateLastUUID"]) willReturn:@"1"]; + _storeUpdateManager.userDefaults = mockUserDefaults; + + [self startManager]; + + NSDictionary *json = [self jsonFromFixture:@"StoreBundleIdentifierKnown"]; + + BOOL result = [_storeUpdateManager hasNewVersion:json]; + + XCTAssertFalse(result, @"There is no udpate available"); +} + +- (void)testFirstStartHasNewVersionReturnsTrue { + NSUserDefaults *mockUserDefaults = mock([NSUserDefaults class]); + [given([mockUserDefaults objectForKey:@"BITStoreUpdateLastStoreVersion"]) willReturn:@"4.1.1"]; + [given([mockUserDefaults objectForKey:@"BITStoreUpdateLastUUID"]) willReturn:@""]; + _storeUpdateManager.userDefaults = mockUserDefaults; + + [self startManager]; + + NSDictionary *json = [self jsonFromFixture:@"StoreBundleIdentifierKnown"]; + + BOOL result = [_storeUpdateManager hasNewVersion:json]; + + XCTAssertTrue(result, @"There is an udpate available"); +} + + +- (void)testFirstStartHasNewVersionReturnsFalseBecauseWeHaveANewerVersionInstalled { + NSUserDefaults *mockUserDefaults = mock([NSUserDefaults class]); + [given([mockUserDefaults objectForKey:@"BITStoreUpdateLastStoreVersion"]) willReturn:@"4.1.3"]; + [given([mockUserDefaults objectForKey:@"BITStoreUpdateLastUUID"]) willReturn:@""]; + _storeUpdateManager.userDefaults = mockUserDefaults; + + [self startManager]; + + NSDictionary *json = [self jsonFromFixture:@"StoreBundleIdentifierKnown"]; + + BOOL result = [_storeUpdateManager hasNewVersion:json]; + + XCTAssertFalse(result, @"There is no udpate available"); +} + +- (void)testReportedVersionIsBeingIgnored { + NSUserDefaults *mockUserDefaults = mock([NSUserDefaults class]); + [given([mockUserDefaults objectForKey:@"BITStoreUpdateLastStoreVersion"]) willReturn:@"4.1.1"]; + [given([mockUserDefaults objectForKey:@"BITStoreUpdateLastUUID"]) willReturn:@""]; + [given([mockUserDefaults objectForKey:@"BITStoreUpdateIgnoredVersion"]) willReturn:@"4.1.2"]; + _storeUpdateManager.userDefaults = mockUserDefaults; + + [self startManager]; + + NSDictionary *json = [self jsonFromFixture:@"StoreBundleIdentifierKnown"]; + + BOOL result = [_storeUpdateManager hasNewVersion:json]; + + XCTAssertFalse(result, @"The newer version is being ignored"); +} + +- (void)testReportedVersionIsNewerThanTheIgnoredVersion { + NSUserDefaults *mockUserDefaults = mock([NSUserDefaults class]); + [given([mockUserDefaults objectForKey:@"BITStoreUpdateLastStoreVersion"]) willReturn:@"4.1.1"]; + [given([mockUserDefaults objectForKey:@"BITStoreUpdateLastUUID"]) willReturn:@""]; + [given([mockUserDefaults objectForKey:@"BITStoreUpdateIgnoredVersion"]) willReturn:@"4.1.1"]; + _storeUpdateManager.userDefaults = mockUserDefaults; + + [self startManager]; + + NSDictionary *json = [self jsonFromFixture:@"StoreBundleIdentifierKnown"]; + + BOOL result = [_storeUpdateManager hasNewVersion:json]; + + XCTAssertTrue(result, @"The newer version is not ignored"); +} + +@end diff --git a/Pods/HockeySDK/Support/HockeySDKTests/BITTestHelper.h b/Pods/HockeySDK/Support/HockeySDKTests/BITTestHelper.h new file mode 100644 index 0000000..68cf81b --- /dev/null +++ b/Pods/HockeySDK/Support/HockeySDKTests/BITTestHelper.h @@ -0,0 +1,8 @@ + +@interface BITTestHelper : NSObject + ++ (id)jsonFixture:(NSString *)fixture; ++ (BOOL)createTempDirectory:(NSString *)directory; ++ (BOOL)copyFixtureCrashReportWithFileName:(NSString *)filename; + +@end diff --git a/Pods/HockeySDK/Support/HockeySDKTests/BITTestHelper.m b/Pods/HockeySDK/Support/HockeySDKTests/BITTestHelper.m new file mode 100644 index 0000000..cd48541 --- /dev/null +++ b/Pods/HockeySDK/Support/HockeySDKTests/BITTestHelper.m @@ -0,0 +1,66 @@ +#import "BITTestHelper.h" +#import "HockeySDKPrivate.h" + +@implementation BITTestHelper + +// loads test fixture from json file +// http://blog.roberthoglund.com/2010/12/ios-unit-testing-loading-bundle.html ++ (NSString *)jsonFixture:(NSString *)fixture { + NSString *path = [[NSBundle bundleForClass:self.class] pathForResource:fixture ofType:@"json"]; + + NSError *error = nil; + NSString *content = [NSString stringWithContentsOfFile:path encoding:NSUTF8StringEncoding error:&error]; + + return content; +} + ++ (BOOL)createTempDirectory:(NSString *)directory { + NSFileManager *fm = [[NSFileManager alloc] init]; + + if (![fm fileExistsAtPath:directory]) { + NSDictionary *attributes = [NSDictionary dictionaryWithObject: [NSNumber numberWithUnsignedLong: 0755] forKey: NSFilePosixPermissions]; + NSError *theError = NULL; + + [fm createDirectoryAtPath:directory withIntermediateDirectories:YES attributes:attributes error:&theError]; + if (theError) + return NO; + } + + return YES; +} + ++ (BOOL)copyFixtureCrashReportWithFileName:(NSString *)filename { + NSFileManager *fm = [[NSFileManager alloc] init]; + + // the bundle identifier when running with unit tets is "otest" + const char *progname = getprogname(); + if (progname == NULL) { + return NO; + } + + NSString *bundleIdentifierPathString = [NSString stringWithUTF8String: progname]; + + NSArray *paths = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES); + + // create the PLCR cache dir + NSString *plcrRootCrashesDir = [[paths objectAtIndex:0] stringByAppendingPathComponent:@"com.plausiblelabs.crashreporter.data"]; + if (![BITTestHelper createTempDirectory:plcrRootCrashesDir]) + return NO; + + NSString *plcrCrashesDir = [plcrRootCrashesDir stringByAppendingPathComponent:bundleIdentifierPathString]; + if (![BITTestHelper createTempDirectory:plcrCrashesDir]) + return NO; + + NSString *filePath = [[NSBundle bundleForClass:self.class] pathForResource:filename ofType:@"plcrash"]; + + NSError *theError = NULL; + + [fm copyItemAtPath:filePath toPath:[plcrCrashesDir stringByAppendingPathComponent:@"live_report.plcrash"] error:&theError]; + + if (theError) + return NO; + else + return YES; +} + +@end diff --git a/Pods/HockeySDK/Support/HockeySDKTests/Fixtures/AppIcon.png b/Pods/HockeySDK/Support/HockeySDKTests/Fixtures/AppIcon.png new file mode 100644 index 0000000000000000000000000000000000000000..5473e5e8de977643534715d284906b506c1c58ab GIT binary patch literal 2790 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 literal 0 HcmV?d00001 diff --git a/Pods/HockeySDK/Support/HockeySDKTests/Fixtures/StoreBundleIdentifierKnown.json b/Pods/HockeySDK/Support/HockeySDKTests/Fixtures/StoreBundleIdentifierKnown.json new file mode 100644 index 0000000..0746107 --- /dev/null +++ b/Pods/HockeySDK/Support/HockeySDKTests/Fixtures/StoreBundleIdentifierKnown.json @@ -0,0 +1,9 @@ +{ + "resultCount":1, + "results": [ + {"kind":"software", "features":["iosUniversal"], "supportedDevices":["all"], "isGameCenterEnabled":false, + "screenshotUrls":["http://a354.phobos.apple.com/us/r1000/111/Purple/v4/7c/8a/ee/7c8aeeaf-5daa-de29-b4da-35ba051c53b4/mzl.iwzvkijg.png", "http://a1774.phobos.apple.com/us/r1000/107/Purple/v4/6a/59/a3/6a59a3ca-0235-b0db-75bd-0eca8fdfbf9b/mzl.opdtqzgj.png", "http://a1627.phobos.apple.com/us/r1000/116/Purple/v4/c3/e6/d9/c3e6d96c-b8d4-872b-bce9-bdf4a35bfe49/mzl.zdmdddyh.png", "http://a1594.phobos.apple.com/us/r1000/073/Purple/v4/e8/18/aa/e818aaa1-9d72-6ff6-823d-4e9d07ae5c65/mzl.qkqmxuhu.png", "http://a349.phobos.apple.com/us/r1000/075/Purple/v4/39/76/d7/3976d725-2ca3-04a3-74ab-f5a991c2b779/mzl.wyygagaj.png"], + "ipadScreenshotUrls":["http://a844.phobos.apple.com/us/r1000/081/Purple/v4/29/90/75/2990756f-e818-6b3e-7d79-1358c83ff2cf/mzl.bwbdcvif.1024x1024-65.jpg", "http://a834.phobos.apple.com/us/r1000/115/Purple/v4/55/a2/e9/55a2e923-61a9-0453-7637-4832de432f74/mzl.zlruoazd.1024x1024-65.jpg", "http://a1757.phobos.apple.com/us/r1000/101/Purple/v4/a5/2a/62/a52a627e-41b4-91b2-9c4d-526d602bf00e/mzl.qekglwsg.1024x1024-65.jpg", "http://a1812.phobos.apple.com/us/r1000/063/Purple/v4/39/80/39/398039db-7184-b623-97b6-988753aea1b0/mzl.scddwowl.1024x1024-65.jpg", "http://a1219.phobos.apple.com/us/r1000/081/Purple/v4/17/76/6b/17766b98-8100-fda3-8263-a88c06d4a6c0/mzl.oauotukf.1024x1024-65.jpg"], "artworkUrl60":"http://a147.phobos.apple.com/us/r1000/095/Purple/v4/e0/44/72/e04472f7-6807-b114-e971-c1d602805298/Icon.png", "artworkUrl512":"http://a1921.phobos.apple.com/us/r1000/118/Purple/v4/2b/d6/85/2bd68583-090f-a513-d3f6-a47ea2175a0c/temp..mkgsmtvp.png", "artistViewUrl":"https://itunes.apple.com/us/artist/andreas-linde/id292957656?uo=4", "artistId":292957656, "artistName":"Andreas Linde", "price":3.99, "version":"4.1.2", + "description":"## Apple Rewind 2011 Germany: Best iPad travel app ##\n\nTravel the world from wherever you are and watch webcams worldwide with an elegant, friendly, and intuitive user interface.\n\nWorldView+ puts the world into your pocket or onto your couch! Watch over 20,000 webcams from all over the world and get additional information for each place such as current weather or Wikipedia articles.\n\nPress Quotes:\n\"Want to check the weather in Covent Garden, or indeed see the pyramids? WorldView opens your eyes.\" - The Times Online\n\"It's an ideal toy for tourists wishing to get a sense of the weather at their destinations, or for armchair travelers stuck in their work cubicles.\" - USA Today Online\n\"If you like webcams, you'll really enjoy WorldView's features and design.\" - TUAW\n\nFeature Overview:\n- Save your favorite webcams and even group them into your own collections\n- iCloud support! Automatically syncs your favorites.\n- Add additional webcams manually\n- View images in fullscreen with the best image quality provided by the webcam\n- WorldView+ automatically updates the image as soon as most webcams provide them\n- Share webcams and images on Twitter, Facebook, and via email\n\nFind webcams:\n- Type in text and search or select any of the suggested locations\n- Search using map, tap and hold on a place to search around a specific spot\n- Watch webcams near your current location\n- Get lucky and view random webcams\n- Browse a list of new, recently viewed, and featured webcams\n- All webcams listed in http://webcams.travel/ are available\n\nMore than just webcams:\n- Current weather information near the webcams location\n- Wikipedia articles around the webcams location\n- View webcam locations on a map\n- View daylight images\n- Get a live video stream when possible\n- See a timelapse video of selected webcams\n- Visit the webcam's website on webcams.travel\n\nAdd more yourself:\n- Easily add webcams not listed in webcams.travel\n\n\nWorldView+ \u2013 browse and discover the world like never before.\n\n\nTechnical info:\n- Manually added webcams support password protection via HTTP basic authorization\n- Supports most webcam types providing images via JPG and PNG and video streams using Motion-JPEG\n- Auto updating images is technically not possible for all webcams, currently supported for more than 9,000\n- Live video streams are available for more than 900 webcams, audio is not supported\n- Timelapse videos are provided by webcams.travel for about 50 webcams as of now\n\n\nIf there are any questions or problems, please visit our support forum at http://support.worldviewmobileapp.com/. This will allow us to help sort out any issues you may be experiencing. Thanks and happy WorldViewing!", "currency":"USD", "genres":["Travel", "Weather"], "genreIds":["6003", "6001"], "releaseDate":"2008-12-04T10:31:45Z", "sellerName":"Andreas Linde", "bundleId":"de.buzzworks.WorldViewLive", "trackId":297063830, "trackName":"WorldView+", "primaryGenreName":"Travel", "primaryGenreId":6003, + "releaseNotes":"- Improvements to iCloud sync\n- Improved swedish & croatian localizations\n- Fix import bookmarks from WorldView by webcams.travel (Requires version 4.1.2 of both apps)\n- Improved handling of corrupted iCloud data. (Can require second app start to fix it)\n- Improved stability\n- Various minor improvements", "formattedPrice":"$3.99", "wrapperType":"software", "trackCensoredName":"WorldView+", "languageCodesISO2A":["SV", "ZH", "DE", "EN", "ES", "FI", "FR", "HR", "JA", "NL", "PL", "PT", "RU"], "fileSizeBytes":"4374716", "sellerUrl":"http://www.worldviewmobileapp.com/", "contentAdvisoryRating":"4+", "averageUserRatingForCurrentVersion":4.5, "userRatingCountForCurrentVersion":4, "artworkUrl100":"http://a1921.phobos.apple.com/us/r1000/118/Purple/v4/2b/d6/85/2bd68583-090f-a513-d3f6-a47ea2175a0c/temp..mkgsmtvp.png", "trackViewUrl":"https://itunes.apple.com/us/app/worldview+/id297063830?mt=8&uo=4", "trackContentRating":"4+", "averageUserRating":3.5, "userRatingCount":569}] +} \ No newline at end of file diff --git a/Pods/HockeySDK/Support/HockeySDKTests/Fixtures/StoreBundleIdentifierUnknown.json b/Pods/HockeySDK/Support/HockeySDKTests/Fixtures/StoreBundleIdentifierUnknown.json new file mode 100644 index 0000000..608cfbe --- /dev/null +++ b/Pods/HockeySDK/Support/HockeySDKTests/Fixtures/StoreBundleIdentifierUnknown.json @@ -0,0 +1,4 @@ +{ + "resultCount":0, + "results": [] +} \ No newline at end of file diff --git a/Pods/HockeySDK/Support/HockeySDKTests/Fixtures/live_report_empty.plcrash b/Pods/HockeySDK/Support/HockeySDKTests/Fixtures/live_report_empty.plcrash new file mode 100644 index 0000000..e69de29 diff --git a/Pods/HockeySDK/Support/HockeySDKTests/Fixtures/live_report_exception.plcrash b/Pods/HockeySDK/Support/HockeySDKTests/Fixtures/live_report_exception.plcrash new file mode 100644 index 0000000000000000000000000000000000000000..ab8d7d94ea983f0411bb4976d4ba3669b39d75f8 GIT binary patch literal 27580 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 G=YIgIX=;Q3 literal 0 HcmV?d00001 diff --git a/Pods/HockeySDK/Support/HockeySDKTests/HockeySDKTests-Info.plist b/Pods/HockeySDK/Support/HockeySDKTests/HockeySDKTests-Info.plist new file mode 100644 index 0000000..2015bcf --- /dev/null +++ b/Pods/HockeySDK/Support/HockeySDKTests/HockeySDKTests-Info.plist @@ -0,0 +1,22 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + ${EXECUTABLE_NAME} + CFBundleIdentifier + com.hockeyapp.${PRODUCT_NAME:rfc1034identifier} + CFBundleInfoDictionaryVersion + 6.0 + CFBundlePackageType + BNDL + CFBundleShortVersionString + 1.0 + CFBundleSignature + ???? + CFBundleVersion + 1 + + diff --git a/Pods/HockeySDK/Support/HockeySDKTests/HockeySDKTests-Prefix.pch b/Pods/HockeySDK/Support/HockeySDKTests/HockeySDKTests-Prefix.pch new file mode 100644 index 0000000..2eb960a --- /dev/null +++ b/Pods/HockeySDK/Support/HockeySDKTests/HockeySDKTests-Prefix.pch @@ -0,0 +1,8 @@ +// +// Prefix header for all source files of the 'HockeySDKTests' target in the 'HockeySDKTests' project +// + +#ifdef __OBJC__ + #import + #import +#endif diff --git a/Pods/HockeySDK/Support/HockeySDKTests/Licenses.txt b/Pods/HockeySDK/Support/HockeySDKTests/Licenses.txt new file mode 100644 index 0000000..2a70dd6 --- /dev/null +++ b/Pods/HockeySDK/Support/HockeySDKTests/Licenses.txt @@ -0,0 +1,38 @@ +License for OCHamcrest.framework: + +OCHamcrest +Copyright 2014 hamcrest.org +All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: + +Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. + +Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. + +Neither the name of Hamcrest nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. + +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 OWNER 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. + + + +License for OCMockito.framework: + +OCMockito +Copyright (c) 2014 Jonathan M. Reid +All rights reserved. + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +----- +TPDWeakProxy: +Copyright (c) 2013 Tetherpad + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Headers b/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Headers new file mode 120000 index 0000000..a177d2a --- /dev/null +++ b/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Headers @@ -0,0 +1 @@ +Versions/Current/Headers \ No newline at end of file diff --git a/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/OCHamcrestIOS b/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/OCHamcrestIOS new file mode 120000 index 0000000..d030988 --- /dev/null +++ b/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/OCHamcrestIOS @@ -0,0 +1 @@ +Versions/Current/OCHamcrestIOS \ No newline at end of file diff --git a/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Resources b/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Resources new file mode 120000 index 0000000..953ee36 --- /dev/null +++ b/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Resources @@ -0,0 +1 @@ +Versions/Current/Resources \ No newline at end of file diff --git a/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCAllOf.h b/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCAllOf.h new file mode 100644 index 0000000..ef93868 --- /dev/null +++ b/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCAllOf.h @@ -0,0 +1,45 @@ +// +// OCHamcrest - HCAllOf.h +// Copyright 2013 hamcrest.org. See LICENSE.txt +// +// Created by: Jon Reid, http://qualitycoding.org/ +// Docs: http://hamcrest.github.com/OCHamcrest/ +// Source: https://github.com/hamcrest/OCHamcrest +// + +#import + + +@interface HCAllOf : HCBaseMatcher +{ + NSArray *matchers; +} + ++ (instancetype)allOf:(NSArray *)theMatchers; +- (instancetype)initWithMatchers:(NSArray *)theMatchers; + +@end + + +OBJC_EXPORT id HC_allOf(id match, ...) NS_REQUIRES_NIL_TERMINATION; + +/** + allOf(firstMatcher, ...) - + Matches if all of the given matchers evaluate to @c YES. + + @param firstMatcher,... A comma-separated list of matchers ending with @c nil. + + The matchers are evaluated from left to right using short-circuit evaluation, so evaluation + stops as soon as a matcher returns @c NO. + + Any argument that is not a matcher is implicitly wrapped in an @ref equalTo matcher to check for + equality. + + (In the event of a name clash, don't \#define @c HC_SHORTHAND and use the synonym + @c HC_allOf instead.) + + @ingroup logical_matchers + */ +#ifdef HC_SHORTHAND + #define allOf HC_allOf +#endif diff --git a/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCAnyOf.h b/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCAnyOf.h new file mode 100644 index 0000000..f599a5b --- /dev/null +++ b/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCAnyOf.h @@ -0,0 +1,45 @@ +// +// OCHamcrest - HCAnyOf.h +// Copyright 2013 hamcrest.org. See LICENSE.txt +// +// Created by: Jon Reid, http://qualitycoding.org/ +// Docs: http://hamcrest.github.com/OCHamcrest/ +// Source: https://github.com/hamcrest/OCHamcrest +// + +#import + + +@interface HCAnyOf : HCBaseMatcher +{ + NSArray *matchers; +} + ++ (instancetype)anyOf:(NSArray *)theMatchers; +- (instancetype)initWithMatchers:(NSArray *)theMatchers; + +@end + + +OBJC_EXPORT id HC_anyOf(id match, ...) NS_REQUIRES_NIL_TERMINATION; + +/** + anyOf(firstMatcher, ...) - + Matches if any of the given matchers evaluate to @c YES. + + @param firstMatcher,... A comma-separated list of matchers ending with @c nil. + + The matchers are evaluated from left to right using short-circuit evaluation, so evaluation + stops as soon as a matcher returns @c YES. + + Any argument that is not a matcher is implicitly wrapped in an @ref equalTo matcher to check for + equality. + + (In the event of a name clash, don't \#define @c HC_SHORTHAND and use the synonym + @c HC_anyOf instead.) + + @ingroup logical_matchers + */ +#ifdef HC_SHORTHAND + #define anyOf HC_anyOf +#endif diff --git a/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCAssertThat.h b/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCAssertThat.h new file mode 100644 index 0000000..0b56437 --- /dev/null +++ b/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCAssertThat.h @@ -0,0 +1,42 @@ +// +// OCHamcrest - HCAssertThat.h +// Copyright 2013 hamcrest.org. See LICENSE.txt +// +// Created by: Jon Reid, http://qualitycoding.org/ +// Docs: http://hamcrest.github.com/OCHamcrest/ +// Source: https://github.com/hamcrest/OCHamcrest +// + +#import + +@protocol HCMatcher; + + +OBJC_EXPORT void HC_assertThatWithLocation(id testCase, id actual, id matcher, + const char *fileName, int lineNumber); + +#define HC_assertThat(actual, matcher) \ + HC_assertThatWithLocation(self, actual, matcher, __FILE__, __LINE__) + +/** + assertThat(actual, matcher) - + Asserts that actual value satisfies matcher. + + @param actual The object to evaluate as the actual value. + @param matcher The matcher to satisfy as the expected condition. + + @c assertThat passes the actual value to the matcher for evaluation. If the matcher is not + satisfied, an exception is thrown describing the mismatch. + + @c assertThat is designed to integrate well with OCUnit and other unit testing frameworks. + Unmet assertions are reported as test failures. In Xcode, these failures can be clicked to + reveal the line of the assertion. + + In the event of a name clash, don't \#define @c HC_SHORTHAND and use the synonym + @c HC_assertThat instead. + + @ingroup integration + */ +#ifdef HC_SHORTHAND + #define assertThat HC_assertThat +#endif diff --git a/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCBaseDescription.h b/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCBaseDescription.h new file mode 100644 index 0000000..0d6fd81 --- /dev/null +++ b/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCBaseDescription.h @@ -0,0 +1,33 @@ +// +// OCHamcrest - HCBaseDescription.h +// Copyright 2013 hamcrest.org. See LICENSE.txt +// +// Created by: Jon Reid, http://qualitycoding.org/ +// Docs: http://hamcrest.github.com/OCHamcrest/ +// Source: https://github.com/hamcrest/OCHamcrest +// + +#import +#import + + +/** + Base class for all HCDescription implementations. + + @ingroup core + */ +@interface HCBaseDescription : NSObject +@end + + +/** + Methods that must be provided by subclasses of HCBaseDescription. + */ +@interface HCBaseDescription (SubclassMustImplement) + +/** + Append the string @a str to the description. + */ +- (void)append:(NSString *)str; + +@end diff --git a/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCBaseMatcher.h b/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCBaseMatcher.h new file mode 100644 index 0000000..4ff43bd --- /dev/null +++ b/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCBaseMatcher.h @@ -0,0 +1,27 @@ +// +// OCHamcrest - HCBaseMatcher.h +// Copyright 2013 hamcrest.org. See LICENSE.txt +// +// Created by: Jon Reid, http://qualitycoding.org/ +// Docs: http://hamcrest.github.com/OCHamcrest/ +// Source: https://github.com/hamcrest/OCHamcrest +// + +#import +#import + +#import // Convenience header, to provide OBJC_EXPORT + + +/** + Base class for all HCMatcher implementations. + + Most implementations can just implement @c -matches: and let + -matches:describingMismatchTo: call it. But if it makes more sense to generate the + mismatch description during the matching, override -matches:describingMismatchTo: + and have @c -matches: call it with a @c nil description. + + @ingroup core + */ +@interface HCBaseMatcher : NSObject +@end diff --git a/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCClassMatcher.h b/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCClassMatcher.h new file mode 100644 index 0000000..4378ac3 --- /dev/null +++ b/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCClassMatcher.h @@ -0,0 +1,20 @@ +// +// OCHamcrest - HCClassMatcher.h +// Copyright 2013 hamcrest.org. See LICENSE.txt +// +// Created by: Jon Reid, http://qualitycoding.org/ +// Docs: http://hamcrest.github.com/OCHamcrest/ +// Source: https://github.com/hamcrest/OCHamcrest +// + +#import + + +@interface HCClassMatcher : HCBaseMatcher +{ + Class theClass; +} + +- (instancetype)initWithType:(Class)type; + +@end diff --git a/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCCollectMatchers.h b/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCCollectMatchers.h new file mode 100644 index 0000000..0685b3d --- /dev/null +++ b/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCCollectMatchers.h @@ -0,0 +1,23 @@ +// +// OCHamcrest - HCCollectMatchers.h +// Copyright 2013 hamcrest.org. See LICENSE.txt +// +// Created by: Jon Reid, http://qualitycoding.org/ +// Docs: http://hamcrest.github.com/OCHamcrest/ +// Source: https://github.com/hamcrest/OCHamcrest +// + +#import +#import + +#import + +@protocol HCMatcher; + + +/** + Returns an array of matchers from a variable-length comma-separated list terminated by @c nil. + + @ingroup helpers +*/ +OBJC_EXPORT NSMutableArray *HCCollectMatchers(id item1, va_list args); diff --git a/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCConformsToProtocol.h b/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCConformsToProtocol.h new file mode 100644 index 0000000..19224b6 --- /dev/null +++ b/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCConformsToProtocol.h @@ -0,0 +1,42 @@ +// +// OCHamcrest - HCConformsToProtocol.h +// Copyright 2013 hamcrest.org. See LICENSE.txt +// +// Created by: Todd Farrell +// + +#import + + +@interface HCConformsToProtocol : HCBaseMatcher +{ + Protocol *theProtocol; +} + ++ (instancetype)conformsTo:(Protocol *)protocol; +- (instancetype)initWithProtocol:(Protocol *)protocol; + +@end + + +OBJC_EXPORT id HC_conformsTo(Protocol *aProtocol); + +/** + conformsTo(aProtocol) - + Matches if object conforms to a given protocol. + + @param aProtocol The protocol to compare against as the expected protocol. + + This matcher checks whether the evaluated object conforms to @a aProtocol. + + Example: + @li @ref conformsTo(\@protocol(NSObject)) + + (In the event of a name clash, don't \#define @c HC_SHORTHAND and use the synonym + @c HC_conformsTo instead.) + + @ingroup object_matchers + */ +#ifdef HC_SHORTHAND + #define conformsTo HC_conformsTo +#endif diff --git a/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCDescribedAs.h b/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCDescribedAs.h new file mode 100644 index 0000000..415dc17 --- /dev/null +++ b/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCDescribedAs.h @@ -0,0 +1,50 @@ +// +// OCHamcrest - HCDescribedAs.h +// Copyright 2013 hamcrest.org. See LICENSE.txt +// +// Created by: Jon Reid, http://qualitycoding.org/ +// Docs: http://hamcrest.github.com/OCHamcrest/ +// Source: https://github.com/hamcrest/OCHamcrest +// + +#import + + +@interface HCDescribedAs : HCBaseMatcher +{ + NSString *descriptionTemplate; + id matcher; + NSArray *values; +} + ++ (instancetype)describedAs:(NSString *)description + forMatcher:(id)aMatcher + overValues:(NSArray *)templateValues; + +- (instancetype)initWithDescription:(NSString *)description + forMatcher:(id)aMatcher + overValues:(NSArray *)templateValues; + +@end + + +OBJC_EXPORT id HC_describedAs(NSString *description, id matcher, ...) NS_REQUIRES_NIL_TERMINATION; + +/** + describedAs(description, matcher, ...) - + Adds custom failure description to a given matcher. + + @param description Overrides the matcher's description. + @param matcher,... The matcher to satisfy, followed by a comma-separated list of substitution values ending with @c nil. + + The description may contain substitution placeholders \%0, \%1, etc. These will be replaced by + any values that follow the matcher. + + (In the event of a name clash, don't \#define @c HC_SHORTHAND and use the synonym + @c HC_describedAs instead.) + + @ingroup decorator_matchers + */ +#ifdef HC_SHORTHAND + #define describedAs HC_describedAs +#endif diff --git a/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCDescription.h b/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCDescription.h new file mode 100644 index 0000000..5b7214d --- /dev/null +++ b/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCDescription.h @@ -0,0 +1,48 @@ +// +// OCHamcrest - HCDescription.h +// Copyright 2013 hamcrest.org. See LICENSE.txt +// +// Created by: Jon Reid, http://qualitycoding.org/ +// Docs: http://hamcrest.github.com/OCHamcrest/ +// Source: https://github.com/hamcrest/OCHamcrest +// + +#import + + +/** + A description of an HCMatcher. + + An HCMatcher will describe itself to a description which can later be used for reporting. + + @ingroup core + */ +@protocol HCDescription + +/** + Appends some plain text to the description. + + @return @c self, for chaining. + */ +- (id)appendText:(NSString *)text; + +/** + Appends description of given value to @c self. + + If the value implements the @ref HCSelfDescribing protocol, then it will be used. + + @return @c self, for chaining. + */ +- (id)appendDescriptionOf:(id)value; + +/** + Appends a list of objects to the description. + + @return @c self, for chaining. + */ +- (id)appendList:(NSArray *)values + start:(NSString *)start + separator:(NSString *)separator + end:(NSString *)end; + +@end diff --git a/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCHasCount.h b/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCHasCount.h new file mode 100644 index 0000000..7be4513 --- /dev/null +++ b/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCHasCount.h @@ -0,0 +1,63 @@ +// +// OCHamcrest - HCHasCount.h +// Copyright 2013 hamcrest.org. See LICENSE.txt +// +// Created by: Jon Reid, http://qualitycoding.org/ +// Docs: http://hamcrest.github.com/OCHamcrest/ +// Source: https://github.com/hamcrest/OCHamcrest +// + +#import + + +@interface HCHasCount : HCBaseMatcher +{ + id countMatcher; +} + ++ (instancetype)hasCount:(id)matcher; +- (instancetype)initWithCount:(id)matcher; + +@end + + +OBJC_EXPORT id HC_hasCount(id matcher); + +/** + hasCount(aMatcher) - + Matches if object's @c -count satisfies a given matcher. + + @param aMatcher The matcher to satisfy. + + This matcher invokes @c -count on the evaluated object to get the number of elements it + contains, passing the result to @a aMatcher for evaluation. + + (In the event of a name clash, don't \#define @c HC_SHORTHAND and use the synonym + @c HC_hasCount instead.) + + @ingroup collection_matchers + */ +#ifdef HC_SHORTHAND + #define hasCount HC_hasCount +#endif + + +OBJC_EXPORT id HC_hasCountOf(NSUInteger count); + +/** + hasCountOf(value) - + Matches if object's @c -count equals a given value. + + @param value @c NSUInteger value to compare against as the expected value. + + This matcher invokes @c -count on the evaluated object to get the number of elements it + contains, comparing the result to @a value for equality. + + (In the event of a name clash, don't \#define @c HC_SHORTHAND and use the synonym + @c HC_hasCountOf instead.) + + @ingroup collection_matchers + */ +#ifdef HC_SHORTHAND + #define hasCountOf HC_hasCountOf +#endif diff --git a/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCHasDescription.h b/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCHasDescription.h new file mode 100644 index 0000000..e078c20 --- /dev/null +++ b/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCHasDescription.h @@ -0,0 +1,44 @@ +// +// OCHamcrest - HCHasDescription.h +// Copyright 2013 hamcrest.org. See LICENSE.txt +// +// Created by: Jon Reid, http://qualitycoding.org/ +// Docs: http://hamcrest.github.com/OCHamcrest/ +// Source: https://github.com/hamcrest/OCHamcrest +// + +#import + + +@interface HCHasDescription : HCInvocationMatcher + ++ (instancetype)hasDescription:(id)descriptionMatcher; +- (instancetype)initWithDescription:(id)descriptionMatcher; + +@end + + +OBJC_EXPORT id HC_hasDescription(id match); + +/** + hasDescription(aMatcher) - + Matches if object's @c -description satisfies a given matcher. + + @param aMatcher The matcher to satisfy, or an expected value for @ref equalTo matching. + + This matcher invokes @c -description on the evaluated object to get its description, passing the + result to a given matcher for evaluation. If the @a aMatcher argument is not a matcher, it is + implicitly wrapped in an @ref equalTo matcher to check for equality. + + Examples: + @li @ref hasDescription(@ref startsWith(\@"foo")) + @li @ref hasDescription(\@"bar") + + (In the event of a name clash, don't \#define @c HC_SHORTHAND and use the synonym + @c HC_hasDescription instead.) + + @ingroup object_matchers + */ +#ifdef HC_SHORTHAND + #define hasDescription HC_hasDescription +#endif diff --git a/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCHasProperty.h b/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCHasProperty.h new file mode 100644 index 0000000..56425d3 --- /dev/null +++ b/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCHasProperty.h @@ -0,0 +1,49 @@ +// +// OCHamcrest - HCHasProperty.h +// Copyright 2013 hamcrest.org. See LICENSE.txt +// +// Created by: Justin Shacklette +// + +#import + + +@interface HCHasProperty : HCBaseMatcher +{ + NSString *propertyName; + id valueMatcher; +} + ++ (instancetype)hasProperty:(NSString *)property value:(id)aValueMatcher; +- (instancetype)initWithProperty:(NSString *)property value:(id)aValueMatcher; + +@end + + +OBJC_EXPORT id HC_hasProperty(NSString *name, id valueMatch); + +/** + hasProperty(name, valueMatcher) - + Matches if object has a method of a given name whose return value satisfies a given matcher. + + @param name The name of a method without arguments that returns an object. + @param valueMatcher The matcher to satisfy for the return value, or an expected value for @ref equalTo matching. + + This matcher first checks if the evaluated object has a method with a name matching the given + @c name. If so, it invokes the method and sees if the returned value satisfies @c valueMatcher. + + While this matcher is called "hasProperty", it's useful for checking the results of any simple + methods, not just properties. + + Examples: + @li @ref hasProperty(\@"firstName", \@"Joe") + @li @ref hasProperty(\@"firstName", startsWith(\@"J")) + + (In the event of a name clash, don't \#define @c HC_SHORTHAND and use the synonym + @c HC_hasProperty instead.) + + @ingroup object_matchers + */ +#ifdef HC_SHORTHAND + #define hasProperty HC_hasProperty +#endif diff --git a/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCInvocationMatcher.h b/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCInvocationMatcher.h new file mode 100644 index 0000000..a976aed --- /dev/null +++ b/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCInvocationMatcher.h @@ -0,0 +1,57 @@ +// +// OCHamcrest - HCInvocationMatcher.h +// Copyright 2013 hamcrest.org. See LICENSE.txt +// +// Created by: Jon Reid, http://qualitycoding.org/ +// Docs: http://hamcrest.github.com/OCHamcrest/ +// Source: https://github.com/hamcrest/OCHamcrest +// + +#import + + +/** + Supporting class for matching a feature of an object. + + Tests whether the result of passing a given invocation to the value satisfies a given matcher. + + @ingroup helpers + */ +@interface HCInvocationMatcher : HCBaseMatcher +{ + NSInvocation *invocation; + id subMatcher; + BOOL shortMismatchDescription; +} + +/** + Determines whether a mismatch will be described in short form. + + Default is long form, which describes the object, the name of the invocation, and the + sub-matcher's mismatch diagnosis. Short form only has the sub-matcher's mismatch diagnosis. + */ +@property (nonatomic, assign) BOOL shortMismatchDescription; + +/** + Helper method for creating an invocation. + + A class is specified only so we can determine the method signature. + */ ++ (NSInvocation *)invocationForSelector:(SEL)selector onClass:(Class)aClass; + +/** + Returns an HCInvocationMatcher object initialized with an invocation and a matcher. + */ +- (instancetype)initWithInvocation:(NSInvocation *)anInvocation matching:(id)aMatcher; + +/** + Invokes stored invocation on given item and returns the result. + */ +- (id)invokeOn:(id)item; + +/** + Returns string representation of the invocation's selector. + */ +- (NSString *)stringFromSelector; + +@end diff --git a/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCIs.h b/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCIs.h new file mode 100644 index 0000000..9460332 --- /dev/null +++ b/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCIs.h @@ -0,0 +1,54 @@ +// +// OCHamcrest - HCIs.h +// Copyright 2013 hamcrest.org. See LICENSE.txt +// +// Created by: Jon Reid, http://qualitycoding.org/ +// Docs: http://hamcrest.github.com/OCHamcrest/ +// Source: https://github.com/hamcrest/OCHamcrest +// + +#import + + +@interface HCIs : HCBaseMatcher +{ + id matcher; +} + ++ (instancetype)is:(id)aMatcher; +- (instancetype)initWithMatcher:(id)aMatcher; + +@end + + +OBJC_EXPORT id HC_is(id match); + +/** + is(aMatcher) - + Decorates another matcher, or provides a shortcut to the frequently used @ref is(equalTo(x)). + + @param aMatcher The matcher to satisfy, or an expected value for @ref equalTo matching. + + This matcher compares the evaluated object to the given matcher. + + If the @a aMatcher argument is a matcher, its behavior is retained, but the test may be more + expressive. For example: + @li @ref assertThatInt(value, equalToInt(5)) + @li @ref assertThatInt(value, is(equalToInt(5))) + + If the @a aMatcher argument is not a matcher, it is wrapped in an @ref equalTo matcher. This + makes the following statements equivalent: + @li @ref assertThat(cheese, equalTo(smelly)) + @li @ref assertThat(cheese, is(equalTo(smelly))) + @li @ref assertThat(cheese, is(smelly)) + + Choose the style that makes your expression most readable. This will vary depending on context. + + (In the event of a name clash, don't \#define @c HC_SHORTHAND and use the synonym + @c HC_is instead.) + + @ingroup decorator_matchers + */ +#ifdef HC_SHORTHAND + #define is HC_is +#endif diff --git a/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCIsAnything.h b/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCIsAnything.h new file mode 100644 index 0000000..2137dbd --- /dev/null +++ b/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCIsAnything.h @@ -0,0 +1,63 @@ +// +// OCHamcrest - HCIsAnything.h +// Copyright 2013 hamcrest.org. See LICENSE.txt +// +// Created by: Jon Reid, http://qualitycoding.org/ +// Docs: http://hamcrest.github.com/OCHamcrest/ +// Source: https://github.com/hamcrest/OCHamcrest +// + +#import + + +@interface HCIsAnything : HCBaseMatcher +{ + NSString *description; +} + ++ (instancetype)isAnything; ++ (instancetype)isAnythingWithDescription:(NSString *)aDescription; + +- (instancetype)init; +- (instancetype)initWithDescription:(NSString *)aDescription; + +@end + + +OBJC_EXPORT id HC_anything(void); + +/** + Matches anything. + + This matcher always evaluates to @c YES. Specify this in composite matchers when the value of a + particular element is unimportant. + + (In the event of a name clash, don't \#define @c HC_SHORTHAND and use the synonym + @c HC_anything instead.) + + @ingroup logical_matchers + */ +#ifdef HC_SHORTHAND + #define anything() HC_anything() +#endif + + +OBJC_EXPORT id HC_anythingWithDescription(NSString *aDescription); + +/** + anythingWithDescription(description) - + Matches anything. + + @param description A string used to describe this matcher. + + This matcher always evaluates to @c YES. Specify this in collection matchers when the value of a + particular element in a collection is unimportant. + + (In the event of a name clash, don't \#define @c HC_SHORTHAND and use the synonym + @c HC_anything instead.) + + @ingroup logical_matchers + */ +#ifdef HC_SHORTHAND + #define anythingWithDescription HC_anythingWithDescription +#endif diff --git a/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCIsCloseTo.h b/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCIsCloseTo.h new file mode 100644 index 0000000..19a561f --- /dev/null +++ b/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCIsCloseTo.h @@ -0,0 +1,47 @@ +// +// OCHamcrest - HCIsCloseTo.h +// Copyright 2013 hamcrest.org. See LICENSE.txt +// +// Created by: Jon Reid, http://qualitycoding.org/ +// Docs: http://hamcrest.github.com/OCHamcrest/ +// Source: https://github.com/hamcrest/OCHamcrest +// + +#import + + +@interface HCIsCloseTo : HCBaseMatcher +{ + double value; + double delta; +} + ++ (instancetype)isCloseTo:(double)aValue within:(double)aDelta; +- (instancetype)initWithValue:(double)aValue delta:(double)aDelta; + +@end + + +OBJC_EXPORT id HC_closeTo(double aValue, double aDelta); + +/** + closeTo(aValue, aDelta) - + Matches if object is a number close to a given value, within a given delta. + + @param aValue The @c double value to compare against as the expected value. + @param aDelta The @c double maximum delta between the values for which the numbers are considered close. + + This matcher invokes @c -doubleValue on the evaluated object to get its value as a @c double. + The result is compared against @a aValue to see if the difference is within a positive @a aDelta. + + Example: + @li @ref closeTo(3.0, 0.25) + + (In the event of a name clash, don't \#define @c HC_SHORTHAND and use the synonym + @c HC_closeTo instead.) + + @ingroup number_matchers + */ +#ifdef HC_SHORTHAND + #define closeTo HC_closeTo +#endif diff --git a/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCIsCollectionContaining.h b/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCIsCollectionContaining.h new file mode 100644 index 0000000..73932c1 --- /dev/null +++ b/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCIsCollectionContaining.h @@ -0,0 +1,69 @@ +// +// OCHamcrest - HCIsCollectionContaining.h +// Copyright 2013 hamcrest.org. See LICENSE.txt +// +// Created by: Jon Reid, http://qualitycoding.org/ +// Docs: http://hamcrest.github.com/OCHamcrest/ +// Source: https://github.com/hamcrest/OCHamcrest +// + +#import + + +@interface HCIsCollectionContaining : HCBaseMatcher +{ + id elementMatcher; +} + ++ (instancetype)isCollectionContaining:(id)anElementMatcher; +- (instancetype)initWithMatcher:(id)anElementMatcher; + +@end + + +OBJC_EXPORT id HC_hasItem(id itemMatch); + +/** + hasItem(aMatcher) - + Matches if any element of collection satisfies a given matcher. + + @param aMatcher The matcher to satisfy, or an expected value for @ref equalTo matching. + + This matcher iterates the evaluated collection, searching for any element that satisfies a + given matcher. If a matching element is found, @c hasItem is satisfied. + + If the @a aMatcher argument is not a matcher, it is implicitly wrapped in an @ref equalTo + matcher to check for equality. + + (In the event of a name clash, don't \#define @c HC_SHORTHAND and use the synonym + @c HC_hasItem instead.) + + @ingroup collection_matchers + */ +#ifdef HC_SHORTHAND + #define hasItem HC_hasItem +#endif + + +OBJC_EXPORT id HC_hasItems(id itemMatch, ...) NS_REQUIRES_NIL_TERMINATION; + +/** + hasItems(firstMatcher, ...) - + Matches if all of the given matchers are satisfied by any elements of the collection. + + @param firstMatcher,... A comma-separated list of matchers ending with @c nil. + + This matcher iterates the given matchers, searching for any elements in the evaluated collection + that satisfy them. If each matcher is satisfied, then @c hasItems is satisfied. + + Any argument that is not a matcher is implicitly wrapped in an @ref equalTo matcher to check for + equality. + + (In the event of a name clash, don't \#define @c HC_SHORTHAND and use the synonym + @c hasItems instead.) + + @ingroup collection_matchers + */ +#ifdef HC_SHORTHAND + #define hasItems HC_hasItems +#endif diff --git a/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCIsCollectionContainingInAnyOrder.h b/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCIsCollectionContainingInAnyOrder.h new file mode 100644 index 0000000..0e57ed4 --- /dev/null +++ b/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCIsCollectionContainingInAnyOrder.h @@ -0,0 +1,47 @@ +// +// OCHamcrest - HCIsCollectionContainingInAnyOrder.h +// Copyright 2013 hamcrest.org. See LICENSE.txt +// +// Created by: Jon Reid, http://qualitycoding.org/ +// Docs: http://hamcrest.github.com/OCHamcrest/ +// Source: https://github.com/hamcrest/OCHamcrest +// + +#import + + +@interface HCIsCollectionContainingInAnyOrder : HCBaseMatcher +{ + NSArray *matchers; +} + ++ (instancetype)isCollectionContainingInAnyOrder:(NSArray *)itemMatchers; +- (instancetype)initWithMatchers:(NSArray *)itemMatchers; + +@end + + +OBJC_EXPORT id HC_containsInAnyOrder(id itemMatch, ...) NS_REQUIRES_NIL_TERMINATION; + +/** + containsInAnyOrder(firstMatcher, ...) - + Matches if collection's elements, in any order, satisfy a given list of matchers. + + @param firstMatcher,... A comma-separated list of matchers ending with @c nil. + + This matcher iterates the evaluated collection, seeing if each element satisfies any of the + given matchers. The matchers are tried from left to right, and when a satisfied matcher is + found, it is no longer a candidate for the remaining elements. If a one-to-one correspondence is + established between elements and matchers, @c containsInAnyOrder is satisfied. + + Any argument that is not a matcher is implicitly wrapped in an @ref equalTo matcher to check for + equality. + + (In the event of a name clash, don't \#define @c HC_SHORTHAND and use the synonym + @c HC_containsInAnyOrder instead.) + + @ingroup collection_matchers + */ +#ifdef HC_SHORTHAND + #define containsInAnyOrder HC_containsInAnyOrder +#endif diff --git a/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCIsCollectionContainingInOrder.h b/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCIsCollectionContainingInOrder.h new file mode 100644 index 0000000..a882f9d --- /dev/null +++ b/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCIsCollectionContainingInOrder.h @@ -0,0 +1,45 @@ +// +// OCHamcrest - HCIsCollectionContainingInOrder.h +// Copyright 2013 hamcrest.org. See LICENSE.txt +// +// Created by: Jon Reid, http://qualitycoding.org/ +// Docs: http://hamcrest.github.com/OCHamcrest/ +// Source: https://github.com/hamcrest/OCHamcrest +// + +#import + + +@interface HCIsCollectionContainingInOrder : HCBaseMatcher +{ + NSArray *matchers; +} + ++ (instancetype)isCollectionContainingInOrder:(NSArray *)itemMatchers; +- (instancetype)initWithMatchers:(NSArray *)itemMatchers; + +@end + + +OBJC_EXPORT id HC_contains(id itemMatch, ...) NS_REQUIRES_NIL_TERMINATION; + +/** + contains(firstMatcher, ...) - + Matches if collection's elements satisfy a given list of matchers, in order. + + @param firstMatcher,... A comma-separated list of matchers ending with @c nil. + + This matcher iterates the evaluated collection and a given list of matchers, seeing if each + element satisfies its corresponding matcher. + + Any argument that is not a matcher is implicitly wrapped in an @ref equalTo matcher to check for + equality. + + (In the event of a name clash, don't \#define @c HC_SHORTHAND and use the synonym + @c HC_contains instead.) + + @ingroup collection_matchers + */ +#ifdef HC_SHORTHAND + #define contains HC_contains +#endif diff --git a/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCIsCollectionOnlyContaining.h b/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCIsCollectionOnlyContaining.h new file mode 100644 index 0000000..e9017c5 --- /dev/null +++ b/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCIsCollectionOnlyContaining.h @@ -0,0 +1,52 @@ +// +// OCHamcrest - HCIsCollectionOnlyContaining.h +// Copyright 2013 hamcrest.org. See LICENSE.txt +// +// Created by: Jon Reid, http://qualitycoding.org/ +// Docs: http://hamcrest.github.com/OCHamcrest/ +// Source: https://github.com/hamcrest/OCHamcrest +// + +#import + + +@interface HCIsCollectionOnlyContaining : HCBaseMatcher +{ + id matcher; +} + ++ (instancetype)isCollectionOnlyContaining:(id)aMatcher; +- (instancetype)initWithMatcher:(id)aMatcher; + +@end + + +OBJC_EXPORT id HC_onlyContains(id itemMatch, ...) NS_REQUIRES_NIL_TERMINATION; + +/** + onlyContains(firstMatcher, ...) - + Matches if each element of collection satisfies any of the given matchers. + + @param firstMatcher,... A comma-separated list of matchers ending with @c nil. + + This matcher iterates the evaluated collection, confirming whether each element satisfies any of + the given matchers. + + Any argument that is not a matcher is implicitly wrapped in an @ref equalTo matcher to check for + equality. + + Example: + + @par + @ref onlyContains(startsWith(@"Jo"), nil) + + will match a collection [@"Jon", @"John", @"Johann"]. + + (In the event of a name clash, don't \#define @c HC_SHORTHAND and use the synonym + @c HC_onlyContains instead.) + + @ingroup collection_matchers + */ +#ifdef HC_SHORTHAND + #define onlyContains HC_onlyContains +#endif diff --git a/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCIsDictionaryContaining.h b/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCIsDictionaryContaining.h new file mode 100644 index 0000000..6d7d291 --- /dev/null +++ b/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCIsDictionaryContaining.h @@ -0,0 +1,54 @@ +// +// OCHamcrest - HCIsDictionaryContaining.h +// Copyright 2013 hamcrest.org. See LICENSE.txt +// +// Created by: Jon Reid, http://qualitycoding.org/ +// Docs: http://hamcrest.github.com/OCHamcrest/ +// Source: https://github.com/hamcrest/OCHamcrest +// + +#import + + +@interface HCIsDictionaryContaining : HCBaseMatcher +{ + id keyMatcher; + id valueMatcher; +} + ++ (instancetype)isDictionaryContainingKey:(id)aKeyMatcher + value:(id)aValueMatcher; + +- (instancetype)initWithKeyMatcher:(id)aKeyMatcher + valueMatcher:(id)aValueMatcher; + +@end + + +OBJC_EXPORT id HC_hasEntry(id keyMatch, id valueMatch); + +/** + hasEntry(keyMatcher, valueMatcher) - + Matches if dictionary contains key-value entry satisfying a given pair of matchers. + + @param keyMatcher The matcher to satisfy for the key, or an expected value for @ref equalTo matching. + @param valueMatcher The matcher to satisfy for the value, or an expected value for @ref equalTo matching. + + This matcher iterates the evaluated dictionary, searching for any key-value entry that satisfies + @a keyMatcher and @a valueMatcher. If a matching entry is found, @c hasEntry is satisfied. + + Any argument that is not a matcher is implicitly wrapped in an @ref equalTo matcher to check for + equality. + + Examples: + @li @ref hasEntry(@ref equalTo(@"foo"), equalTo(@"bar")) + @li @ref hasEntry(@"foo", @"bar") + + (In the event of a name clash, don't \#define @c HC_SHORTHAND and use the synonym + @c HC_hasEntry instead.) + + @ingroup collection_matchers + */ +#ifdef HC_SHORTHAND + #define hasEntry HC_hasEntry +#endif diff --git a/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCIsDictionaryContainingEntries.h b/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCIsDictionaryContainingEntries.h new file mode 100644 index 0000000..85135b4 --- /dev/null +++ b/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCIsDictionaryContainingEntries.h @@ -0,0 +1,53 @@ +// +// OCHamcrest - HCIsDictionaryContainingEntries.h +// Copyright 2013 hamcrest.org. See LICENSE.txt +// +// Created by: Jon Reid, http://qualitycoding.org/ +// Docs: http://hamcrest.github.com/OCHamcrest/ +// Source: https://github.com/hamcrest/OCHamcrest +// + +#import + + +@interface HCIsDictionaryContainingEntries : HCBaseMatcher +{ + NSArray *keys; + NSArray *valueMatchers; +} + ++ (instancetype)isDictionaryContainingKeys:(NSArray *)theKeys + valueMatchers:(NSArray *)theValueMatchers; + +- (instancetype)initWithKeys:(NSArray *)theKeys + valueMatchers:(NSArray *)theValueMatchers; + +@end + + +OBJC_EXPORT id HC_hasEntries(id keysAndValueMatch, ...) NS_REQUIRES_NIL_TERMINATION; + +/** + hasEntries(firstKey, valueMatcher, ...) - + Matches if dictionary contains entries satisfying a list of alternating keys and their value + matchers. + + @param firstKey A key (not a matcher) to look up. + @param valueMatcher,... The matcher to satisfy for the value, or an expected value for @ref equalTo matching. + + Note that the keys must be actual keys, not matchers. Any value argument that is not a matcher + is implicitly wrapped in an @ref equalTo matcher to check for equality. The list must end with + @c nil. + + Examples: + @li @ref hasEntries(@"first", equalTo(@"Jon"), @"last", equalTo(@"Reid"), nil) + @li @ref hasEntries(@"first", @"Jon", @"last", @"Reid", nil) + + (In the event of a name clash, don't \#define @c HC_SHORTHAND and use the synonym + @c HC_hasEntry instead.) + + @ingroup collection_matchers + */ +#ifdef HC_SHORTHAND + #define hasEntries HC_hasEntries +#endif diff --git a/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCIsDictionaryContainingKey.h b/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCIsDictionaryContainingKey.h new file mode 100644 index 0000000..c28e534 --- /dev/null +++ b/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCIsDictionaryContainingKey.h @@ -0,0 +1,49 @@ +// +// OCHamcrest - HCIsDictionaryContainingKey.h +// Copyright 2013 hamcrest.org. See LICENSE.txt +// +// Created by: Jon Reid, http://qualitycoding.org/ +// Docs: http://hamcrest.github.com/OCHamcrest/ +// Source: https://github.com/hamcrest/OCHamcrest +// + +#import + + +@interface HCIsDictionaryContainingKey : HCBaseMatcher +{ + id keyMatcher; +} + ++ (instancetype)isDictionaryContainingKey:(id)theKeyMatcher; +- (instancetype)initWithKeyMatcher:(id)theKeyMatcher; + +@end + + +OBJC_EXPORT id HC_hasKey(id keyMatch); + +/** + hasKey(keyMatcher) - + Matches if dictionary contains an entry whose key satisfies a given matcher. + + @param keyMatcher The matcher to satisfy for the key, or an expected value for @ref equalTo matching. + + This matcher iterates the evaluated dictionary, searching for any key-value entry whose key + satisfies the given matcher. If a matching entry is found, @c hasKey is satisfied. + + Any argument that is not a matcher is implicitly wrapped in an @ref equalTo matcher to check for + equality. + + (In the event of a name clash, don't \#define @c HC_SHORTHAND and use the synonym + @c HC_hasKey instead.) + + Examples: + @li @ref hasEntry(equalTo(@"foo")) + @li @ref hasEntry(@"foo") + + @ingroup collection_matchers + */ +#ifdef HC_SHORTHAND + #define hasKey HC_hasKey +#endif diff --git a/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCIsDictionaryContainingValue.h b/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCIsDictionaryContainingValue.h new file mode 100644 index 0000000..28ae8e8 --- /dev/null +++ b/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCIsDictionaryContainingValue.h @@ -0,0 +1,49 @@ +// +// OCHamcrest - HCIsDictionaryContainingValue.h +// Copyright 2013 hamcrest.org. See LICENSE.txt +// +// Created by: Jon Reid, http://qualitycoding.org/ +// Docs: http://hamcrest.github.com/OCHamcrest/ +// Source: https://github.com/hamcrest/OCHamcrest +// + +#import + + +@interface HCIsDictionaryContainingValue : HCBaseMatcher +{ + id valueMatcher; +} + ++ (instancetype)isDictionaryContainingValue:(id)theValueMatcher; +- (instancetype)initWithValueMatcher:(id)theValueMatcher; + +@end + + +OBJC_EXPORT id HC_hasValue(id valueMatch); + +/** + hasValue(valueMatcher) - + Matches if dictionary contains an entry whose value satisfies a given matcher. + + @param valueMatcher The matcher to satisfy for the value, or an expected value for @ref equalTo matching. + + This matcher iterates the evaluated dictionary, searching for any key-value entry whose value + satisfies the given matcher. If a matching entry is found, @c hasValue is satisfied. + + Any argument that is not a matcher is implicitly wrapped in an @ref equalTo matcher to check for + equality. + + Examples: + @li @ref hasValue(equalTo(@"bar")) + @li @ref hasValue(@"bar") + + (In the event of a name clash, don't \#define @c HC_SHORTHAND and use the synonym + @c HC_hasValue instead.) + + @ingroup collection_matchers + */ +#ifdef HC_SHORTHAND + #define hasValue HC_hasValue +#endif diff --git a/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCIsEmptyCollection.h b/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCIsEmptyCollection.h new file mode 100644 index 0000000..afabab5 --- /dev/null +++ b/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCIsEmptyCollection.h @@ -0,0 +1,37 @@ +// +// OCHamcrest - HCIsEmptyCollection.h +// Copyright 2013 hamcrest.org. See LICENSE.txt +// +// Created by: Jon Reid, http://qualitycoding.org/ +// Docs: http://hamcrest.github.com/OCHamcrest/ +// Source: https://github.com/hamcrest/OCHamcrest +// + +#import + + +@interface HCIsEmptyCollection : HCHasCount + ++ (instancetype)isEmptyCollection; +- (instancetype)init; + +@end + + +OBJC_EXPORT __attribute__((deprecated)) id HC_empty(void); +OBJC_EXPORT id HC_isEmpty(void); + +/** + Matches empty collection. + + This matcher invokes @c -count on the evaluated object to determine if the number of elements it + contains is zero. + + (In the event of a name clash, don't \#define @c HC_SHORTHAND and use the synonym + @c HC_isEmpty instead.) + + @ingroup collection_matchers + */ +#ifdef HC_SHORTHAND + #define isEmpty() HC_isEmpty() +#endif diff --git a/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCIsEqual.h b/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCIsEqual.h new file mode 100644 index 0000000..83ddc89 --- /dev/null +++ b/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCIsEqual.h @@ -0,0 +1,44 @@ +// +// OCHamcrest - HCIsEqual.h +// Copyright 2013 hamcrest.org. See LICENSE.txt +// +// Created by: Jon Reid, http://qualitycoding.org/ +// Docs: http://hamcrest.github.com/OCHamcrest/ +// Source: https://github.com/hamcrest/OCHamcrest +// + +#import + + +@interface HCIsEqual : HCBaseMatcher +{ + id object; +} + ++ (instancetype)isEqualTo:(id)anObject; +- (instancetype)initEqualTo:(id)anObject; + +@end + + +OBJC_EXPORT id HC_equalTo(id object); + +/** + equalTo(anObject) - + Matches if object is equal to a given object. + + @param anObject The object to compare against as the expected value. + + This matcher compares the evaluated object to @a anObject for equality, as determined by the + @c -isEqual: method. + + If @a anObject is @c nil, the matcher will successfully match @c nil. + + (In the event of a name clash, don't \#define @c HC_SHORTHAND and use the synonym + @c HC_equalTo instead.) + + @ingroup object_matchers + */ +#ifdef HC_SHORTHAND + #define equalTo HC_equalTo +#endif diff --git a/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCIsEqualIgnoringCase.h b/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCIsEqualIgnoringCase.h new file mode 100644 index 0000000..f22c0ac --- /dev/null +++ b/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCIsEqualIgnoringCase.h @@ -0,0 +1,49 @@ +// +// OCHamcrest - HCIsEqualIgnoringCase.h +// Copyright 2013 hamcrest.org. See LICENSE.txt +// +// Created by: Jon Reid, http://qualitycoding.org/ +// Docs: http://hamcrest.github.com/OCHamcrest/ +// Source: https://github.com/hamcrest/OCHamcrest +// + +#import + + +@interface HCIsEqualIgnoringCase : HCBaseMatcher +{ + NSString *string; +} + ++ (instancetype)isEqualIgnoringCase:(NSString *)aString; +- (instancetype)initWithString:(NSString *)aString; + +@end + + +OBJC_EXPORT id HC_equalToIgnoringCase(NSString *aString); + +/** + equalToIgnoringCase(aString) - + Matches if object is a string equal to a given string, ignoring case differences. + + @param aString The string to compare against as the expected value. This value must not be @c nil. + + This matcher first checks whether the evaluated object is a string. If so, it compares it with + @a aString, ignoring differences of case. + + Example: + + @par + @ref equalToIgnoringCase(@"hello world") + + will match "heLLo WorlD". + + (In the event of a name clash, don't \#define @c HC_SHORTHAND and use the synonym + @c HC_equalToIgnoringCase instead.) + + @ingroup text_matchers + */ +#ifdef HC_SHORTHAND + #define equalToIgnoringCase HC_equalToIgnoringCase +#endif diff --git a/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCIsEqualIgnoringWhiteSpace.h b/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCIsEqualIgnoringWhiteSpace.h new file mode 100644 index 0000000..d173434 --- /dev/null +++ b/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCIsEqualIgnoringWhiteSpace.h @@ -0,0 +1,50 @@ +// +// OCHamcrest - HCIsEqualIgnoringWhiteSpace.h +// Copyright 2013 hamcrest.org. See LICENSE.txt +// +// Created by: Jon Reid, http://qualitycoding.org/ +// Docs: http://hamcrest.github.com/OCHamcrest/ +// Source: https://github.com/hamcrest/OCHamcrest +// + +#import + + +@interface HCIsEqualIgnoringWhiteSpace : HCBaseMatcher +{ + NSString *originalString; + NSString *strippedString; +} + ++ (instancetype)isEqualIgnoringWhiteSpace:(NSString *)aString; +- (instancetype)initWithString:(NSString *)aString; + +@end + + +OBJC_EXPORT id HC_equalToIgnoringWhiteSpace(NSString *aString); + +/** + equalToIgnoringWhiteSpace(aString) - + Matches if object is a string equal to a given string, ignoring differences in whitespace. + + @param aString The string to compare against as the expected value. This value must not be @c nil. + + This matcher first checks whether the evaluated object is a string. If so, it compares it with + @a aString, ignoring differences in runs of whitespace. + + Example: + + @par + @ref equalToIgnoringWhiteSpace(@"hello world") + + will match @verbatim "hello world" @endverbatim + + (In the event of a name clash, don't \#define @c HC_SHORTHAND and use the synonym + @c HC_equalToIgnoringWhiteSpace instead.) + + @ingroup text_matchers + */ +#ifdef HC_SHORTHAND + #define equalToIgnoringWhiteSpace HC_equalToIgnoringWhiteSpace +#endif diff --git a/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCIsEqualToNumber.h b/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCIsEqualToNumber.h new file mode 100644 index 0000000..3af5837 --- /dev/null +++ b/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCIsEqualToNumber.h @@ -0,0 +1,331 @@ +// +// OCHamcrest - HCIsEqualToNumber.h +// Copyright 2013 hamcrest.org. See LICENSE.txt +// +// Created by: Jon Reid, http://qualitycoding.org/ +// Docs: http://hamcrest.github.com/OCHamcrest/ +// Source: https://github.com/hamcrest/OCHamcrest +// + +#import + + +OBJC_EXPORT id HC_equalToBool(BOOL value); + +/** + equalToBool(value) - + Matches if object is equal to @c NSNumber created from a @c BOOL. + + @param value The @c BOOL value from which to create an @c NSNumber. + + This matcher creates an @c NSNumber object from a @c BOOL @a value and compares the evaluated + object to it for equality. + + (In the event of a name clash, don't \#define @c HC_SHORTHAND and use the synonym + @c HC_equalToBool instead.) + + @ingroup primitive_number_matchers + */ +#ifdef HC_SHORTHAND + #define equalToBool HC_equalToBool +#endif + +@interface HCIsEqualToBool : HCBaseMatcher + +- (instancetype)initWithValue:(BOOL)value; + +@end + + +OBJC_EXPORT id HC_equalToChar(char value); + +/** + equalToChar(value) - + Matches if object is equal to @c NSNumber created from a @c char. + + @param value The @c char value from which to create an @c NSNumber. + + This matcher creates an @c NSNumber object from a @c char @a value and compares the evaluated + object to it for equality. + + (In the event of a name clash, don't \#define @c HC_SHORTHAND and use the synonym + @c HC_equalToChar instead.) + + @ingroup primitive_number_matchers + */ +#ifdef HC_SHORTHAND + #define equalToChar HC_equalToChar +#endif + + +OBJC_EXPORT id HC_equalToDouble(double value); + +/** + equalToDouble(value) - + Matches if object is equal to @c NSNumber created from a @c double. + + @param value The @c double value from which to create an @c NSNumber. + + This matcher creates an @c NSNumber object from a @c double @a value and compares the evaluated + object to it for equality. + + (In the event of a name clash, don't \#define @c HC_SHORTHAND and use the synonym + @c HC_equalToDouble instead.) + + @ingroup primitive_number_matchers + */ +#ifdef HC_SHORTHAND + #define equalToDouble HC_equalToDouble +#endif + + +OBJC_EXPORT id HC_equalToFloat(float value); + +/** + equalToFloat(value) - + Matches if object is equal to @c NSNumber created from a @c float. + + @param value The @c float value from which to create an @c NSNumber. + + This matcher creates an @c NSNumber object from a @c float @a value and compares the evaluated + object to it for equality. + + (In the event of a name clash, don't \#define @c HC_SHORTHAND and use the synonym + @c HC_equalToFloat instead.) + + @ingroup primitive_number_matchers + */ +#ifdef HC_SHORTHAND + #define equalToFloat HC_equalToFloat +#endif + + +OBJC_EXPORT id HC_equalToInt(int value); + +/** + equalToInt(value) - + Matches if object is equal to @c NSNumber created from an @c int. + + @param value The @c int value from which to create an @c NSNumber. + + This matcher creates an @c NSNumber object from a @c int @a value and compares the evaluated + object to it for equality. + + (In the event of a name clash, don't \#define @c HC_SHORTHAND and use the synonym + @c HC_equalToInt instead.) + + @ingroup primitive_number_matchers + */ +#ifdef HC_SHORTHAND + #define equalToInt HC_equalToInt +#endif + + +OBJC_EXPORT id HC_equalToLong(long value); + +/** + equalToLong(value) - + Matches if object is equal to @c NSNumber created from a @c long. + + @param value The @c long value from which to create an @c NSNumber. + + This matcher creates an @c NSNumber object from a @c long @a value and compares the evaluated + object to it for equality. + + (In the event of a name clash, don't \#define @c HC_SHORTHAND and use the synonym + @c HC_equalToLong instead.) + + @ingroup primitive_number_matchers + */ +#ifdef HC_SHORTHAND + #define equalToLong HC_equalToLong +#endif + + +OBJC_EXPORT id HC_equalToLongLong(long long value); + +/** + equalToLongLong(value) - + Matches if object is equal to @c NSNumber created from a long long. + + @param value The long long value from which to create an @c NSNumber. + + This matcher creates an @c NSNumber object from a long long @a value and compares + the evaluated object to it for equality. + + (In the event of a name clash, don't \#define @c HC_SHORTHAND and use the synonym + @c HC_equalToLongLong instead.) + + @ingroup primitive_number_matchers + */ +#ifdef HC_SHORTHAND + #define equalToLongLong HC_equalToLongLong +#endif + + +OBJC_EXPORT id HC_equalToShort(short value); + +/** + equalToShort(value) - + Matches if object is equal to @c NSNumber created from a @c short. + + @param value The @c short value from which to create an @c NSNumber. + + This matcher creates an @c NSNumber object from a @c short @a value and compares the evaluated + object to it for equality. + + (In the event of a name clash, don't \#define @c HC_SHORTHAND and use the synonym + @c HC_equalToShort instead.) + + @ingroup primitive_number_matchers + */ +#ifdef HC_SHORTHAND + #define equalToShort HC_equalToShort +#endif + + +OBJC_EXPORT id HC_equalToUnsignedChar(unsigned char value); + +/** + equalToUnsignedChar(value) - + Matches if object is equal to @c NSNumber created from an unsigned char. + + @param value The unsigned char value from which to create an @c NSNumber. + + This matcher creates an @c NSNumber object from an unsigned char @a value and + compares the evaluated object to it for equality. + + (In the event of a name clash, don't \#define @c HC_SHORTHAND and use the synonym + @c HC_equalToUnsignedChar instead.) + + @ingroup primitive_number_matchers + */ +#ifdef HC_SHORTHAND + #define equalToUnsignedChar HC_equalToUnsignedChar +#endif + + +OBJC_EXPORT id HC_equalToUnsignedInt(unsigned int value); + +/** + equalToUnsignedInt(value) - + Matches if object is equal to @c NSNumber created from an unsigned int. + + @param value The unsigned int value from which to create an @c NSNumber. + + This matcher creates an @c NSNumber object from an unsigned int @a value and + compares the evaluated object to it for equality. + + (In the event of a name clash, don't \#define @c HC_SHORTHAND and use the synonym + @c HC_equalToUnsignedInt instead.) + + @ingroup primitive_number_matchers + */ +#ifdef HC_SHORTHAND + #define equalToUnsignedInt HC_equalToUnsignedInt +#endif + + +OBJC_EXPORT id HC_equalToUnsignedLong(unsigned long value); + +/** + equalToUnsignedLong(value) - + Matches if object is equal to @c NSNumber created from an unsigned long. + + @param value The unsigned long value from which to create an @c NSNumber. + + This matcher creates an @c NSNumber object from an unsigned long @a value and + compares the evaluated object to it for equality. + + (In the event of a name clash, don't \#define @c HC_SHORTHAND and use the synonym + @c HC_equalToUnsignedLong instead.) + + @ingroup primitive_number_matchers + */ +#ifdef HC_SHORTHAND + #define equalToUnsignedLong HC_equalToUnsignedLong +#endif + + +OBJC_EXPORT id HC_equalToUnsignedLongLong(unsigned long long value); + +/** + equalToUnsignedLongLong(value) - + Matches if object is equal to @c NSNumber created from an unsigned long long. + + @param value The unsigned long long value from which to create an @c NSNumber. + + This matcher creates an @c NSNumber object from an unsigned long long @a value and + compares the evaluated object to it for equality. + + (In the event of a name clash, don't \#define @c HC_SHORTHAND and use the synonym + @c HC_equalToUnsignedLongLong instead.) + + @ingroup primitive_number_matchers + */ +#ifdef HC_SHORTHAND + #define equalToUnsignedLongLong HC_equalToUnsignedLongLong +#endif + + +OBJC_EXPORT id HC_equalToUnsignedShort(unsigned short value); + +/** + equalToUnsignedShort(value) - + Matches if object is equal to @c NSNumber created from an unsigned short. + + @param value The unsigned short value from which to create an @c NSNumber. + + This matcher creates an @c NSNumber object from an unsigned short @a value and + compares the evaluated object to it for equality. + + (In the event of a name clash, don't \#define @c HC_SHORTHAND and use the synonym + @c HC_equalToUnsignedShort instead.) + + @ingroup primitive_number_matchers + */ +#ifdef HC_SHORTHAND + #define equalToUnsignedShort HC_equalToUnsignedShort +#endif + + +OBJC_EXPORT id HC_equalToInteger(NSInteger value); + +/** + equalToInteger(value) - + Matches if object is equal to @c NSNumber created from an @c NSInteger. + + @param value The @c NSInteger value from which to create an @c NSNumber. + + This matcher creates an @c NSNumber object from an @c NSInteger @a value and compares the + evaluated object to it for equality. + + (In the event of a name clash, don't \#define @c HC_SHORTHAND and use the synonym + @c HC_equalToInteger instead.) + + @ingroup primitive_number_matchers + */ +#ifdef HC_SHORTHAND + #define equalToInteger HC_equalToInteger +#endif + + +OBJC_EXPORT id HC_equalToUnsignedInteger(NSUInteger value); + +/** + equalToUnsignedInteger(value) - + Matches if object is equal to @c NSNumber created from an @c NSUInteger. + + @param value The @c NSUInteger value from which to create an @c NSNumber. + + This matcher creates an @c NSNumber object from an @c NSUInteger @a value and compares the + evaluated object to it for equality. + + (In the event of a name clash, don't \#define @c HC_SHORTHAND and use the synonym + @c HC_equalToUnsignedInteger instead.) + + @ingroup primitive_number_matchers + */ +#ifdef HC_SHORTHAND + #define equalToUnsignedInteger HC_equalToUnsignedInteger +#endif diff --git a/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCIsIn.h b/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCIsIn.h new file mode 100644 index 0000000..913cea0 --- /dev/null +++ b/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCIsIn.h @@ -0,0 +1,42 @@ +// +// OCHamcrest - HCIsIn.h +// Copyright 2013 hamcrest.org. See LICENSE.txt +// +// Created by: Jon Reid, http://qualitycoding.org/ +// Docs: http://hamcrest.github.com/OCHamcrest/ +// Source: https://github.com/hamcrest/OCHamcrest +// + +#import + + +@interface HCIsIn : HCBaseMatcher +{ + id collection; +} + ++ (instancetype)isInCollection:(id)aCollection; +- (instancetype)initWithCollection:(id)aCollection; + +@end + + +OBJC_EXPORT id HC_isIn(id aCollection); + +/** + isIn(aCollection) - + Matches if evaluated object is present in a given collection. + + @param aCollection The collection to search. + + This matcher invokes @c -containsObject: on @a aCollection to determine if the evaluated object + is an element of the collection. + + (In the event of a name clash, don't \#define @c HC_SHORTHAND and use the synonym + @c HC_isIn instead.) + + @ingroup collection_matchers + */ +#ifdef HC_SHORTHAND + #define isIn HC_isIn +#endif diff --git a/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCIsInstanceOf.h b/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCIsInstanceOf.h new file mode 100644 index 0000000..cbb7070 --- /dev/null +++ b/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCIsInstanceOf.h @@ -0,0 +1,41 @@ +// +// OCHamcrest - HCIsInstanceOf.h +// Copyright 2013 hamcrest.org. See LICENSE.txt +// +// Created by: Jon Reid, http://qualitycoding.org/ +// Docs: http://hamcrest.github.com/OCHamcrest/ +// Source: https://github.com/hamcrest/OCHamcrest +// + +#import + + +@interface HCIsInstanceOf : HCClassMatcher + ++ (id)isInstanceOf:(Class)type; + +@end + + +OBJC_EXPORT id HC_instanceOf(Class aClass); + +/** + instanceOf(aClass) - + Matches if object is an instance of, or inherits from, a given class. + + @param aClass The class to compare against as the expected class. + + This matcher checks whether the evaluated object is an instance of @a aClass or an instance of + any class that inherits from @a aClass. + + Example: + @li @ref instanceOf([NSString class]) + + (In the event of a name clash, don't \#define @c HC_SHORTHAND and use the synonym + @c HC_instanceOf instead.) + + @ingroup object_matchers + */ +#ifdef HC_SHORTHAND + #define instanceOf HC_instanceOf +#endif diff --git a/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCIsNil.h b/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCIsNil.h new file mode 100644 index 0000000..00996c6 --- /dev/null +++ b/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCIsNil.h @@ -0,0 +1,47 @@ +// +// OCHamcrest - HCIsNil.h +// Copyright 2013 hamcrest.org. See LICENSE.txt +// +// Created by: Jon Reid, http://qualitycoding.org/ +// Docs: http://hamcrest.github.com/OCHamcrest/ +// Source: https://github.com/hamcrest/OCHamcrest +// + +#import + + +@interface HCIsNil : HCBaseMatcher + ++ (id)isNil; + +@end + + +OBJC_EXPORT id HC_nilValue(void); + +/** + Matches if object is @c nil. + + (In the event of a name clash, don't \#define @c HC_SHORTHAND and use the synonym + @c HC_nilValue instead.) + + @ingroup object_matchers + */ +#ifdef HC_SHORTHAND + #define nilValue() HC_nilValue() +#endif + + +OBJC_EXPORT id HC_notNilValue(void); + +/** + Matches if object is not @c nil. + + (In the event of a name clash, don't \#define @c HC_SHORTHAND and use the synonym + @c HC_notNilValue instead.) + + @ingroup object_matchers + */ +#ifdef HC_SHORTHAND + #define notNilValue() HC_notNilValue() +#endif diff --git a/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCIsNot.h b/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCIsNot.h new file mode 100644 index 0000000..e0d55f6 --- /dev/null +++ b/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCIsNot.h @@ -0,0 +1,47 @@ +// +// OCHamcrest - HCIsNot.h +// Copyright 2013 hamcrest.org. See LICENSE.txt +// +// Created by: Jon Reid, http://qualitycoding.org/ +// Docs: http://hamcrest.github.com/OCHamcrest/ +// Source: https://github.com/hamcrest/OCHamcrest +// + +#import + + +@interface HCIsNot : HCBaseMatcher +{ + id matcher; +} + ++ (instancetype)isNot:(id)aMatcher; +- (instancetype)initNot:(id)aMatcher; + +@end + + +OBJC_EXPORT id HC_isNot(id aMatcher); + +/** + isNot(aMatcher) - + Inverts the given matcher to its logical negation. + + @param aMatcher The matcher to negate. + + This matcher compares the evaluated object to the negation of the given matcher. If the + @a aMatcher argument is not a matcher, it is implicitly wrapped in an @ref equalTo matcher to + check for equality, and thus matches for inequality. + + Examples: + @li @ref assertThat(cheese, isNot(equalTo(smelly))) + @li @ref assertThat(cheese, isNot(smelly)) + + (In the event of a name clash, don't \#define @c HC_SHORTHAND and use the synonym + @c HC_isNot instead.) + + @ingroup logical_matchers + */ +#ifdef HC_SHORTHAND + #define isNot HC_isNot +#endif diff --git a/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCIsSame.h b/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCIsSame.h new file mode 100644 index 0000000..9a8ff3c --- /dev/null +++ b/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCIsSame.h @@ -0,0 +1,42 @@ +// +// OCHamcrest - HCIsSame.h +// Copyright 2013 hamcrest.org. See LICENSE.txt +// +// Created by: Jon Reid, http://qualitycoding.org/ +// Docs: http://hamcrest.github.com/OCHamcrest/ +// Source: https://github.com/hamcrest/OCHamcrest +// + +#import + + +@interface HCIsSame : HCBaseMatcher +{ + id object; +} + ++ (instancetype)isSameAs:(id)anObject; +- (instancetype)initSameAs:(id)anObject; + +@end + + +OBJC_EXPORT id HC_sameInstance(id object); + +/** + sameInstance(anObject) - + Matches if evaluated object is the same instance as a given object. + + @param anObject The object to compare against as the expected value. + + This matcher compares the address of the evaluated object to determine if it is the same object + as @a anObject. + + (In the event of a name clash, don't \#define @c HC_SHORTHAND and use the synonym + @c HC_sameInstance instead.) + + @ingroup object_matchers + */ +#ifdef HC_SHORTHAND + #define sameInstance HC_sameInstance +#endif diff --git a/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCIsTypeOf.h b/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCIsTypeOf.h new file mode 100644 index 0000000..93c86dc --- /dev/null +++ b/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCIsTypeOf.h @@ -0,0 +1,40 @@ +// +// OCHamcrest - HCIsTypeOf.h +// Copyright 2013 hamcrest.org. See LICENSE.txt +// +// Created by: Jon Reid, http://qualitycoding.org/ +// Docs: http://hamcrest.github.com/OCHamcrest/ +// Source: https://github.com/hamcrest/OCHamcrest +// + +#import + + +@interface HCIsTypeOf : HCClassMatcher + ++ (id)isTypeOf:(Class)type; + +@end + + +OBJC_EXPORT id HC_isA(Class aClass); + +/** + isA(aClass) - + Matches if object is an instance of a given class (but not of a subclass). + + @param aClass The class to compare against as the expected class. + + This matcher checks whether the evaluated object is an instance of @a aClass. + + Example: + @li @ref isA([Foo class]) + + (In the event of a name clash, don't \#define @c HC_SHORTHAND and use the synonym + @c HC_isA instead.) + + @ingroup object_matchers + */ +#ifdef HC_SHORTHAND + #define isA HC_isA +#endif diff --git a/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCMatcher.h b/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCMatcher.h new file mode 100644 index 0000000..f047ae7 --- /dev/null +++ b/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCMatcher.h @@ -0,0 +1,56 @@ +// +// OCHamcrest - HCMatcher.h +// Copyright 2013 hamcrest.org. See LICENSE.txt +// +// Created by: Jon Reid, http://qualitycoding.org/ +// Docs: http://hamcrest.github.com/OCHamcrest/ +// Source: https://github.com/hamcrest/OCHamcrest +// + +#import "HCSelfDescribing.h" + + +/** + A matcher over acceptable values. + + A matcher is able to describe itself to give feedback when it fails. + + HCMatcher implementations should @b not directly implement this protocol. + Instead, @b extend the HCBaseMatcher class, which will ensure that the HCMatcher API can grow + to support new features and remain compatible with all HCMatcher implementations. + + @ingroup core + */ +@protocol HCMatcher + +/** + Evaluates the matcher for argument @a item. + + @param item The object against which the matcher is evaluated. + @return @c YES if @a item matches, otherwise @c NO. + */ +- (BOOL)matches:(id)item; + +/** + Evaluates the matcher for argument @a item. + + @param item The object against which the matcher is evaluated. + @param mismatchDescription The description to be built or appended to if @a item does not match. + @return @c YES if @a item matches, otherwise @c NO. + */ +- (BOOL)matches:(id)item describingMismatchTo:(id)mismatchDescription; + +/** + Generates a description of why the matcher has not accepted the item. + + The description will be part of a larger description of why a matching failed, so it should be + concise. + + This method assumes that @c matches:item is false, but will not check this. + + @param item The item that the HCMatcher has rejected. + @param mismatchDescription The description to be built or appended to. + */ +- (void)describeMismatchOf:(id)item to:(id)mismatchDescription; + +@end diff --git a/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCNumberAssert.h b/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCNumberAssert.h new file mode 100644 index 0000000..7b0b6f3 --- /dev/null +++ b/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCNumberAssert.h @@ -0,0 +1,387 @@ +// +// OCHamcrest - HCNumberAssert.h +// Copyright 2013 hamcrest.org. See LICENSE.txt +// +// Created by: Jon Reid, http://qualitycoding.org/ +// Docs: http://hamcrest.github.com/OCHamcrest/ +// Source: https://github.com/hamcrest/OCHamcrest +// + +#import + +@protocol HCMatcher; + + +OBJC_EXPORT void HC_assertThatBoolWithLocation(id testCase, BOOL actual, + id matcher, const char* fileName, int lineNumber); + +#define HC_assertThatBool(actual, matcher) \ + HC_assertThatBoolWithLocation(self, actual, matcher, __FILE__, __LINE__) + +/** + assertThatBool(actual, matcher) - + Asserts that @c BOOL actual value, converted to an @c NSNumber, satisfies matcher. + + @param actual The @c BOOL value to convert to an @c NSNumber for evaluation. + @param matcher The matcher to satisfy as the expected condition. + + (In the event of a name clash, don't \#define @c HC_SHORTHAND and use the synonym + @c HC_assertThatBool instead.) + + @ingroup integration_numeric + */ +#ifdef HC_SHORTHAND + #define assertThatBool HC_assertThatBool +#endif + + +#pragma mark - + +OBJC_EXPORT void HC_assertThatCharWithLocation(id testCase, char actual, + id matcher, const char* fileName, int lineNumber); + +#define HC_assertThatChar(actual, matcher) \ + HC_assertThatCharWithLocation(self, actual, matcher, __FILE__, __LINE__) + +/** + assertThatChar(actual, matcher) - + Asserts that @c char actual value, converted to an @c NSNumber, satisfies matcher. + + @param actual The @c char value to convert to an @c NSNumber for evaluation. + @param matcher The matcher to satisfy as the expected condition. + + (In the event of a name clash, don't \#define @c HC_SHORTHAND and use the synonym + @c HC_assertThatChar instead.) + + @ingroup integration_numeric + */ +#ifdef HC_SHORTHAND + #define assertThatChar HC_assertThatChar +#endif + + +#pragma mark - + +OBJC_EXPORT void HC_assertThatDoubleWithLocation(id testCase, double actual, + id matcher, const char* fileName, int lineNumber); + +#define HC_assertThatDouble(actual, matcher) \ + HC_assertThatDoubleWithLocation(self, actual, matcher, __FILE__, __LINE__) + +/** + HC_assertThatDouble(actual, matcher) - + Asserts that @c double actual value, converted to an @c NSNumber, satisfies matcher. + + @param actual The @c double value to convert to an @c NSNumber for evaluation. + @param matcher The matcher to satisfy as the expected condition. + + (In the event of a name clash, don't \#define @c HC_SHORTHAND and use the synonym + @c HC_assertThatDouble instead.) + + @ingroup integration_numeric + */ +#ifdef HC_SHORTHAND + #define assertThatDouble HC_assertThatDouble +#endif + + +#pragma mark - + +OBJC_EXPORT void HC_assertThatFloatWithLocation(id testCase, float actual, + id matcher, const char* fileName, int lineNumber); + +#define HC_assertThatFloat(actual, matcher) \ + HC_assertThatFloatWithLocation(self, actual, matcher, __FILE__, __LINE__) + +/** + assertThatFloat(actual, matcher) - + Asserts that @c float actual value, converted to an @c NSNumber, satisfies matcher. + + @param actual The @c float value to convert to an @c NSNumber for evaluation. + @param matcher The matcher to satisfy as the expected condition. + + (In the event of a name clash, don't \#define @c HC_SHORTHAND and use the synonym + @c HC_assertThatFloat instead.) + + @ingroup integration_numeric + */ +#ifdef HC_SHORTHAND + #define assertThatFloat HC_assertThatFloat +#endif + + +#pragma mark - + +OBJC_EXPORT void HC_assertThatIntWithLocation(id testCase, int actual, + id matcher, const char* fileName, int lineNumber); + +#define HC_assertThatInt(actual, matcher) \ + HC_assertThatIntWithLocation(self, actual, matcher, __FILE__, __LINE__) + +/** + assertThatInt(actual, matcher) - + Asserts that @c int actual value, converted to an @c NSNumber, satisfies matcher. + + @param actual The @c int value to convert to an @c NSNumber for evaluation. + @param matcher The matcher to satisfy as the expected condition. + + (In the event of a name clash, don't \#define @c HC_SHORTHAND and use the synonym + @c HC_assertThatInt instead.) + + @ingroup integration_numeric + */ +#ifdef HC_SHORTHAND + #define assertThatInt HC_assertThatInt +#endif + + +#pragma mark - + +OBJC_EXPORT void HC_assertThatLongWithLocation(id testCase, long actual, + id matcher, const char* fileName, int lineNumber); + +#define HC_assertThatLong(actual, matcher) \ + HC_assertThatLongWithLocation(self, actual, matcher, __FILE__, __LINE__) + +/** + assertThatLong(actual, matcher) - + Asserts that @c long actual value, converted to an @c NSNumber, satisfies matcher. + + @param actual The @c long value to convert to an @c NSNumber for evaluation. + @param matcher The matcher to satisfy as the expected condition. + + (In the event of a name clash, don't \#define @c HC_SHORTHAND and use the synonym + @c HC_assertThatLong instead.) + + @ingroup integration_numeric + */ +#ifdef HC_SHORTHAND + #define assertThatLong HC_assertThatLong +#endif + + +#pragma mark - + +OBJC_EXPORT void HC_assertThatLongLongWithLocation(id testCase, long long actual, + id matcher, const char* fileName, int lineNumber); + +#define HC_assertThatLongLong(actual, matcher) \ + HC_assertThatLongLongWithLocation(self, actual, matcher, __FILE__, __LINE__) + +/** + assertThatLongLong(actual, matcher) - + Asserts that long long actual value, converted to an @c NSNumber, satisfies + matcher. + + @param actual The long long value to convert to an @c NSNumber for evaluation. + @param matcher The matcher to satisfy as the expected condition. + + (In the event of a name clash, don't \#define @c HC_SHORTHAND and use the synonym + @c HC_assertThatLongLong instead.) + + @ingroup integration_numeric + */ +#ifdef HC_SHORTHAND + #define assertThatLongLong HC_assertThatLongLong +#endif + + +#pragma mark - + +OBJC_EXPORT void HC_assertThatShortWithLocation(id testCase, short actual, + id matcher, const char* fileName, int lineNumber); + +#define HC_assertThatShort(actual, matcher) \ + HC_assertThatShortWithLocation(self, actual, matcher, __FILE__, __LINE__) + +/** + assertThatShort(actual, matcher) - + Asserts that @c short actual value, converted to an @c NSNumber, satisfies matcher. + + @param actual The @c short value to convert to an @c NSNumber for evaluation. + @param matcher The matcher to satisfy as the expected condition. + + (In the event of a name clash, don't \#define @c HC_SHORTHAND and use the synonym + @c HC_assertThatShort instead.) + + @ingroup integration_numeric + */ +#ifdef HC_SHORTHAND + #define assertThatShort HC_assertThatShort +#endif + + +#pragma mark - + +OBJC_EXPORT void HC_assertThatUnsignedCharWithLocation(id testCase, unsigned char actual, + id matcher, const char* fileName, int lineNumber); + +#define HC_assertThatUnsignedChar(actual, matcher) \ + HC_assertThatUnsignedCharWithLocation(self, actual, matcher, __FILE__, __LINE__) + +/** + assertThatUnsignedChar(actual, matcher) - + Asserts that unsigned char actual value, converted to an @c NSNumber, satisfies + matcher. + + @param actual The unsigned char value to convert to an @c NSNumber for evaluation. + @param matcher The matcher to satisfy as the expected condition. + + (In the event of a name clash, don't \#define @c HC_SHORTHAND and use the synonym + @c HC_assertThatUnsignedChar instead.) + + @ingroup integration_numeric + */ +#ifdef HC_SHORTHAND + #define assertThatUnsignedChar HC_assertThatUnsignedChar +#endif + + +#pragma mark - + +OBJC_EXPORT void HC_assertThatUnsignedIntWithLocation(id testCase, unsigned int actual, + id matcher, const char* fileName, int lineNumber); + +#define HC_assertThatUnsignedInt(actual, matcher) \ + HC_assertThatUnsignedIntWithLocation(self, actual, matcher, __FILE__, __LINE__) + +/** + assertThatUnsignedInt(actual, matcher) - + Asserts that unsigned int actual value, converted to an @c NSNumber, satisfies + matcher. + + @param actual The unsigned int value to convert to an @c NSNumber for evaluation @param matcher The matcher to satisfy as the expected condition. + + (In the event of a name clash, don't \#define @c HC_SHORTHAND and use the synonym + @c HC_assertThatUnsignedInt instead.) + + @ingroup integration_numeric + */ +#ifdef HC_SHORTHAND + #define assertThatUnsignedInt HC_assertThatUnsignedInt +#endif + + +#pragma mark - + +OBJC_EXPORT void HC_assertThatUnsignedLongWithLocation(id testCase, unsigned long actual, + id matcher, const char* fileName, int lineNumber); + +#define HC_assertThatUnsignedLong(actual, matcher) \ + HC_assertThatUnsignedLongWithLocation(self, actual, matcher, __FILE__, __LINE__) + +/** + assertThatUnsignedLong(actual, matcher) - + Asserts that unsigned long actual value, converted to an @c NSNumber, satisfies + matcher. + + @param actual The unsigned long value to convert to an @c NSNumber for evaluation @param matcher The matcher to satisfy as the expected condition. + + (In the event of a name clash, don't \#define @c HC_SHORTHAND and use the synonym + @c HC_assertThatUnsignedLong instead.) + + @ingroup integration_numeric + */ +#ifdef HC_SHORTHAND + #define assertThatUnsignedLong HC_assertThatUnsignedLong +#endif + + +#pragma mark - + +OBJC_EXPORT void HC_assertThatUnsignedLongLongWithLocation(id testCase, unsigned long long actual, + id matcher, const char* fileName, int lineNumber); + +#define HC_assertThatUnsignedLongLong(actual, matcher) \ + HC_assertThatUnsignedLongLongWithLocation(self, actual, matcher, __FILE__, __LINE__) + +/** + assertThatUnsignedLongLong(actual, matcher) - + Asserts that unsigned long long actual value, converted to an @c NSNumber, + satisfies matcher. + + @param actual The unsigned long long value to convert to an @c NSNumber for evaluation @param matcher The matcher to satisfy as the expected condition. + + (In the event of a name clash, don't \#define @c HC_SHORTHAND and use the synonym + @c HC_assertThatUnsignedLongLong instead.) + + @ingroup integration_numeric + */ +#ifdef HC_SHORTHAND + #define assertThatUnsignedLongLong HC_assertThatUnsignedLongLong +#endif + + +#pragma mark - + +OBJC_EXPORT void HC_assertThatUnsignedShortWithLocation(id testCase, unsigned short actual, + id matcher, const char* fileName, int lineNumber); + +#define HC_assertThatUnsignedShort(actual, matcher) \ + HC_assertThatUnsignedShortWithLocation(self, actual, matcher, __FILE__, __LINE__) + +/** + assertThatUnsignedShort(actual, matcher) - + Asserts that unsigned short actual value, converted to an @c NSNumber, satisfies + matcher. + + @param actual The unsigned short value to convert to an @c NSNumber for evaluation @param matcher The matcher to satisfy as the expected condition. + + (In the event of a name clash, don't \#define @c HC_SHORTHAND and use the synonym + @c HC_assertThatUnsignedShort instead.) + + @ingroup integration_numeric + */ +#ifdef HC_SHORTHAND + #define assertThatUnsignedShort HC_assertThatUnsignedShort +#endif + + +#pragma mark - + +OBJC_EXPORT void HC_assertThatIntegerWithLocation(id testCase, NSInteger actual, + id matcher, const char* fileName, int lineNumber); + +#define HC_assertThatInteger(actual, matcher) \ + HC_assertThatIntegerWithLocation(self, actual, matcher, __FILE__, __LINE__) + +/** + assertThatInteger(actual, matcher) - + Asserts that @c NSInteger actual value, converted to an @c NSNumber, satisfies matcher. + + @param actual The @c NSInteger value to convert to an @c NSNumber for evaluation. + @param matcher The matcher to satisfy as the expected condition. + + (In the event of a name clash, don't \#define @c HC_SHORTHAND and use the synonym + @c HC_assertThatInteger instead.) + + @ingroup integration_numeric + */ +#ifdef HC_SHORTHAND + #define assertThatInteger HC_assertThatInteger +#endif + + +#pragma mark - + +OBJC_EXPORT void HC_assertThatUnsignedIntegerWithLocation(id testCase, NSUInteger actual, + id matcher, const char* fileName, int lineNumber); + +#define HC_assertThatUnsignedInteger(actual, matcher) \ + HC_assertThatUnsignedIntegerWithLocation(self, actual, matcher, __FILE__, __LINE__) + +/** + assertThatUnsignedInteger(actual, matcher) - + Asserts that @c NSUInteger actual value, converted to an @c NSNumber, satisfies matcher. + + @param actual The @c NSUInteger value to convert to an @c NSNumber for evaluation. + @param matcher The matcher to satisfy as the expected condition. + + (In the event of a name clash, don't \#define @c HC_SHORTHAND and use the synonym + @c HC_assertThatUnsignedInteger instead.) + + @ingroup integration_numeric + */ +#ifdef HC_SHORTHAND + #define assertThatUnsignedInteger HC_assertThatUnsignedInteger +#endif diff --git a/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCOrderingComparison.h b/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCOrderingComparison.h new file mode 100644 index 0000000..1d17e12 --- /dev/null +++ b/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCOrderingComparison.h @@ -0,0 +1,115 @@ +// +// OCHamcrest - HCOrderingComparison.h +// Copyright 2013 hamcrest.org. See LICENSE.txt +// +// Created by: Jon Reid, http://qualitycoding.org/ +// Docs: http://hamcrest.github.com/OCHamcrest/ +// Source: https://github.com/hamcrest/OCHamcrest +// + +#import + + +@interface HCOrderingComparison : HCBaseMatcher +{ + id expected; + NSComparisonResult minCompare; + NSComparisonResult maxCompare; + NSString *comparisonDescription; +} + ++ (instancetype)compare:(id)expectedValue + minCompare:(NSComparisonResult)min + maxCompare:(NSComparisonResult)max + comparisonDescription:(NSString *)comparisonDescription; + +- (instancetype)initComparing:(id)expectedValue + minCompare:(NSComparisonResult)min + maxCompare:(NSComparisonResult)max + comparisonDescription:(NSString *)comparisonDescription; + +@end + + +OBJC_EXPORT id HC_greaterThan(id expected); + +/** + greaterThan(aNumber) - + Matches if object is greater than a given number. + + @param aNumber The @c NSNumber to compare against. + + Example: + @li @ref greaterThan(\@5) + + (In the event of a name clash, don't \#define @c HC_SHORTHAND and use the synonym + @c HC_greaterThan instead.) + + @ingroup number_matchers + */ +#ifdef HC_SHORTHAND + #define greaterThan HC_greaterThan +#endif + + +OBJC_EXPORT id HC_greaterThanOrEqualTo(id expected); + +/** + greaterThanOrEqualTo(aNumber) - + Matches if object is greater than or equal to a given number. + + @param aNumber The @c NSNumber to compare against. + + Example: + @li @ref greaterThanOrEqualTo(\@5) + + (In the event of a name clash, don't \#define @c HC_SHORTHAND and use the synonym + @c HC_greaterThanOrEqualTo instead.) + + @ingroup number_matchers + */ +#ifdef HC_SHORTHAND + #define greaterThanOrEqualTo HC_greaterThanOrEqualTo +#endif + + +OBJC_EXPORT id HC_lessThan(id expected); + +/** + lessThan(aNumber) - + Matches if object is less than a given number. + + @param aNumber The @c NSNumber to compare against. + + Example: + @li @ref lessThan(\@5) + + (In the event of a name clash, don't \#define @c HC_SHORTHAND and use the synonym + @c HC_lessThan instead.) + + @ingroup number_matchers + */ +#ifdef HC_SHORTHAND + #define lessThan HC_lessThan +#endif + + +OBJC_EXPORT id HC_lessThanOrEqualTo(id expected); + +/** + lessThanOrEqualTo(aNumber) - + Matches if object is less than or equal to a given number. + + @param aNumber The @c NSNumber to compare against. + + Example: + @li @ref lessThanOrEqualTo(\@5) + + (In the event of a name clash, don't \#define @c HC_SHORTHAND and use the synonym + @c HC_lessThanOrEqualTo instead.) + + @ingroup number_matchers + */ +#ifdef HC_SHORTHAND + #define lessThanOrEqualTo HC_lessThanOrEqualTo +#endif diff --git a/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCRequireNonNilObject.h b/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCRequireNonNilObject.h new file mode 100644 index 0000000..adebc04 --- /dev/null +++ b/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCRequireNonNilObject.h @@ -0,0 +1,19 @@ +// +// OCHamcrest - HCRequireNonNilObject.h +// Copyright 2013 hamcrest.org. See LICENSE.txt +// +// Created by: Jon Reid, http://qualitycoding.org/ +// Docs: http://hamcrest.github.com/OCHamcrest/ +// Source: https://github.com/hamcrest/OCHamcrest +// + +#import +#import + + +/** + Throws an NSException if @a obj is @c nil. + + @ingroup helpers +*/ +OBJC_EXPORT void HCRequireNonNilObject(id obj); diff --git a/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCSelfDescribing.h b/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCSelfDescribing.h new file mode 100644 index 0000000..610f74f --- /dev/null +++ b/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCSelfDescribing.h @@ -0,0 +1,32 @@ +// +// OCHamcrest - HCSelfDescribing.h +// Copyright 2013 hamcrest.org. See LICENSE.txt +// +// Created by: Jon Reid, http://qualitycoding.org/ +// Docs: http://hamcrest.github.com/OCHamcrest/ +// Source: https://github.com/hamcrest/OCHamcrest +// + +#import + +#import "HCDescription.h" + + +/** + The ability of an object to describe itself. + + @ingroup core + */ +@protocol HCSelfDescribing + +/** + Generates a description of the object. + + The description may be part of a description of a larger object of which this is just a + component, so it should be worded appropriately. + + @param description The description to be built or appended to. + */ +- (void)describeTo:(id)description; + +@end diff --git a/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCStringContains.h b/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCStringContains.h new file mode 100644 index 0000000..bbcf456 --- /dev/null +++ b/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCStringContains.h @@ -0,0 +1,45 @@ +// +// OCHamcrest - HCStringContains.h +// Copyright 2013 hamcrest.org. See LICENSE.txt +// +// Created by: Jon Reid, http://qualitycoding.org/ +// Docs: http://hamcrest.github.com/OCHamcrest/ +// Source: https://github.com/hamcrest/OCHamcrest +// + +#import + + +@interface HCStringContains : HCSubstringMatcher + ++ (id)stringContains:(NSString *)aSubstring; + +@end + + +OBJC_EXPORT id HC_containsString(NSString *aSubstring); + +/** + containsString(aString) - + Matches if object is a string containing a given string. + + @param aString The string to search for. This value must not be @c nil. + + This matcher first checks whether the evaluated object is a string. If so, it checks whether it + contains @a aString. + + Example: + + @par + @ref containsString(@"def") + + will match "abcdefg". + + (In the event of a name clash, don't \#define @c HC_SHORTHAND and use the synonym + @c HC_containsString instead.) + + @ingroup text_matchers + */ +#ifdef HC_SHORTHAND + #define containsString HC_containsString +#endif diff --git a/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCStringContainsInOrder.h b/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCStringContainsInOrder.h new file mode 100644 index 0000000..2cae881 --- /dev/null +++ b/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCStringContainsInOrder.h @@ -0,0 +1,50 @@ +// +// OCHamcrest - HCStringContainsInOrder.h +// Copyright 2013 hamcrest.org. See LICENSE.txt +// +// Created by: Jon Reid, http://qualitycoding.org/ +// Docs: http://hamcrest.github.com/OCHamcrest/ +// Source: https://github.com/hamcrest/OCHamcrest +// + +#import + + +@interface HCStringContainsInOrder : HCBaseMatcher +{ + NSArray *substrings; +} + ++ (instancetype)containsInOrder:(NSArray *)substringList; +- (instancetype)initWithSubstrings:(NSArray *)substringList; + +@end + + +OBJC_EXPORT id HC_stringContainsInOrder(NSString *substring, ...) NS_REQUIRES_NIL_TERMINATION; + +/** + stringContainsInOrder(firstString, ...) - + Matches if object is a string containing a given list of substrings in relative order. + + @param firstString,... A comma-separated list of strings ending with @c nil. + + This matcher first checks whether the evaluated object is a string. If so, it checks whether it + contains a given list of strings, in relative order to each other. The searches are performed + starting from the beginning of the evaluated string. + + Example: + + @par + @ref stringContainsInOrder(@"bc", @"fg", @"jkl", nil) + + will match "abcdefghijklm". + + (In the event of a name clash, don't \#define @c HC_SHORTHAND and use the synonym + @c HC_stringContainsInOrder instead.) + + @ingroup text_matchers + */ +#ifdef HC_SHORTHAND + #define stringContainsInOrder HC_stringContainsInOrder +#endif diff --git a/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCStringDescription.h b/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCStringDescription.h new file mode 100644 index 0000000..82b86e1 --- /dev/null +++ b/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCStringDescription.h @@ -0,0 +1,43 @@ +// +// OCHamcrest - HCStringDescription.h +// Copyright 2013 hamcrest.org. See LICENSE.txt +// +// Created by: Jon Reid, http://qualitycoding.org/ +// Docs: http://hamcrest.github.com/OCHamcrest/ +// Source: https://github.com/hamcrest/OCHamcrest +// + +#import + +@protocol HCSelfDescribing; + + +/** + An HCDescription that is stored as a string. + + @ingroup core + */ +@interface HCStringDescription : HCBaseDescription +{ + NSMutableString *accumulator; +} + +/** + Returns the description of an HCSelfDescribing object as a string. + + @param selfDescribing The object to be described. + @return The description of the object. + */ ++ (NSString *)stringFrom:(id)selfDescribing; + +/** + Returns an empty description. + */ ++ (instancetype)stringDescription; + +/** + Returns an initialized HCStringDescription object that is empty. + */ +- (instancetype)init; + +@end diff --git a/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCStringEndsWith.h b/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCStringEndsWith.h new file mode 100644 index 0000000..12b2f89 --- /dev/null +++ b/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCStringEndsWith.h @@ -0,0 +1,45 @@ +// +// OCHamcrest - HCStringEndsWith.h +// Copyright 2013 hamcrest.org. See LICENSE.txt +// +// Created by: Jon Reid, http://qualitycoding.org/ +// Docs: http://hamcrest.github.com/OCHamcrest/ +// Source: https://github.com/hamcrest/OCHamcrest +// + +#import + + +@interface HCStringEndsWith : HCSubstringMatcher + ++ (id)stringEndsWith:(NSString *)aSubstring; + +@end + + +OBJC_EXPORT id HC_endsWith(NSString *aSubstring); + +/** + endsWith(aString) - + Matches if object is a string ending with a given string. + + @param aString The string to search for. This value must not be @c nil. + + This matcher first checks whether the evaluated object is a string. If so, it checks if + @a aString matches the ending characters of the evaluated object. + + Example: + + @par + @ref endsWith(@"bar") + + will match "foobar". + + (In the event of a name clash, don't \#define @c HC_SHORTHAND and use the synonym + @c HC_endsWith instead.) + + @ingroup text_matchers + */ +#ifdef HC_SHORTHAND + #define endsWith HC_endsWith +#endif diff --git a/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCStringStartsWith.h b/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCStringStartsWith.h new file mode 100644 index 0000000..0f64a3c --- /dev/null +++ b/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCStringStartsWith.h @@ -0,0 +1,45 @@ +// +// OCHamcrest - HCStringStartsWith.h +// Copyright 2013 hamcrest.org. See LICENSE.txt +// +// Created by: Jon Reid, http://qualitycoding.org/ +// Docs: http://hamcrest.github.com/OCHamcrest/ +// Source: https://github.com/hamcrest/OCHamcrest +// + +#import + + +@interface HCStringStartsWith : HCSubstringMatcher + ++ (id)stringStartsWith:(NSString *)aSubstring; + +@end + + +OBJC_EXPORT id HC_startsWith(NSString *aSubstring); + +/** + startsWith(aString) - + Matches if object is a string starting with a given string. + + @param aString The string to search for. This value must not be @c nil. + + This matcher first checks whether the evaluated object is a string. If so, it checks if + @a aString matches the beginning characters of the evaluated object. + + Example: + + @par + @ref endsWith(@"foo") + + will match "foobar". + + (In the event of a name clash, don't \#define @c HC_SHORTHAND and use the synonym + @c HC_startsWith instead.) + + @ingroup text_matchers + */ +#ifdef HC_SHORTHAND + #define startsWith HC_startsWith +#endif diff --git a/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCSubstringMatcher.h b/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCSubstringMatcher.h new file mode 100644 index 0000000..9b15d7a --- /dev/null +++ b/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCSubstringMatcher.h @@ -0,0 +1,20 @@ +// +// OCHamcrest - HCSubstringMatcher.h +// Copyright 2013 hamcrest.org. See LICENSE.txt +// +// Created by: Jon Reid, http://qualitycoding.org/ +// Docs: http://hamcrest.github.com/OCHamcrest/ +// Source: https://github.com/hamcrest/OCHamcrest +// + +#import + + +@interface HCSubstringMatcher : HCBaseMatcher +{ + NSString *substring; +} + +- (instancetype)initWithSubstring:(NSString *)aString; + +@end diff --git a/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCTestFailure.h b/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCTestFailure.h new file mode 100644 index 0000000..d7c1fe0 --- /dev/null +++ b/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCTestFailure.h @@ -0,0 +1,21 @@ +#import + + +/** + Test failure location and reason. + + @ingroup integration + */ +@interface HCTestFailure : NSObject + +@property (nonatomic, readonly) id testCase; +@property (nonatomic, readonly) NSString *fileName; +@property (nonatomic, readonly) NSUInteger lineNumber; +@property (nonatomic, readonly) NSString *reason; + +- (instancetype)initWithTestCase:(id)testCase + fileName:(NSString *)fileName + lineNumber:(NSUInteger)lineNumber + reason:(NSString *)reason; + +@end diff --git a/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCTestFailureHandler.h b/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCTestFailureHandler.h new file mode 100644 index 0000000..52d14a3 --- /dev/null +++ b/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCTestFailureHandler.h @@ -0,0 +1,20 @@ +#import + +@class HCTestFailure; + + +/** + Chain-of-responsibility for handling test failures. + + @ingroup integration + */ +@protocol HCTestFailureHandler + +@property (nonatomic, strong) id successor; + +/** + Handle test failure at specific location, or pass to successor. + */ +- (void)handleFailure:(HCTestFailure *)failure; + +@end diff --git a/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCTestFailureHandlerChain.h b/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCTestFailureHandlerChain.h new file mode 100644 index 0000000..0a8c353 --- /dev/null +++ b/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCTestFailureHandlerChain.h @@ -0,0 +1,12 @@ +#import +#import + +@protocol HCTestFailureHandler; + + +/** + Returns chain of test failure handlers. + + @ingroup integration + */ +OBJC_EXPORT id HC_testFailureHandlerChain(void); diff --git a/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCWrapInMatcher.h b/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCWrapInMatcher.h new file mode 100644 index 0000000..fa837ca --- /dev/null +++ b/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/HCWrapInMatcher.h @@ -0,0 +1,22 @@ +// +// OCHamcrest - HCWrapInMatcher.h +// Copyright 2013 hamcrest.org. See LICENSE.txt +// +// Created by: Jon Reid, http://qualitycoding.org/ +// Docs: http://hamcrest.github.com/OCHamcrest/ +// Source: https://github.com/hamcrest/OCHamcrest +// + +#import + +@protocol HCMatcher; + + +/** + Wraps argument in a matcher, if necessary. + + @return The argument as-if if it is already a matcher, otherwise wrapped in an @ref equalTo matcher. + + @ingroup helpers + */ +OBJC_EXPORT id HCWrapInMatcher(id matcherOrValue); diff --git a/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/OCHamcrestIOS.h b/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/OCHamcrestIOS.h new file mode 100644 index 0000000..d8bd09c --- /dev/null +++ b/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Headers/OCHamcrestIOS.h @@ -0,0 +1,141 @@ +// +// OCHamcrest - OCHamcrest.h +// Copyright 2013 hamcrest.org. See LICENSE.txt +// +// Created by: Jon Reid, http://qualitycoding.org/ +// Docs: http://hamcrest.github.com/OCHamcrest/ +// Source: https://github.com/hamcrest/OCHamcrest +// + +/** + @defgroup library Matcher Library + + Library of Matcher implementations. + */ + +/** + @defgroup object_matchers Object Matchers + + Matchers that inspect objects. + + @ingroup library + */ +#import +#import +#import +#import +#import +#import +#import +#import + +/** + @defgroup collection_matchers Collection Matchers + + Matchers of collections. + + @ingroup library + */ +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import + +/** + @defgroup number_matchers Number Matchers + + Matchers that perform numeric comparisons. + + @ingroup library + */ +#import +#import + +/** + @defgroup primitive_number_matchers Primitive Number Matchers + + Matchers for testing equality against primitive numeric types. + + @ingroup number_matchers + */ +#import + +/** + @defgroup text_matchers Text Matchers + + Matchers that perform text comparisons. + + @ingroup library + */ +#import +#import +#import +#import +#import +#import + +/** + @defgroup logical_matchers Logical Matchers + + Boolean logic using other matchers. + + @ingroup library + */ +#import +#import +#import +#import + +/** + @defgroup decorator_matchers Decorator Matchers + + Matchers that decorate other matchers for better expression. + + @ingroup library + */ +#import +#import + +/** + @defgroup integration Unit Test Integration + */ +#import +#import +#import +#import + +/** + @defgroup integration_numeric Unit Tests of Primitive Numbers + + Unit test integration for primitive numbers. + + The @c assertThat<Type> macros convert the primitive actual value to an @c NSNumber, + passing that to the matcher for evaluation. If the matcher is not satisfied, an exception is + thrown describing the mismatch. + + This family of macros is designed to integrate well with OCUnit and other unit testing + frameworks. Unmet assertions are reported as test failures. In Xcode, they can be clicked to + reveal the line of the assertion. + + @ingroup integration + */ +#import + +/** + @defgroup core Core API + */ + +/** + @defgroup helpers Helpers + + Utilities for writing Matchers. + + @ingroup core + */ diff --git a/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/OCHamcrestIOS b/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/OCHamcrestIOS new file mode 100644 index 0000000000000000000000000000000000000000..509b9eabaf9a9807106ceff62fd907823f59b612 GIT binary patch literal 3671740 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

    vN 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 z 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 z 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%0DW@1~2?iUN}#Of*scXHs4~+Wf0rYmRCGa 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

    Q&?5nTOZAysnwbA=%1bGNW?Op&XK@dPilC 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 k~)ZZq}4adN> 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

    yH9#X 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≧c^+XIv&HgToh$Ev$Vc= zpI0JhwJFTlQQLNx?=`zkQln{))@L0kVC1NB4Gb!A>BEoLyb1nzW!nSRs1fqEW(Os- z?Z9>Z9)wi4ecKp1YFo35{@ac5CRW|T4YGq|_+6((xapy7^qdP>Ru4QLEtx_~8XlZCT| zG;8yb^v2}t#wS|NF8pqL#f3lXGI@PVd}rnUhbq1suRi736+e8jJmY$yMZr#vtGVqq z->xcc&BR_PLk=q5*d8yu=22wbX5rbS$wGC8IV2g?;_XcPV5a%9t>O-xvgVD#wV!3l z*R8Ql!QD~Gs`@??&Zq0JzF@2uJc_#7Yg)chmRmNfc+1^nv!h_wiTW7K;hLt zc$fFY_tjo2@nHA0SHCqYHr6$lgIiCY%5|SHk@$SY!-N0GInUE~7;U9p4vRy)1v4Hj zKYpdc$bhO++sN+0 z)rL*IjP}OoRc#HQ2;PHp#2bb&+ap&G^k?wY<~ze~KASDCVphe>iWwDkwVvIzH$H6B zSLs^Cb4wQND)v8V+5%o{Puln6op_$27^{43<}-Y7OvBBPzBM{DlvTt##2KqPC^J}k zYc=5oIvnW->KpfAb=zOOXN4#FknCXLvf~oli;L}qtK0r+>|pIc-xbBZ0nK(=+q<|k z(J1V5^4HVac4yvxrsbGdC30jc3{B=qv^Vqrrdog=37w6#taG!C{NYjX;voEaxp^^f zTH7n;0iiZJt?eD^S|K|G<`f7|!2j^%DOeZkq*3xgmy;dkU0 z_%U<=4h{O*CE)y$zLO#RFsD?SFo<;np*|;8Q-a{?zV9()u86xxZ1KmrAB2~aXF*W3 ziNl5O>Y-bE4{Vnv9WJ8P2Q8MegJ3!jQ8bqg9u73_Y7iU(FmY(v#LHVd2&Q8~o&v!x zu5n!dOKC>gaUY1W3W#xcB0hG0$8=`l?>-me+4Gc~s+KKiT-CUs zcI7;~_p>tv<|_cU%l52%VSGBOJTCLuhQMrysf@bDi)c`w(e1YwyV%r*H4x^v3ML)3 z`HNwNY<^4Q3gvWcTHoyS6-^hJ+bw1+F-D~4<4J=)9dm!Gl%y@1LBg)=a>QyW6Xe$n{=uCTG zC&B-59DT*tAim^ffpkw_-RYBw|IB6i63E+Z@%Pa9Tk?_sf50vo>*OvR<$tsJnW%KU z{7hVJnhE7Efc(Yc8_PEeTyj>&cEv{Gm1SAEik_2ESec*UJ_8DN#ePi~6>l+Imcd;k z*%dR(&PSbwyT1p6A=;*8~SCO-bC_AlB0ROenN6L$&-hHq_SMBQxE*d z%~IrizD)a(9F-gZFjmL9)V-+7cE#;{3Vc{HYqqTO zOpq*Dry^t}r}ITPWyw1AAQ{UWiSwN6@E0F%DzqIj>2|`4E6J7nw#)d@q1*Izs5;GcTk( zQ=S?lpM5DSzsAU4@5!&B{D(-s&g5!X9$LJO74{-MBR*F`sSQULpGkWbR`?7fd?M~G zD}06(4%$}M3`)BX2^7u6Nso&mH$ID1v=@FoK2CBri?afVeXwShUSB{|2BaJ@j;c?bmyl0Zpj%1O0a_wxqAM3qeAD$l0 zqU7U7i?aj;Qo~N`s1EX+Ux}MB~Q8+&Mn0zenXkN>IUZZd{ zk;W%GY^7E8D(g}TqI<9SOILMcz}T**cKy>;@G3~#fh$bgXG`0GE3&5KdiV^yq1Zjs zByRnq;v;&^$eZ2uT*&J^DmJ254p@rmOF7p6uukyrhjC<>eX|UG)5-ZQ%pIQg_FI@c zBAsFmq#WtzN+Df55^@VzDw=~kitnzYds!=T2<-3Yp3sf_DQi#e7=Dfp@Ee~yHf>yP zpfxUcoM&8)RswQjKV-B1pD->rxp97zu?_tXvCZ~>+QQsF*rXqZ@iLaG9jskDJ6K_@ z(Pc`IIXj=>yZM|c1*>`Bbw(SuE_Y?k5PFZglxXbOD(-_aa@2ZyEQ&nk|ifvk#ds=cs?$n$i@z3X$Jg2f}a{R*F3&HY{+`8GhW0MPWPal_i((K%>vvXHIk=t`za(wRT zIVZ-uyq5c5ET|tNviNz>KykuX|F{(^*#%-jgdJ)1H4$%-RX&**9^xM#NHmuIqoza ztJanwZvzg?%#31R%r zoxbFGWnCo~>q(F09Cu2C1a$EjKh-l_yQs&7xFqiMZ=Tm2ciPDll$E?I50#GTLav%) z;m3+)$tt>I@xF|*?cVKGY`hXBWrjOF!SkxOVd;Mt>u8Uq&T)HRN!j;{iXyl(b-GiRjd;x6%U-VCr`9FuwA|@eJ+E4K>ORPFV;Aqd!jqvB zC+Ztsyt*IgbZ^?L3wj!KUlO7T-=ou?roA51DfRa0z|~Ku)6!mZbV}_=aeYmv?P)K! z4r))@>s6f&HLnaKo_pxfO-*~v*6F6S7xftF_%TU`e7&htZbT%n({$>p3tToV{qHL4 zKfRin?oM50hcs_~FVne7jK^x+DZi!Y;MJ}iJ?~|*CSN(~=4G3^34SF{{62$Bxx*=@?o8$$5J+Tcna z$9WJeW{d(6(o$-@=sIzq=WSjM&TyyS^t>Wt-QuxiwHNozUdOL_xRA!-Se{Qyai{56 z7r4{K(SjaP&{NSY>yZW97P%^wUyjZ~CP&!J`e!>|6yrcxMh7m&p*C+HZ@yDKO}XtL zGVNmW+cwiwAHPliIZa`DA33mxX(z+x8SRV@ZUxgP&C@uEo>x0GYnWkEZQcd3`Y@{HmdeH?#=oqC`3>u7@08qoB|_4ILqW;6Xv3mQ2QIj=Eu4m4Ysxe9|sk0LGezCD=Bp#jCR=%?p++!ahy) z^-G$~mkG{fM{<5k{fd>#8tWN*>B3n3{EHUYss)L;)ut7(+9}nVIhCGTZu3?5uPw5%28t;@tcufH*kL)Jb1*H`8+uUZic~W6VY8wXT_3p z@jSS;hK}8LS|a7lpQ8~!#?0B-z_bNY(ik8#{)}IMgM)nZzu|^6zFhjPyj9IZGu;Mjy?3yyXiJ8_se+S@kW-6n zY|IPeQzrAxv|W0Bd0@+u$7}9*m=;HUdXo{3MPi!@vyAH66?=AUON`6*$YocwZP|x3 zETl58v~)@b9V;O8*yhYZ0n z4hOI8JRB==ti^E~j(c!Cfa7T#oC^WO*ms0gPfmugXmG4~{7j!z_CC!_4!k&3CN9n! zlZ!oBahX{YkeoIV7pG0g#r`M;=IP7?Ht>r$#Knmoa&dBJAP|mo*7Rb}R}lw`ixWrU zl0ml^r=ui`b4iTI$s}=^i5+-xW=C8nN<9105^pAYNTzddX35~ii8@8xt%#hYlXy-i zF-6XX$;(Vt!;4*hi8m9&@Zz+yWSQA7cyT&UUYypaEcX5tk#q38P(?s+aY9kdX08k& zoC1^=?isF3hfT^ja0>9{q|sj){~L?b9u|HMSOxQy8-dl}yVClPZvkTbW9U-gS-1|h z!0wpNsRp8e#p8iB@E-w$ip;dPag&hmw?Kyf3`qaWft2%6g)ab7&Kw~5&H#dM{3$@@ z;|HkrTJYZk9ET~KJ4Js6h-IrsaYC8l*8@)jeG#w{^kN{(ITy%$O}03`O!Tv;9Lj$P zi16{>0y4k11DTJ7@;@KQ{MIS_G|?xEE&-xSi?LUWN#{L8W_q*{%XlvXDVMfkna-o~ z|B?Lf2jW-!b@^|S|E==B9>{Vn12TRCkaEujQf?Ixzv3bIW4b9I!}|gm{tVjvWW@V9 zko1p%2rA}6Rnngq&36T_4;#-k#HWog^5p@^=WN0L4sDKn4+5DEZ7MRHYcE(2cLN#k z3qW448-V1eEk)KhpVd5kST-1oHZJ0y6#{G;@ak0myJ#f@U~v zCQ{zlfvlfa;W8lOH3C_Gd@iw_)B+i=3P}F3K<1NQ+LV6+kn;JQJsbSJM052InojX= zabrR5`0oIj?(IOzxe>_w<)fnK0x1uNk#~k@q-|)}{WNk~fhFjUtO5=PE(Z<+E(T)d zYr$OLP~dFfNkF8<_l&XGikrKj9CR_T42XA_vDu0zgt6J$1DJw;5s>dV^mm+@EMs%D z8)$fQp|6qG4_FR*Dv0r}WNT^7WE#{>5v zo#TLefw-OpyMbtr#>VThz@4B60CxcKXenq19s}G8OaZq5I{`NX`vW%tS$`XWXb;BL z>(Riqpi!oRRv?OSeOzP3%d(nL*+9bSIQ87F62TR(sv2(5Pn+7g*gnrSjg2v zq-%v-7eu;5$n`&@y9>F@i1Z7%iHTf)MEsHP`$7&h(*LW%&kFgTq5ppfxdMvxEaBNg zzGvt^PB=n1M93Zw!w(a773K=}p%F5iW8}nN2_F?cD7;VjIpKc^uNPh;yi~|9PRiqZ zjmZ82u~x{Dd(!2?G9d@~>3^K?2w_hlCUi~sezj9B;3EG^!ru#jEu^hQhI6$M@q5B= z2{#Kj32DobeCvhFg^Pup#b7vXr4!E-a*Z45LBjsR-okFexRArsL`VHM@TwqB0F`-#w2D)AJRw3WF zx8tuPX7ua-@~Mj7Ru%z_Wrc~{ElGwKKv2)3jZkN_XhnR z6l$M^JieFdf2Z(v;myJ};m3s+3;F)WFON3biCo}GEEn?qKzgX~IN=dOE|SI1tXU<# zqUYFi!rusgA^eH(9^sdTw+U|&t`hQjPq~f4IYRV_j6dF;28Rm=3Gr?){(R0eJ|2q( z0R~sWlm2`^68U~4&J|V)%Z08U_@2Zsudk5rN7C%K5cx;kr*!rT_Xu|jcL>{sTZLPM zn}wT%8-*K$YlW@C#lpG5*}@uOrLbIBCM*#S7N&%Kg+;=o5MauOzJfvY9Srijp5^BC z?gtfqVPcnPVd8Po!o*I|LSqw{@gK4N#wIZ79iq31UzlhYElk`mT4-znGyYcVZ)^gS zzE|`X@e7SjV20nN@XZPrChia|Ol%S@ObiB%{*`Bgxi=~W{hT^sg6)O0FhR97(!vDW z5ouu}AzGMVB{N)@cn9f`7AE$I7XF{N0nKrj0@RsvKPQc&8#=9YzgKv>p>XZ+eqeZ+ z!iSSa{GF0fC3>&ukBNVQ_*W}@E@aU0{Y7~j6wa|0%4%j2w3Liik@rxBcmNde) zh@L0@sp4lpmHbC3{6>Y>E1dmXh7VErg9=}y@TU}BrtsHDBdkQ%w;%e`%-=Hcj}qM? zx?1#AqB+h({%b{Z9EkKr(KnMWLPhg{`>g1c=wFGRExI?_2KhILK3eo<(flr9_)gIa zMf0PM?po1hq8Fp>(?+yg2f(pW+K8U3aK4vm1KQb_yAU!8ktb)*?N-qnb$x#>dXs4O zcNl-J=zBrq=Q;JuJbDz;_lF-IpeF|6pMjWu{x<{RTf%tr``1z@Y z?59r%@DC1zv)TChX9Z}y%QC{r>*wct#ZP}f5T0R7S;U876WXl4kRWFO+So|-%sks^ zNV_`0&UaEUVIi$$Y;FURsX!)kdhj=%-}zt(P!HVY>R+tQkr1(75ktTodhi-mwcd=AVF!?2&+F&Zq7Y> zEr%;i<|KT!P3e(YIdn125|LmQMrE-F7L5cWWE<2qrhmf?9EaP6_7ylh+J|cqI@B=m zhzJwLBO=lsF*-b}BO>fkkMN8F`|K=-izv;`$^ooE`ztWY_OqWyHQ>uhX=zqoOq!+H z#kc-Z#;&ug#qviqlhW+!vi!8OEt}V#J?6C8>yW~D_MA=g3$b8rO91P zwdIefmyx4F^6j@HeZZWL%&tM3Vs=d#e^`|cZP25#b7=WTdp4g--p?b@*_QSd#M>v@ z`gOSaE!*a_Uy%2>3rl4|_!78|Sow$x3(tI}kpp(BN0g@0?m%{`N0g2_xy-QBPIZ+t zPaXUDTQ9$d?q(caX45Ysw)5L9g#!+A3bEPxmNOoKzXvoEyjwhuhD>9(5Mu+z)z`Pc zV2KDoeSO`O*>!2!ow@Hw%EPBs?2eSRrURnY@eu3l7tNnvZ+EY#$2&YI&&g?5q;h-@ zpsO0`)G3IxPn}}Lz+Ga&Ojfy5Vo=VAe9l;hjyL7q4teT7hvhHQJ~j1`>72Zz zKKX zuQM+KoRfDm@~5VgV?*q}lNV+Gd5Lb)!&Kg?-u~F;JX~Ic{bwp$`&~UI^8+qaUX=ak z_bV^T{Hg{;WKHnzIN&`_K7mzwZ6^JQhvRy#sj?6e=&u{_`x!L-R0h z3?>xvEW{pZUh?{rsQ$?G=AuH%I440$B_; zII1$ zI?Ks4Q~VGj_(GmhZUXu7Y@`~y$G4*DZK)580sB4in zbSpE=F!AZxuQm3cbJ=2IBi=|GNX-bZm{|*Bm`|Z%RjJ#(%3U}5TWFxDGVeO44V9*C zeg>{LNFyNZ(tEZqz2^^4*!ZV2kK=H#2^;6}j&?pg;Xr*8Jt}Za%s;jgvSSQOo!M0ALUX=xTA97W;A{GYrw?1&gcw-{xDn$LOB0H7iI77 zB!uyuw@2pb8p#Zo9P`Zflf% zzvYsn*EjC^Z2NxOAb+v=8cb?P@0GW01{}Za`>`x7I5vxal=y>k$#*-BcJX=LCnrzw zSl-FFMq9i=10_m%MI-!p60EgoW23}Y1(LxgLW*o5Nx0BE_Zn@|mi@Ca&9ly;G z5byb0NHdah?>6+yq^rQ4*kMNtBl_r4;Y&MXM?k|=~M z*w*_a0|vq~-p3TuRoq|UPZys_3%t3ekbM|Az5~9tkbO)c-vez6*@uG908cDuJURQv zx02uiceF4*lZ(5o#QytOO;?aM)z;rg+ypxDDE{L8-$nRCIExjWg@0Jj`v#znK@$qk zB@B$G0Cbc}7oYiioLTt;jeIIqSos5u{C*H>&D#L2*PGLp9nlPGtk9e2lM{TPV9r9UK8S-WSK z({FfQwL0^_#rl%RQs=lIN_+9CP3Jw=v(2bDL9K?7bvE6dy4dkpy#mvKn}m+5W#~f6 z1wZ55AX!+2iN$+K*slQ_&;F;xQj$){oqojg%F3RL#n%TN(stb53nRNKTr8>q*;v!v zsd>K{K{ISv`rpMG>cu+8o${4Mhj!>rT{c1t3AwkY!-URFLUM-S%3kL4h?lQC`ZxOIBYW3GKa}+`a?fhD(_1^ zGsm%vTzO3V+~?;%S|J)_(y4;;fz5*h5Oi$OVde!A@Xy1+A=u71?DtNld4Zab-1$|S z4;X&a$A9s|$}7L|;-qoiYi}uii>3r%TEIGTZh+yahV>=%ygI+mp{Keuw}{PwR1eYmOOfs5su9x%oG6q8ISFN z*a?`_IrB!f|I$_G#;D3qGXPZmrwTvS`Kjv956wGq+=t_F9M9u;3kS=P!oe30%Z8tM zDoTyMNL~-XTV8A#D6ILu!~8zK2QK4N1$`874ETBg zQJKa0^4|~97)2cV77*j?#m@lI2OCPAUtIX3SQ5(r4v=yxg2*S?bfOd$Cu0LecZI2QhW6;2%@lP`t8f-+JbFBs)LD%=KS{{9m08-AmK+2g0Wc^f#9t~vvh5#9Vfat?TbAEwxN`O7_rOX?k2$%vQ z%;=nAjMXfs#skghnxY;#?8-F;M%T9(SPmL#8C}&;K+3~m{2$z6y4OhD@WY+Yh)C zG^X7$bajsay%qkbgA83=zAG^pF_6zk*NQNAQVN*`=0PBq0_mO9hAJm@_!7>S~;RKf6fls}GSkp8uh zBORo_Bjihh^cRKHVIjRi$bl5n7YQ4M9}#lgh2eT>Jp}fC?ApIAi z8Ds(N>W>e5hHn;b5;`4b-v11rCu9el^w~o8>`C+GO4Q3M&(*)#Vgvqp3g^HV`JNR% zEo6J8{|@2ZLVlpp|5o9R!b^lr!Ue+fh0}#q!ePSWg}672T((2XXFDYV3~mMDelfab zK%-km`d;gw*rIS@;x5s`#AeY#qg%%KcPRcQg$on6ixwt$ACg~~xLLF?u|c#jalL3^ zVy$SQ(OpBCjqV!I#K-fcj`4veK551$&3L4RiEBg)6Ro0!iOWR`6RSiE6D^{JiRGe& ziQ7^61vs2zdn`a(o{NL-K82H?j?V#xU$1cL(3GgP{9DC8h%~}BD4a%T zNbeLqoivW;aL~;sje9+XgYHt%$BX9uOWman?8(60sqirh|AA;{Rqa=zrzo7ZK`8%x z(VQyg!_%$(I*c?9>ZH*PBi$MAxP+xAlScZjqUVal~yReu{u z<89&AM$wiF=^}H7qSqw4Tr_RLFnqb_pNn2A`dQIiM0Y|uuX4dfs~R^*r|I69Vy3lnnW^0(8Fs&Aj;Y^IrjaO@RK#=@xM$p`iuJFQGa@<}?2Q z>OS_v8_G4aRx~WHTIN2ogK9gNJhom~-d>T`$nm_>UhhXq$1Je-OZLWd!V=9)!7BYM z#{f;!vWBHgpbd0!Netz|cmmf`Q@O?sl>}8rtkO*Aphu9^YQ$s=g9HXQGDi}k^j~~~ zB^`{01XGVtS_ofoAFkViD;2stKVo%$#Nz*mwf_gNQxc-yV)P->+6uNMrBy7DacN+r z8^}3l*Ha%XT_zjJ=oO5J&>#s>pfM?rh|nMjQLM525f>vw;l}cJtU;141B+Y_6^(jZ z46jZ-eBQ!48hu4uTZ(dt#G^*i;0u;$J%7b&}?`(nD0yg*|Q z;b80bd1nl)nE*UPyTC!;p|m8Gb_djV7&D^G@>AcTV(HSe7Y<{;*tsyhhq-vy#!{Ap z-^AQcKFVD=z=pIk4xFR;D&&FhQR5C)?_o0Dn{{Eh`6ZwuM*{AHwVo%pGpV zWVnW>NI?c9&s*FbT-Uu@@@f=muHUIIJr*Z@cCwy@wL?2k8W{Es~ck@!s`e z`HR$hC=1BjDtR`Q?Em`u`B*}{WZ5DG1@&6WC9j*p+ab^IvaiSdg?@p-`m2$=Rteb& zd2D}0D6gvnzkJo7(JSEE+F<^6Dw3=F8h%XrTz3A<^@!BVcuMlz_5H}f$&1v>DA7H= zT=&No$YcAfL3zD3NxuC0%NwSbu}KAWb(O*Z80D3Z=&-$*`U}&`*c^~ISn?`6mKUj) zu_Yj{1o8qd(4ITi%h)P;{1&AvQ~qj{Ka77ZwjuWafO;9OAuG~u4Cr;_oE}A_UWVjN zH4jmI%ShgAt)KEg@Md@Yq#sCl`y<5bCW>(IU@d2^9J1%=AvQ<_Nz^)mMBde$jFSDj!_YB2F2L80=Z^fGEwHom(I zk4c`y6GG)h>1AA!vN1UaME9oT%|-sg%1gGsIBLdV+y|H%hw(1-f$&`O^fFLYoVPIR zjmH85uO#>!*hT7PT!<^3R%uu_dOqk6TQ37j8J;#sS}B7jF)Q1QQpOu7aZoAa=<0Rj zSuQVgXRaG}>X~hcQ?1&9=UsU~1&zY~Or*BS8>PaPvu&!J*g#mtHs6?L_h zAAe~NQm$-!n0hSh%%h}o9W%RAnL=?Y_CwiZ4QEa(+n%w+zW4U;FPzn0IAjWsEjTve z*dPg2>&E3-z9b{9pRu8G{rV!Ft{dHn70|Z5Vk;m2HhZY3itom!t$CyHnjE|gD%VZf zRK2dOdfjoqM}DS^co|w6K0OT+d`ekMx5{LvT-Fu`!W{D4)U_{TIA`)m0+Du)^*=!kwbMm){W*Kxs~gS ze+lqitnDUeUNvqzRNQRo0njopQVXF{N%!Ou^uT*vwX} z^3*9iSI(Kdc3JC1KB) z2G828+K(y6!ovR7Fp6nkY(KR%Rc$}3YD1kosa&@`gkl|)U?s4os@q<50nb#f-j;-- z6BLW~A4ef!3NMBITNz~AuZm~%c;3Prq;h?C8WgKu-{~#`-8lr?v2u@J-huRbSRUL9 zyO2KG%SnYp)|8_T3Wuz(F>uRV1D{!Lps}@Z$VD3phpa@KzhX;u+xjwiSGTPx0aUiF zA8g>3l!0&eWthFctJdY?#@b!EevP>oaF124pHc*`9owgDD?!rRr?e*lmFriwn>u$I zM7Ut6*|+foh5FY0rrkW{s@Ar$u==c8S6F%KwB0L*qGhmPw*DUiE1IE^9~R35csfFQ z=bG7>1L+=>A`Rns!p`CsT+Yniwr%3B|$VI6#( zx`7=od79s}a#_p7OQ$Sbc~K+w6GrH)B`u3}nf5Uo zpw!tX3zo&7u@6&^4DbGbI+sF@Ix2rI!r3;i0TYo=pby)nAkclT9!S3|^*6jx;2M>Q zWUUmcoW4~+zih7fuXp@s2lx+CzihMQm`)XCx%4D=6mT1kP2%I45xQj8KzcQ+^RLfa z-|3SHJ3D(4c=(v#{H86}xr_vttPjNV>80I;@Ll4sGTitJdt;GIcVXb_Ww2|1~NL&v((H~bM z-v1tiZ(+o4=i(n~Xqy1_IN}p>77zxSG+0hLT6d?5&wLy{HjRNM4X*XDX$&-JPy@!M zF_39|mZVw#G;lS@$3b>4fgmi~!<>E@^K$%uBY@_A;R>0>cximDC1VVti_fGzcbjgh zNw*duHr-N_?(Lv$x}{9_mn2QPrA(JAAYz4Ir|>cHc6iWrrYBr{=2tx7V~p_W2(iM) z7~w6T6J}}e7)tvuMlAXW$A@?U(XpNCvl}l&JE=SyGTu8v!ESc?An08UV9)g*85rfH6m7y z(X6DI{`@QP$G%>CU@;qfC$s*{tgg%dG=d5#tYo=gUC;NTJDiXQ~1^vM3(Q=iWRN6ra?WHJ<2ncvqC?2)m7Q zK0k%-Hlg|4?B|C(otHlfr#pH2&#c+^(pBAZ3%Yh4+x670f1*Jd7<l|@-7STye&$59*kz6Pa?*`d-aMl3upk{ky2H!vM!|{ zimm$JVTHK1eJlqvfosVecI|o^P7jaAtC0E;$Hc074F?^&0o9!o>&r_2pU@SoZd$Zt ze#6q(@Csy8;^3*K8F~drRH7~eu_{!!L!N(y6J;!sCKTXanPgZxS{^L)(EsTTvqQSTK{pZCuN2^{kG?Ifz3?%-*rhiIzflD9d|AsS@J5<=?Q7C z$vWkmR9sxZO~(c8bddE4o!*u9dPt{UCn&q7U8c_QGBw?uvQuScXH}z%HO6B($DO8Q z)wC|OD&fVcMo$F+ASv?(^qC2HsBKwP%fy=Hl7pvKeHQk-MG((guU95||Sm(IY>piav+^Ne(h)Qa^xc}nC$|{#*;a*89 zmpw`UJC?MR>F$){uyi4Xa9zeD@nk&!3wuSDrOuwD|6Ql?VUH!N1Wzc4yIIkp6`ZKk z3284Imi}LaQ`>wvd(AH%x0yS;lYDP-@d}k%H<+-qEx}J7H~jJybM9aH$j)DV{lyLS zX0<^}0~7hD&~#OQWVn09eQ;G*v&t)FhXCJ~!fUfv;jTWpc+-jvsD@I(H63Ud*M=y) z+PE$_bo|sWCt}^4FD1vpb#p%Nj6u#hRFgH;kkM$M!Q0Ue_brQ^(fsCU-C1-3-O^v1 z6Tcem|HNMMOO~~u`OaIpWGM!gT{DKyf`%2B_&n6U-S934h|`13zB==Cb%W!|cHB7Y zB6~t4BQW%xQSC-~mNysoR-@~pC(&_2>zn>xs@F%5|KtdMdi(T>`EkLcn

    i^-AeD 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 o8K%U;yY2`)P ziTxK}df}!Ua0X&RKj6~JtH)N$biwO!SmkAEs&z*xPcLss-g|-edl@D$11@d;qU^-1 zJbRn8Ew6Puu?&2GpyQk}-Ip|fxAt>C#Rc-$x}DfueBhv)X25wC6P$F@PIen|T6s}+ zV&7JI$d0%^_z)CuY2`)Pi9M?FrfPYos=N!3Kdp)sc_jE8_%q_i0q;H)?G$|;`Zaf- zxKrTgfnct^mpWhpeKao8?u)BvdPY&3M=l2a3E6#dUp88G^(^I1VDE8zGUY3Ng)51@IIZc!gY*kNUjqm*GF1tz1H-i6pXvD*$T2@OP3Bwu`_GKP7Jx9wt3{Ms8f~rn3aqS za=|`SUR!&UA!o)=5ElvTA|T!NWv*?Q-hc9?p)EVIk-UO*^su9rN9qK4CgKoh_YUJ@ zkGIkqhO+Uy=a~$G56LTVNVi-<51mcRAsg?NSq!8Qz406eH<_IG0>%u*aV9-SK9^9PN z(Qr0^iI_4N2K`C6B!t*uKwI`<2X+6eDm`)Hl=rD1gzX=5^RLR7)G15t!}#3cYr3^d zyVCOa4e;y!Uv}6UwU1Y=+F2!4PS6gF=i7~AneyGJe2EtWc4kwr6f3iSh;P8LU-|Vh z9J2GGT-ulIRlZs)_mO~HEjPc_;Ri?U4_+^~%ODBIoO%0x87_%%Y@MpT7Y&1Bof{!d zBxT+v^cK>kND%*Tp`VBMt4#m#_x+O1pgPEI9v%Mxi4WosGoGx6;mdvoe|_bgonrlg z`SDKqId>^fdw#fLUgCL3lHp|ii4jA{-Xq3B+KPJ%;dHUNg$T`*LiQj-Y!5pJYDPS@ z(45@4_|J%Ce;*(U4QJ+6lA~YD%KZ`9;9_%Mg3rkBC-Pq=E%N(`{1YHFzFSf=$5kMm zd|HOdZeKt;&-AJY@kU&}h~u9TmoMUe%Jc=-GyRYl1-hnJWsG6KTvI_qSe%y_*m)!V z+TFo4SsM|MO>?s!knG%pzY|lXzCQUtNMhu#Zud-yHHCRqS^Xy z+b9fOTDOg|&-EckXKTbSr5FXk)CiS~VHsPjxXgl>-=-+BKci2V2kuEMDo#8B1EcGU za-PWie8$&eG$-msbE1q1T`~sxY>Diw1sjy&V|<7-wm3hz7W`9BWzVH_h2_w z1>d;n+@3mY1!NdRu~59QRk2gjNsUWmqhWhT`n5mjdap=ruxuCq5imBx_EvLsa+&h4GS_-qsv z9O!T&>s{prU1;LGf17HA%TgiF5O6Hx+;rJttw{gUA;;uOQ;ovPj83%1l@N+ux5AN4WQv;vwS2!3ofCQY3rGT?EUPhCk z7ifAJ`GJ;^A@G38v*~3lhj1(Zb&a?DGTueJ&Ck0UZ{?R9g+0hm9(-Ch58@EJ9c1y` zlt&pnk3F|v7Fa^phjnjxIRC+;D;eQjqQ35_2D8K03FV5x%Y=Nf zQ7+Ea6~S&{G7#ScrqddSG_6-g0()zCH{e*%oq(gj7XzXuyS)Q>41WWN_sPMp0x>2K z`w!SZi2cWDn6YAsD3>Epp68oNv(fMTf z#Q`MwK;{{P_HflPlB5O;gGO+e`GO|Jw} z4)w1oXF8DeGeK$iCEuq4nZA$G$0^NE9h3tZoPrZOg?wNVG~&cg0re(!3h0eOb|59- z>xS@R;0Pe{AbZ$Q-Vo5dlL~=JAbK>BM?RcG_}J11g9f;J#2~K{k3b0@3LJoX>jh+e zV%|jTJqmz)zd|b#`wmRw=e9r&#*<>-f%;3?1Bdn=I}v|8a61rpn%H%qE^?be_XKVQ zqMpRA1D~bDu7l-oL^zsO?m8fvXv!WqT|tjQIP(J;bdrDav3#so2C`fh+02Kb-qo5e z>p}=eQL<>)M3l8VfP8Z$%@GZ;UU7wDZ$(;r;TN*gSf%0An`S&;Sc#7+@_m=|e<;dJ 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 literal 0 HcmV?d00001 diff --git a/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Resources/Info.plist b/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Resources/Info.plist new file mode 100644 index 0000000..94afdb0 --- /dev/null +++ b/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/A/Resources/Info.plist @@ -0,0 +1,42 @@ + + + + + BuildMachineOSBuild + 13A584 + CFBundleDevelopmentRegion + English + CFBundleExecutable + OCHamcrestIOS + CFBundleIdentifier + org.hamcrest.OCHamcrestIOS + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + OCHamcrestIOS + CFBundlePackageType + FMWK + CFBundleShortVersionString + 3.0.0 + CFBundleSignature + ???? + CFBundleVersion + 3.0.0 + DTCompiler + com.apple.compilers.llvm.clang.1_0 + DTPlatformBuild + 5A1413 + DTPlatformVersion + GM + DTSDKBuild + 12D75 + DTSDKName + macosx10.8 + DTXcode + 0500 + DTXcodeBuild + 5A1413 + NSHumanReadableCopyright + Copyright © 2013 hamcrest.org + + diff --git a/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/Current b/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/Current new file mode 120000 index 0000000..8c7e5a6 --- /dev/null +++ b/Pods/HockeySDK/Support/HockeySDKTests/OCHamcrestIOS.framework/Versions/Current @@ -0,0 +1 @@ +A \ No newline at end of file diff --git a/Pods/HockeySDK/Support/HockeySDKTests/OCMockitoIOS.framework/Headers b/Pods/HockeySDK/Support/HockeySDKTests/OCMockitoIOS.framework/Headers new file mode 120000 index 0000000..a177d2a --- /dev/null +++ b/Pods/HockeySDK/Support/HockeySDKTests/OCMockitoIOS.framework/Headers @@ -0,0 +1 @@ +Versions/Current/Headers \ No newline at end of file diff --git a/Pods/HockeySDK/Support/HockeySDKTests/OCMockitoIOS.framework/OCMockitoIOS b/Pods/HockeySDK/Support/HockeySDKTests/OCMockitoIOS.framework/OCMockitoIOS new file mode 120000 index 0000000..9dc2b2d --- /dev/null +++ b/Pods/HockeySDK/Support/HockeySDKTests/OCMockitoIOS.framework/OCMockitoIOS @@ -0,0 +1 @@ +Versions/Current/OCMockitoIOS \ No newline at end of file diff --git a/Pods/HockeySDK/Support/HockeySDKTests/OCMockitoIOS.framework/Resources b/Pods/HockeySDK/Support/HockeySDKTests/OCMockitoIOS.framework/Resources new file mode 120000 index 0000000..953ee36 --- /dev/null +++ b/Pods/HockeySDK/Support/HockeySDKTests/OCMockitoIOS.framework/Resources @@ -0,0 +1 @@ +Versions/Current/Resources \ No newline at end of file diff --git a/Pods/HockeySDK/Support/HockeySDKTests/OCMockitoIOS.framework/Versions/A/Headers/MKTBaseMockObject.h b/Pods/HockeySDK/Support/HockeySDKTests/OCMockitoIOS.framework/Versions/A/Headers/MKTBaseMockObject.h new file mode 100644 index 0000000..2d45194 --- /dev/null +++ b/Pods/HockeySDK/Support/HockeySDKTests/OCMockitoIOS.framework/Versions/A/Headers/MKTBaseMockObject.h @@ -0,0 +1,17 @@ +// +// OCMockito - MKTBaseMockObject.h +// Copyright 2013 Jonathan M. Reid. See LICENSE.txt +// +// Created by: Jon Reid, http://qualitycoding.org/ +// Source: https://github.com/jonreid/OCMockito +// + +#import +#import "MKTPrimitiveArgumentMatching.h" + + +@interface MKTBaseMockObject : NSProxy + +- (id)init; + +@end diff --git a/Pods/HockeySDK/Support/HockeySDKTests/OCMockitoIOS.framework/Versions/A/Headers/MKTClassObjectMock.h b/Pods/HockeySDK/Support/HockeySDKTests/OCMockitoIOS.framework/Versions/A/Headers/MKTClassObjectMock.h new file mode 100644 index 0000000..4263150 --- /dev/null +++ b/Pods/HockeySDK/Support/HockeySDKTests/OCMockitoIOS.framework/Versions/A/Headers/MKTClassObjectMock.h @@ -0,0 +1,22 @@ +// +// OCMockito - MKTClassObjectMock.h +// Copyright 2013 Jonathan M. Reid. See LICENSE.txt +// +// Created by: Jon Reid, http://qualitycoding.org/ +// Source: https://github.com/jonreid/OCMockito +// +// Created by: David Hart +// + +#import "MKTBaseMockObject.h" + + +/** + Mock object of a given class object. + */ +@interface MKTClassObjectMock : MKTBaseMockObject + ++ (id)mockForClass:(Class)aClass; +- (id)initWithClass:(Class)aClass; + +@end diff --git a/Pods/HockeySDK/Support/HockeySDKTests/OCMockitoIOS.framework/Versions/A/Headers/MKTObjectAndProtocolMock.h b/Pods/HockeySDK/Support/HockeySDKTests/OCMockitoIOS.framework/Versions/A/Headers/MKTObjectAndProtocolMock.h new file mode 100644 index 0000000..c35e21a --- /dev/null +++ b/Pods/HockeySDK/Support/HockeySDKTests/OCMockitoIOS.framework/Versions/A/Headers/MKTObjectAndProtocolMock.h @@ -0,0 +1,20 @@ +// +// OCMockito - MKTObjectAndProtocolMock.h +// Copyright 2013 Jonathan M. Reid. See LICENSE.txt +// +// Created by: Kevin Lundberg +// Source: https://github.com/jonreid/OCMockito +// + +#import "MKTProtocolMock.h" + + +/** + Mock object of a given class that also implements a given protocol. + */ +@interface MKTObjectAndProtocolMock : MKTProtocolMock + ++ (id)mockForClass:(Class)aClass protocol:(Protocol *)protocol; +- (id)initWithClass:(Class)aClass protocol:(Protocol *)protocol; + +@end diff --git a/Pods/HockeySDK/Support/HockeySDKTests/OCMockitoIOS.framework/Versions/A/Headers/MKTObjectMock.h b/Pods/HockeySDK/Support/HockeySDKTests/OCMockitoIOS.framework/Versions/A/Headers/MKTObjectMock.h new file mode 100644 index 0000000..22e0b5a --- /dev/null +++ b/Pods/HockeySDK/Support/HockeySDKTests/OCMockitoIOS.framework/Versions/A/Headers/MKTObjectMock.h @@ -0,0 +1,20 @@ +// +// OCMockito - MKTObjectMock.h +// Copyright 2013 Jonathan M. Reid. See LICENSE.txt +// +// Created by: Jon Reid, http://qualitycoding.org/ +// Source: https://github.com/jonreid/OCMockito +// + +#import "MKTBaseMockObject.h" + + +/** + Mock object of a given class. + */ +@interface MKTObjectMock : MKTBaseMockObject + ++ (id)mockForClass:(Class)aClass; +- (id)initWithClass:(Class)aClass; + +@end diff --git a/Pods/HockeySDK/Support/HockeySDKTests/OCMockitoIOS.framework/Versions/A/Headers/MKTOngoingStubbing.h b/Pods/HockeySDK/Support/HockeySDKTests/OCMockitoIOS.framework/Versions/A/Headers/MKTOngoingStubbing.h new file mode 100644 index 0000000..f00fa24 --- /dev/null +++ b/Pods/HockeySDK/Support/HockeySDKTests/OCMockitoIOS.framework/Versions/A/Headers/MKTOngoingStubbing.h @@ -0,0 +1,70 @@ +// +// OCMockito - MKTOngoingStubbing.h +// Copyright 2013 Jonathan M. Reid. See LICENSE.txt +// +// Created by: Jon Reid, http://qualitycoding.org/ +// Source: https://github.com/jonreid/OCMockito +// + +#import +#import "MKTPrimitiveArgumentMatching.h" + +@class MKTInvocationContainer; + + +/** + Methods to invoke on @c given(methodCall) to return stubbed values. + */ +@interface MKTOngoingStubbing : NSObject + +- (instancetype)initWithInvocationContainer:(MKTInvocationContainer *)invocationContainer; + +/// Stubs given object as return value. +- (MKTOngoingStubbing *)willReturn:(id)object; + +/// Stubs given @c BOOL as return value. +- (MKTOngoingStubbing *)willReturnBool:(BOOL)value; + +/// Stubs given @c char as return value. +- (MKTOngoingStubbing *)willReturnChar:(char)value; + +/// Stubs given @c int as return value. +- (MKTOngoingStubbing *)willReturnInt:(int)value; + +/// Stubs given @c short as return value. +- (MKTOngoingStubbing *)willReturnShort:(short)value; + +/// Stubs given @c long as return value. +- (MKTOngoingStubbing *)willReturnLong:(long)value; + +/// Stubs given long long as return value. +- (MKTOngoingStubbing *)willReturnLongLong:(long long)value; + +/// Stubs given @c NSInteger as return value. +- (MKTOngoingStubbing *)willReturnInteger:(NSInteger)value; + +/// Stubs given unsigned char as return value. +- (MKTOngoingStubbing *)willReturnUnsignedChar:(unsigned char)value; + +/// Stubs given unsigned int as return value. +- (MKTOngoingStubbing *)willReturnUnsignedInt:(unsigned int)value; + +/// Stubs given unsigned short as return value. +- (MKTOngoingStubbing *)willReturnUnsignedShort:(unsigned short)value; + +/// Stubs given unsigned long as return value. +- (MKTOngoingStubbing *)willReturnUnsignedLong:(unsigned long)value; + +/// Stubs given unsigned long long as return value. +- (MKTOngoingStubbing *)willReturnUnsignedLongLong:(unsigned long long)value; + +/// Stubs given @c NSUInteger as return value. +- (MKTOngoingStubbing *)willReturnUnsignedInteger:(NSUInteger)value; + +/// Stubs given @c float as return value. +- (MKTOngoingStubbing *)willReturnFloat:(float)value; + +/// Stubs given @c double as return value. +- (MKTOngoingStubbing *)willReturnDouble:(double)value; + +@end diff --git a/Pods/HockeySDK/Support/HockeySDKTests/OCMockitoIOS.framework/Versions/A/Headers/MKTPrimitiveArgumentMatching.h b/Pods/HockeySDK/Support/HockeySDKTests/OCMockitoIOS.framework/Versions/A/Headers/MKTPrimitiveArgumentMatching.h new file mode 100644 index 0000000..8012fe1 --- /dev/null +++ b/Pods/HockeySDK/Support/HockeySDKTests/OCMockitoIOS.framework/Versions/A/Headers/MKTPrimitiveArgumentMatching.h @@ -0,0 +1,50 @@ +// +// OCMockito - MKTPrimitiveArgumentMatching.h +// Copyright 2013 Jonathan M. Reid. See LICENSE.txt +// +// Created by: Jon Reid, http://qualitycoding.org/ +// Source: https://github.com/jonreid/OCMockito +// + +@protocol HCMatcher; + + +/** + Ability to specify OCHamcrest matchers for primitive numeric arguments. + */ +@protocol MKTPrimitiveArgumentMatching + +/** + Specifies OCHamcrest matcher for a specific argument of a method. + + For methods arguments that take objects, just pass the matcher directly as a method call. But + for arguments that take primitive numeric types, call this to specify the matcher before passing + in a dummy value. Upon verification, the actual numeric argument received will be converted to + an NSNumber before being checked by the matcher. + + The argument index is 0-based, so the first argument of a method has index 0. + + Example: +@code +[[verify(mockArray) withMatcher:greaterThan([NSNumber numberWithInt:1]) forArgument:0] + removeObjectAtIndex:0]; +@endcode + This verifies that @c removeObjectAtIndex: was called with a number greater than 1. + */ +- (id)withMatcher:(id )matcher forArgument:(NSUInteger)index; + +/** + Specifies OCHamcrest matcher for the first argument of a method. + + Equivalent to withMatcher:matcher forArgument:0. + + Example: +@code +[[verify(mockArray) withMatcher:greaterThan([NSNumber numberWithInt:1]) forArgument:0] + removeObjectAtIndex:0]; +@endcode + This verifies that @c removeObjectAtIndex: was called with a number greater than 1. +*/ +- (id)withMatcher:(id )matcher; + +@end diff --git a/Pods/HockeySDK/Support/HockeySDKTests/OCMockitoIOS.framework/Versions/A/Headers/MKTProtocolMock.h b/Pods/HockeySDK/Support/HockeySDKTests/OCMockitoIOS.framework/Versions/A/Headers/MKTProtocolMock.h new file mode 100644 index 0000000..91ed1d2 --- /dev/null +++ b/Pods/HockeySDK/Support/HockeySDKTests/OCMockitoIOS.framework/Versions/A/Headers/MKTProtocolMock.h @@ -0,0 +1,23 @@ +// +// OCMockito - MKTProtocolMock.h +// Copyright 2013 Jonathan M. Reid. See LICENSE.txt +// +// Created by: Jon Reid, http://qualitycoding.org/ +// Source: https://github.com/jonreid/OCMockito +// + +#import "MKTBaseMockObject.h" + + +/** + Mock object implementing a given protocol. + */ +@interface MKTProtocolMock : MKTBaseMockObject +{ + Protocol *_mockedProtocol; +} + ++ (id)mockForProtocol:(Protocol *)aProtocol; +- (id)initWithProtocol:(Protocol *)aProtocol; + +@end diff --git a/Pods/HockeySDK/Support/HockeySDKTests/OCMockitoIOS.framework/Versions/A/Headers/OCMockitoIOS.h b/Pods/HockeySDK/Support/HockeySDKTests/OCMockitoIOS.framework/Versions/A/Headers/OCMockitoIOS.h new file mode 100644 index 0000000..3c77271 --- /dev/null +++ b/Pods/HockeySDK/Support/HockeySDKTests/OCMockitoIOS.framework/Versions/A/Headers/OCMockitoIOS.h @@ -0,0 +1,218 @@ +// +// OCMockito - OCMockito.h +// Copyright 2013 Jonathan M. Reid. See LICENSE.txt +// +// Created by: Jon Reid, http://qualitycoding.org/ +// Source: https://github.com/jonreid/OCMockito +// + +#import + +#import "MKTClassObjectMock.h" +#import "MKTObjectMock.h" +#import "MKTObjectAndProtocolMock.h" +#import "MKTOngoingStubbing.h" +#import "MKTProtocolMock.h" +#import + + +#define MKTMock(aClass) [MKTObjectMock mockForClass:aClass] + +/** + Returns a mock object of a given class. + + (In the event of a name clash, don't \#define @c MOCKITO_SHORTHAND and use the synonym + @c MKTMock instead.) + */ +#ifdef MOCKITO_SHORTHAND + #define mock(aClass) MKTMock(aClass) +#endif + + +#define MKTMockClass(aClass) [MKTClassObjectMock mockForClass:aClass] + +/** + Returns a mock class object of a given class. + + (In the event of a name clash, don't \#define @c MOCKITO_SHORTHAND and use the synonym + @c MKTMockClass instead.) + */ +#ifdef MOCKITO_SHORTHAND + #define mockClass(aClass) MKTMockClass(aClass) +#endif + + +#define MKTMockProtocol(aProtocol) [MKTProtocolMock mockForProtocol:aProtocol] + +/** + Returns a mock object implementing a given protocol. + + (In the event of a name clash, don't \#define @c MOCKITO_SHORTHAND and use the synonym + @c MKTMockProtocol instead.) + */ +#ifdef MOCKITO_SHORTHAND + #define mockProtocol(aProtocol) MKTMockProtocol(aProtocol) +#endif + + +#define MKTMockObjectAndProtocol(aClass, aProtocol) [MKTObjectAndProtocolMock mockForClass:aClass protocol:aProtocol] + +/** + Returns a mock object of a given class that also implements a given protocol. + + (In the event of a name clash, don't \#define @c MOCKITO_SHORTHAND and use the synonym + @c MKTMockObjectAndProtocol instead.) + */ +#ifdef MOCKITO_SHORTHAND + #define mockObjectAndProtocol(aClass, aProtocol) MKTMockObjectAndProtocol(aClass, aProtocol) +#endif + + +OBJC_EXPORT MKTOngoingStubbing *MKTGivenWithLocation(id testCase, const char *fileName, int lineNumber, ...); +#define MKTGiven(methodCall) MKTGivenWithLocation(self, __FILE__, __LINE__, methodCall) + +/** + Enables method stubbing. + + Use @c given when you want the mock to return particular value when particular method is called. + + Example: + @li @ref [given([mockObject methodReturningString]) willReturn:@"foo"]; + + See @ref MKTOngoingStubbing for other methods to stub different types of return values. + + (In the event of a name clash, don't \#define @c MOCKITO_SHORTHAND and use the synonym + @c MKTGiven instead.) + */ +#ifdef MOCKITO_SHORTHAND + #define given(methodCall) MKTGiven(methodCall) +#endif + + +OBJC_EXPORT id MKTVerifyWithLocation(id mock, id testCase, const char *fileName, int lineNumber); +#define MKTVerify(mock) MKTVerifyWithLocation(mock, self, __FILE__, __LINE__) + +/** + Verifies certain behavior happened once. + + @c verify checks that a method was invoked once, with arguments that match given OCHamcrest + matchers. If an argument is not a matcher, it is implicitly wrapped in an @c equalTo matcher to + check for equality. + + Examples: +@code +[verify(mockObject) someMethod:startsWith(@"foo")]; +[verify(mockObject) someMethod:@"bar"]; +@endcode + + @c verify(mockObject) is equivalent to +@code +verifyCount(mockObject, times(1)) +@endcode + + (In the event of a name clash, don't \#define @c MOCKITO_SHORTHAND and use the synonym + @c MKTVerify instead.) + */ +#ifdef MOCKITO_SHORTHAND + #undef verify + #define verify(mock) MKTVerify(mock) +#endif + + +OBJC_EXPORT id MKTVerifyCountWithLocation(id mock, id mode, id testCase, const char *fileName, int lineNumber); +#define MKTVerifyCount(mock, mode) MKTVerifyCountWithLocation(mock, mode, self, __FILE__, __LINE__) + +/** + Verifies certain behavior happened a given number of times. + + Examples: +@code +[verifyCount(mockObject, times(5)) someMethod:@"was called five times"]; +[verifyCount(mockObject, never()) someMethod:@"was never called"]; +@endcode + + @c verifyCount checks that a method was invoked a given number of times, with arguments that + match given OCHamcrest matchers. If an argument is not a matcher, it is implicitly wrapped in an + @c equalTo matcher to check for equality. + + (In the event of a name clash, don't \#define @c MOCKITO_SHORTHAND and use the synonym + @c MKTVerifyCount instead.) + */ +#ifdef MOCKITO_SHORTHAND + #define verifyCount(mock, mode) MKTVerifyCount(mock, mode) +#endif + + +OBJC_EXPORT id MKTTimes(NSUInteger wantedNumberOfInvocations); + +/** + Verifies exact number of invocations. + + Example: +@code +[verifyCount(mockObject, times(2)) someMethod:@"some arg"]; +@endcode + + (In the event of a name clash, don't \#define @c MOCKITO_SHORTHAND and use the synonym + @c MKTTimes instead.) + */ +#ifdef MOCKITO_SHORTHAND + #define times(wantedNumberOfInvocations) MKTTimes(wantedNumberOfInvocations) +#endif + + +OBJC_EXPORT id MKTNever(void); + +/** + Verifies that interaction did not happen. + + Example: + @code + [verifyCount(mockObject, never()) someMethod:@"some arg"]; + @endcode + + (In the event of a name clash, don't \#define @c MOCKITO_SHORTHAND and use the synonym + @c MKTNever instead.) + */ +#ifdef MOCKITO_SHORTHAND + #define never() MKTNever() +#endif + + +OBJC_EXPORT id MKTAtLeast(NSUInteger minimumWantedNumberOfInvocations); + +/** + Verifies minimum number of invocations. + + The verification will succeed if the specified invocation happened the number of times + specified or more. + + Example: +@code +[verifyCount(mockObject, atLeast(2)) someMethod:@"some arg"]; +@endcode + + (In the event of a name clash, don't \#define @c MOCKITO_SHORTHAND and use the synonym + @c MKTAtLeast instead.) + */ +#ifdef MOCKITO_SHORTHAND + #define atLeast(minimumWantedNumberOfInvocations) MKTAtLeast(minimumWantedNumberOfInvocations) +#endif + + +OBJC_EXPORT id MKTAtLeastOnce(void); + +/** + Verifies that interaction happened once or more. + + Example: +@code +[verifyCount(mockObject, atLeastOnce()) someMethod:@"some arg"]; +@endcode + + (In the event of a name clash, don't \#define @c MOCKITO_SHORTHAND and use the synonym + @c MKTAtLeastOnce instead.) + */ +#ifdef MOCKITO_SHORTHAND + #define atLeastOnce() MKTAtLeastOnce() +#endif diff --git a/Pods/HockeySDK/Support/HockeySDKTests/OCMockitoIOS.framework/Versions/A/OCMockitoIOS b/Pods/HockeySDK/Support/HockeySDKTests/OCMockitoIOS.framework/Versions/A/OCMockitoIOS new file mode 100644 index 0000000000000000000000000000000000000000..1393426c1c1ed229b01a841c8579e227f8ffad85 GIT binary patch literal 1299132 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

    E!VZ1{z1+R+`b3U)tfV@zhC9|JQ-SHB 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

    )0^8yC|pOQN+jS~0M=8uwUcw)wVv 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 z z66FKx1t}j?FNoJhRq+Khhb*+OZi;RYe?Z#0EO%9c*ubWWBI+hWiw87egcc2&F@pY9 zOGtWIt(K5EY2mHEn?+Y|jFpqFwZw-1+i5K^@&~Yk8Z563pI%<8q{R1BBekFSo>#c= zh{`FAsGQRD%CVV=cw0)-+ky?B-WW__=cG3V6MhcVoD4xDi?6umH7$3GQL|!sjeU_8 zu3ELiRmK$Xh7BM$8N)Ikwe+5ah8oHnB8p(j^;H!`F6E-gr9u?BREQ#%3Q+`8A>WJ& zQ3O+=ieN-ug_T!YZs}5yUs`VEmx}yS$XC5EB?-?Bt`}xriPa-x^unC6t-hgiRWoeD ziAtC-eK2+C=Q;^oaOg5S{pbrvxgJc0(seNooYL$j^O{6YxS{HUc}2#Pl*ik|$!0#9 zju*o!u4-DmA6aeHHkdS_5N!9qU^zPZJ7?kGUE=5ynT=-RS=fHNc}SHB2S9#9D%%G zok>y#2GeK4a~O1-_o90R^879+8}c?lR|7T(*-$}!A$vq#od_vG>6q7Elvjqt!m%Lr z7pecIKq6`VbweJX?~#G)FH--_1d)g6#_dX}{q(w&{6*TUT`cl`E%F{2n!HH;H^nlJ z?U(t5-58tmwjUYBx=fmbew6yo`i8dpmRjsMpTFfep^(pTlg5!4r=@(SezR(VHIUQFxI zrMz+~FG~N-%ksXqOJ#Ln?j+#CAH6B^R2% znptjp3C&-W{+mOX+oHQbVy&0o&DD^HM?x1WFG~N-d}$xww{e|sB;>|}P}^1vPrnTK!S<~3_KTRI%8Sx}(=6?6iO755 z?c^^+|IK|OZ>q?fF->kf2rX}v{+pkOycUUd{-E*()_+qa?X6Do(_3u6r~6AR!aF5@ zB)F#B2mTIV4;K5Y@ZsQRssU}|c(MzIwV64qn zzaA2Q{I?cUr%c8@&|M9?u+FVOv4soUueo~f$?n1yC;T25-7|$v#r+QWt~HedzAjH$HUt(KgtjU7YokzCx7=o4e2xv-|pEVN=)IqotmeuQg=+@V`^v6XBn-{ zoM8MkUvD6tXEKjLy2l#-*FpDX9%t_FSUmqDKhJS)eL7?Oi&NfwYt@~o3x8gp8DI4p z_Nv^e&YqiqlGetqM^yZdV&-tE`%!#2gdc)D{g zg!SIVZCf^V&bOwPyjkTA?1SFe+|k(xGsE80aEH^t(2K4(1Lp!7H^X?-rj3+=jq9C_ z^YN|2v4oEKCd_>2@_HN!Snt@q*d4S)%rML=*y7Vr+vi|^!kvw zjx#RXQr|M)X{zsNaymE&F+E?${>7+igY*8jO^ps1P^#0qvatm@Y1<5~IsuQ%k^FL# z&jESTz-xB4GNN3X0CBZX=(XBe|s#B7a;q=*bAW$P0>?M#Iq*K{Yr1 zzAI~&t$Z(*7^jK9^=#q@js4e)sm^t}Jxixrjkp_VHu{}z7$$hN#9NcAc%Xe&&yD=j3!-h5nrKW(N)nn*AxIL2*vtPlV zSkC+LH@6Fa-Xb|Eo{doPjIx5fBcN}@m0=ZF8B6cE@!Y%NHItG?4v)R1XEMMa+5?E;`-j7HegCHtSOvAofxGv00yLvi=>=HtSO< z_zhgn$c>aZ%hiLVli9IWo(r+kX62w-W3x${ikM}jaeG|WgC_P7G)1b7%I~8{xINO| zM{EDVi4`T_=+KN1gi^akFZ##^{Ctj+9On0U?+ z{LQ5vE1olpO&Y_Z$DhM}JS*R;PAAT%8PDo07{Ps@tYIgIJ9pzn{F7ba1uf(TP#R6j z9`iayIytnMRAe6SSQ;gB#vQ?*THIMN+{l;9Qx6Tea%K&qHTZZecRPSK&T=M={|q22 zd%{Nn$C&MlPW*GYugo3hC7VaPX79t5Ycz@FEmqQK63eRw$(@k7Mw3|H1|^LqvAoMb zQhKh@B$oFv+cPd8~Fms<=@GmdE{stcJK% z29`4kA&2GRPflzMZA9hp5ZEvlEj#Pj33(&(xIvFu%wrZ~dHg`NVfJO1+euMij@P6zFC+F+9 z8DsLlmI8*I;|XwbFhaz$i?C+z>DD>B&{Nry>8b3ow&=4w59;d4w#MO+`Y2eLNA3E} z-Ny@Knfb$qQ?rk;9-o)0C*{vU*u4-t6r-*2zmpdSwIYG+MOHZRN01%({&C^d(KO`jU=OeM!d_#%vjJ zq##ACk!hZOhG{haP)^ib(}e!~@|82&Tk1PGTAa0{acg5s8-}T~RxUZWW0nS(JF{eF z$NEcWt-Jzb@YY$?&FePTZ@yyInVX@j^zydNmv+oL6C-iV>0@{}(`W&p@2sVb_3Ilq zcNjem-uT7pCDH*4Gy~y8{70l! zfE{?)$XH3^8Aa9x{LI=n#s(oOCyMUOVOXF3(H*1e&Xm z$EKNj+{%OO6?%Kn^{SCO7j{eL4!D`T#O2A&zXNSfxW>i)gQ~hiImsGecK%NMV6&1bK$Rcii!^Y;Dx-94u6?b#LC;}@JCPw_@*p>C#qdi zzE|%+tBcv~=?O~&CKlIX=C0l`Ps7e0n)y8MaimVI4XEuT^&!u=IEBV^R&%E}pDDXD zefjcDa1N~ULUUx5Q!n4(eNa0bv#Q(dZU&B;w$-K?XiQL3u_A1mcYbQi@fxJe>DFqN z2GT&|Z}82~RfGA_zepjCRWaig+6hrgldg9rwCSg8fhIvM;L-YcAjAI?75bX#?4_NF z^`3;&-m+zLeT(;|`R8+ekKPG1PcsqkH5*sy2l{blV~H%D<2z%QyHr#es6ZrfM*^X-$uHCry;o?CS%AkG$x(^6l zY)R)9p`R1l3_5YIv>7sj*7#;T4O-)?QU{xFcN0KLIf{#qY?+QY9QPtQ6PNN;re6lU zbt8c*gXPvR=ms0b5k(9LM|nZz5e(1#;FD@L?{H3;3yk@=cn%wj%4Y@q3l#397opl;;*2DGIJR4 z+Jj4EnHdm}9H)yH$7qbm-z161;UB#?qLWY@Fw={JS@GgXnO^)kl!#`i4=+wcNGOhO z8H&G!5{hGWdU1R%l`|1Ey*TwE1>yjfUL2c>7YDf}qUVJG>Z))9F5kWsS0&UMU>IM! zC##Vl_9~{uKLY=2aeVDT;B`=;!}EZ^wR?ddhX1{S>=a!EdI#`Bz^j1R;!@3i6fntk z{Ext&#U{TFSOESSi$)&<27g8$129M4munDEf$mOffGR2SxhbfqP@>30W!U*Ks2E0gvI1U@#kj>RaT8> zLQF0No`kBe0!{-~0?|Iq`TOI6{H)@PRDJ>o8Rq=`aX`k$o>?B%qn;;z$=LGqDX$h- z1w>hlyz7C?*EK-OBPM{@ieuz49OW?_A_`rT`N{GyVyn z0ftZf0O&qcLIdz1@O{7oz&hZ5;K{%q;5y(gU_G!Ki2Bd(0^+AIe;W{K<#R4+7O)AJ z1*`*32d)OP{3SrjF9yy8CV-URk4nbWZ2n>3Y~Vp4!CxAW^7zeVv4sZ$Z2%bO7eHge1 zco4V{cmP-h>;<$=t(~-NS#%re=PW2!3PER3I_B2aq&0P?})GYzf%0$1=*hPKc`x7 ziJ8|>f(HeEDEJ-0dj#(k{Dj~~1v>>>1nUJa62!Y;(nlLM zc&gwOK|W{Z4`8rLFd+yq{(RqA26ddv_tWf5aS~kj_kT)g>H(qKC*i9MWvwPK{6XRW zQTTTVpXc4l?-Twkp$`j9{T$>U5&9CLsULuDyU_emqx%=qdFU&cl0sLQ@To6=?m5z^ zi~~ZmBS%{I$8-IS^bz4tBaJWxLN6hWGQ5I|j_3RRbiIVv`e_pW>k|GN(zx_I1JB>{ z-1xy^R^GpmMp}A4f%;S^pS?M{M@ge>?UJ7#2%mYRdsgUUg{IyaqnAQxmV@-gLKh3Y zPUtGqxvjL3#k?^&oef7Ul_|%_3$9yw=)d{#==&L3D9@3}_JrA%u zKtCYiRZqdsNDs$1TAuf>0`%`mqkeV&{%ZmHc*J9VJ}K!}kcPZvB9BP=BB3{sM*gM= zeI;qcXS<`joixH@)rNX~M_}2@cdJpM7CHyZ4|0}}p6aEi`|8?O%C;X$re?$1+6@DSw2J<@w z?T+qL(#YRI;V%~cslvZl_zweLFfrW z7eEfvD-pU(=xsu;A&vU_nv|!LG_Glq{~Z#3kA(j!=~4K;0_na*x&Y5#=zk}T0bZZb zKO&8}3#ETf8Up}5Kk*dlBJ{lxhwgdO=qM}w-=xQR^q)wNhyG5;p!+jvbar(Ae-6q@ zy%xHEpJk_B3*9e2j`VRJeLU%j&=&$fx@n}}g>k&lGf5xsIJ*D5g7hTx4dF+36c>L} z^m|_gdJ@`#e!to8B%j}1y3wfXN%=j_e&m~u{V&q`yg4y4X=IPnF8nVFoe=s7#DSOV z*x&Wjy8?6)>G}Cv1N`3vt0yN|L<4+IJ_XX&y0`!Libf}&U z-4N%}El@dbW_(*aHm+>kw06WHxrSRszXX+fXojI+og#wKFhD&Q3 znl7!~xTStGW{izI)zRT27H+}bUTpEj#p_4F|o$h_RcG68|tB?T2G=`udPOHKm2MJpNUy_ z)X1hzyCP~4q<|Z@PZ%K*_p?+QahXo?s7Sdddqzx$e>ZP_BFS-ZY1|r#}N)1X^lqw`}4e=JoEG z*IH}`4)YH6oIPO4O6@uHd2S|M?Fr_fzQgnN^W5Y0sZ4v6eIE1TYwoH@!h1kgNQCMD zd;Wc%o5|E9B2tc!6`^e)M8$+D+-yl3NAzoFc67ql19e@Lu*yl!mZSJ3R7zkxB9fgQ zk#4D+^)GSThy5Vfnw2J=THaDo2T+o(<-#aPkSs!3fUWYWwN@mhEMKycUrt}WhbNK# zsI9Js^t!hG?rY=AeQ88h{1p{Jgk~OF=Y#$xlXKGR%PN{kFRb;CDC``!u&K{wPI`H5 zx)JSmPI{9t;mgt$Uzq%qMQA}OOE0etpI%-oKcc*45#=q5C~t^b94kMfyij=)d@d%R z<>}=$ay;EPsr4MC;Rd>G!sSPl*V72%%D3r8lox6>!sSPl7iu?x;f;K#;RyPhdVtyw z@%Oz%)B&QevHP>0rsKu?O&&b#@|sm?J&LJbZ^C{hYMIlOzHsKNryo1_YwnA;;*2xR zrzNVl;R~9U{jiQldZ|-#Hb4|xdsi*lwJ|e zXVa;?I>-ySfIRonnqXlM*?AFlt>sl2HuuUTvhye@<3 z73r3Oo}%qKrF15Vlt=8!i_k0bjllagjQfaEU8uY$y&`|9yePdQDsQcnSM#^iYcHYs zi_$AHUf!=SORSADPk0C9O}FI^l^3N~o>N6Y(-7rF=@nTZ@=llX?ifTKGt1xNqY1O0!nxx_{LW*(m(5OpGq6v9dj%YR zY8K;?sdU^8-QhD}^l&&$P5r$A-5b=UL4HxJ>+7mtqv?{){<=%bpqCBPE{%%7$ccj6y8I}W`R;8!^w->*AF^B;%2 zx{Nrs7!&TDuz7NZKN9tpLN2Yqk+Sx%3>=r=ID1?E$n95kn5OA?pZsqaII+L_d7MHYg zYmIE?<}wM6;moj@r%uOdQCxhF*GRDTHz&oa*_85W8-iN`pBFCES z-9y@l9BZ=2v&l}}Y|+XlFOR#noMHR$cMmQeymhkg$KCMn;m^--WfqQj8juqk`Aa}{ zAO4K^9q+R8CuEKo#Z}NB;mS0Jc1Qgjx4$N74(*OQgxlYcw1;+w{~q@*7I-Mi$>AyA*oat6#pvib)_MmxMqF%!sS<95 zH{xO=OqFn}xMM0~_&0IO?UosZ1s4F~S!D&IST)}Uk!26xkB;35q9kKy=h0jn(Z2IbZHv z&>&|14ZbLp-fnYar4>pA?s+>w($d!02co5<2N{Bt6(Y|CO`y+9NN;UNgXK=EJ&kq5 zjg^-6VzAiIamp>zarmQWCeZK)8sQv%-QD#LeuG0^CKLJZ7sLb|!u$VOVsK$l&PxTXcOeb9hxJ&hcmC$HBZCDh+{HXk;40P5yfkVc=I@f`Yzd%k( zPd|Jx6V`H#BE;H;*7dg0gEVRo9c&xn`07F#NTuX0ZQzwQveF}!oJ!;6{TT2iwHq<{ z%He%8M^EV!$Hl2o9L3u+LWg)`uNqiOkI8Lyqjo${@$BbHEdq} z-svZ7fAjV;FIu$cr>8!@HPLa`ss*o2%l`RsPQ`x2KZxrvu6|tnU`)VOjEn0NOL48n z)r4ysuI;#X;rb~u32?^q4;*`Pyxk!5e+tdxk96$yk@a0eVehNZ`W1dd=$R6pop`@I z_8>_YOMKIt#l6bs5Qlt~$Idfpm8W|TH9p527*8){#&g1<{KG9GUcFmz-W4SV$;VAHDb!BCT~#=ay6DAW zm(Hp3Y~tBC8_2z_7+qJhO#_qsm81V5;6nKKSxoK)R)OAQG0FNM-7WME;8}>*30w+n z0WyA*#bmY6;L$(11jz7g7YxsQF&_zw$t?m&X{2tHop(~#x%1zYlik_&YEG1vaz*{>HGX%@KHu{<_u3R zpY=KcxEqK^p5Fs30`3B09o3vc%K&Z%&G22ou|U2@$cj0O#_&y`@!0e0fVsfcKuph@ zGm`~Cq`@^#bCzrdunP2qJFaaC^WITq03==L6Tml;4BId*MZ$T!J zpPUa0o-R07P|s#{AP~c`eu)XeCn1mYtz)g~{`6f-`jT8JDm5;+q?l<%l(lXr^vbLNJ8 z{vq~DIsa2ozRx-Q4w3(5!G9I}jNlD|oS0&`dclhXmkHvT8b00`gLoGV^7%3zz~Fm8 z_|K4C9H2iSG}{N==Y?KsN#_xvR}0Ol9m?w#nmU(A?-82%-bf!1nxD0NTzvoN){@4H zqI(T^#@tU|P8u&*rG)=LfZk0SFQ)DV_@cz;dr$WWX_Q{q_P-yX`$*#j)3y5l3eay# z_^rqzT@jGsX|tE^RML=tozRPfPaTAG7YYA1p?T(*;r~hK4+(vj(Em&t^7&DryI=TU z68;Z`&pM%FzIopz<)uC$%Kx^6=h+_0n#{Y%H|A_F<7yjo+ z<0?VD(EW@w8kz1*_>TZho3G^G2&5avk0|Ib3q3{XuM53E=%Fhj>kxW^w3l;)E)se#XvWv~>D}-b7C5l| zi_1^{F+lV8)X!fK;Li%scLr!VoZwk64UPzBrVek+AT4mr!yN7yf*@JnusatAN-=eK zWs*!cxaw`|GsaGX`Ih|nL%EX)vax2+lO4W|>;t7?_aXX^Z(s{vNyM1cH=2wZj=s&I z`d?>M9x3H789{T;p=>#C+k*Fy^t?dY(=-y@{kJ|*c4K5k`W9TX zL(?QQH+>(j*`}$xa8oyRrf;$~fz!8ongr6f9GlSTJFM-7(eNZA_8Ys!bu(yWM-WrQIqVwokYneG4an3y#~j;-n+ozLPAYTf!*K z?j0|TFO3`OKH(bt*3(fQyE{u!{+;v)-zV&Dt_<$0R5>+_3)hGK47&@5F&INvDb2~x zlQEsLxp6~BP+pJZOS()>3Hn2nS6Siq1>oa3-@e(;8Sl_{}xir(`0SM%4{ z!rZ0r6W%2m>yjwN=#MdfRmdMjqq~!mg2*%bX2Z&>=fgG9ZjsjudD0D4mPt|MMef@! zmiD2M_CcP=ksPOjKYwBSw)MQaZZF&qd43m^t@5JwZLgO6QJ)aqVJYtcl(*D+rTi6n zk@g_Fq;K3Ru?o=N^}F=^4ZJVZ)@ zc_i*W=5^~fH*QVeM|zU9w@=FZ`?W##X}aFOZwefBm~UevzmPf7iM#m03`JyC8v z2$dJLFM65$a5YH&o*JUOsD062I>E~b?-rh#N`ngIZ{U5=Do?*xLzTy`0#gp|i~i*l zo1Z!hPBSK411>s$A^W1|O|`KFobL@$UevzmwIb+P$;EF6l{c`x#ck7U{;K5tjhEQ( zUkwKH(mzNkF9}RRI6dHB0W4YKIQQb4%+GQSF1qz{@u&R~TQ<;_l(#V{A-5ogN?$6u6KSCw7C~7^B-ZO(c6>l+&T_<@00wzV(MZn>>B#*En?sH zB~ATW))>M+E8*$qfcEoP#vqNk%oO{M&${*mt$jfo-lntVlHz`U86YoZUwc4yQLubo z*}A^I#g}hePHUesSWf)>b??pyD`%?x!%Y94b;xF%b-pxMH^ICI^OtHzGxI0R3;J2z z^D<%c5m(TT=AWiy-1^pA!|%pQHm*Eeaj~P>_4O{K&HAPctrxb%=cYKuE+*UAv+^we zgfJ73|Bs{n9$sGc+OfXpHXirKfk*#1?kB~LeX$NI9o6pR;d85An{dUIXu}iGHpWAy zwFB83bIPyGb#A>TbKHwl{`}UeXOUM;n{lx0h(a@}?^Ko}lF`chx+XO4aI%7=IN2F_um+d$2Py;at!(>(!sjmxv6 zd_DtBf1q}!VeC6)+Zx{$trN{F-#@+=te>#pR2h2O`@tr*P;B)hT59)m9Pu#j4#BZQ; zD#-8O#8F?2V-2O+ndya_H^SuUrp^whe*OC8VnGzMs%MBLOK%1OmQEWxWqZ^7dK_w4 z-?)vIKwI0kHdfbnblS)av~W|$<&7{>+PtZwakKb)F&c($YPGe#6RL!8Xu{1~$C;bk zS{H8KTz|!UYqJ%JG ztXl_p^RcmNlf(z#RDhM%0n!Tv>#gbDrnYdLw{3k&*wj5r;l^lv%Lu->4irftUyV>8 zRc|WTp9!ZnT-4vB5xoPU3B=`ql6^9~CsF(I@F}O<{#txKbLq0DB&FxM-s$sI+p@l+Pg|`eS#Zv$C0Wldt=f=vk4^Cq zlzE%|HlgJcG8reKQmuPkPC^l8>) zM#e$HxLBQUwDXEc5xb5JcQpId++!v8R43lGM7H?2Q_NDlna~c02SZrLb z(I^i?j`3IFhZz({3_0eW3Vu8@zaZ~gdh+Z|?i}OQS&;Wh^~$~vcf*X(;k&?fMo`SZ zyX+s}F6U|dxeLtLxRL1RVV|Q>`}`yNOfs6jv$9A131JGjQ9s|w<-wfF>|tKY@vGtU z9fZg><^$twMTRuy1LHS?JVdTB9~l2vC5`#O_?JOadbTki80R4%)^)ZuADGS6=8;*b zwcL2l2XQ}+6*w}N3a1k}zS76Jz35t8&^SJ1+-@TZupF^g~)i?6}oS9xc08|PL| zvSUmoGtM1JhAbpmv|Y$7!yN_6$v%q6W50^q*p!$yn0@f0i?v=4My6>vQ@+85at(ZK z!pz z&_SDX2>hliu-XV@>Q-R25y<%C?m?hf_2Ykt$CyX7{FflF zv|*1O4$K-8>qWGfrhZt0$J!R-&Qw&^7?X>CMrf0ZtT84R4^zr@D@In`@0THDl(u+gR@mpI82IsVDfxt69(qe#4)~ctl1HOuTx6 z&Mx#H2RzPW_`N6E^L@@g;pt^KH1G2N)p5I7Jn+-pVD!Uw%v#;hw!U#DW~gWJq&G)> zK0BQ?V!G2a*7-kS&C?sRxrfig%zBEUH=OpvcO?8Uk3B5tw;>o3T6%Rh>;T<98^B31 z)HxQ0I$@x5`q+#Gg&EWFe{4?ta(Hcp@lIIjoL(5eZ&>_=ocI^v_wJ06qKx9goQ$%u zwB=cpvAXd0@n6T28B2>mjvE&LlCWUgbA4gPDsnTb3K1nMYglGg#?%;2EdGwi6<7O? zD{>S=hm(DJJJtHYYqi{^0j9oI5h>r%=Jy}inf)#!z{ciNYD)D5CD`EE!J!rytikV0t??K~iD8`k@q z9%QA*w09c&u$xeg-f~+wT}ahvtRgo^TGeO}_C&3e6?z+Yz0%69{TAJViYKMFPr9+z zTZ!IZjrEEfTwWcDY_@)m$xUXf{IXP}4l*W+zRG2GJf@ zNcNP~?@7_yrTAT^3#mhm6?cQAJ)AEhrfq55M8FQ2S`9sjmv(^P0EdHBF1%9XI#1bN zYvRg0CkImDKSU14z^PLKP7y-;f11p}y_D$k%Y>*{WyX(oW1_nHg7XqvVfGrfuoLAo zOA^J{7P4vMjPjC_nWZ!5R-BwDUPo2&39wDrIWy;UY~6J7J2*-^Yx&~y+8Qox?rfWt zk~#lx^E*AL8}f^fv%1ZlgBh?5pGMJV8K`f}Lazv$rJ3(Pf|@e9s%rcHUQE9ZXrXtA zc46&2@qlgoFPT&hZyI(Jci7X#!|=RO>FE>gvc202JJdm zUCZ!Kwd>L7u*`<81gv#x7qzvuIE$7quO6_H&P!V^7$9$#zWJXoTz_)&_$8lS zT7O%`n>-}`YTY%LKRtR_cdX;`cO8bzeq8JaPry}-s}k2zT&r<4;o634JFZ>0cH`QI zYd@}oxDMm$$Hh+K1Y8f|ryZoDhmZ~k{Tcbme_m*vfHzZW2tPx*Rh)oi{Dk~0zbN6g zS7fFV!Ecn#9Oq~J;WH4Aw8|SPw1zkHgWzla%p@G>D<%DdxMzILUx~y&NAiEB&>G&% z?I67NS9nN^@s;j@T+$lfOlX1D`Y>~FptXE@2%K?vg|!pfQl3s3r~|eq=9T4RnOJV- zjq;c#(_vj|e*E$gEls}vAbK2pwmG&}I*3G`a)8o}4|6{0MuPDj{}M)3DhAlyU?ENY6=VQ3G0!{qDm zt_5nGKc}Uk5F0N@4PKV8Kr^Tw4Bhe9#0YM5M{D#&>-i-qHoY z4bTlxX)#G%tn{A>MBM6x#pFcsF90^ee}u&(#~%!T6b)n}{5f<1CZ80V`6T@~a1+Ay z06T%ZfX5>IPK!y-d^dvL4n)hEu?@&@91s$#fE~aD5PNf~Ct6I#g?|Jk#3!QqC5uT; zU|){#PXZg^Py3p{WG|5N_X0P-e~-oFz2e^kWO{r%CV<~}gS6fWh09oH$*r1#x7LyBr%y$`( z@rr@?Y*$aUn4Ab?JpQBuja_nvwokaD_!_?fA`%3`up{P`U~ma3a9CfAGq8Xz8R z^=gaBRY10r8jHzlAmvs8bK$?hVzLa#a+Fv!_Rtw_B50Po0GI>*2#d*sc+Z*t{Xn*p zM=d6MfsD6La1RiVy!u|CDKC)EW0ysvdxYV4fF|AmWcV&1!?y#OuNI3*#5LjS1XlrB z-WrQWHwoh}1r0Rz)3-oQ324?AyAQzRR3N@{)d`EnUiw@#g(}dO0V{z>+vw0}1r~!Q zCV;{ei_5c}v7qArA z4MdmE=x%}jlKd{vd>-3?*}!%n!#4p>1J(hNMf03lt{TuM04D%h-vI85&!@d!gv)6a zEEk+1m?QY-EF12Rg1;5~qTs&@zEAK1!4ZP|?lYa|@p2HK5`03Cx+UoUQ9;g<>WoC3p7mU3~ym-JhbzgGoc66EhI`QHCXjd;`M^k5zVO+n!k_apC`z5anh#S=NiR3&0rCHe zAb&3zuSf7kL9YALf1M!r1&}^nkXs8#PZZ?uCu!=4C30s1@#lh~V=9NbPUx@Cqep1| zUef<&!5anNFDSaqayAOhZ59mA-%TQaH;L5cLgcm#BK5csa|GW2L7F=~hzA7^2;MJv zpWvN>+&F^&IoAks-wA2{o)P&wMw}6fK_y(rix$oHT8ZwlTo$Z2Z& z-zNAW!D|H93$78wH_?R0H_RZu6$UE=@eMOHzBLBpf&fD&B%dUhZlCz~3ib$g3DyZ# z2_^&qCO+RYmR;SI0s51q@owq)S56~Pw~L-%eM0y>%qZL+B>pRwbY`L5G5&7hvtLJg zkI>DeAuo|Za~@745#|G4n^{!#vZ;g<`2KW;LIpWZ_n&p@}ztR;=OmBVfL50XaSdw_JekVam1 z3;po`eJ^RGrO$saX7w{cog^{$5G{5#eu_@V^rJ zcA;OE@V}7o!;ucQ@WmX5zg?Av*DXbqrF2*Uz;6ifj|tE( z1?aZ|^qB#AdVogNr=$;d3jMwS{gVK_B_J={h`CwZ7Q^OgN~yd>7k4pkX2dBIwP+r$ z-6~X&dzQs0j`B2Ig$52g?_%<<+O>uvq}g4nN?G@fvdP+b=07uC!dvMaED?$@eg(vLbHF_7*sYQhoSULo0+MSoFo6lMWj z)gPG>zD@hz11_|Bxd~lQ9MBlLtE?$3$F63kh%CF>tHL7B8!*qZzUrQ%8!(elWM!0; zc?EUf;e>yQe1OXLv{i-W)zeKC%AFgXd~or7pe(rRyTTHImGHMOpV!&#GCaTDCy~8~OM$^?iS5=q&5UCEXkfvu7koFPwXnsb6=^{P-5hFp8H0nvLjTjMQBt@*B)nb5~3!~`ll;+v;Gk! zf~8@3xT%@+G^wTfd-~D>{t@Zocw4Ca(uj0JjLn<;tMamWZhhECYMAoypyw?3`!vuK zmwfr;z!E*%O=-#7(li)ir{1a>OfS0ik9g7{cIs{TsCML5Me3vYE7++wwHjil-sGn& zq5+qMnagI@L_=ZNTNm0k{ud3~O9P5hQW#bQ+hU@$1#0ULXcsK^X>&|bA{d>5woUtq zf-*j7tM+45T4L1%mX=sOfu&-Cyi`n(mx>AUQZYeZ3QdqE=VF3R6s%9`-=&q7 z?vrtq(j31##?zFCA(m6T2sY4}M3&P;xhPnr8rc~N=@|5ABTdI(kC-I5E&LZ)W&n;`aO46cTU&c{t_S(pbxHX$JxZ^#-auT`wA{JkDq_-JrZ<<-@#PGW9w( z83bH({zCK+-YN2Adf2&+3-zfkR9=)G!haWe8RjGEIR7%Jyn*!)?k~5Q>5^RR#wHDl zZeQVU&rQi63BK|LD;?((z^*me|AhH_e#dKY(S1lRF2U`<75v7-Yfu-|3HKKC5WZsc zep&r=)LGS+>D&rG(IZy%+TmQicW$M=FeGC1d|~g^UVQGLbBy-ktq!%rh~IU|mj3OR zl=m~7`u9Qi)(%>5y8ozWwwZslD`)3F-lKnfH~#URe0X=1&d&dh-y?sT)ZN(- zcW(9n#)bWkX1cm%-QV}3nCsW|b@W6&f_PZ{|JymMchXbFxM@r4y2i~HHg`7hXykmy zqZh-3t)D)7Q>UL?+0?c<#iP27iWBl;D)x%s>*Y|<7XHJnXKrLSx<&+ zX<5iN1Mv=NU0Rh!xlJ|4*I!;_kwAi1(Q?%K(gwcmb@~8N&5Yx zcp=%6XX52kpGoS8QlHjNcd_+v_d>lx$@pfZIBZ1-%o+34c+KYK*5=OUt&Q5WOl!l0 zGREvxsp=Jln!I4?Vri1^o}8w6QI#+TLP0rWNma@GN+@R3+XnBp*}Ls9w`B}_ndiIM zyFJ^xUFn5A-}Bwz`L4%piVDb(7i6+l631>S13G2AO_aHgv{-*lJ*R)u4|!V7|Kah! zQ3DAi8r7DVAI?Sa9lrsAh=J))`25d0o#PlR)weKTX5TZOq+z}>v6AAr6A=1OA14&X zCiyC%Tf&L{(;s3jBUZ=&CQRl}4SgvRh*cnD)(eJy6}K&nm_3{!bKZ~J+%EhvJNOIZ zJZKh&I@G*e+}sF%QHL6@Ap`1AhcQ_y^mO7pL=?~LEEsmTdgVNbyZE*AhgwfJ==YwWCGoVRmB@1-R^ll}BF})^Jf31CR)e+@PuU5HZH$;<3^bo=B&sCU zO%-ds#g%xfk$9Uc@l+#`CqS*lQ$GcXFB*wF^&gvVB&wvTGUFI)?V|+qWTqR5+%IqQ zINeBG0@_NPekUYuWW1+k*Jbd$bgHr9#09T)N_o)&EVKP&M^{s z(!xrd!%g`=FcSAuVwsVsk`B2N+g*ueM&f_F63dLlsSsl&mOX{rvv4^XuTf&Tk*Jc^ zkO3EKrA1?#$8sa_5^!uD%Z06F*IF85pbW6t{>m+?X7WTDB4=71+V z=wfY0+?*^lImyIYmd(jRlapznZB7<4Cuei1Yt-G8m>-L&7~Mb-YdalbY*pnOaV@U6 zd?W6ojGz4r#?Prk*xU{H^J|iY1^ks9P5ajwv0RwkFea&Er;i>BpPble9)iry8qF4% zoiTbUAwHTXK(phy{8F8U+t`TFX8_`{(JKMDS)=O+8Kc_>@zK{B$Yoon%7fU*(LAA) zl{NZqLfosf)84U;+*GBp*@aGK{(=!GhgF%I>sOf@52(z|OVvz^ts|bw+~Fx2Z&jD= zh;*g5BUP;~&TnMqpIvCx>W&ImKU-kc&yMz#?mC~x*EGZV8J@^LG|@KKG_`GNT)y&u zLKAIZ{QHiy(54TkXEvE`Xo^DFF;FO*Q4Bq?Me*lz@PF7V@h{|L=KTTsV;5x9jLC^7 z|Bmh!GJDSt`_r(@bCJ8Efwj_B^9u(T<00~Jw?w?53Q`9L+L;Z}4yiIGy0KR1ZNl|Z zIT{$tIM($DLc6ElKI(ck$ejxsYo8m0r)yK32GP!Ph*nHx^+`met+xyCZqtS6v(#9o zv6vufX={+Ft`w{}r#kI%b3j6ewDoqc>y=h+jkV1Ul9sjxxx)>TmbUiI*@u_3^>#YG zY}P9+ZH;xrjg^+R1}So-q@}IBcxqR%3DxNBU9MMJ+8V3L4U(3&2HD{TNlRP%`@L?E z8olLVd7GWIv^7?r8!Ihs4U*+bNlRNt29<7*8ok}=dZneUu~xf5($dx-SGhsb($+D= z9ydsh-i|=$BBIwp_8Eo}{gtqLL~Eo~iba6~|dcCNQKxLysG=l#`K>?YEMd~P&I ziyI^@Z5@~NxIt?4_NeQXmbS*~b%UgpTZ2%wgw0-B+B$-nfXu2)*x8mrO` zl9sjxS>pytOIyb}-ENQ?y?x2`N=sW~v14s>oR+o*dE5<>mbQ+HJZ--gH*dg($d!PQj zjwrXrn&1XWE4K#GfmeppU1jBYf0ftnimB1t$6T+pf@`d9H%MCI8brrvVTmj6kSnG} zZ%61r%1KLHW0|Q>lq96qHHZ$&LVm$D$SZEz*u0hMG`5b$@BvBjI_t4YY3%YjM{VdpcN(65H+roDSwm0%o$9m>NHj-Vqt;vp({mlVju?7U&wYA< z!@D?O7@_<+;wh#NSL~U=V6nU-?Q>gw~*imaiBRCEnI#46C>Lo1*^^xKOuzth+~s3*QZ~Hs!GMEwXbZVIsN|qqu}mlEyELi+suJ7F}8 zeY1Rllo1pf6ejf=CNqQ;l$MsPR}NJi&DH*5TqF1c3&#O8l|obbGimTJzZ0=L(j5CUMuQGye62@BH*# zZ$5kR&7VH&%4w&4?UIa-zjfTQIj2AO(IuTL-~8j9^XpH!^Vn%O{d7|Mq|beN$%f0n zwc^i*PWnmd)Qf&pdMG|V@y8DqHf{OR{$(fr)H#0LHIIGs>HSYHd#-iG_78osZTU%) z=AHM8*vDV~#GfBnvj+w5#l^{nK3rxd0fjHXmB2-fFIBjxfwc}-JFYHV-MD&i?ZMTH z>j17kTt{#@nTU@ofvW^p6|Ndwb-3Dbb>Zs9)q`sfu3lURaP{Fjg3G}Wjv8(gxXi){ zyn1AK^DQ8<>Cy~C`VYc4i)x_vQV!gYCA{*V5qc{l!TnxnuGrC;rAXknSPnR|U=Czk zp)(5!z=ZT}Igp|#rN;@qM8+Jmgx2_G`3vFik@U>s6=)s&nq@}N)Fep9p%vv*!y=to zd$H|x0tBt)xme<>Mz1EJH9fODjPNSoEPa7qCiQuPgxC5sOWxpX{oNsa zP2VgSf=>;Nbi0MG^ut1H`9-s!QN+*izZCv{c|I=)t@UwKXw9ElDndLhpIO8Lt@S@1 z&xxY+d7dP+)}L7@2ERb+yHfZ{>-T~(cm=-~@N%4n=0no~T=CcM3hRS)#B#81nI7{% zxhxColh26t!n)w|V42v?*;biDoS=it{^jzLi}tV(VTi&!@tCD#@n;eJaYQ;{1lh$F54C zp61}q>(2E}_5nm^v zxZo}kxn#&tTssyo(a-Aa^t`x?$xvL!lu%}Y5?*`YC0P{(w$9yND6U^JBDWz(!~*fU z&Wl)sAPmLPvt-q*XoBPdv5222p*W6~P+StmvvasCjZj?DmB3tPrAY2|k%U1R$M|UV zh??r?PqzRUqNed5GhCySJ~X~gv!Q@hHAdT1WA9VmXShlfO}XouG~4 z>m+IvUne@F_&OOG#n%bLD85eWMez^ua|IX0*SWDMzRpcmK}Oi~*C{3Wab_`85;ywyDxlhlX#G5B-Zko@hyDd68=G1&z~)m2|*G1&=(-0F6V$t6I_UjStM z=|IXawwUCv5an}Dl>7qV3E+>gn2ZA{Kg(j0ztWV?=~m|dF(BnX3S@lhEv5WD7L)8H zP=1f_cL67Xztdu}8;JkaJ1iz|08)OJ#pEg=<+Ha$`3r!QUun_UrJ(#`;U|F5xlujQ zVsZiy|Esxg2LF>I@Q3o_7L7d$%6}Z69Lj$bNcp`Mlly>_&v|tDUsVsa0V^6#~nybDPAJriZWIw*f zo&|y=4}zxr1Hxx7wh-|jwV3P$QvQP$lk9y_{vM0T8-SF56_D~S4zy zv-)w1Nsg{4|1pcnM}d^zYcaVKNclT}jDHo7^0!$`wgV}jYqjLp0nyW|USl!28c6x8 zEGDagl+R^g=6@oP@{53s&)yg1^Ou?V@5jfK@;Q1W|1c1}$?8KElYKzSf6`*|aUkV$ z)Jgew0V)3uAmi@jf*%4RjI#)cvKqS!UBD{P+kn_%ZtNpK zXL^1UXxdMx10v7HJ_1x382bqGflJ{(4_F06-c0`H0-3)GU@@>9m;jamnZG$e=C2eO z2O_M=-weSWK)yFyfPKL8fqZW^1Npw74)gZ|R|0nfJApmG4&W}}cHnj(($4P!UIyg* z(hlVNG7Z=SJR4XCTnglSG8I?@JQKJSxCmGUoD8f4wgF3kn}Ef@1TXJnfvBteUf@RHKHvu69w2(j z#;!*rum|*d;4WYhup8I_+zwm^>;jGfZUfc=+ky4KCLo?cex3NQ2G)VD0pej8dmjv6 z1sb|_joptCz!K1FfyKZzzyy%0nuy`CB0YhUcq&O?-i7RRZd*!Z)MqdUlru;%@b{46whC?%oGLg` z@TX{(4EKG(EO_1Mr`t$ovyh-pn!Ae245B$%;x56Oad4tc0|0nV+&CRzA z*D1)&xunk*93G##i`L%*Pq(FLsV42`Cf};h4_I93=_kqVI z7{6DL{a(_a7W|mtO@cgyLH;!r!7D>Jx<=ve6aMwWzgPHo3%^(R-xWT8FX?DUit_ghpZ2CG{|@1Ed`tcT;nR*6 z`9(mw8-#yQ_;(6_hwy(a{669TR`^+vNyqU%yrvR4nO#N5X$v(tDCLE^V)eguh$(ZwS3l=rKU1zh7wDYa#s$p;->nhlO4( zbidH;LXSZIhHksilZ5UOdalq+m-3bgeL(1qLNgumuMwJqYSOeHLr42Uq`xXO?TL{7 zuFy+`{-w}$LjP9iZKRQg+G*(u(6^JurTRsU-5MYLCE;(A`u`qjq@ROlO!tiNZx{Y+ zLjSYSqY;kjpDXk<(zsTSwDD&K=uJX*3;!O{csEqP=$A=Dmg)!nhJ^2t@XrgqPv}vI z%k-Nh{i&pp|3ZYLTOf3a(5r-AAao09lT$y zknk@R{!!uoLij~M#=lDV(@7)!XNA8+__XIkw?^n5p*w~CiqJbqBmQrJbax5=2f}|) z`2E6vT=>rl|0UsPN_}PlnZGxLKan(_x$w(`Ux;$iRSP{!==DOMBlK0I5&sw<-A>_O zEc|Wke@8kg#O?Iw+|z4CqAMH=@?_mCcqMKcaq;dYb80AKZq?jeoNhtm5_={9;p5T)3sPZF8eBQ?%ZyJ-Wbd$1^bowA2&GM~K~hIL#p9bhr2b-xFA}8AOP?mwX^8k+tsa758sg9SRe~c7pBC*{Ub{2nfFS~PiaKDFzFR4 zKg39qwd-Wf*UTw*<@xL}*{54ERBKFc*IJSd?pE(tQ_er}^D{bd1?X?Pa zpQ7GBd5r$jN7(opz#vp;TlinF?_?fnx%)`nM{U|5j4=iCX~Rd97hkaO@aYD>to(>~ zt31L6TF7V2<|pF&<-I#@xlH(w7suoWtv59PXi-6b8$P1E6%pmFh$wGGM0qRHzil@E z5#_CjcxC5CJm0wy<(-Q+$i59edtbhnH~8v=R?ggr%9)E_t~B8nEL?H+!bR2g{SJ!f z;AIZ#)S`SBQD>I6X1(TAR0<7acMOj*Ta+&o%VhkmnXoy`hM}#zau}H-T|URkE1zTK zmBVP9@h>ZJBJF$4NhHckW+xJf(h~eh%q}UZC@V`O$|?-N$JqDsRF#UdRkiT-NdCz1*EQ-BwCAI8Y9##r6KvV)AVsFm{Ni*t9ckZdyW~rzS)2)& zh+$prfjm=rX1j{K@j9UYFeiu=Hk@mv+0_ANVqP!^kUi~7kPcpJy z>Mw!%JI9|v9@k$gFUlU5 z%6ou~1Wxm}??Y~T3C&-WJ+9*`t(=oEw@&wkg%*1uZ=bExPnV}P{S0)Q29-CkJuYtkr0bGWbzf?~f4z7f@|%)UUK0E*tot}lGXksb#2P-< zk%r^G1{d9Kx$s--+=mOxP;cA$?Qzi-*I}{01q`*nRRnuh&%jO<652^yA2?OIH_q)Q zA$G1b9Qk>$(baTGbAR0>C-?Vd#!YdW-(gW(nK-k;I+ z^_~zLU6Y)m7tfA4tHSutBHz!6ov?gVJM)Eov0{5`ENpMta)rmW_QitsxKIxw2X;!D znz(Jil}VnzerY4DzxJWKU*Gu9-G4%PSbtdB>pqOK&{j$y?#@ZhxECj9I;+&5b+7kh zaepww`N3<5i{-xVt(RQUUzO=S8?}w}s;Rqi_dJuy@{N~zw}>-F|Bt=5fzz@o^T+RJ zo?&=^VHlXP0>aakFFAaasavB=9$o%<@15KW;Y8k_z;pHpAuiL7*>eKwnU$w~S0ve&_mT2% zfVcXVJ9^I@im638F|GiO=hRl`?7aIV$s#=Zr( zcVnRc%ve15DK~qd_Ym`bX*lxRPrvcjQkNf|BS-#I^Fz;`YJPgh>D*s?Kf^n*?q?_S zdJK8SC(-7M@O+$yGV?wk(Q|9<()oC2l1-1urtaRcejGs=ogLjhVj9l=cpon5?;XH; z$NceK5P#443>>@Edx&|n_1nHzT>iRK@@MT5pFhf`dv`e*K0opKXTIHY)N9INpCz;* zisREgaycrl zk0;yqf7Gt15AJ#T-(uI4I*WUsVApd?*Zume(sljT*>k(s{g2u88~l}7d`Ks`1V%Mu+ne7)82CZ zU+KSV`>U_$!)WxPHHmf|So-Gwv|ZW9X8NhZA@m!>`l;gk+~WH$;`^RnG4kwpvHeG5 zz0M_1WqH31jr5kXFDX8r>(g-k1&qt~-6-^TZn|Yn@2RjijeSeM7!m7Rim=^xuIpdL z`N*WtN}@+6(FIBLuq1j&5{*6_*UmKh!!bI!Kg-FTfqXdsnee}XJ}wMv6k?;Yhg?}U zps#8EU~efp^$UB#V|QZcWb=7uOAc>KC$^SgTls~vN?*IKFaGG#*D&0XIetOuYghEe zA6EL>C4KRSl)g5zFFwArCilfhKPrZ^Gv^O|c<1!VAF~sE)G6`1UwO;g2mOESe|G(K zFPvNY+L7>Crq2%bW#^`FVjtquC)u|LyQ1HZeQdvwEbC?T<$*Ju9@qcF`|_9c{qdQw z_Z|JTS&@%~aP~I8=ZW#*uAd$}Hw+H%-`3f4xEnZ(x3akdTL!nccGO+ll5oCnU2EIY z=K18#@oH*o7nvR5=XkAkEe$m*>nu61eIfS*p2KZ-oj_AZLj$DRYwDYvzBZ3DCYoz2 zan^PXPMNOL3EYcT#UyU7Yj?!bbuD#HvlkaWr$)(n*xKBkcpZdc3=CV=D_&h~WygxP zm96zH$bDl?JJwdT&GG8nF2Aj#=D+=%aW@IuZUUTo*f=MRr#XXMyZolgo5|d1A_Nn& z<9OPWIi|#&QjIw#Fi&%Q)IEWj~x{6?9{J}a@q zQyX@dnvWfZDzO{UD(u9RaG-?l5l(RQ-Z{^_AH%-GPOv}}l%|3tggb&f*27Hhbom?6 zpr)Q^CPk+iUOIJVY0;b#Z_V^+M39TIu4=IhomR|Hklq^Wg@AWig6w56#u`N{9mi81 z)-JJ{u9DEp`RKlE3jE| zIye1au^c&c4h4)%_`8NaiiOM}wE8h~_f`A}4Zs8&FXuM=$)e;r1DP%lN{_sZur&;y zk##=uG{{H}o=Igx$YVyp33&s$;LF*AKbIL5xi?WoC}$r+xF2HZ+@W^?vIpcngOFj& zd7d|rJ8+eR2j}PC4Vro)XCdTMAi}vI!;x{09BRn-fP9?XJVRdY$YF-${90-coAcEp z?I3?fayYr(fM3I(`zQhjMsnT{*n=xHbl|gq$bh_99=w6HS7bnYetsi7h>YTO!Z$p0 z41c59ak7!&2)PbdHq*?CJP7X!l1wuz@)W!uCpm(oHvl~Z-iSBxCv;)R-6^+QOsJ9j z(}c|(yYLUZL)^#5-mweK9pmJOf}isaUU(9GCSCBNA(`ZRaTW3g&~Ym>x{)WzpFsYd zCMfG7)GVBI%@CJzwS+^>cY$ehFwNwk3mlt+X(k8UVaFT6eQ`pwLM|G&;iL;Selv(Z z%S3-Mh(60ir({9aK*nbJJk_AElPcl3c_*FC@oe%RF+n4EcstHrcFEwY&$v+IMEGoO z=b7ZVlfBLDJd@l&@C$}9xp}-r9|BoerevOzmXYJgzhW*Pxu?i?FRlZQZw!1DvvY)e z?vzjWq~l-B_*Y+z_}o@&6nUeo7*@fGn)P5Lks4|4UnTD!x8*V}i*^g$6ym;Ku5??( z3^j6>JX^|}OetGQo9Fl@Q_3Bn3sy75n^?+cNH!ainGRvXTVec$K1^|R2l>@5g9(() z;7Vq27AMPjxj86mRw(DAP@D^I=+dm=gtaEWE}tiiEP@+3Yu@H}t;sKU3AFiLYx27p zw9W5Y=9lLT+Wf9%e#fD{7Vd!xy62?S=6CHp7&+^~VTqK@?^@=U`xq8-lVUoz$)J4?pB4GUdsfE$#XxaOWoT2^s!ZOI%D(pmq(lHFlS=1O!5(?{q+jTJ13 zd8giCO2)kvZOQI1C3_jPE!iC`*&;-=CA)(qyANdHe&wo1N^QyRs5T{&-5q61b_YxL z4aQxrIGbEtQ!+`*MlP-`nd2e%S!ScY^`>O5MBIaiF4XvLmc*27y(!txk%TSTdQ-B( z!LDTMS+W+A=Do0`s>KyC4hO zRiZ6YYD;$KKBn#7Ada#nyOSk*lW}tuhX>8m+1yK7HQB{Y zlHJ9Uodfa0)r!N7gy?MUC9Rt5;wJJSob?jk%ApOWWUfTD&`cL<+{=4pO18n2Y#x%Z zCEH+1_5skgWE)trACWXA+rW|yVi)g3nW;=lZOJxt#J@otWlOe!CA*Yyxit_SxA38} zxtFxwATDkq55ieKUhJVxQ!-bgCy^>$sPSW{6SicXrerISge_U8DcM%gwq%_w*-4V7 zWSuP8yOG1fO)62Bl-iPYvJuJ#g8BV*lr32&OIFReV-=^&#WimbN$WXtac#*Q54q3! zAWL?)DVZx#A$DA%3pF;ND%q0VZAx}8(z7MI+m!5a(6(fEvt%QY16#7YS+c7@7WODt zy_!#N%X0U61P3K^lr7oaEZNY%H>EOZEUuHjuM| zPbwP+q{X)8KQ`7iu2 z8*ra<7C$#*pUxNN@%z_&ArJ5dUX0kK0|&;wP9xJ0LWzNc@J$&uU%78V*TBIfy#Ygz zQ11JfX6P(7mH+(!tJ-0c>=3>cW5`xGH7_xprM?k@q^*}1Ksx*)G$KsaxBC_m?{ycag){&E9ei&>LH;k-FRE*|o(+=T_hLnA_^gKKe@!UOPu z&ftXw#kpB1a&`d%_;Wg7n70rDIimnp1c?;q)fWjfLzzEoIWHC~)MPvA=A)#vlqvJyHJ2)n$u{bxT^Nd(9vv+1J2^`CEp)rj2 zb+l!(yw{LYDD(#Q+6%#<^rZj#V~wXQntyfk%3JH(o4qOXT3QLsOwkZqh*3>mLWAnBt6%94**bt|&ZAyK`>gJ}pMU|5=W@v)qq$(F&6%&{> zxoC1*?X6Qf+FGa7H?3^wsI8lV0lk&~my)eq*VbOwIHkOPMQcs#x+zz*)-=|Apt<$d zwkcO&02FIl(GfR!l?$CxR##Jt;ZZMbzc}Y> z6kh=3KT7I-rYe^MIbJZi?uxvsdQeKW(Z?dN$#L%mw6aJ zNh0X&tk9k6Lu7d%l2WK@u{r~h3g>k_m?3Xva@sBy`+wt17 zgIG(PcYhGH$|e%~yG^W^NQ!k_nx%U8z&g&m6)!qEl&ec#*E^b~s7?_N!0v zESyK|{4tBv+j7VL@>ni9SLQT{Z<5GnAw<|;M;9|kN`9OTT=y zGrBYubRsHpab%{4&XEfa=P~ix|cX_PY{%`9J>RNO6Of0BwuUu z5&L^m(x-x0DT-ZA^U)TiLq%|2*IAs#KrYsVAl72n#r$L}$SF7;3mT7)0y@`^oW?*- z_xK>z66fV9h;(Tl0~aed5UF(DgF#S=fhxpe_kRY(E~or3mWcDZKIb$BajT|OoOeqQlyak8tlB`N(s_BPr_E7{fp$oGcMvN@ zvCHYcKud-5x~}Uq26C|u2eB5r4sWwh74n0kI|W_p14qyyd0nq|8Us1qhXUP8ocBZ! zl(8J$fk>tEZVZx7F%UbP>D<8uX{x5n=~#7lL&SMq4|o~_xmd+Pti`V1e19y+Dd>#_ z72&g$&UKEbF_6>kcIOXyOPseXP?TaI7i&x)Qt7-yN!7|7|~6zE>!yza!7G&kDCY6)Uh zI8Uy7kJ7a! z2C){q!GPytK~6z7`;y>bjZ%4QV?mY|`|EVi4HPYL-laiM#&V1gL@J&4co3BG4q7c% zOCXY>*yVI%kmCyHb)y4m4CG>M3t}yHV+uw2wydy*Q@~M8Is|Q%*9{z`sXEGTlA_q1Kswp&7b57|6vc4`MBLBOE=kAg3T7eVbPI;xc*NFh&{!Io)M}q9x8-9Ry`8M^PYB>AWX{ zpcDhOi?u!wNm1-_dVf%e3g>mbIcW^!Vr>s%Ep`JXCF%}B(Vc?Tv7jz_-DpS}13BGY zf$k;FyEh2RSdLABNTu_Z2g#=x=zyfTd6vC}DT-ZAj|EyPoOiby%1P~>ak26>z=CoX z$-5vH)Zl{5EGqL3s*rbCENHpBwXvWUdDq5**2}vw7PML3t+AkO@@|g>?Ur|MEa*vj z_r-z^%6ljlbXeY_v7i(3_Qrxv$(tP*YjM83V`4#L|=1_r*>6~twcVm4yzFL%D8b0rM%_~S(9qDRKqaI_SiwCAAk z#sngZ6V-a&hY?^i#O*FQ!StF+GgRPpfy2=f9v*{b79L0PFk?7zkifeeQf^qn>on2h zCl!0YHvHH?g~vX}bmJ6|!|~Y|4yucmmtS{vbPdKrFhCNWF}Wx@0ei7F-8^YVQPJdS zlV{DmC^}(9O>T*W&$l`FelpFh~;B7 z*34$VSh zjkWfr9xRZ>$z)nG99t}FmN~mnEo-c;YpZXqtF>z!-Ri~IOEG25b5%<#Hd1e|OY_t0 zUOddMXI}X(#H(4^jwQ=@;bWb(h$yaOfVS1mt?ga|U;KRE8&5!WxZf1A0wOMo zkqj7=TGh~8)9%$acdTfr^V*p?m#^~EsZfEmtI+*F8z^Xfdk~MQ^!d&UBv1F1owVw- z@86X`d%v%lv@6nGeGSw&Gn{_0PUCS2wDx&5I9I z4!is#qi3J|=&AOG_M`u2`O>rR9x}E0+Xv>n_0wl|K9hIp{oknVK2&!6=-^{@YaTgX z|I1G{Ja^((rTf?ZqW9zf_Pt5BeQLmW9{%B;As-r*{q?GQ{&_bF+l}iWt{z+`aPjMg zpIlK~MYu|FRp6?|)q<-N*JfN@xOU^}#&r-^53UoqXgtmsh~g^3Rf>y4=+(GdaCPF^ zjH?URZd~2C4&v&;bpjU+&vEA{u2(VQ#VkcM9CQJY^urp*SSES`!syIWGaygprZbcI zflq3H$Sk4(y;MVuW=cG0r|(ATo2-#Gv(yj#pEFUo4~lQ{3EE6z2D%e`&B{8^|42K) znR%$dyVd8pSMeQf7GiCGEN4Ra?HXSGrT9*M7|O-0x%`=_$DseLUV5`k z1N0HZqcanDfjn84&MYPbE?0idbaT*G>cKc)`knkl(QZV=EZu>;vzJ-$0@~fLn-B-kS`7smw5$@763++HV`}4$Z#&`Ggq-b})FF-vZ-<9Y6qTT)a zJJHTQTm?aSSAX35f?>SUy)XXoV!`@};2nd2d#~_*unfG9)W!Vrp0V7_EA2%aFy3h;JXcTi}BBnZ?P<_a;#R2OUFk7 zSuyW6_8&5g?>N3%Uu${zuJ3((?w5NG%=-10t5y^bf8?I^KX|$G+KbNKH01KvTQ8Zm z_6D!0bJLJ@A9`%dH?HZ;rA>Z(;(hu4KQ5hk;-V2#qGug{@YlDk`*eQpnmy6?`>(Bx zeq#NJDTnjExqikQpTFbBZ#?qCZNs`g`^;+-k+Dm0Ex}cXYb`Ep(c}FCt}o%*hl{rT zBQDOi8jb7SxO`j{xK`p?gX=@Mw&D6Bu7Ab#V_e5@y@8AOVgZL& zg*f9G;Cc5*>eukAN0pPT8Ig-xBxTlAB8aO$^)uwwYj;9a5zSO_NFBwSKvK_2J^PR( zbs4P zN#VP>l4FgOtv1$c|5h_WxF>Pp&ZWd3Ybu)kr9C$d-%Z=viumdB=VmQ&dLv4lqTfxw zS(btCW}jq=@1|^IitpwgWa7J__e}cTcy*@uZn!p6d^cK|DZU%5%fxqMRhjs1s3sHN zb&VIJa-_R|uJ^b!!~H8puQKY!r18L=o>v~V=(D$(;km%a5YCQjpnnj}%e@HSFWd|K z8tD6loxmqRuLgb-$Pt1v#ILsKmnnP!@Vy8xwdhY!_;}zI%!frkqVR0s@{oTM>pm$mHyMQx6Z?ouc2F?I|zeT?jSPXi-MZX1zAfaPvMsZ=$`~Ko#Q~pKMF*{r@Y6ae;9~XO!*;;{y`w+_X8>aBybe?96ts6 zyMcUec3Jdy04cWxi2vnWFo*wsIsPzTrNUw$<;DYPhp0t=43Oz@B%J&Ra0>X@7JVwC z9XMi6I~)a4?jVqM;NUv#zYoat_KLp)NIPt|=x+luoh{>dIkF1fXvrs;YJ|k z+JUq~i$#Amkm<46L;f=0d%$06(XRl~4xEESI}`&c7X{J|V=elHK&BTFzZZ=J+JVhH zJ{QMz6f0-4?}@wWkKhpiU<%|NEJN&HSA?XcdWzZOV4v|IEWfRwKVGQDNMQQ&iq7tk*U z(hg-7{RKeE6#;37i5C51P|AEA79Iprt{X@@JZaJ217v!ftw;WL;Jd)@vgmIE(hi)} zM>})^Dc1m`9XJ7ycBlq2y`|zW0MZVn7X1<+(NNcmhK z(<5^f_?!#~^iKk5hZ7e4<3P$C0@4oLnt=6TGm!b(C|nDq+-e~0P;1d&4rF>u#V-S1 z0R94tekqW4;Pg-0VLXs}@`1ENu0=l^$n<)LSpG2}?Qqnhe;CMgo)iB75K+qaTlDt< zQPlEoi~e39<#z*_-ge+9@HuM~=x+tm4qGhxn}L*D3#1*|E&9bk=4*m*ERb@!K-wW< z(dS1s)8qVK@=pNI2miQ5{}_;V;5=d4;Q)|w>}}YIa84-(`n!NkuM0^2W+3fwzeRr| zkm;-!za2{TfV9JEi+(kb^2>nKR}LHnKBpH0{Zb(9FxR4A0;Jq{Ang#f=pP2abs`CEbKfxpF~&vS=q2Tmxb9om7Es|M~w_;QQ>QXuV6 zCVmN!b||*!vloi#j2C|_kaiej(Jutj4*3@S2$1sZ-e7ts(d#k_e9l7$`p1Befj(-{ z?*UTo0FZXrZ_(cfWWLr48-SEs4x}B}8wvC)fK0DU{JB7UFO-*9^m%v|?ZA}>w8I!6 z^<)ES2X;9F{a$?JF}>qJ@(%-PheHly*3Ut|Z#wB#`NG=?VEq zfoFr?W6?hhq#d5K=ywAtw+l!+a5W3<&;?|ATg2Z8q#Zgf`fGtqr$zkLK-!_!qF)W9 z9oYK`^w|SP`EnrBD+P`Mf38Kp7)U!5S@b6YDaYPb+M&>*e-Pbg%-25QULfUm0BMKq z7JcqJ#q_p_zX^C2_!}+yoj}@wYnfOdYJt>K0i+$c?1^?*0AzY4;!gn54&yEQV}VSk zQ2bmV?GUl(X9H;mcKgu|z34%p{0Sh_I|>{Hevd`}5Ri6w&Z2)1NV&a0+F_4He?5@- zY7u`mkmawn=r02@oeJ?60GUpyMZW~dbc!wdML?z#1u~tn7X3r`?q)g%g?oj&ft2S` zJEpT4_<0~#Bz^(7R{U~dDewt|^E;mQoe0DyO8EqfeiUfZwdfZD(R41)x9GET=yRY? zp+AS|a?}HlZ257E{!t+LJwWF7Inf*?LAZYa$awpJXsVWXTlDt=ng8A5ZwE4e?8#*K z7KLvDq6t~P(W1W|NV&D*w*b*ZD{rvq*NR^aWPU1uj|0mU&Q+DBekr^c{YRAJXb|&x z7|8Uw)RpuBAnOr(V_A>7fxLh03mgRGs1nfM0c8E#ZqeTgWc6VYR=obPhpD(@#=C|9Tk2DQ`k41kMkoH^)WPVnQUn_n!kb0I0D}bod<>eOr zG9ao{`2vf63GnNXp9sV)DW71`j{*^=e5^$i?{0KxmxBH(knxbGydvONfQ(0s0XVj|2HUe+;+`_&H!1@F8F+a5Jz3i03+Q0&pQP3j8Q=4DbP9 zK5!Z^0=ysS0cjsT|3$zPz>ffr0a+h&r!}kN5fZf16 z{ND@wFmN~UL%&s@~U?9T04+1-Ze+OI(#80%TulE60gJwOg1|qAb zzHS6ofW8Je2FQ8?;5pfO9~)-may~3vBD_*KO~}2?pfBe*ViJ!EKP`Mjc(brdI6^pB z_-{jP{HKKv2=5c}JC^$S9ZUQ}uEk#ozaspc@FpR5)1&-I;ZWgEVN8ZUE8HktFT7Yd zUC8|hDgUZ)r|?l>jqnEH1;Vq1{O)1={lX6lHwdp1&KLeEV?{Jiip!rO%P!m&aw zN@hAg!jBR08Q~{|4+<|6&Jn(bA1BKHQTR>aSA}d3lh1ZA@m%3(;V)3x82+Eaj|%@z zc)3uc@i~J;b8lM4V>^(zOL&8Du`pZ6@h!@27j6@>oyPF>!dl^S;W@%l!dLK~qWtfK z9OWhbSs~j$r1_pC&KF)R{5=90&h3qfbMf2|i-iLvmpjUab6kP^U*n-Cz99UGkb8(R z{3}9kLq_^R;Rl5r4`6t^aJ8^nc)5^UpHXg{kOwG}9wy}0X{6b|PdqC8sqk6hcZB~U z{EF~%!Y(1l1*qo%;eEo}g{{Jyg;m0(!gAp};cVe#;f2DpgayKgkd1Gq|4M_+25#0T^$O@G;>(2_F`IRCurO4q=OMweUvawZbcfmkDPHrwBQ2!1TuoL&Dca z*zn&Axf34co)K~=N93~v?QBCHZ}Q$X_BuTLx%UL-tEI7*l&3=6r( zAmjB24+*~~Nd8m8uM2kxw+lZcBIa))H{cL~|QP5S=` zxuG)YHNqz0O5yv36~Z#1FXaBrjDMzZgm9qHwWp4%eZ-9?DF3wZap4z)+^d@Wj|lG- zt`)NXn*3{pR|_u_&Jj)#zDqb(SSWl=?XN!yUlelJX6pZzkUM*m?h>+}n)Cz0`-Ha$ zR|u~ca+7h&vp<@sS&=#Ci9SP^C(IGPq4pj3EN8q!!h^zZ3%SQR`Hu>@$2#c^!Vd`9 z|IF}O;X>g&;Y=a7d#7B1aEOqdAPi?eGx2vqO{dCvUi1%zUl)E+sEJ-V+eF_j{^NFg`gXZTBMpZ-SpU&8+o9uV#mJ}%@w{*3>y@T0R|dds28@_^j~Xg#RM^n(%YNPYbsSHw&>dp~*+1aE0)F z!b^ob*Ma$Ee=m{!y~N~p`HO0I|6KSZA&;1#{BGe6;RC|^gtrTMVg==|7cLUAAD7{C zh35%13pnS`YOnuE_!}V);$Xb*3VCn`>E!Q%hZN3(Kge$qt`fdqs9DlEWui-kGlY|b zAnCIVq&C6kaBrC7dE0 zFXTKy%7=tzJ6X`l-!0ETh;lsDg}6i5CFHqZ4Cl!)M9$G9zE8MF$dhLn&VE$lc;OjB z9#q5dKk57E_rhNY|5JESxL^29;a7#95`IkhK_U7sjQ(07`r-_|Sh!G#IbSAxrtmBw zn%yQGuQP)HgJr@}VTrIv$bJ)+3(dW>@vCM3Qejl+343IhZef?OQ&=r56-I@gut({3 z3%i7!!fIiuFe(I4Mb32OBM%?~PSMq(_eg$|j{D|~c(Km_i63uZb@^^^-l<3`}IgUmCUeP}xjl8j+g6>@K$nO@P{U4bOc@B$zNc`6o-_6^-7_!vgBmNDfp}!2jhjiP-KPLVY z;%{fghdU+y3GvTFJX0RDKj^ASLw~RMcZt6g?K-;s;+thmpkEY!H`=9iQ;-hhM^v7x zNh5!5-tJcM^Tq#~__g?6F%J1){4wI6LmKhjyxj)zqvCV52>EW_?)Su>ApUQ~ck_1H zKBWF4@!5`K{C((OplcGpM10PxpnREV_6w4(5WQdYGSM%Jt`?mQyHUPH^f=LLMVE^1 z6n&HEO`_Rf$@p7Ee@b+hXwG9Hzf|;3NW-QFME^|m_eH-b`k?4Pi2kAIUeV8q4&lC1 z-%msj7JW!`f#~N&j}?7b^aY}SE_yO)*xSv6=DeUhJiBi9ea;ukgAF&IXYa?or17k6 z;)@vWBc$;xZ5I9UB>FMZu*Wjh-!G9yo!_DKAD8?m6#pP;)ZuRNInRmu9}%DZ(4_xK zbPm1`Nq37rTl6!ci$xz7T`u~MqH9Hm&amZKFM7D>EuzmC&G}zzsE^$7Cl#VmuSw1Bmaw{8$@@D-YEK@=xw5pirypol;{JZ3(mCV z<@f>hPZZ7m3DOHh7veoYx>_{n8IrzDH0L3bzE|{e(f5mPCmmP+*Ngv6@wbTnmFQif z^Vv{<+b8;B(VSn&^y);PB#rvDTJ>cF8V2NlT>N*7{H92c%FL2eXf5vN#h>9KF#Kzzgu~*$;x6&x06O59KD`2 zE=O-9jo-3!O04|-q%jt7`8Af_LK^^Q7@CPrJ#| zUn7lY=LykIkw)GAxoFP6&*QyaVdeSVFf1$fem@_fQEk3FHJ51S-m+oJ?xUI)&pw?ef`>e@S6o35*A=s<-2lXN>`oQ`aoW5!LXZI0qH z;Z>E*uWG7qP%g^mU*B5Ovam_pD0o$E?X4>tTU3NL=Do7L6+2fb6Z6aGRaRy&l0>e) zeCfQ?5OX5IE?!mEqIHce?dz&m)~s9&BgF@;X|LhV9oBHM*a_QyB{Q$-XlO`@aZN|# z3ho+Z?m&EQgRC^PH?|aI+60N4dfe!h+vwO|4AYV-011k`m*5k;{LMN-;OVR=Wb?y>ige=rtbv$eboBh zd8beP#Tj34t`42n1~+}Dk@0=z(m3tCZu(BA-+S%Sd0Y3qxZiv3l6jl=zPR6e?-F`@ zbznxnbs#>Sx0zPIb)o+)lKQL!Gy1Irr?CN5-zj9g|894zzN44)^}d?f=i6*%pT9#h z`_w!uc#)?2Et%El@BOSkf5S@p%yUVfd7j;8BV=};zkf4}yoRdDXsQZkPIsP}&NEw{ zS;fvXOP&%Jxx~dPDG_US#->BkZhUMY&YHnAOe4~^Mwcwg)G#*U%rv9T3~mS7o@G`1 z=(uLy)t6U^J53lEAW>?n*g*p?k)0t{a3>O_gWvbW;NYGo22Ty{c2anTyi5&hR+4;B zTNA^l1vMfmJVUzEGNd~#L%P#4q&q!By3;clb9x4APS0S@=^5-%#pw+&E;@>2E;U#_JW`0HK8z@f8Y`i(m zZA>-5(i%}zClk)K+WS{uYjy-{KW^(4rW zNn&bIY86oo{+Jk(j;~sHP36*g_};H#M?1#@y8Dvu4jOo>nw5+fE7Vs;ZV=zHF(ZV#sxP zbkv6~SZ^!(kd2OPuan`2s#oA$=V07Yn`hF(-YE*wMcUM-wA|iREokB=!r_?M})R%O3As{^}Z- zyVUaTPs#-M8(?`k|A4wMl$0)i*xr~u&8hkhNgsw-j2i=e$$1jXfbwVd*=K>1%gc44 zbn4FcxIaR?OV;i5H8-`HT9bS~TxPg_i;m;xEHCFvU>GCC#oZ6HD{^xFN*Eb#f(4KJ zSj4;3{H;XG90xp0C|O^%^trrr^{dbHWE=Z6)VH-KmzV33>0JHW3w;dY_+ZklH*zX( zePhkdb@ffFnv?Z)Ch6-=${&;@)tBH=lm5i#&7Ep$nE10lRi9%ier?@~j+?8PHwGYo z*UwvWMIht!6)2xhALl>F1_`&Ms>sfP^)=uC3Z|P$-!$dI<&X0S)wpAv&Ln*`JYJ=W?>@YqGwYN6PFEk_3QRM(ybtN=EK`P_ z)jSK4gv|MCsact<@2Ao?UJB08yomnvnVSotWPNW+-}5T3-><%v&5g)cdsRo%2e5U1 zRaNo+Q)yd-$bPJqw1N(BnWJvmtIDsa(pZYVG6 znT-p>^MA2>^Nyz;do%1kbaK&CkNxTTryhH2zW40Ou(z`(oV63mwqRZ&{NRVZ*YMuj z90`@ac5I;Ydk=*`Q;u=AguOjZW@M=I@#Zf( zW|hA7p<5>O?#N=i)xB0GrvEX7Z@Q(vxAT^ZdV9hVleeC5fv|ArQ}=q${^|Oscbr`G z^o}?0czQ>7xaucXN9W_->eamov={lv3$}b{u66z}kV81~i&+Q%ea;*<(AZ%{N#{4W ztTU$%(1V}ilveJXq_YERn%X{qF;R?=%`?6^I8?_5rDQmYkUrYa?j7oJ-t+{>@_IXt zbyfBF?WpNDZWI!FB-6_BS-|}?KmO_Dxc^2J{I^@)(rLw|MRQ6@(S5dN>P&h)_zkX! zu}VGNpQWV}FPwPI#OpHNFV4@mFMx>2c0P9jO>mEb3T0*ej4&*8X58E2u;fCGSHc%Q z09I%i1&pS!nbJS(P11Z@WFIs92ol`Dhy%`nSSaUqcn5ak&qXAMMWz5ES;hH-&V=Va zglEmjIv-gaY$S)=h)^$=JU)WpVB764!Z+|+_*0MI(6FJbTanPfA0g!93^_ONGl1*? z!=6V-{x9(-&x<^Uppx+5{NbBHQ_rBw5b_v^a4yL3poNYcYDjLEy`S7XLpC^am?1v^ zlG?-hhI|C%agxJHV)YOFL;nqd10w@DBj-PHg@#6Y0g(ZDu{@v(!AOw-?fJvkgNMi{ z-h-6l9H3}+oai97;OlT@Gs&z$UxW8Hl1wsd5Z7IEW9RGPqtJG?8l8V)tt`4r<1_zC0ZyoA34d-3Ne$zeG(%V<-(L&HNCepHMRA3XX(Q&evQ2rc^Z4w6AJzZETxT zU$MHmscuo_s zN_qW?)|%FJQ?6)53;6@ht+%#KxuUtF315{c^kj4X9z&;;)z#GEbizJ=eQ{zSZ0{yA zOH%;B{R}qjyDJiSQpL<9ZY>h@UBlk&RP zSek=moyM_2tR>DH4T79%C+sufQ~EI~IQ{=+d0K?nF*m35YC~FMw2$B~BXR z#-)knSlq3LE=}4_Bs&mENqY-o+8fT^2mXM$lNR|?(pRgHzu=}H2Y-01Cx4S&HTC%W zmvmGkZ4_T|J-)ru)mzB@uQ|XoL4Ns{y2kc?+?Q`c0`PKgAvB#f_{LbgLtG6j|O7Cd8`nR2ja0oJO+rz z3Grwl9wo#hgm_F4@5e82{R!6~7=eog_&vriqib<-Fy{_jAI0@gxc1=sE-rq@;JEQurnhh?0rVU+~L4>>m%Dg?%jfa}D&_2w*rLHHI@C zhWChOzDRci=RF5M{_)jquUHY9O*=_9aA(H2V^w4w!P9e1XsMd<({eT+TOy?ZO6Ov2dc0_NRQY zFsyL)9Wb1q%)|{seo~WOE?g>HD4Zv}P-r@NARiXZFMN1&dW46B-xRV3f&5PiKPLR3 zaD%W`xLnA_DB~>@qAnO3HZcgB8|0%)xrh*8=xSl9Fe(HXKD$J??ly3+Q#|dH#*KF4 z$v22Ts5m?^jq-=3V4G<7ymQ|RqfhcLlg2eh^y{RN=@US@33wQ}u9vT5x+$blp;|=G zOrp6jbA0|P#qW^(Eu>NL4vD^vG{))UG@|nJu_St*zmA?@9hC$^TOFH%b0Y$#ef$x*2?^@mpIh{@f(GQuNK@H;_hphZO%2(s<#x@##lN z=X&PkPU?S*G+s=b6n{5qyrmrdb<*e@a^thy2Zt{^Hy-+J(imHH^a0X%fjas}r13Dg z@yX{&mJ?s829zzx<@y@ zHHlNZnD?{Ykyuq;qS(xOB&wXDx&h_N++=3_coe%OD^G%E!A zkK~qVxK&+=+13)eScWrw3{7?)U3NWRpUVm}=}5C)udh$I_=(x+*K}fF*4Xg$793)h zU$Ck%=(k9oUYQ{wPHNLii%g~K?=xO=Ez?aMb#n~U@wDb5W2*nnpRz1CW+7|3Vd50I@KIaWltsDE2eX% zOq)%Zahfq5QwxHkRxDXmVHZoxTe@^fFatR$7%N1BE@X_JyFJm>q1+KO{Yy41s~!36bxM4yvDTiO!Lux zq1$f3>xRB~r)FFbBz@?fOFz$)=ho1bS@3v18S}RT`9rfc%{euZ7sT}8YLBI(D2rrK>jp^$nf2t{^m(`tA6kkfvyE@)g+g6 zKl+|0$$hip-P%-r@ofBj_dQS2=^Lv1;`DXC+kB@}SAq$hzD)BZf2{hkN%rIZ-bpUK zz6|puZ)Afq&JA@BRxB*7zD)BZ|5|;S=1DqzP0EGKU-f%}c5T}HWtu1XjB3L+-H$u) zEkU;$`c_+ST78-3N!~1bRob}TXuYRI64L6+G*9vg>D#4Px16TFO!FjH@kI+)WWgJC zp7rdQ9K5fR^4Iq~$%mz{R`u@+>63awT77Kfl9@aY@pXKw(T%s@?Hngh4ASZ|^ElJY zlRSqVFmO)a_fJz_rg@T=N#8eA-k18-*Y`Y0cJdh~eY=rSzMuEwe&`*RP+k(OqLC?{ zw*)u=ztsm(ckxLd%#%dFqnS;`SJxG|l72!E(!WcdC)rztxssT3_%h}Zz7h`YMBX-! z!dyrq`g|W69XBtsCp>EB3*pf_k;;}g!)F^rKg-S|=VM;we|V3*e3tjPi|6K3+Ig3S zM%K-9v|*!yu&2J|J=k4U31U0z=ahj;!7c|D1|G9U5!Id>DkF`GA{+kk1k z5H8$#1bO~Nc%+dXjX9FtS>7z>(Tgi1^Liv)`sMg?^+K1`F$Ovcp<~p}qtfHb{;H7~ zqjDscu?KcK-7>v?vz@Q{N;n&33-5fjkMi{>53e9?XX`P@zsoDj5MPeh;^fYR9O~KT z%V3`u!e^R%cZED|X=}oI!e_u{HoOPj_vyk*v%F%;F^x04&Lu8CJ+KkO+&!kuQ{m9F zuiyOij$}J<4r@ByuN!;DbkBKnpt)CP^ie+Er>!A3UpJU%yBT?T=t$V!8+X5`ACFWa zUPYVVhq=H#uB?)C_GEo{IV(j9H;Ci6E2^&2mlwDmha|Ev>7@yx#RU*2Qb2QT57J%Z=v z7rK{;<+b-E^Zg!^@qQ!i!edAi?b6Lr*p`S9v4_rs|A?IfU6`f$%gN8>>BQ~hc}{IL zL1DaWTV2yyS34g&PkC)vqc^X;yxGqGn&YjhYpq|kj&sB2e4xI4_0^aSHm4?z-(HU; z2G@f#AM>Z$=Xe2qHHOR^I~o;iTgjBW0`tXcAZR{1kQ|pSUA7K$&ahJ$yp<+kj#uAy z`E4CF4NIF{Kzx4RuHP1F!bK{b$s?$Ftv7cxVv1X|rKYW|t~T1<9KE14+P1p6qoFps zqApq!ZG;`7D>~Yv^=)8z{2h&Y*xHNJWEPoOHnbF}iq_`#=9SG2j-KBDorxlrn%7jD zARAvc*PeD^xW@@DnVsSHXlcub12ms*^n=jH1&TRjXW1=StF05 zk?$i}%j}Lj3*`6VE4Yp1g(N$XR$&w#y3qKMli=lqp;0C9%z?+tK8nA45rJ+jL*PR1 z8udqbZ#3j+4iROA269LBPr@6zbj&uw86l<+I^%sz?JW9-nYw)j%iu*mhrf~RE8`!J z2xP`^pfZ$itPrvh@)^OZ89_DPm~SIsKw)S<^$&|Z#lvDx@UYm^d&Z}cfdQi^?2Y~{ zV&;U-ybDAQkDeI)232LBHD*BWAl6$ZHGnG{LW5{h8gu|wHbg>$SZ`_20a#{`AMyr1 z4F6k{9zMDR31C43kGwF)E({&Z2XQS(I#=65&EZ%r8*JX&r!&L;QcW|*ZA_d{pM7>{ zs+oVkY{(7x+IpMw>toa7hYawh7Vx;6TsPf*X#8~hyx3Itg$0-9Mv?TeSjO-|j}cTd zJW z=i#4K5VC6wP?IOic%{grcMEP;mbVXg^PTzmfAO+_zjl6ptXDqGY#s;y1S^KeAE0e|1VPjm0Fimz`+o>xMNlDv@v^BxLAbO6DMjy;LjL;Dr74#a*%hR{*m*hO!p5p~-Y0{glyW&mI|7j<&buH;{^m{c2F(W^ zWu54pqV0jAO6QF!T9v9O#b!=XSDiN)Vyt2jl= zeii*-V2u=!GSh7FyqI-XTXnI&j>S`==+fL$C(;#&EOy>qK~Syp?hb-dvf~tO3q+PU z@7^G&&Uv2icMq11}tlHU@gwZxE}(c@G9b%beFW#Y3rz7D1t{IUEqMF7-FdZ0Z4*IgY&Cq^4qt3_u_E{aY-Z%Wh6lV%hZ zO`bM+*365d6INi0^x7!cMt1t->1}J8F7o~s3j||J1+nt&uUE(tzPEl&T@yQnTz?a~ zeQKA_I|Al&Tl-b@4L1Htbjo=gDb(ia^-U&2@i9#-6T=94AE?0+%~~tJ zXjNBSH>1St)w2C@CgZC*npSchq#`}MBxBPrW==pE3DwL))C_x^XYJxzs<`{NdHpuz3&$`y}lk{8P`jL)K5 zq=Dzl_&F+so>gyn#a%}#e}DYQj+>szfA+wtOWt~M$*SzHUGFj2i|=eK6=`k!m&mZkk5?fsIwl*x*oI-eM@)~%Y*2<~%E85Z z#g8WP+&$+4o8gb#v))@-e{|rYHMoX15r`=H}L zaQz0?o49!I&c{WYauz-BPcyE2aItHO?Hu-9;lFt?Yf+5pazGHfO*A&mo;OPIrObKm za4Zdj*b5*jc0e$Q?{P_)-Y*2P7eG?%AD|RJ{l^30OvfMa+qfjfPC!cW2SU1Z0HeoF zB1y6Hfl};!kS_L}Fo>Ne3Sw^pgV>#*AW+V+iHau%yhP`kuFqxQcTy$XN#L+F@m(_@ zI|JYSR7Z^#Q;Drlf8CF>zCBcTV+-`E{X;;Q zx18~TK7ZpW$8JN)bzAhGwES{53n;f6NVy$A*t2}QMZXJ(T3)`*qQ3=5xlNW|zR{xJ zY5C=BuRz{!2VM=ir9d1DAta0cFO_%LqNPqCvlwtp6K#!i~e39T8NX_03~(_R|A>9YTy;Xa?zzg=BotA zbc=wf$>kF*`cWYI`pek`2=vDQsV5&u{ShFh*_UTq^m~zM>N^3XzGJ|A@VUqg=pP26 z9+n@n=yTH)%I^cd7uXGCygk4?$nh5l=x+xy-L2x^55(K7oWE2+zgGO^!llA8A-hMZ zw+M(|t8%XY0s7+=J_d-l8ouZa`nd|v2I8$(&YJ=BdtrRM3CsCB0sZ4Z=Km;=`R@TT zorAy#v6V4zZcIP>&a0ds#tlCMW5f&O#gsz2ax%=AINk&flPO;=msFus|Dg#mseZ# z%Yl?b-VDDONWBw*Fj+Z&F@gSgAhJ{*wdjulUWHqm4=e-1M&3emtI?SXECu}@UaFbX^$NIm0#)N>w?dhjmE1DJJXw9jPHOdNOu;gf(pK+*?+$ZKA==-t3~ zgYFW&8F&%sPSGvEcY&@JT>(VdOn#}a2y_&P%jnMsVycwM5BV=;8$0CuM)*w_6Isjo zs&KOKLSabAi4c_gjqr%@2_cu?lF#RYxKXHO!NEDfV-?PNPPr%Whxlb-y|6~ebt(9d zEpRN}jq;FQC-j9ggg<*VYP6X&=<}SzFRm>I9fPNcvAO??`!IRLCEF_>F*0U zQbzi7LJp*n-X!c4)(JV*LjGk!4$hE1SEyy)Ij3|#PYQo6d_ib7{Xskq1Tp?sgr5_3 z3Hg2{{{bP#kw~+voVY@Gy>O9mfspT6%AF_VcnoQ-FyH3Hjb6{Z%2? zw~>BS$R--;4MMjbvq3c9qvR*A$5e|wXR`QgaZ-+>t3>`G_NpHLO!#9VhkwcE5HazS z!Uu)z!UkcDkmJylzeG4wh6SMuh;Q zZwr+2nRbqL8>0`a1 zKF$%OyFoP9)zN)Gbg$@7kcRG3{J7EW5?w8t>wL-Y6#cyDF42D^jVmI3Bk;U1{S%_u z&S88{^6wQL70q>zl<$%JdhvTy-j9p!7X6sy_e-A7In(ElFWs-iKO}kpbjRC!C~3&# zi$5}neh+C}?tV-c|18O0Nt%A;XGs!$18MNw{i+dvkmT!0BmMVCU#IA+M4R=Z;Pbsr z_eI4Yt@vzTGk&Z1Y>$)PDEgS>%Ow9t@jom+=Z7%=*ND&eJ?SN)Sx)NvG>~q(_|@W@ z^`{7H5q-J%_lmxTH12J;?(cP^@ld&WD>soI6r=e&#r3UjUV9ViAsG8MzvP~`hIDR> zzKitG82xvoA?xOKf0Xnv&vWy#A0~~5+s&)~2hzhm&&`YeXVPeJyLruDAdQB(o0t4G z(rEa*dBtY^D?TXPyx{MUj}IO2o%^}yt>Ql?dadZK zqTTo7-J*8^>As6APMztsiKnYT#MASWXtrPD`L4IbD94}klK8br>5WgKuS=rwjhLW+ zS`zJXtN+waPrE2G;Ur6~QcYOE8h4~*;<=Wlw=-CmYN(pn8JG!2U?TlA-KES{rVi37 z*N=HcYjdORzohsTHT4bbiZn&CJ*W(}U8wZAKGZnB=|r`w((KYevv`x;sMvST%s#BD zs+xZVHkxZ|NB5%b4L3uU{=@0sa77+ab2m*qOjl`3lsM* zJ3rE`ze~Rsw4n-H2y^;=ZIxRpROMBr>qw4Y=a`y6lads z3f6{ZDpXLJ(#6JsPG%LN4)T~9J2)p;ziF15N-D!rS1oM}4%(75OT#0&GQ zTz~6GXBD|+r{+AA_@SJ*)uidylb&FkBZ>=-%aS&!4PpY4{*>IW-Fnif)1wGQXe*)lq(2GZ<%70@`EPMNoNq!-+Izb(ic^Xt;%01^2a6$nm_6Cm+@Q+jxx}>Y^6E7CP`o4 z>os>vpVf+Xr&H_#lF+TM%yh1W(^nuvIepbCFVrQN(CN#xUh`YLnQ;8hrTY=ux=Aj* zz6|R%yJ++{w;OHcB$rlSruCYCt-eg_HJv{8W6-($b;5qSRcZ5=X}#uPJ+FVS$Y<)i zU=#GAzmG1hzD(;iKdbt2jg9Ml9p4H`F0DTNh8VHr^^31a-*1$^0SUF&L`kbJ(|XPS zN~#}!z_&`0OVZc(dQGR#y$?=TADhffH@UpCRNvU{r+Y8HoswMU{H0m1`Tit*x1OfH zOzSndwKUyE-H!+R)z|lW&4_+CN{v>`jmCSPkMvr6^QoW-6736xv7qrfe z>lP{J#mR@vS}eOJ)2;jB+Rlx4m44jmqzv`gHDaT7{!;qUSBtfhc8z6h{h!r^k_PMM zxK=Y>7uQviAB$6%cFp85lygva>0?>>rH}W72Vs4hIXA=olqVRorh#u5JjIym%Goa0 zF1@0}eobLv6*jMB7#km)a5BeDIGGchYci)5(_fmK=6I`Xnra*B_^sE`S~n*ljlKxZ zc;NlUFQ2KIsq1nc1`q3Uo+XS3sruqaRz56I_@iN+!e6@Z7;r+^Y+Y+|%uaYC7|6cS z@C?I!KmI-nGW!OSg`9)&Taw=;Ip*K-*K|(WQy0dDFuN99IM=+vr26ksbS(QFr^09T zj-_4>op}TPj6b2AL-;#z5CbBw4zzYqdu~?Gq+$KZQgg28Oy4BF1#b3kE`vPe%rxg$@&6s>F zYZ&U3+GPzxsgw7_E^8P{l?>9dhC%G#eI8e6IR5vy|9|GS39;GtoUxy>Ho>hdz}t)a z{M&u`2gRQVFgP~1e~6vEujL5A839_A5IZ9vFSdqZSi*k(zuAyyw)D@B&HwjSnfh)< zDc;$V|1UiW;IEwW|JTnvoHBWG{Ko%_=9kqpu588YaME-fPEdsTjV>U=NdO7oZE4mU zxV|O3uApo_<@F9l5Zbip9!t=XW@rE5W@rD=SzAK|FGu{yuLfV0u$8}Sk))YRj7Q$M zs4#B2e@hUw%6Yd2K}+OI0nMVpDgZ+3x>pP9;+dN2c+?{!ykjLQEFQ+<;w>f4?08}u4OvGWIWf7{g}NuC58 zZ?gK@z9-1WPgk{_)q#NnxNObTXGiSd`H z(Uf@8F^#vr$xPG@3YuiqV3&B-9bOm#GLDsxlPT%wzv5@dhg|);f1g?ce;Fh!0Vfy=GL`dKt4v%5CF|v+%fCd1&3az0&B;%LoW#kAp1ofvxQr7$Iq}o&qP`1ppThM+T*s*g*9atZ0j?5USK+z|*KN4i znV|K?fMq);}t7*vfvQpt81gJ@n& z(PRURL452L#MT~z`07wZ(;7k$TbN4Gv;h&scAtXYtB8C-NEZZRj&Ce{N71$k&b`U> z!et2)95aG%u}RDoGBoKJxWpdd`M~FZxLM@~E&BU`7b3hH7zI8Fr2HP?|Ht0Dz*kkB z>BIZv#vutIkN{D<904^bLVy4PIT~&X8YNs*s@NnXfnXC7bHSjtrq#B1nF=lK(9vmA zFJrJ?sHOeWmKL;X>C|bl+Lq}!PQ29OXj?i`jrZ?))_UK)_t|HkL)3or_5c04l6{{2 zuFJdLb=iBb%e&TM!I16+GW=#B#>lE}uo&+KGCV&vbZ-D=!M)aEd^Hf2rD~PMIKKh( zR|z~BSPn!Ys>&?JCjlY4(fKtYxKABfpka3HSVa01rLHo z_?&wLXA4dh6m{DiY75if)q<^ptVy(AEy&IR>Dhu(@Hs&}r`Lr4D}u~thTAXrL&5I| zvSUd1I|M&3sQYzy3f(NYOmK0Nr%EbM%0s1!5zWAxnL;uvv zq2V)0x=QE+LT?iK_oPu_`-J`@Y2?OEq5nb}51P{NkVdBII4AdY=ls5o1Ll&>_2?0# zQSsEB`ke4x0I-F$SdL zOiM`P1)}3b)ufBjQIv5WCUdx?mEo@vTHhm=f%Z8&w*=_E0L?i8zyAvYG#@~}`@{fk zCX=;YkTCZh+y&XR3G9sdAg9F_FTkPiZaaLj8Q5rFU_Q?N`E2(iojB2)_)SlAa~l?% zAaZB_QcMq~n=V$j6hYmsUc)99-8sK7M|b8g%+XGqmD_Do%iTy4C;QCgS9yx{K3iGe*XG`x6_=PRq@(Tx1fj!g7%*yb8;uq5|I( z?Dtv`^Nc%BH$4`cQ8pD0c3uvf$IdJ-kHw~zPn$K3x@M_ zt4OCXg~wWle(|F;UO8r*^mqw3*m*kY=hBcLZx7=|&u<$(x;+FnN1InuK95U)2E4QU zMxt@8jyA7Wjdw5&zvDDzc>mC9H$L9{_}~?cx0+{!pF0^A+*h?n_*F}gTH$vH{P6ls zGAdse4lN9umpmZ+_&ucIzOS^ZIK_Qmg~_*mBUb3q1m!y@{P1ZqW;gf+^Guu!hQSDl1k`h9K>3%{5MaRB`MCMau-tGr@;1=Cw735^Mp!{A4&YEM3K zvEWZHm1AmZRxVn#((}S~Ej0L)8B=IlZbAT(%A1k<}k__fK$tPT8_rL{;e+Sf_OpWf#69i2gbwgraovV`o%H=q2fPfcI{TI$v{ za&9-sFPdW+DZfMD7chbP;y!A|TaaI&@KYX#lliHWgipUuu<{#_dZ_$XA-y74LJ=Qr z-Z?4{J=@QdFKzyFV(!W@>?lVsC);#`VuN1 zXN71`zL(5fevX@@FU#})NhyymDl)?KgCF}4FroZX%{z}oo0R4*3(o(@cTPw`D8E$m z&fgV&ts>u7WS`oj@k=%Dd~%>XvrqJKvbO>G($709KkY{hmLK0*j4oIn|0d%A`bxY% zW`*+orj{>c-uWac&k4dHa*~gey$$7;YTkK~@H-^W+sQ}emww*4j1482e)EfWzEc=1j(bIYU5 zJaERnVCL?>`<%@Gs-K9NPcAZk?EJ93@5h|)(f0X$e}VI)4dagkdkkkfGQVB<=Aj{a z@9z1!jbX}VFW6C$9?TWnII-6A-kvME1~y+YV}LTNJ!RR;Jy zP3uoPWnr3%kRF@1p6@wLO@@!olQUj_x+y2hN%qvWGN@nwe#MkyFViYhvM=CzPSW>0=ErLz&Ue&Z-7>I0FVoBP(~pBaRxv)Yi?TXy zdc6Eo8U6X;m&u?0=O7n(hvk_+FN`1AE1GF1jokvi)j#Cx$7;Hn=MmZeHHvaW?Y^1u z+PQq4wb!nQoyYf0@$0s#+~J|F6SMW4<6pYwiUr({qGOK3woz-t3U!6|6^+fj?G5lm zOlahS{-_4;Ao&nQjTq_mS_&gy^F`P!_mP(KaF=P8(iUz5L&GWaM!YK{h1?=4vIOo~ zy@sv>Z31S$3Cl>%)%YD^M(4~{u{|KIR>)^@H}tFcDFnMnVFr~lBBP7|8ZqZOXd*2? z!><)!)Ps!h4$?+|QAU7+psfI-D1aFO#)fzBd3=OJ;mWBS_cW1~<8fy>9>0qm7m_v{ zk2f4SV2)vQ{0uz{x0m3GjLN+nK(&{=zrcZObwuqYcP$;D_L6@gEsfd>Ib@je_wkYG z$QzBDOX_JNE#H6-E5mpr!%d`(4C9Rq`#@*i%WNJ0J;=zlgu}MLj)nufGzGipezF}8 z7+&}-2FV`5Vd0T~!cVr7`yD`K)(}s$ysyEAKC*^F(#*VjaQiyRT#`;s1~_K?1QwC9 z$X48|z}z!{Cep$^O|9T%M)2jNjo@WQaIUtt#ZkuM;9^>*h%shFhTa6?2$`Rq@g`x0 zi9>m}(JM@(JyBsFoyw0M>;_i z4jEpU&jplp&$|pZO#F}$hJ#m&3dh_C>+CNuc+OXGJM`=Lx!rPGi`y}*;-2OBq9@^& z6UliL)+JoPTo_%R_c)O0j;=7V{S4&KNUr2=t>AoA<)tNN^VG`R2J}3ATdS7mQ)4O1 z+r{+5Dll0cCs$o5&#F3k>Pq>Zy3(*bh|B5G0#9!W!~E>B7g7%@FYhdLZ%0HTOCamW zlbj_*Q$QDaDpJMX_NV2tUo4X~stAGS=D)0SB&~!QjDT@kv1II3c)UI$bVIXfC3WAM5io3p_*T~;)2B1p<07Y_a;k#>3nF5 zk|A1^XgIB>z122Wh(eKmac>Y_@S?Z7U8{y*L>g+R>t)#Qr!9t)~_hI=upbCQ5qgIBe|cYsx6==v&HRGa%^&f?CC{_Or?2#Fe>!aGuCjqQ`6Rtd9zMT(qI&! zv3+A>1C}IkJIcT}C`6o)p$PEvHsDN_BxIl>ES(8s7ni%$Ho3|Lhc)y&n^X^RWaV0? zroN@Y)_agfKkazWTQ> z%)9X?JGcJm&b{}YacEZY&p&-|;(ml@5B3nQ0bFdrm*6VJRe@_Uu2s02aPfPw8P|4P zrjG{y74r7u*8tYeAB7g>FNd21(a_%S{*KT)th0%W?r#fCMI_RtLd#}LZhX_loqZP? zzVzr{Er#u}0Xd2`SJ&Bh-~-^$N0bR%X7vhHv|igv-e!!1B5_aAO} zb{{oKsad+|#vR+DwVyeg+NEp1GVXg5kKdffEk%t+DYQ)EUtc-t0QkLt>vdez`aBNT z6kPLhU4)DEgQ}lj#?^=G5nR8*#hy3*9d^AZ0AZM2wBi>@lt$Ubr4>t2W+ORnLo0p_ z#TWacv|?vecyWM%R{TavK=z|)#ZRhO6^bv8Fv(<*Y{q3i%EF#Sg@1>Aa`<8oS3H|B z1GsQRLaaC_L(d$Dffc*e;=&?JOM&zs1D+2o0UG%&##tNjx^VZ4>_@IK9=?W&`+=)~`+y9$$6|aZ@M75a0r7}e z-DNR;J8%r>?H1#kfehaSWIAvezKemBe=ZR9p{l}Syj<-0NHJUq5LsMRY%yL6jNxmA z%fZ;a(HDl^hS3*>U!yM!zkFkH-mrl2AWT6ea0QU@pn+}nWn2m*KeVO|KRh#rAN>`I zzbLQ@G{EdbNd!+5&jn(Cq4+;eX!I`%Rv}+!0v7|P16e-ffEB=rK$gP{AoCw-E{Fn= zzXb!}kGRdgl+%ERKu-ns10h7gL0}p10B{O$KM(zfIETsG#B&%Cjonb zG2nI}UdIJnfTsgD15X3?0P)ZkbOTQYwgH)smB3Sh6+p^g0)(h0f9Nj?dOQ$d@`c+( z!#(E>!JUGAg6u5OeWBpLgCPB+;Fkn%791`(L@=ml&H4kU9OR)vK98i=pi&VzDoH$B zki(s%xqmH@!=*&sPm`mmq(A8Xi014wgwy>s&1qMlIU-DcJdBh$MUeeV(#Hu#1f^+^ zBcH0Am*9#1{zLF7!To~!1n(C7XTdKDawr}DIno5mStm5#AGGKDgE&#}B*CNUzxPXi z9~2Ch%e`WMhv4T0uM_MPY!+mnoO0k9Fo?Qr@D#zZg8X99AL|_vU~r#cuV9a0tze~K zOb}qgO-8;KfRUQ=0L||Mn}5}~X!zYAy-H|)g&Cgdp!u%2*NXd7;{J|xcK(MnUby|@ zJ_1O7O+vGwK)rO;%UeJi{JTZQcG3usIdNmSBR#{n3C$sM`q%I2uZ7m{=ewkFb>pJp zL2C4`-%svOT>u$xz(vD-tNrw)q!Cv0V~x18Nky}XG_D@u|7p_s-adtQlEw#v;}107 zB#p3a@6bF#8l`$r-2audFTZ|C8ijvY+_|l~pMH+CFaKU94c^}n{`^>x{=3@}?r-0ew)T-m!$9?}sDDrZ<#5%T;`g6>2J7>JHl{NiY1jHc zS={?1fBC(Jm20X&_~`=y`X2*yF6xHg|KWi90|B}%KwlrAPYcMyh5)>{=G*{{tVnRD zU%!9$iv09@0s6TB{YZcw%+ix)toFnpmKl~wwcDZ{v*}p30%seqpz`@N*}rhf#q*Ze znB5O`EXd5%1c#Rr_Fhz<3BsjZ{L&^mD>dsHJMGAte{czdaQ1lOn&ix@lzcP-AimbmThOC3#TLF8dkGAg%227`6&W*ZzdLO$!+dO&aLCJROJf z5DvaEJU48Ll}G7VW64g)c8nqMr5R5=TKq@Z{W5vnH@Q~N2^;qf8TNEV2`dQfiI^N$ zVDOl=VXC+3X2>$Csi`(blr0L)4wt^FzI}|*$G%3wA+2e4UZV)Nf z?pBtGLb|KP60KA16KNNYO~sa>{w+*v>^7ESmB>jq!JL-Na^=UW7uAS(+?v#6!-N|9 zVj-8M3s-QtUcw7Vyun%CK%qI7ESTwM z8pA(TeL+PD<&SF7tU0&j!WAp$UASOTO{&Zbaxjvh<^=7nB&bPAobfGNGH-s>qL6}N z?c?5^2BmsWmmN5#OYNL4wG-RLT7PyCAlB#!EjxNnmmNK2rQ%d9RiyuEWj6e@G8=wc znGHX!%!Z#TKQH0{^G4ayoY9~X=?C?&8vOrH#jj|FlgeX zUH{ixNnegxuSZlG%{zw|ns~+xcKzQI(w^1ze?8}69EXC1um4NA-t2(zDV6wlqV3DH z9m1fNG{MoD_KbY2`Gz;sR>AdG1H$hLX@4FBKfgh9GQkKx%$jkvUh?{@CNolmcE8Da z^as$kChNkLW*mw#hRK(5z20v06=*mfK(ieM7nI4m*k7!N!+aYyR};%%diM!GO=d4E zg3knbOL|Rtgsq2rTKHiM&zN0<zqY`5fgtt4za z`Z6q!S`5xsNF08^dak<8y870-<{C`>Ci5%d01ZsF1!n*ae)5Z9Fqw$1VSt0cPs?{P9xU>y06$hC@C&Oi?xMJ0dfNi>RSUmL@RO<@CZ8$aF!}Zc0Z`r-Vo3 zXzTx85qa*F_rcFjO%R7fIKLF@|GumW{lcbe;^6qDTL1T9`K4O_r~I@(ukvmFnA`6S zO>e68fAR4)eW&7MMsqv{|7o^>-&^)JlwYd#e+^S?Ant=gvv9UW-)|_tRO|n~TxLTy z^P>pUHOHdwHkqLpeNT?C>EkECHC_i>_ z=_k1U?_o(_lQ8(kLLVo48_JL0j*gJ^e-qENfhGu>p^FB`FV*_L3xwY<_!5OVb)S@)nkq)H~FmjpifPCwj#2;A8MH4cp5@w-rsi{@YC;t=3{xG>!J zfsKC+9M^5(I_kPHd}Fo@#rmzLE7lLxUNLc?-|o}8jrLB+dNbN%-fn9IZV=G;3k%P6 za{jeqe%W5XWbck6kgs3Xqfu52M{e0KYvqD*^kg{YemkxKcuGuil6=E0tR+d!{qh+Pfo5_wEQwtL0_a1^W30(=$re{b_z{x?c#SN!Ld1 zl{I>Pd4g*rDbH(WFJdqMnRhD3Xq2n+W4SQS=Q2klzis|;e_?OmV7p(iKRoM&mDBpy z@?m*v9M(?}cqZ>9%se1}e;Qzyw8k=6e+HAM408l)F8_jf>3=Zw+s0$lk|@7d2Q|N# z?xV^5KGv>kUKIJBFPraneJ1mhJelvz4}ZL*SuUF1&tPq7(A`gykCvU5n}+4O)P5X? zY;C)v7{&kTZ?+4cGJ`Z;uq( z{A=EE&1sOISD%XAcTZ5B5Ar;Qy<@_k$x+zfTGvY3y23mrOqa_Nk0;wH-;mB>Yc4<{(WFR3H5M{ z^TX#?I9n6zpngyF9i+6a<9jnBPrf|<;pTywhx`2RreGVv|9uI*WBEL=uKU||neILS z?mH^!8(`(cJ3Au^HK(3mk`K{uuRP&~PsZR)M^jz9S-igvGbA03w*>(X1n8Kzq2sE? z_73hK(Al+S4M)LR>N+uJ*Ul{mmTcJAT3^?>o~H+3Ph30o=<_RQ3Lum{aBk^Ze~31m zjE1N^tAvnsCT7oZj?>oF+-&%)w{c$3+R*51Y;0e@c9YLrSBFOD^ESu&6Ptw?kD~Y& z*p!IlCR*EAJa*!Rsaw?D2DSdi2G7wX+9R>?0=!*l5rzg4|KUv1P&3`OX)dW0ophT-V&y$VDCYrlYB~U2dB( znQSe2SLIS&8@O#nV*|EhY`5-evqZV5#R`v`S|#(Ljc2>IxwTFNXlU)iM6$?*+9{=t z#LsJA*TqdA<~UdRszFKz2QF9DwI`H(!bG5B=JJutn5nW)QO$by(Qr#`@Q>u*eSUx( zz&p?knASV%oet+pX8{HjR$%SqTBjjo9hsR+mC=RcMp(_o>$)92n3{}g|9M=b1KKd z)_Y>z8a0mD#Icct0TWt&2!pn0sQGK|Ga}nG?%BcGdC{X%i z{rLaV=osDqwhUu(H6N)d&v%3jJi3Bx#~sckdWtYMa;s|(-BP)i{aa4J9AjkcxtQ!V zoHEB7`V!J;8Dkjv&-jUCe*(Wb@6ck%AMkS}t_<#HlD!dk(VO^#@R6}Y^9UzLG?vYV zE38^}!%wD(?c_D&j{byWV>{WzhJKTiJBP8Kyc*>^0s-^(z>cO;-CR88IkB00Av_Bd#F(`KQp2cKjRAUBe+`u&NKqdhl>^9Od~)y zXqyXXQh?h?n)uFSd|YOg$3-|a%GBmToOy68uKXs7cUBI5;~*i~eUxc_gdQ{uM{#H( zEla`83N+scR0|g?(0n7%S3p~V=2M{m!j<=qNT6!dR)U3$fG4wKZk^R7+6!+78TZ(N zX93(HXE-a*-LRJ(ateo?3?dqd{wsjn;Y3axu?UcrJ(6iHqPzu80T-cFWabtYa{&eG z-S9ty;ZH$i=7Y=}&ayG&Fhg?v0PB2afg!2>ZOGw<90QWvGYbvL&BtFL$t_v1i0@Ch zAGRJpL!!|-BHlQu=N+C)cPb{pMlMt1_{bMh)A^euw|e7=;q@4nEM#nT|ssc1hlbV z!PsYk%sVKt77Ek+f2H^4SKz$|R{4J+*}@XMlip)SBFCu}JoXN{x0wg)*8OsjuC@Hs zVerVfHR|M1Bb|nt;562~gViVV)}Mf@I_P)bdgx?D$-H$RJgCEBX&6`!U2m8e&T{h9 zeoKP;#`lbSnUkmX2NT@8`NGM#bqaDp>|+Q(WBG5&Mv^mbEk&}$zA3@|>U`sVij$}I zI}_Zm;hQ7l))FUA?T;k5f3nDg=V(U8Y@{`EgZW5n`F6vVCerdJWSlMM8%#Mr4i{U_ zH<)sM2XyXPD3Ztx=8J@>!`yQW$rsFg&Ln26V+1#u2$bmuaciJj=kq$$Pd~XPS6Aa~>;LnKl#7I6WWJ&(8!eW-Gc?CU% zV1Ls5X0IN3MB&q#im%%?2dDR=>{mBWX4e1`uP zHuN#v?7KFcpQ8s5YPj8ZE&KbpAC`kW%8Cvf2FT7BRz!#nI}R`;YuH3W#;^)NR@O(} z;>&K11^&aap%z~CdMM$LVZK8Nqy9q)hkDy=albCRcUW%XR$+O%msh^GmlqfB4D)vD zD)2VkGFx*Ew-I_wC-$|4UCc;#a_C6Geh;B0B)kgChjjIsI$e*+1$W8dzUyEYmu zSsRL~Yfa{{+zzcWqoOFIa#YR{+`klkDPuxW^no8lABc8EJ9DCE(=uaHarA-Dm|fDi zGg@U4{roN``hamPE6yk{if**zMz}`rkNz%Wad8gpa*sqGpzH4}_l&aQ=>4C`$s8J; zi`~~MilbfGL!&Fx;oQuwjKz_R#YOsGtT(VJ#zt<@_-Ar5CXF#M z<-VSqdE<4_xfzvsHZ_rja)Vv9^!66ls$P8svDEdlOnqzLIAmKYb=v8Ms@7ZW1BVt(dEj#%%Av=#9u`ceW zt07)A&f8rHtM&GmfL>MN*QREJS1JpsMig(TyO7kt*YI4<>paw zdLp$KjZ>E$Bk6j}E+kDzscNXzu9s!julK87xK5h}C84(!u2qu68fud3Wrf~WxmNXh zTkTpUF=`U01Fn~~Ru1oXn>gL>dP(BKK0eK1&x_tp!266QBzH7avFl}7soYk2R<&~5 z>{(fk-mfw`;zqw*ZwFkfB%yW1aLi>~y-IF1&JdxsBd=X?R0O@PK(mx4O{k~cxR$B! zg>I;2)pFb5Sy_(WuSWl<%V@dY?su({lBzvx?HfaAy)8u3l_q2_LJg%$xx=0}k@RU- z;^mf|_j^d3yoee+M|-C|@ky>M)p~n_Yn3uowd-XWheK#OJu79P-S3b@X!K=nsO5TF z?ph_~=_+xmP3=YFeAM$&g2pFJnIK9+JLAosRj1tccvhR`cAIB)yWIA9Ry*Z(k7xC$ z+#c|(4$AF|o)wq9(+qf4X4wy{@}=JoQH$j^=2?}>ZG~s00|q^wl@1YbwKxrU>7YO% zI(lNI;{dBXEA9ICdRE%oKjc|y2fqv*E#ako`fkrkyYc%xD_wP;ubp34XV)^quNLBq zZXqtyLY(Ag)-o-`2G2?hvD>rKLcGPZ(n9R@th5k!c~)A8`#mcy#AiG!EyTl~l@=nm zF`z;9*Fr4uth5lzJu5B5YdtG1#78|VEyR4cES6~@uJo+55O4Rav=CqPth5j(xy7?g z3$fF)(n8$hS!p5a$VP1JE&<07x#q+Wv=tZ4waU)8~ z2lcYq^^zoudhxg<$)ZlTyIiXE_EFa=DIYY{eXf_JxVb*jwimb>h%*AxHFQ{AbsauO zoRWHI4oB9*r@4 z!>K*9c>#X7+bu_;lJ^|giA1}*-Ev3_ECW4Fhf^vSuJF3Xru6?twzmy*mOs+T@Mckc zBEuLrI2hEnwt;ZTiaE0KKj5#4C%|GTz?Ax?1U0neO=SaN2dQBe9&t;kvRu;sx;2fW zT;|lQZRcLF*e|!!EYquT&-lR(v#S4PoT&-c02P)FM|GoOX7AW8C}UOBbS7=N>#JEc z8@gK7G`25Ys~RvJPBXNqVlE@QN$*8a$ZA~I*zVNSiNcgTL>;K8_Av`Qb*R=}H2TDa z6}ZXN6zX`W2(I!}2Q=N*L4&OkDvBQG4y%e5;xLC#mgmtOUUIH7YI%uTc|0O`0XKG8 zyS};cLT09u19!Q}EZ?x(l8&Y3mAJHBHq^jy70~#8;&HmEq^tv+1euK?1-Rqc>byTt<(r}DR_rgXi#I)c!A;_s2 z?rA&%Sd0sMikVG!X*UMHa<~2`?K4xee<;9 z5uZE%id!$7|H2PPpYraV+#~z!7j9j+;Ib*JuW$N8|Kj=1kNPu?z3lNN?=@e1?BxYl zH?`b(&7yNwPB^>r*Ejz2PY?elQ|3(OQ4qr3rB zdV{# zfPPu?L&B^4i-cBpt&il%E37_p-|R_r15dg$FBu=xK)INAEDy@Wc*vXSXP#)f{P7@Y zQar5B>ZcIyFOfEUWTPyL>lh>K_2?N(2mav_RBMeFCU&batikZ zFYDQy7aRNPt^H5TdO3Dk{7t8R{foW#{OnEc1I~THAF5eX&b`7Hz14o!uMS^Y$o;|( zKELb~?iJ4c!?~CE%U5o?^WN_){uTEPzwNmzhyUA`=03#y`r)-R-sT?SU#Q!)`NE6W zUjE1R*L>m^uk~E?rCM#PHKhyKk^Tj!STCo=+zD|~aR2LCm zM#T@ls9`8_MR5xcX4)TC)RPbwPR^5MKKg_bo*GoNq7IB$ZI@WsYm|sN)lXm4a}i%u zj-VC$lj4io2ee{WPOOan0<5TQAwp2+fWFv)6JPIuq}4`TvdOy9a|21e5eZ23Ec$vB zF^iQ^=!4bW5Lv7$L{zG@h^WVj6}4!@ijO6Eu?H+Mu9sv}S4MnMQINiN!bwD>W*V*7 zNfs;Wi_wZ5Ua@)+x3pqkSFC!4J-g6iMa?|=Vi#JhK)Hq!X>bOsM57aIufiH3liYRY zXiExropE_Ig}cr{7#-OV{yK2aIkeFDMIy!@Cch3+Z%z@u7iB|pJNOKVB&Scuc;>=S z7=ImikyjxyInn6wNhPeq!tX~l`2pS}yMcY!VtkjyIEPzk-wV74_8h4J#yJG^UD#7i zZ9eR;wHW6x742685m(hJi}7k8`Bqts9|!zD@K-Fzr;~IRkl_bVM^A%)Hj{wyLqNJe z1El-YKjh^d^fegP&+^c{Lzu02D0?6=_#C-y=0`4)3@e&}z7m9lpkl`JR@x%DcGyID{lRn@q zxF56_KLBKS&M?q@50K$GXbp__0U7>wao+}<3HL1)3|}GclYk6gYB3%I?tyy=upIWq7UP^Ez>^V4D@&jK>s z0N%gj;O~gV_^ZG^(3}PZ#`}TvcMy0I>^XA^j6VS+|NY{=4+xf3do0Fx17o0fS&Va1 zmVEkv*dnUxE{k!#|H+5*yTJGj!0*6cGm!pQ1F=O_)hdhe#bQ4fcpU62EXF4RDR-&G z_yi!+c^r^@@_}gPRz)qwv&8-#eB6$O{eZm7VKS`rrhM#9688x1 z0+P>NKr~~j*wO*U*^Xp9Tg1HwI1=vHT8wv!doz&yYJucKT@S`r2^Rizf=F(CPshV!Q;1B6QD-q5Ff- zOs4%#U?K2+U=(;C5a2ujWIjW7b52VKumW^Dunc%5konvSWIk^IGM`(3g}`PY^Z64% z=JR^s0Qfcm4+GZ$4*}N#`+<$XgTQ*=0pJ?oeqbGNAFvj<8(0H`%+AMweZb3sy};GL z?ZC@`TY#4WHv>Ng>;bLI-?2fY}$3|I+-ojLDi zDXA6N)H4;Te50Ro(JfQwNGUjp*^x*k{o`~t8HxDi+i{2Y+y zwR{oCLfZ-)K>neg6&wO?0rmrL1s(+U0rvwJ0QUj^0k|7@3vefJ9d12}a z<1Gcf0vH1p151FkF9b5*qQDVA2grB_kYCLI!$4%7sV6r9`$03`4+4h(4*)68e&A-{ zJ|I|_dh&VTPS7j|xS9M$T1`GfcITV0uLNETtN?BTmI5hP49I*c1R{(nN9NCB&^^Es z;B{jENgznWkM7$*R|0nd$@km9GT^s>u zqu_kOIfBn2GwA;Bg1ZFo6Wk_vi(scD#3EWNrJ_K`GQAsYqMq8y2b1rG_{D|mAms_QM%}o#4j=FBCjS@Jzw! zf~A5nL5_Km&oIFZ!MEf&{*&PE1=;_m|EC3iD)_MAcLg61yi@QtLH4^DezV{w1-k^V z5L_d8iQrPfg@SVhPZB&vkS{Fq=fP9Nx8?otn&2V9e!*V}a=4xT9})b%;Ddtq2(q6| zf7=9a6#TT{M!^k&^@5iPRtvI!O+InK8G@$?juRXsI9!nZX@+}8-dBGXd|B{WL77I$ z(f8kv#eTOS`^)5Wx8Oeu@?0U>-z0dQAQy4cezo9A!P$aS1y2#=B2xO#6ntCWgY56p z{*d5*3UUo9?Y}Shkl;OnT(e5|8w9Tv48C{I5_=hIPI?bV#hr~>^81~!Se;n1lj*2pW_9&I-T@e@;&$;!QTsVbvxZ3 z72G5EEkRCA(4E7_L{3)_uMy<meLW}eRiR%L{C7c4 zh0s6GRU*xcAjWZ`X$^x!Ct{0!CJve!I&Vxguf5vSpY_AI4$R=pCFCv0KTs@oT}rw zb$UL*5Y$t;9~AdfNyEL(v{u146TXZPE`vG#sC$e`mNMoySQ-zQYpV@5MbT?%DX>(Z5+@iy-4kBfUCrbe_1E zi2o*`V?uvU{P!XqH2l7kU#YmW9YDHF==X%K5c)Vg5Ol8;n*AG|d$>>Nc|t!T^m#%* zD)b7W9~XMH(EEjM6#8F<-XQc7LSH5H&xP(0`hd{ve^H)a3jIaWkhfQ8&V!I%EcDNX zt`_=Lp;rl=i}oM=*9y({BI!1v*{&qrEp&s>Jwks*=*>d+3cX$EACX4+&6V5u#t3Vou`ONE{#^lG7LPya1KuM>KU z(ANolztI0E^rJ#QDD+c8|3v7wg#Is~bB9^^-w=AN&{%tK;vXmUsib|+;}mh9Chq47 zJy+-&p%)2#mC)5f-zxN_Lf=E0^+oE(W8&TQ`kK%u3%yh5 zIBD?TBK$8C_s7M(L+B@kzFBC-OLM2tjF;vIr11{Z^K5<`pnpvo&%B;b^K5`VB6JZO z1TguKi}LgAPnrp&5q`3`&lP&M&?`wJ{+EC>SCGatuIJaZ2k3`{J}lw?NE*+Oo=@{S zY1COgU*3KDUq>+buK1>N|@K!oT8a(y9mr~NW z^gNU@(%`Lh1?ggst|W~Kr1*Fn|6D*qoevSi;f7eJq!KG!~&82S%_*a!J_3#zM@8>ro zKrao@YXbB`VB`U9 zlaqIOH7kGG8|8S|qlES}(!FH~_TW=2_P}Zm5i#xgveu{XAXujc=jhb8v<>DU*CZ`_ z-?@|Kd|GeyfltEJo>ZIO9unv~4>oCyM3Rr7UcDSNSiOAd%B2gIR_Pg-sWxgA?^W~W zFRH2;Y#=LycW|Uha$*t7sk44Rx+qPK9s6L%)+R4mNX!Xk&a(~6>~W)s0>$jgC^?_; zL!8*EM?0nn>K-Z?b^@wOKO>xazxl%wxzo;G6dSkKUi!^^KF#d@_gc^x!q99kNd zl(egA(iS03Jx!m|a`#N&u&gb2kG2hUof#@^((;+~61u0`hD9+Wyle-%hAmA&%t)K? z8EF$f!#%+_RA!t&TQix5(^;5_lV=S*lgHuGVJ6O+H8-<(^e$~?=~>IOG;oE6s^F2? z^iz@cbvD~A=`fjQmT5f*bxm8LXQoZ<%(PO?N}G?f(mo6oX=ScRD|1CfXw^);elbl= znLYieywcY2+2JqBgw<`Ao5P8x&$5RRPxmq=@u+F>Wsf+XKFiJeL|<;rPPBH5BGK9{ z-9&5mu}rj{>K01CK1HNcQ^YzoMYQNENl_&7PkE?yig>XjemI{L@lH#TmpFbpln;)f z4!2Lie|m~^;dts$KILxpPRxgL_v;d{cORvIeTsC=a9hz5h<&y_;(R(jA(9%~vodG3+gC`4;O4}34d6y(Y-gv)mf6VyTmQ+0W$oR{ z;1g(SnLY7+I^O8bwsSMV>yd>YNPm=Goi98SvUFh$qn88cQ-(zkYB~yzJ*nv^B9X;P zsy#%uMw7c_;uUetv)-344fkhQyP27g32s>>X8qK%6oovsEV&MwOrDAp?xom+tdi@U zgm6W2LzucUwJb#ePc36J#q{eZ)PxmLVjna~9^vj*2RB+PPs)#s*JlfcU_&Y>&&BhW zFPS&L$`*V;BJn+l;?ftKe00$YGc^PcrA4&USgd#$Eut11T51x${+5C%2CUd$FPznOR;kDoeaT1Ct=Q}N}WT|TXB>a=+o}`)O<-n=s zbb_hPMP)UcC)k}7IDRv^6~kP{{Nk-YyocdLGbF|z4COj)7>{*gxL`1JiQS;hZRpQI z8Hd~=ew4-#HT6fiR>7E>n$E^v2tdhYw^21P|(}c0l33SeKdI)M{ zAcdP8@Caj^hn&by`P?J{p1~Nr-;lT82tVuv(cZYWBl&#!gCds<^Eyo!!)IP?hH@^Z zYp8xBBifd$@H0C?&?b03I`xlfsx3I%h2L)Q3y5lbsC->*jqQ{$$ZwVK!%)33hlF4B zM0dP1OuqFS>)M6?!g(v_Nnk*&@WWJ&F^9n~m}lZ-pr)oC-4h;vWKFO<8YD2sUulkj zpWg&|gWp;|!(e)QBtT4<6rvJS)N%imB65w=UvS4uhusKhMc}jxm?H7KPQV-j}kM%Ex^kVuU$@tUTjID2i{9;nD zT3oNoqhTC_{HRyvH~W(L`JIvf z4UKEM)?v$+wdUOhewWN!eva!$`BDFiM)~z4z4E*z6tVKFTeGIU5eo-`{HE~b2J@N) zXKzC4jAb}KIbc4>Z=7bF@OubzRsj>rucfZuB>At!kJ}b8-c}0&rwQ#Tn9okSbm&qqW@re zPm=mpMMs!#VU99jQp?v?S0CipBK#%@lXnNn&lE1g1o>?hes@ZGPog4Vq6x@X-`WDX zI%~Q%T!o#BYHF$$`n^|3ed`s={b;E0{nvDo`Igf*fgcI#7H)w%^Qih1=*Zy1&(D~C z!{fN;MLw0dq)Os$@aElX_U^!zEn9hR{cD*S_u{p%1#5SqvJ>P#MdsaA7fC5Kh=c08Ez8Ing>StsD9L6ypt;P3$n#uI2ld_WF^^B#k@bm`%{ zfO*~{nA}W&!$&Z0+N$biENzE9ii z;ZFhze~F)LCzod#R%Q+HV$Zt=HuRBYjxx&Q^0|K}X^%3>`5o>v4&WzpdW1{SRVM8g z<9tTgTG>uFvh~BWmF;vRTP9OvWILU*or235@fO)ehPIHv6*)VX>-eJCxn724+he41 zhtVNtSYiHkxG@CDi!LnN+Y}@ znnos{VpMdBIVQ?E4Ox)kyv9t6yj?I1zY*L!q^Dfefn(OEV4K?Z#<~tP#mCN)Qo?RlcR?=GCjH-ucEu*_0^2gBYWSGBf(qGQTAtz8??CB>(Eve`VBwo?{2)-@nUp^lgI*_#}Cnvrcs*mHZ5w&YZ6 zvxBK6lE#r?jgkzB&e&t9X()={n#@8R1#|@G`sD1vp*|1bn4dj7vS&|5RS{0riSEjn zgu0=gV{*eC{ZkmUfQ<>+mt8~X*9$w3>us4Es$Op^U9069P*I&$xn8REw!yVh8x7=W zsBYKGvL3nB7k`M*8cIhQA++A!;xek2I~SDUF4s%7>n1nq<$&vDS3T_uNWHk9hvc2*KaV8Zs`oyCFLhNrpQtxJN%rwdz$l$df^KD3_1KpBt0G`pZS7nj8#=#d_fE2d~ z#Y)kn-LUSA8D(XYr%j$Ub7HJ?4Yp-&h{4(Toj!Sb$Hom4oxjFga!PVi@Iv_ToSoAz zOXe6$=v@qIXY)YY+$jEeogdkNIq1pPZAscw+$|2HlN1bT_ZW81EAw}kup@d~JBF7# z%{JutE^TaVz~;Z5Ayp%kbx3b3VUu;OeaThCDA;PxD>+xw?)O}0Qs~ra4==dkvOk5U zALVuasAK76wd2dw(4M32ZOU;lUOHI7hgA3dFVFU zFmG)}-7DE6cNE|Flbu`d-+gJr>?5E0QPpkZzqB={c;VE$uUx$ye*19k#q$wl!kL8}R+&`B4#c~hXc-w0;xfd<>isinu z+&h+g&$8UuOL`X9pK)=Y-xF}LU$YR`CAg@3&xOBRa53!w^WK$BKxNMj^YWJAFLvDM zi|=sp#pX5>!d?IdJ=yq|u}{-Sf(skzV#SUL!}FalEZI|{6<_9J#cl(w*l(BsgsB%R zzW>FS=~2Lm{S{%)P6Pw;TOhtnZxUAQ$ciuAxuz0#2*DCaFqJ~B28OxoH@zu^yZg1a zd>~JviBU`#Ry&yF_~E{o`$_>(jjH&)2F51=&jQUy4;W`_fc}bscr8@10RfEj5v4!M zL4Qodx$t)wk(~#85qLiE86d;+v5LY!+bF>Jejut~)uR^Udw}%MW=4YPJ|}0HS27YAwd+0x4G+a4~QK5RXb#%wqgFvFBriOsp!j7%v5m zMeisE#89!>w+BPyT*_niGl~LnZ-$}pWA+Kcs6;^}>@gf+_5oT1WW4i%pA(=34ToQLP69ij=a&sku8q|CBTysDt8%FJ999LT4cV8NN~&aK8zP0tE( zUoQNvAdLq>^(C$(jR%bTQPOZ<5UzJ#CGq_;Y24RI_+6w?3bo??1JZaAHVFMlfc`0I zU-}P_hTpZCUZJ%)^q$bSi97c_;d;hi;m>_I{qz*laC=bvpG!Iydy|R(3j=fmX{5Jb z+&>YZzbv$Ak03vOL>hk0SR&|OlLr4EN%%hs{kYIM$UC}ozY`jqrETI{jC9eQPa1Bl zcQp0lU-xIYM*Qy-|7QP%e8-6)9-42_9doIwAF!J=-cC9nznAoIkA9pqUUWLY{%@p5 zV6Rp_P%u2bjq5j+{twdl04e=EX?$FCewjxPaQ&vv4|BgBuHV%8-8V?%g|G9o?~%q! zRcY>B&-I%+Kgznq^_x1sIhr(H@H#)qeS)}tQ|A{Sg3QB_7g~QSL7xaeS|6VhckWL} z(}GK~+Ry_5`WiU;-C585^w|NL-z~rU=>Zy9pWsfve*cpK^j!hECqRd;mrT1DQI=M& zpk~uFSvuz}o(%Lj?dnPG+|_9B^qltA7Ta_4FNO3iaFla!F0O0tLVwhZRwORCv`T{5$ZEcjPG#bXypT?*jr6Ds|7vO$oP&|pj!v93Wd}lxILjN?;_#{s^$^}@I70PN z)J!KJ6XZywB$s3{s8(1usKEwN9}Ux8R#nb0w`q2rL?927#v#&hFAwM7>rba$X~C5; znDeLJM1!kCRuj%M?eIk!5oKXXFp;4{7HQZ(#g*leN4 zCD^FoT3uBxKB6qT(8yBBs=p>kvJSDaPT|`sw_;I~WQ9-VS*=`6UaJ&r)n7vt?u}}& z5e;h%npN4?G9-_s3yp$zQu2cjjp}9xJ&J?@agvL`swk&YzD~|)>)+KU57(C-oG{61 z+Lk$&lciOD4zg!)bAcJb>KRk{o|M&ErusW6tFw%C35K#7%c1}+`p;N)MmN!Zo{EK& zB&TB8j77_KDwfMwdIr83&}W`LGv*mrpLu!;edg&ER>9foGcPqm&GR-i;MLdJTHo5t z=`2sH8RwOR=r!*{yUdBzDvIENRhcc3Y){;65<4+A_h68?djB z)|h96pR2qHJ*@=2;r+s|T7vWmzXRZhW@eI6`BLdMmt@%>()@DtG=<>jH_7FjUQfDK z5*iaGmEcFKGRPO?MKAvJhUrQ72tPhQG_^;S&os7D>Pdf9_)WI#oK1t{mr_r9zwoP+ zMruwv?c@TZsfC=T-kwQSed7JcCtRgz~1+)hQGRk()-DkvGpzZ zZnQw75$gY>HMt3FoS+{3Y2u8bwWVQwP^WVGG^)Tu8y&8Y9yNnV1n6!x?W+Hf# zK22hVa%T4PxFSWlWNftMnKVYM+VWqa1GVL;3?j<`c*ohz$SDzSj<0c3PlYDZvKNk4 zhEt3T$HB$QaEg(EP3o)z_=%iS3mG54-LPJSp(zGIQ}A25moftG@Q=Bd!vBVstn3km zAV-eC57g=Z2rHvbuj1wX1~&8|>h%2}OGt`3{RG@+;LnLnk8q|=h1SuSNXxabwZcy~ z!t=ZVEBtgLJkPbW!cV90U&ZAVanc9s^!EW~;(|K;nE<0suQ{sf^b6=fb$U+ZnH()< zen9K}zX7=$@KZQscwzo;#5s>yz``Fg0=_exQIVTLltkg>b@lQo+_2Olh47N;jOKkd zvo(@a3HgSegP%Pli*ibEJDOF`vpnVhGUfX`tQ8oE6c&^x===|7hq=&G${%5s@<*yt zevzk?Uu>5Lyu=j-qmmW$M~i}f9rM@J$iFM-f8cciA3;Gs^n3jOwwk`S-pu&3>h6b2 z5~9IB5*qx`jTwuJa-wG$9sW|Q!ynyveMUDdH;U!?M>5KaK9dvOWW3k<^!oMt2?cY# zE$4d=CgL>eEwy-PLe$W$gE{0^yd-IdtCwQAff~BrYBxCI)az}h=Su?ykqsJ}h_ga( zCs~^?36t(s#KI&T4rwX;x^|C^5 zHO>&#eHG(XH&nIWmf<}`gCevy-miw5>v~BlFa5Okx?ZaF_6gUjQ8jKOjwOntNVZ>=jmZ-sU_I~#WgGXIP)t;lhQ!y5bSg7-Q zyUn#qVyvN7yIz(x%k3?ml`?R@`#ifc(I}%zH`H>y)zElY62myoH(+4{aNw0++msy) zHUMbY(#<9xh(_ z<{{%tpI45%a)8!cF+hVS6D@T+^qK?YRCLpSmF98<$g;c<6_slna;H82$n9JOa_Eb{ zxbyQPj-9~OAKyAM_8>o&eYp5Z+K=lXu0yy6aIv#of{UF|RS}~O`db)O})%A@(lICur~4OY%?PQ2>n zNkDdbvVr8y@RWgaD{nt9I4AL9o~s|u#PBMnM;M4@$|(~uWSaqQTTYaTNn=?0$->2Q zVj0tphQr~Mo2x&}Dvz;mZ==jy3BuJLTm{0_AY2u~l^|RN!c`$$F~Ww(Z*cuLu6J=! zCH*v9aa`57xU^y;t{ZXjD@#?=<8a}hN9RIa-(_OA&KHvl(47<>@;&)Pf8GHNF34p*XlLSM1np#{4o#g&B9bwq63k$C; zoW2z9+AQdXdl>&MkQS?D&$t1I9%)sN#dtRmIa1YWG0yf0+8k%B1Y&Bts@h_FF>oR1 zg%;zbKs1fcC{uIg2bX1xpD`4RxeS&qzyyMTB>RP|bn zZwE3Twpom~0hylFK&A)xM*d15>OmEIR={|L*z-lhe1i%wACjsPi^lyV6j>SQ7?A!j zby$FVvtEP#xSpdB2t5U}jsvyVXhVzuE{6R?U?p%VknvpzB){{4twBRBm;K~Dez%(@?WmF28OA;4eG8~7pqN$^{OI|R=VJX!Dw%RlE)L6$R|+;uSH zgzqjCKJD)l{DvS0_-Owr!Ht5S5UdwmCCKqX`kx_qhTu5CROgpIBXT?~_*21$1-~n3 zhV{VzOG3+gJ%{fZ#>@8%kxTT5W^fT0Jim07xa+zizQpPOI6++>!~tX4KP&ia!Ji3o zfEoWeeS*D$Ulx?te@?s5a;{L0G&XWL#Et))xq^Iuke(=bl3tx5(x^MC-?v`qEwH2cocO2wG~XBZ?c&aFEcrieogKD3xo$@F-A;f% z^6wS@oF*~ng5lw%VSQ$J{Vq}t`tQR`-QqriF9qE16I$2N z+y%L4X3-t@N?#!UHT@Tf`@P~{&n?|A{5t8L5B_W|!hD@H?p6Pg=OvT>BNE=Mvq7oF zU{CWn-F^A==B3 zqhX=?SC^8;hhFuk){w?WP4$(oAPpr;rQ1m#izV#j33D}Ryi8Po=rg3z=urKin@FQU zq53;)FL51`*7wW6gX@sA{!S71!;-&WfIF;Q^FIOlQaJkEwNt189t-&YpMZak_4&hp zH$Zm>=$ivH+6oEb`Qi8TJ2ybHJ?3}ky`TO@fOZ!N`OZ`e9s(x^wzYBq?jtO53LVJ! z>nwCK3j(~wR64d|CM#q-MeUq~#Z;cHVc}aH6)J7Ws-%?Tmv)tckE6y#sZ{^?sOzK> z#L{J82>n-HK9wLFS1-uosnA?VIaVmkO2XDl=?a)IH(5&+9#@J{rL=3KWNB46!-O$L zk=T?{@>yKzgig2qDm>z}gOh2p&RtLxmUmcNm1aCObht82R8!q0K%sHT!j@D=7T9Gk zA?Fs@)lTA!)iVA^LzgIp=9vUZUVvmc%6glrDwbWyGZi~<+C!uybc*F#A9Qh-WLsd( zRPs?4HnA$3TX^vnt1z4&0DNc&8slnMml6@0uEKA>duoQWiYE@Xc_waP4UXB&? zZ2?!o?XgHMY5CSsQxJ^8|D7XyK4KFi-oQit3~_SiQ$6bdY6Hr<~H=F41*dp zJq!b*G@4;%@K>Dig&N#B82Qo;BR_Tlc1|?=m2hyR2c&Ccy$;`@q3gwz&+nzNa|_zU zenZ}VqwBF!or5tT?d@s_)QvVYMcs`-93~yjZ?vL4BmCS&EW!0Fi>1A;{PqjK=p@U} z<7DqtzEtbQwEfS1HBAYmp?s^rPqH9PzLe|5dPP1-wi83>V4j(XoR2C4K%Geqrmy77IU& z2^zEisOfEGbDH%z^jwWD;rBb?_m{!(OSxXGmJcY*fIM&g==1S*JJP$-xFr5yy;EIh zU43g^a}D;gGwVYV)<3R7AD5=r{9=*~{WbEdz+fr!RGh`tU2oS$weYZWItC6jKh{GytCQjBFW)eJ(R>@VmhWcaw;BA>Js&C8vjzBV0l$C=$mhNajJM$XphWm7 zkL}6))Jei0Wj&klE0PCT`E5aZ#VO%&KH7S=(p*WaXhQj=TF>@zStR;Pc^^DGNPel-vz2kc*JpN~>?7=LK)&?r*_7XYVKZ2M ze5*1@a6Q|A$hT1Vb)O{GLJbOSPV@R`@lG6#Yl#mwr9l0jY1b zB40JyRpxy<)gr7D(o2GKO z+z+nv8mQU3M`u0M95A8Wyo_HA6}h3^g4-1U5K zGuB!iDsXoFpZbg^_r5=S$KLlVaLvLsbBFa~*Qn{5FkR>My34~muSDIr-mE`lZQpZa zoHt(>AKCh1=Cu#?XO6n}`OGm!9(?QXJq)-*T-colyA!jWKQD>g_)jmt=Il6>>AZ=$ZPoxX9V#=+5?gHU@|VS- zA9J0cUE_vlr5I{0JKi7byx9-?=iK#@b`7Qav*EcOvGUCw*IzntVr1wmn3G$%cR}RI zcUm9rdu!dpeFHTQ_xaZp^2`>>lDKZ}0*rLEbhRwN{_JK&-1<%|i`&>*Z}w{Mz}~v+ zaJ(5dM`~E&v#qD^`I{DP=xS+fhtCb`xU6nPC$=M=gI6I|fpyF=e&#q=VW%Z*O>EDs z?+9Ck*V)+7StSuVo$NZ2S)yFnhN=X74t7;c``EF+ z*o$MWb9F1u*@DAbtn|~(hUX+%T!naSuRN`r-`n~Qj9GSXf)M9p|No_H7jWka%5*_v z%bLb^*8(kK#*Nc#bc{3ngq!w8GXk!=W%Hmui>a*i?IGTdk$z3s1W4L(GtBxmEPKvGR>WsBF);F%lhS%^GNMmq4VZb?Q zy`eNSU2nng(_9yOgJF077zg!uFJ{%01062FX%3z)u$Zt*SmT$noNh8p}AH3V;tI(K5*&(H9BimPgW^bMk*T|NqE=qm}pHdMbm@ zy~;b-bfpUaX)r34OL=}6q#OwifbD(%{_{I?)~q!%Yo2@d%!j z2JP7+L}AaIR4A=(WjNf{lu7w(rV#1_G}TJ~4n5{F_}MD!Wx#13uz?j?k_OLIN|}bv zX4&kU!Bp1IR$2c6h<4V`CS&Hx>Pczi&;=pQMQ?(Kmdr|UyC5CaYTpW`xLu&QeH{Mb z->cY^grM|n_A#=AIVAnPR|9-PLsc=X>{GU%&u_)8DbW(-hJlW z$mZO~maTQNdpSDU`B<&yIA}^b9uo&e-Pl^zxgC%!?7BUBYVNomm-cx1_Uu=vm7UiM z^#j%H)a)L>`q{ZH%^C@$zoX(kz*g}-ORIRFog3=WgKQuIoy1o0R1ZLkH5v`}|Mj{5 zEA_d}b&Q`Hw`-|m-<&pm*2I>Ux?2*rt2vtjI8~X;)y9^@6>H|gh>IJ|!HMI;W?Efa zeUrhY+SnY>3~cR6J2Jk)WuoiYCNQN^)1jr@&DBjtR?dRJvvB6ob891xXwSW+Ib>D zYS2zSRYrgNFExtGr%KcEQ0{susTy~9U|Lk>fCcBvbzNAM_S#1Y8tyR0kZ)dJ~8FsbW zmr^Shdsz0RZ8cM|O}ePD#nU=U%q}S_S~M|fhg9yKOA2Ugn$GK1bJvy2>FxGbrqgd) zE%jM>v9Sg0zcH-)u&W=oHnz?5+ejXl-0_^gEW5_Fjk2X_)v8-Vty*k~s;tyHI>qL* zvbe#j#n!9+CQ_mKPHLFgvZ&Qc)OdYUU5nL@dM~YQW0<7d^PECkwbQ=XC5ei`9#lin)G~SicJ=KG^pd(w(0;pC%Ek0h$+_T@oH88Gs60(WMO%z7 zSS#3WF0-DS{`i(7wS&L-yZGR&#}D27{%fm$^wZFftIuhI-%8kxu-jpG!9D@|X+$Q^ z(K1j{Z-vg^!_s_5@Io84)LIs9?XOm%z;%4JOb4#R>vGunPRJyvG;}%Ywmvg`7~*g_ zjpS5Z^4B~~9w2MEh6E4RgARk)wNhY~&+v*L({U>?GY<2_^jMpWN6|5;K&XAvJL~pt zeEyA&8Y(AKVR`!Oh4XfN`A2`Nc&FvEKiz!GgGzB3O3V*GKILa8hx92rc6h8(Zhq~h z+*MS1esb05cUi9Dj*UI)W1m`e5`0sUU_V%Vzp|*;H3N15Y&+~m*w4apdHg-tBe0Zd zWB;(}O6 z&kBhzQHiLw3lNH%84`*sWJcs$R6=pRPZHPoqSVdZ8s zZUX&)Ku)Gs0q+Fd0JsgXHy$OlF4>H&`e z-T?Rl;C#SCfI|Rx04@OB4p;}c6%g%|-2sSkJ9{M{(#l>ASOnMv7zUgVI1F$OAj{9k znEVR?hXcj{$^UIs_N{57ihXQT~oCnwhI2Uj};Prsyi*M74FWidHHGt$Z8<6p91hRht zRsD#N&&#t&48L@qV@{~{=mB>MF8YA!YXq+l$U{)@OMeS|2wxM3I#D>vq@bK7l0F^% zg5fxCAiP-MV1evMq_ZCp{uO_Oe-`*Vfxi^^yugD3<%OKiaU4HSIqnnsodR`v_#uMf z-TLnGQcmZ%PX9{;{%^e(vrO6}CJ;cCYa!~J`rz6$yYTynV~o=J2#*QQmkiDG6244f z2q*p#@$ZYcd4-2mKl{r3Bzq<^BFwGyuzf{7f zaS-N1ApYu}NZ`lBe}wqQ#D5BL@F)}ig~U-Ny)(4bg|C(Hx_&l`e;@Fmd5}1)*1vd! zcogODVf+7>IMUMk6h9-5^!R?DIYAtG+adWmCH_3Of~E)P41bB>g9O+2L|h{Ht>XVt z!B-2un0N;C`2lHecHxlSQ}w6ot3&+1B;hv^H|qax@&B^;e}*{n_en|bF~J`Y{8{3d zSZV!*pSbWpNcgWv`1gsU?zDbF8tTTx&moTb)%pg5UHDbRk)Qp-Z-K<`0HnE9@VMaj z5J&#z2>xZ_h<{k(f0sD&^N9HWLi~Rw{;!GuH^n~#bjbl z`19NVn*QjE%&$IQp-Au@68=i!$o~WhUn~B*#Q$T0?-l$m!S@UPWr;so;(u5C4~zdV zh@-zWOZ}W6j{evo;RnEvcopb0Qv_cw_;TVs(ch3qnw7-y*4Fwd9TGkVkmeD=3kCn3 z;N(lw7kpHDf?pr!G{v>k2y5r(2OLG z$&c1o7)Kln5Up=;1@W^nw?4-Xe-&}KH9nJgKI&WiuOogg=6ayfEFgX!#uveFBtFox zw7fgd!J#aP9`DN#hvz@&@tf;F`Y*>gMl%p~JurJmVl(L|{E6%K=J`GYd+xAyp&n_T z6kPX@-+%^E!b}EY;t#p-tC61Rzt-h{%EhnMh0k+^U+%)u6_WV>z=bnyT5X2GVdCF% z;p<)ay)OJe`W{?!-yCN{`0d)`@B`cyQh!rzebY^~i`wg2u+^-#o<)S$M9%PPTot`h z3sEmy%5OJqitehB}eJdlNClm3=QL_9Kqywq#ltzqnYpUE)ju`#1%qXV`^vp(r!gd9u2;{}xeh=4;c zMtBdGun$v^a|&=Sf!Pyk?FtrBa<%KD5sJMm)j14y7J0CNKJdXFe~i-}k}BUn5pQkV zhdg+z+omTTAUiR;Z~>JuGEvw>$!sRx5-C17)WMxe6&@D>yXkiL#6y?Ne^gKp^A^_T z6HwSuiNYrM+u^_@B!s52`Fz#KzU07 z%3Bgp-V$$lRX#_1%d7G^+FM>bytlk|cyD>_@B!r=9Z=rU0p%U-Ew9Z#puD5KCzQfQMZ+EntA7|R=p*c|#NeAU5@wRJRpKIiE=8|d|IS&VK zbUVD9hr>w%{ZDtk&RF3;R``#V7u#4lZ)faStUq`@&iUi(TI!oFQ|IIq#~hQmU;PsQ z`_)I4jFI5;vubOH&$@P6dBtS#)P~<-Xbxcypj;rAn#3Ok+=`C`s|7X)d>$}zt!14Q z$USi4cL=N&I9OmDX>{FFqFGieu?u7p)@asaqQD8pykRs1u?+ZBLs{(mIIq^1u zBeA|c+J!SI1%3u};@=hc8KJ)=_*qyB&$%dMJq@BSw9eXLAs59 zQE;AZN&goKQ&X(f0=YLwycv5K#TTVm7Yghrkb706j~B?j9pY62w*n5Bm13-a*)%XK=U3g-+K{(Ouy z$bE6!vPsKY8YKhH8Ht9UoeD&npmw+jQdp3#@=M8x;Vq8x^l)$`=lBn=bp)rhtd^Z< zH&Gz1w+y+Q)z-dX0ib`8%ruguzfQ|utlJHn5BO#&aHp4;|HC`16c% z+selX2Lkx^J)eAfD{97Ro=2Cz+34D1dJWV2~ltBS? zhxhM6L9x`9s!S|R_Y7SBtne$*mP>i?MB*q4PMfDUu7FH7UFu9jKC=9`PYf|HP{)6T>;T#`p6EfyW=E#clR(k zS#-x)!U=)r<>h+#k|XKI$n!qw_F?*GpFJhM@63Zdb?@@m)o)Av`;KU?7{bx0emk{^ zOB;Mz$*ED_P-l?5Z#-`%l2%;q9$=|`rJEz{yUZf7M3>ZyB6Vg%=fLBjTh7H zW6JPNl!pNkGCnOnGb(c?XPHu7i}7hr;rr$gI>J^50gZgh2|T})@lPOJ4b}{%!4fZF zga^*mX=z-D4}coef<9k(w1I~! zOS&xTz#rzs&Ep7oUv;l^-`SvyNWs6o-R5Iix95RUCTawDeE;-3pmx*R zX6LIs>CDbD@HhaEQ{cfeyoj=(t0oz4Yw$w%UCS_d-yu$8lc*}HXtlM~ z6>}0Cpeq9&2jEi-9*N8Y$I#fMBH)j7X7dQ-iv|HUpO5hYV+My{)+G(Q7cGVnrHItc zaAfTRA8dtsOwFc0%wBUMuZtcx#Me_*XH$7WI9?Ii6fWqRgq+6jq+UV1CTCN1L1a^9 zL6{yx;X!yV;F<$@H_UrFnGvE_oQ$u(o$M-3#n)35oP4)boMg0<7;V<=Z;QsK<;3q> zL%(QFg3UF^P>#w_ZF~cD%;M7`@o+?pe z8@;j85UbZy`_~-sL~Jx7j`l`8jE<@!CLh$ORuVXA5Nezjh99h_uDAt?*NsaX;It)c z=nEMoENQ3VfbV4uv-G{Y+~8?!#^Hd=T6k9Bto8+J){r=@P)BQ>+1R>#+0usUWlnG| z-Vk4sH?>PSs|-#g>3l?=8$qn38;8*cIT!shEbl7%4lEnyZCGmj?T0nZi|qI=Qw{<9^pk&9H$ZFU;vBdd+a{l8sd|o+Tu)LgOO@*6BpbUU}E8G*|rbgl4;GPHf z5V)yBNICsca8nS-qvv$Bv03AS;ze8XIP#O5~@En@`0_kRb(ZpagB|bQiE#|P7 z6NuRch;y)>C+Mw?iJ}Md9jdtu|EX7iRj4;BHz&PdZ94qa0 z#!J5m{~7P&&x*W?znfusl8=>+8IP6uN&X>1sCP<~pr1;WDYAw_HGA=Ir`qqWq*VLq zRI^m7{g|pUDZ|L;yby0UBoEeZsOCNV+kDP@FNx22nh%aGLYT~R5N#?s^zK33*)Wdj ziZb7-RHKpe6syM^dZb>J)AM3D?821ORfoUO;7}I;Q&sw)H7kJGDGyFgd9Y47tS*Wi z9AeX;-m-h~Aql7D@Lkrs6MwiF`AYz?aE6m)l-e!~5za&oQlt07`3TW0qE`C1;7;LR z=;9CuS!RYEDpZpJ%+Aoo$r-vhks(#37po#8Lw$aMcL5uixZ4hNsDz!dr<2*oQAWmbPcEVuxq$4J<@yT^xOi6s^Q!alaFNd%IQhP zVbY>}D4EHSI{M1WqdTn<#8CQg@t^re{PC9RQ1A4A0mx$ya){vYPn-gUIbb-=O3mh( zM^kfCfTraF9gl}Ty_Yo=@9hkIhEl{lLn+fd8!F4-fVVe}f8wc2Wcd=0Vv4$tit3pU z&h}YM6wJ1IIR`T3*atH8)(0~6aZZ)W^`0t~XP*FNjYEy3SZS=I(7TXL55a&h>+~N# zS)*viB!4MHmshiV_i8PgQ;(xlhhrjG#65bRwNO-!z1QYtIK;Q8s=2OhAy3mS zvJXg_g%gWGTGldrx%e1?XO&;=2{(3l@$lA$n~K_7TZ$Ght#58`Xe?4w*8h%7%(?{! zDlaLjT)d#AuH}}Z$t^e%;$zENZfY%>jDvfz{)7bZaCO`TsYO#7>l*NR$MwGQJF!Wh z)ncEFgd;eT-_M$ijmDME2~Nq|t_Xt$PI@!iB=lkQ1dI+jp{&bNN^_59ok}UpyQc}r zHMuY0e|YXZ{Ez9&KlBw2(;UE!BX#Zos(7f?FQ4A&vs7NFQERa|C_;@lw#Bi@lYNUL zYGMbEgQ_mC#it&5PA-bY=Q^n*NCj_J^t#4aW##N?u@$IR)OBq1@Zwk@CPYgYePncT z@$iwu$Br2iD_nqm@rD?@RoGF(N42h4I>h>q==w!Txk5|+<4moKuTNr@d`F(=cp9^k zaa4+Ng&Utr97SUv5n|8vDLNSA)ZwGIR0Br#c_hTW;QPA7;sK;oq0LubSYL?pF_g=rMB$#cv@i7)tN0kdxSLe z3=+;oxnDq9CLrEfYQ1^uFMmIASn;ecRi2x(I<3!F@D!Z73_T2Wq3vb)VVGU zs-{T>PMIb8Qy-Xy2Vv6r8HM3I4Z*2jOrxf!fCUP()JS5+R}(<^{Z9PVWCd;=|4HGe z{eLL9=BFm22(Q!E_02SBS?4r1Zm+t3a_%iR3ow&uf3ZpJ&nZ{_GvASRS59^917k2=>>oZ^QOLV&}n9SDM4~HLzS7-v+xCmNPm4 ziz7exE?_wKCy6frIRk~0GW;yg3$gLU`5*udrj1p)cJB=ALnM+6>* zS~I_&!0h}S{+|06Rs!J|Ale_N z!K$-YqT~k~CBL%($&ca4kKxD@yfU!kYn^uZ@5h-@>Z^(M;i$;?I6Z|K&n&7J8G=8-zYz=yQcWN9ff;uM&Et(5DE! zT>%x3{0^Opn2d_)16&j_HdKNK!J8wmY*RxsiF_#>q5C1JBbu40L+JqtkgKjIGy zd`Mu4z+!=NAeL%3h6h>2+l}@w;Svq)&pq~CzzYn#6Sz8QSNwMX4;%gu06&%O#NQ75 zxPfm2e#F4H0zY8jn}P2&@QuJb4SX%|Z3f-}e64|_o;#OIe#!y&0-u7-V3?iUXWs*S zw1Km{gAAPI?PcIB?|W=4iN6E*pA4Mk{keg&yiXfA%e%+Gw*tSH*k*G zcwW`>iLG)g275j%-&y*MjIW8CWAgLjMmp9BadS`SEc7FW=XS~^;%49BjtO z!;N-J&Gl z&EiE$BNIB!&A7-{hqpDHgOr+2vjlao2S3yz(;c~+<&<~1ntVr-*WYJ_HBSpF*}X>V z#TXq!D?-|>6L=f8>SQ9PLGSe^icZEyh^NVRZmv zcvqJ5J(@F-<9Z!Ko0j7$!K7<6BZjRG0-D;|1<;Rhj9V^+>0%gH219nj$cU+M8M4?u zzIRzO4~G!)Aub3FWAYOotwFM2`w%!EahKzL$9OMdqRIM5*;v}%5gP;#{uxjkJ@!g z89g~JMQ1~|iz>33ftwF@TkPZE1+E#2gz|2g8?2j>o|D0jM27u`BJ4v$f@CcIQ`Y=3#%o# z4`NoIVLjh!?F+2s?aj?D{W$xQ z0QnG)D|{JmT%8$FC84x=$;0G{FQ~Ydm$T?`yd;;}8%a@z*RNbziv>elOFKU6s&8th z9uUSPl#()D+aP2f`i_pjh)xk+cMe;jU}m)ZdLXW_mIZgxm{4)Nm zH0E|FtdhJ*ErKh368_#KDKCTjV4=Jap8^^dGgR{l{6}8E-xQ+#(o(rv$*e-!p}hV4 z2ieN1QTPk|Pq{m4sWj6+51)SU59Rg92MDJ^DbeU8IGJjSx?V0?3G}B#alKqP6ul1UQKGnBE`m>IEbL;?!o7RkLJ-c)$$6Ci zlm{9EN^eqeja(`-(Pie?f zb&${6qRgCK1^J08$ast%1)&oFjKt0ns-bA49kJk7c4bM#0v$28ne+l?*2<$4Whf{0 z4*(f|q}Jl)LlnOpZ{Q>{m>mUZD^fb4Uo)>;%QmRj*{`y)<(xo1Gv<32~+V z0KwCLgufsX$t$t4NN}^8jtktO86!jVZ|FC43>s4aQTj9N69?58nMroNOVCZSy zS4Tpo%6K!mgsO5wS(ir^L9FT*O<9q=l#B9kOWi$?q`E9Oa{dayi*m2aiX2WEo0ods z@vQMF7eT-ZeV;cBVDPM>lcok1Ie_7^ltZ)HB*7nrsyLA8tXdquyg5~Es>yPI2ig4( zk(n~<@1GKyvL{VyMzgrJ&aNf3Wsy{25Rg(^+eWf6C#FXL$}_u3Iz56&_m@EN9xzw` z@@pbj^QaASGl$&4m91`*?3%gFBWw3W(8G(7e0ZH^*5?x=X&%`9U1Zo9u+KnU!p}6! zWkUW8QvD5$wgSXyvY;lr=0r6q1NKxn6&?EwC8qccP(p@L2(`gju5fHxD9Dvv#cRU` zT(WNas_#AUKu(e$}5|yC?PTw?A>bzU(_6 z>_MCZut#8z!=8fWd@K*P0Ja3S9JU&k?_SQM_>j+nT>?wPRT#XK5I6CA1Ru(PFzUSz z_!kC(;c5PK?iBp{f`3xNt9ggvuV!_?nI?^T1p{h+YJvm2N%*Ph0&tzadc6bJ{IvuV zgVS<$Ok?A$Rix4S@nCkV0l{fS+K)k zFNd88%MlqrHB9FM!l*elAg5jUNX_*Szf}{Hzz@=`C~Dry_?%D)iB(5Z8U938>1CiK z@#P>SHDdzGMwN)1{4x~tBzfVSnj}t_xf+1syqhFWyoJ=Q*puOzST6<1KMjMt(LyF- z$UkAbS;;@GfM2`mCo)d-p9A|N_+RJa&%KzHuxTeh_<-e4@P?Cdx4{m8Ujtym&yb(m z3-Vm}4>kSa{u3$zTWV=Phny1EW-vQ{3fhxGe_Y@e$Tewsp_@TlYlJ7xS|^|D1wtUL zlZ`@tWuRd#li*K$sDy*eUFTs5*M-0Xg#H$mfQJnFE0Al_`C~Y)m6+asgWd|-w}t+g zz=y!+fbgOJ4&Y%aCvnyr`K$wdzY%T~aJ8|8{4?BK30Dm|SAZ}|{%N|Aq0Qdp}-wu4HfusL-USZ%{fsZus&AocnFap2af` zIQCvGbmrw@xamjJ46EHgGTdtn_kD)@CFQnbqylJJD!%=-n|o2(J<4#G8E&=pgitga z47x|g%2-R-LRRKJt}P2=2wEAT{Uxou0d(xd5>-BFpH{-keR!5)?QGoor0*o5*2n(| zqEZPdDqciv$W3`gvAP$n5-A60x-~+>dl^ob>vl!jo#$|8>1s>;7)_uQe|(m0o<-w- z*$Po4r;??xj2vq*Eg$(SpHN-_ET2IB5?I{_OcKE|gSup}3@>vFAtCEz`l|)JuaCPq z0t3zS^*PO&**{X!!dV4T=O9z=sx;=9#QDc1{^w_nD1m033a-x2Qss4?Q8`2lW6(b; ze>I-tH^$gfK(5ee;Z){KEhL+42JfEu}4-L zHDq*r<*%5BD-q#acrTg8SSt4NW_S9k=y&EDlh`gNu!zK5Imw*v zT(LvoaS>vyvgcZfxIXko*;SJdC!{JjziP&N*QcRib$W$zMGbg?q!P`*$hp}*_ zDFF{Do`*+}{8cOFzYihqMOXy8jE6^%{MA{I-TDOD_Qz+yBS`-0erb=ZW3F8I^p7C< zEArsGqok(Y^fDcd@Gx4}h&KviCbXMqu1RWAgP{1xv$x&~i9pIp`N;O29{k zt)w6>`70iimXNI@+mYw^o#h5)y`nI}ruFI{@=qTl&Bh>N)Cw#if29wtf^^XD z@gj;(8vr?_ocOdn0G_7>ppL_m6TAvlT>Aj3*;QT4^9^xZa;ZNP!I@Xz{5ttWM{Wv_ zr0mtZSh}w{5Vnu>T64k{kD3$TcpF3Uh^(xGVfEIc^wR+q*ee^gVV24pa}$QFR!E)t zwFiOY8?ID7`F5_EdE}azSGlG%RJ-Eo7SKWtK0sr7a&U!_gIN^M%2$P~l|qh$H;*EN zeAc(P?-~ymqg~458>oC0zl&Ri%p=S4KDu@MuKfn(6;kF!;?Yr?!lPI>zae3R%_lW} z7dKWR(zWLMDN4Aj{iHgJOxQh&uq@6afNKuq-%xwK93Pgb(NQY8t43Q?aJxoltD>N# zdotv-XuK^HK?Q7TiM-w`CmedcSMQV?=6yeGq4VjGzsK_c5jY%~wka>9#LYrsB_J1a z8YywO+QSSit&vz^}AU@t+>q8YO#b*zDpvB2WlBl2+!f-nP5EsD~g9U0*gT-F}c!TfSvV|m0GL? z-B!2+-B#FVmz9-TD@K-31g@-9%e#%VR*V>9lcwTIBN2YnB69W_Xq1HWRKp;vY|wak zxGVEAdhm;Fav=v<;5kTt03TE~XyM}K#_14N9yD|i=Q7jVmn>*(8MK)54jPsjT}_>H z#`!zVIuP;zX=%7N;Jn;z7?&f|6{x!{2(u9Gd2oLY?wxSA!A+h=;NA%Lm*Hk&yM#U) z?kC~?Ht3Yl;(g8xe<7Yi-o<w#37sEzT79Fk$_;^^}=}j8TM8kf7ELmI!{0tV~j}%{w<<=U6XPs=8I*H1Q zs!1S%BuoRsa6Mw0mB5p_Vzu;xVbh1ru1)f>_Db9s7(66-L{6AB^wG-+#C#eMGK7C5 zuw@8er%&4N@i!DU1#)$kBSZLilKN+az$w%}#1j^17Q%`QAzN(<(X-N0x#G@Tgd&If z^D=UkdKQv+k|AUc9)#60g#5amBtyszW|1Mh0#2qXGK5zH z{V7pfhVWXTM~NCTg#1n&?w!-~hk%h#`ndq=@QQ)G$u^wUrvM&B>E{(_~|t*3N$tPfJS>N^h-dQoiuf_S#*y^ksSo4bRfB>Av-{S1Lqi`B9F+j z^vp!fW`xuC!rc$fP)-lNj=~w)P9Cftmnu?QPTn&J23}~We}k*XRiNjj8$qLSkiQ0- z&LmT!Z^Fr3q%+Bs==lhLf@mM2R_b5qo`n3fwb3MZFr7#rBk9zMAoUGBi2r;@U?%FN zA3p$agBuc{xa^yun!HpUzaTk&fsTLn zX2vgI?s%eK24jSVgou*`J94Pz`UIOH$!vybHs|~TVc&qwe}MchX8c^nw+38Bj>T%{ zpTk+Gh94~KLKP=-E7si3evnLxS%b)wUBqHl#0-v@p)nzPksAlaP|dpuj$@KJj?o;? z;d9XrYv-?&@h`OV_XTpC5F#fItDzcRB5yy+6BM^g5YDdk37Xy6yr?}iK{9ym9)+=& zT|=H3KPJoa5IY1}a#Rl0>_8y9*yYKYEZ1Dm8G?Wnuy!UVGyaV#ljm`O5BJ3>fZ#-S z9Na@S9J&?Da9?2=RT&NU6_z>HzUzRe8!o+JM6L5B8 zQ7}+*67W4yRTgg3NJYpRDoWP|5{8;lAEq{`dr* z$ai54k>sVQlG|Vn636{VY|@JWZz$(1HR|H;J)k_=J7mq&q|4Cvsa|IA_#*s3f#C)) zXDHKWsS4>{>Y49+)TyiC)Ww%LZn9mS{BE=1JjrYii*pk1(nd)l`n8hE+y5l7X=kzc z&z(2vTDhO8__UL}eE-xMYaTJ`q_qZ-4=*+Cw-nbGA6jxcKhB$MQ=cemd2(bOPDsIF zC-?-!5B9wA%l4Hyyp_iX|K z`)DNwgfxrnqpKJY%Wvl=AZWmTP(Wxhb_Q+P<_ZXFcI<#4NZfpRj0*^sv-|HCgYbV1UOP1#>YNzDn@ARTy_!xP!#6Ui_Sik6CJA#Ses(5_T?Z zGwdqZ&9D!^a=pJF_668uuqRY6& z{J7wMM_ihB1s?@S1I01Lk2_*CT-cC*AK}kM6Y-IW*Tbg2Y;O>wYmhZ^E^)SsLQNY$MDx>{w6X&eosl6r%QO9 ze!bw@pUXRj*Jajv1*FmX^)KoJ41*uHG}sSW7V=}gFkj3I(_@}l4%Q#}>v}TNKvYi} z)K$=7Adzd~<7r~2l+|eJHvmoQ>&y@H%>GV3?C;cPc>ax!8moTs@smUP6!ElI>NZfP z;n?A^f2w$=<+4BBe9MEcy_CC(r^WvG-tmv^`0|hb#&S|0g1Qm)u}`gf5xic5O+m%< zg)M~T%&G>Kdt@Jny%TmPEO(<0!u}GLC*rbWP{L5$Sd@HmpOd76u)@nw%kXg`Tplb4e~PqaSy@o=kV(^<4#_m zwjsPmovqsi`gO;>=`z1zRN9U3yV#67(avuSez(A{(DZ|w`Q=Ey4t_V7ev)4*X+mBl ztt-X)BEJ{F?0gKg-wFK%(D}_k)1MXkEAo8;`X)L&@t0tk-=7IYzwE3s!apr^oV?sgIW*>n@xBh68}l0P zbn)FT@oo{=0DoQXI?%Y`&UB&g(pfEhdVn)DnaJn3&CA<};by%t?h)a-v&==%)% zBcOdl=-UOhK|D&Qb2Dgjg^oVk$*&GD9=#QlUgion4iT82;h^jK;)u)sLOS|MqP|GS z##T}~q+t|K=vA-^hyx^G0S56(lpUjgxLhFn9`RB@h&_Z$1hU>R>WA5H2_t|Jz%ZcV z3y1+JdV*k{(HoKx6pS9y;JBrg#Lig z*)Gi2Hlc47`evbT6#81BcL;rz&{qn*P3Rn7n4e~$HwnE#=<|g>SLkzuUM=)0p;roh ziqOl2UI@r~F92k{=KwOjC}0E-R+WeT3>O1L9Hm!u5#Rve7Xan~VkWBMGaTbH9OE-w z7!X_PBqt!l&qpIMy}1Gh3Oq;PpAeD$e-QYz!0!sYPvAWQFBf>J!1Dy2E$}aB9P<0K zK$(GsKP&hr1l}r;=aw-1G=W(H(*<&zqyIAkZ$fp}yn!DBey4%sIqUp{fgc6F)WDAbzrny?06yKo4+9@(;D>+@HShz#&o=P= zz_Sc|AMkhBDW$wm0DsxQ_X7W=f$stStby+a{%r%_1^i(H?*#rC11|(V6p|=R@9)UR zQQ*7tZJhFFEbpfcoaLn?6~oh?<)z$|##!F^2F~(MGw}Vu#~JuO;1?PA6To=}rRK-- zh76qLeHF4s+Mnh9m4UOohYXzMebm5r0ROCkKLC8Afo}&+!6?mt8}J1NJ_H`@!I~r z?iO)#hW>eR^HbUP#LW+2)URS(e#_#3m5qUnavNjB-2iv3xGB4^S=^Lg_>Qi zQ%)fr;i#iU8NeKIzYTY(xbyH*Z5DSi+z*JGXHEW4+)Z%vC>HYB2zRl#JK?SqH_sm2 zD(+)&e^cD=!F^2J0}vm2x>hd?yp)S*K;3b?<-7@G<>nmZesOc2Hd5T2<8;BzxH}N{ z2XHeE&2l)jn{yiN<_b!?FE!kz?pCLw+o344rFFpe8}1()?vsYwU+>G=*BkDYU{d;5 z&Q0~M?Zn|eyOgJkv3ThUIRrv>)J~r(b8}5XYlSlZy;GG3M=z+L)@LWwdjPkiIc95S z{Rb(h>8v{JKdfR}3vTyxpVxinN@%UV3T95Ld-m)dMYG^QqHv}+`VFNsGtU3tSLOv? zu7@V}KVn~5bnt>y?3`BA%6QJ>q|Z5bl}iWgM%B*C)d=iWxAO~LHFHK)ZRONi)qc-( zuwtRX%1?XG@peBA$;x(SxZutm7{`A<-KCpnq`{uz`uH0h_;g=S0(0fJ_a2-~&^MHB z*?T{u1O_(;`)+fQ{4phvU(y#3#qdL)D?eh?$kLJ+jnZ$dSXo!!R=pVK@rr7rpI+lG z%!RC&{XQ?F+sDkueD(nR2(gw_c94WS6TL>t;xj%?K><#!p(AW{5YQOjQ_8g zA3!)J$zVE{Fv25HC$RwYADAc;R73PyRoh9^WeP7=tKf;9;8NI;~#_ z-6(u$L+jw_ zEF_mj&1M46rtgo8bItLqZtFww2-MM}USk0g&ys*E?`|-UH!7U=30D) zXZ@5~x8l8up%?sYUfz=NjT%ft4-zt*n|($OT3 zqi7J#<2cF^wPUkdl+iru7A$CKT%p?Knu#+fYj0}~#vbk?=W}Bw*?4&b=xB26q1ipa zhQ_~#N05%@hv5;Vqe&k3B1N5#axC1XZ9Vx2($V}lKG9u*0$gtI0a%sbf$mS^;Sr>x zxfeX1MTC{YL&diLJUoJQG(UmoWINjS3VScaVByV2kd9_Q`Be4Gfo62&_T(c-N0U7G zZtR{%_d1&Ag2y57_^sq)73$R6PrKLA`~!HDgU455_=9;7JfsjtS&V%6oRL2SeY^m1 z{~RNSB;(-`q@y_vJSgMd`+Pe-bwY5{HRn3^07Uwr`YF2Y|1k-ZbO7jZ4pS0FvOr@}h0|2yz;~ zGap3PG4%JqgF1#CfC*JjC@bc5F#%{~MyRB?p1VdoNq_w>P-n(T`g0I%-TpS}cgF7< z%s|nc1RH2Qu0F93Y;0be9CjF9X0_gZ@##CXLE$mhBSkmBo92{wL#?6%A&rQ@@T z^<20|ygA}mn;vf?6;ZY@!X=Tm?D#sB7v%eV=B46reEjzKIz~|KvyMe(sUl1n@GQb- zHmxd%#MdzieLX-I9vmn*jt|9E8f$+2LDzARCSCeD=C)G>sB&H2*-2j)|@~W?uc(8E&i!h_;qn% zJ-}AnguQ5SE5@0|24|7jYSlCJ6}MDC+_JF+N5(E)L>>?dY-=2c$s&$CZXKt>jI%yg zhheJ0vgO=bc@+X@)(nmdv_T!0tozo+g`1HfwQRnn9Fs?6uC?Ok_PXYAR#RPTlcnyT zQWH7L{>LI{p>^xBrHvLAA&`7qG7B4X_1Ip6MyZSNF(f}j<+EEqGuYx*?53@}#dC3Z z>$FCyP|jF5iFa9zL)9#0+PFF#;oFwgFGGHP?ob1b;;sPp=Am&AmUyWaNxF4h9b-}6 z*jnGRczN66WlJqBSZfF6dhuG=CfFsgx4`lq%5TH+yTG%sFT(O0rD;y!#o{&_LF2j) zJr{=sSQRUmqb3_0Vi&Z>R7;`>ad4I1D!!m>SZqOiTdbwAzHu>xauLj6cnAYO*In8W zzYVy|y)5Fl1Lr%B277YO8lKo}x8iVOuNF5*P*-*;G;AGRTX9hv){MzMG^o_7PXwH5 z-#9T?E}pQ#4Ii(aKI=Mkq6xPN-3~vl)GD(zcE|DF3S45LF11hyJgj;}0SU-P4dvT3MLmHO@X=s$Igq96=wYYQPzFyq?PORMp za4!)05V#kMdpO*;iksh=*NXdkxbGJC9dPdy_b1`rCGJlf?uX&l`FRTNXC%x|;MVE> z8{97lo!^r*{m*dg{Qu3M>++|eU+A!`1E$09EE_HTSRR&x`DebFU*?ncF<9n@;g~)l z;~y2P`yhGiG$~1WKKyAe1~kL01}#r4{kaC``gfJ<86q#vjrcsW{n)IU?^d|UgM7KC z(GT`d2*dEG0;@xyX2~@60AU(0Xd=SUWFsC;n3F4*lLF};#y^;d#CZpN=D^+H;=wRF z>`KFr&p%BJ_6W*h&jBf^!Ugr^1Y))ULf80tf`K6d8kRX!a~b|qZ%3riz&-rOT^p%u z6}sO>qv6jgbSDB*D>LmB+nn@UvT8Q*G>-FxO zoF5}ZA>6%7$za4zpdm|9XQSHtOeS?C2XeI^kh2Ix2G3RU9OHgMXC1>_N+(PnYbb3K z(@1|D{}~j9yr1a6JQgd$13$yzY^RE>2xZK|;kKOU3vjU3taKi05$T1*!f829(7uO2 zeiJsW59HPu?p=U>s>%BED>ROB#vk{DY&KN&%$R^bh{sv!MOnNYBofM?Vi5%Btn`6r zeFh+$b~ZI>&!IkXwiWq2KtV>9lWgW#PzJ+hDBbML%QUKVvoo&*dIf!zZgys!MwM=M zCKqMoo}qNJGq=LIkf^Pjo!$a>1VVpSPQ<8_%#VQb8+s}A>dZ&r+{xNg>eZP~0cABr zZ1w8&0K)0Low_)8AJRP!@zZl7=TZoOA=2|A=l%iiR=ROhPCBK3@>Krk zkU`c}4g)LwyC4PL$Kt3$nwP7jI+~RBMX zGg;>oHRW8if=gLW+#XHM?$IL=93om;r?jV$D#pKTC$o;CC=P(tI-vH&FBleV?a z8k_Ij9dm9HTgB753(c2eYutt2&F%?ZzYrQ4j~K>^8fZMV7S%0nXu;=ZY;rX;7R_4L z-csK<30E@|%~;;J)JBVDOj6(e+LnpGL$Llk)I8f;TZ$Ght#58eF1eHZ-;#-0w_p{s zq^NT7f|k0LTZ$&P;0%h-gNFiTSNfGnl2;S$1SRnaC;LLFa{_ zaax*tH0xAKVctDAWu;8$oAS9(UgYnQQz=*HrCik~a#^I`$;hCT;@p%)xoc7`MhE1p z@sp|#ev~|DzRLaxjv@O90FwCf<69|Y%_d6o46I64?LzaVqBZRJ_D!lci*E?^mBC&; zTB{L4*R#d93xYcf&_p#_d_lSN^*EH9^=EMu^r>l!!*vo{saA_4qn?%{9}sru9iOqv z%GuLmSdX@%tHeeRFOC&r-MMtpM{v68@R7sEju{dwTmU(ch8Vn6*ipkrwXRq?#QKkT za*LAc>z~sjRT3o55-a9fbI-#XH|b&?wX$`ZBYD*sq+gkoUt0jhNHTHPx!QIRT|2|y zSoU|XWT!J@A7nIRq0>oPE%k}TS)~STX6Rn&>PPsJKGSdWV_b5lar&a{bkyoBb*JuX z_I2EK^bc#l+DffXp)DT`Sg)q5Z?8AM?5jPQNfc_*=S5ldI5y03j*Ma@n8S|m6Q;Kc z?EML+C9LJm?Jaf9&O>J0Yj0~k%8rk#XR7TfV{?cz7(>kvuW$7+Cdy|P24e#(skV9* zacr%9z(p3}bJHK+^340UrM*4j<-8rOKl@g{s~@L_RV7aM6 z9$azIaD#=;0)=4{PVggwtMvuk8dvKC;5xoqUjWzfwHg_D()yL7u<&I2F!*ta!{Re8 z`D>mg50E`PSZ*DL9|H2kGA#MI)zuiDdEr3LdgJ<%`QqdU-=NfbYQTli|pJ9 zHe3;sPNhIXd|&Q7YWUv{{E&g)0-W+AFe?5s;N=Fs7&v7^wErCFjd71i~w!C@P`8VSj3nwfjF|ObG*T)8F-n2^Xzkmhn{0+sX^~A^bCRQj12b%`ztA5Bo!=&5RQcCHA55382E-MxG4Nl6aKj`%={EqU3=zyu;@o|TA>3Gj z=xv>a;?Lm;qT$LP!&E0_pkS2V7<(nEE*ulcenEVIKn{n*a|DtXac+wdh6MsBocs_* z@w)&{@&irj5yb$>kC6Nrj{F#o{1}e>kXMp9yb@Kg5D-JH;(I>)nLpy>L!9x611Owu zAj2V(OearZj=(4&hWqfzkovwFhJK;Se-|KLkl_~r@e3ctAJ(>E4ylL|=4eIwVWD&9 zhx9#wOlP;iU4Z1j6%b+#Q4Z1M(;;vbAmgFmQ8zQ%AoTeH=L(!7uv%c1z)FEr1eOad z6F6QV_3fB0$9KYFfx`qA3M>#96PPb>fWWB02q5$QHtLuBP5}}>A$XVI#{_>-@FRl1 zAowA{4+y?b@FxV{BlvE?I|bh%_;$g!3BFnIje>UwzDn>m!Iul(BzS}1a|NFxc$MIl zf|mg23(ptGen6c4fbcl@5FQiAd=Y292(Lq<6Al&p zLV@^(tLS`9(x3Sw1W>R6893^z^HTof$s7&zrq2Enp@FM>t=T0>yj?ia%jgQbqwU|4P`^Sc7g7IAY<@>Owf zg`4`6*-^Ah#Ijzd8-q5#h5kj{{0{n#xcLnwf(o$vI?LZ1)!Rm@c(YO-!k0X zKhr$VGTa|A-1e~;HrFWz-J?O}>~jp)dj<9i*>jhd6H=HsY92~!%H!|VW;#P8`KD_L%5&K<}e^#-tgQwFUTmK0`@XXoZu? ziC0uq)^-!X@WQ5o`N@77?;MsCJZ${JcB?g3i^A34R9oM4Q|+Smx)$uZfW_px#m!0k z7`3%VxP|Z)RW3t7V`d|cEL%FeuDKo6qIPl`wIIy0r98?`31`?oOIjDrYFvu6R5-zA zQA~bhG7YIhBt&RhD#VT@q9P_@+-ufgX6Lk9d+LNSr`te?V{x0aqjH*!I9~-GhZ&k` zI7%U4#AxjptJ}~=ohd1{>S6^>Uzs|6R`tZ`lPYS_?WfErpXKRW-G!Y|Roz{9n`LeF zwN(|}@|{^Rc@{fLP`~Uh3uhKBDJR`Tv7c@Iw9LYzhQQwXbA|}53FZxB=ymC;_2p%R zOVa-`IJ)$;93RiNazY2l2;=I0enHHwVEQZlpwgIQPIv!VY3b;Zc4(y^WHuyaf)W>? z`RNHA#{1Ta+3$)5x_!(Z$a8nWkB~uVwP^R5=n0L+D}(WAw&R_vrgvehLlN*NdJlnm zFY!e)oNGJ;iC{Fz_&q$xrj(TY_QSIvn%CBL{X0cwj1GO_8~Q z$xnEwoq0bV%aLFqJmz3Az_hocBH>Ij!hn-#oYQI^Cs7ut zWY8q4MDqyJM`^-yG8Pq3#r@}GckMadp2F!*;>1`bU9v(sZC?AGLkUk1|EJImz zK6p-sw5=x}LHa1!(m&tC*yA!D9zpsjpXBwSxW@VyTr4vBq$V~+&_+j$5GJtW3A1EyO0lg3=f!fsJJ{pS{lwR z{0#Z9{rJA-`}Q@sAA+0TTxcGHdobMWy5AT2bhv*g^hUUk!2J<~c>wO;!p)CS2jOPg zWW%}9>!9;)aR5~Y?iGIkq`{z-ftCS$mC%?smKCVFvwRO6{|Hj|${6y<3-Rd+k%!7s%?}fN@{)6s=j4PRVUUw91WjLTb5RB2!xpOP0g7Fg zAPyNfF(-LUS>+^79(_ZvkS%%eK@HW+O7Q6`IfQ~GhH(XMUxsK6iqaODs+z}2v|i{xxFb59uAk}^kNl|eb|n37b_-@Jwf$@+(;hVLbXI*B#+UUr(I0=$0Zqw0BiUl}q7|=nu`N!lq=nOLiQ;re z*4K=h;Yj;Z4mqObkTbP-Zk8#Y+rtz~jyh7uJ#BH{Y)3@5ms>^|XP#-XVoX3>63urH)N-Cz+_!Hsdv)!NbrT!Lq6)$P;p=AnCJ?rCt1Ju@{k6_xefUfO0%E%6F|yn2Nx*(PyLfBiT(yDiiQ-I!f|#1` z`gx9gqf6A)Y(Pom+QmR^r44DU_BZxozrKlFc7;>Q8$)cp9?CSD-n z)w}_2&7YG(`fGlim=M?eIQ2B+bLvK1=YNdgI)A#I7>3rbohZ&Z41SzraLvZNF@5qN zU*?_Z>pYq~;qBqccGO|m-n3k^(Xcl(!}DrUZ(W zGSB9X2-^_u%dp>u{W0t@Sje$KTg(0qO&KB1^_UjtIHHhdVr7lGv*x6sLG3aULh~m%jl{5~sAn-X%t9ZwRwK z@SS>9B$^gx|J8MhsA?UpuL8&?0fq~Uv9Ovh$KxmBO_wm*U&rID(k~v@!Ze)TUkt0` z;kf<;Pfnl<4L{A3v(w22UFQX7&s+GEkajlCnwMu}=X(gp4I0uvK)2+Y9!AlB0=!J{ z=Rw?M;9mlMH!S0=5!i0T=kDgU20k13BndZK;6?D)`CwaMe=32qFH&|4eKgF~AtCch z$T0_9LCKI29tV!_;bQ_{6v#1(^dkaa5V#L81N0{V(f8Gv?&u+5luyw+g}wujboO_K z-zxOYLhk@%)>Z-1e(3^$cB=iQM&lmb!q0bR|wa}}CUMch`LN6D3nb5}z zy;SHWLN6A24j}8P05FVS3@{JXn-7S`Ldis84^YWiroo@#87?Z}P=_iUXx#H8IRP2I z+cf$ul)J;3)E_-^1k3>^KVbE|=O0`D;J9l)0x_yfS_ z8~AqMRR+Edc$tB31zv36g}`}6AIrmiaQgFXIO5!o-VA)Ffo}wUr-82p{&55E0N!Na ztAN)S_)6ec7S ziktK=hfC2sCb92GbB z6+aL+_YN5!Dz9pv3c;*_pmB_vBknS|i^R>ba)X5DK4fp;_$l*M{A>3i!~HA6U8us_ zq3pSY?Ve=NJu*-3`R?%KJxSNG)ZWmtV`mHaI453v113+4{f?S;$MF%ZN-X*0Tl0rL zYdRneuXvVPaC9T?V;&Ffzw|Md20?3|54rC0Psdpg1SMlueNY(pVj(D8(voAI79jG< zwsT#xdexY7>;w$aZoV3xwROMClsEkESSL~ibj4Id6p5QFDWUG z(I|NqpXIkL(&8u2@?r#u#_VUjjcy+^{(P*D;75r0fwK4%r_7niv)qr#1mn|`47Du0 zFEDyq9RxI|lL6U|_=O0!74HfRPu7v)fifWK3@E?zX7_VKgSbx!j{*#S7@lbCHvt@{ zlOs6*9w!lLA9$FCdD2FBVBySMkZ1C_rh8EjWeB_*6BWiAhI}vs7^>a*P%ft69^52mPNmwZQ03atz?6pV%Hjt>>!r`k*0(vX2V-AB4_YK_! z5;-`Vb05z1BXA z81W4+Aw>MHhZ%0#F?Bxcj~Hwvg2ksD*9W#PCVKy?3>)pYDcp~OLA9i*_?zb9SWrZo zM9RG58ZA+gUQdcNG!ZE-$st}35Ot&v@Z`qte={l4UqRb+a?OE!b)si-nXiw3&tT?%;4H*LZ7@0xlY0Wzf5)Q@VPr<^EaoiXOl~G1f^9m|6qN0O}iW*1Mpp2rR zGBaqt=czu`xBBMZB#!fa@B91z-%jeDrB0nXb-H@1t~xz4;E-i3)j7F#xsqg`rPzd{ z{@6JG?F=Od57}{Gy~&6}8_Sl|UI<~Mg(_SyAOBT5GySWXzg7jMH3J2ABR9R=j1rvg z^WQiVmH53rn(I*#75*Csu;TTM$h$sc4PCT8V-JAdjXEGM!v4O1A&j-VuKysu0%JKk zl&7WS*sIz`MfUWH1Tx3^Nmkk>; z^rPbH;26C$&Gs`@X?tq>Dr@@waQz2m{;$v~S=Ct1%3G0-KJ-1#`u_C{ z^y_ane1eK)yBQ6!W7+-{ndtsT4~oWFPxqj|;mj7)bsk3n-E~$T@#%iIPf6PSZX0mj z>sLS=(UNbij(@6pH;K>`rk?JEhqtd)*5}xp?g|Hbq=iiyKY9 zxLZOT2fD>hWEyibx%e{V+)Nyad{I+xM&!LzzWNX1ET;4v7B2fZ_9^eVd7v;?jnXDUQoC&cYIb!sa=>tX$2)$=OQ|CUI8M@2|rLG zyXi5W7i5)Y&(FogM8~$0F~x-o(u#|-7BeC;f<>zqjVdf!jP()$TeX=isI9RrO~a>^ zR4apKKO$)K$ zFH{t4V+hkIYhfi{*_=6ud7YW19Bdk4WrkM8v4%e*y@B*G(w9gcTxZ%Mor%;J=>nu; zq$NljkZwcTj`RYO-uTeyL*gZf{WZ+=4Aqr`=jrnKKGa5C?5ebp&)(ejq0V{0j{~Qj zR{?(<_kXm9{I7u@1AZNFesd!NMv;FE5B(j1uK~_j#C?Q68+bbK8^J#v^-KlMx|##W zBamu~5BBAOe;fEvsd&5rEC=t82G0xL+8`dsKkg3VfmF|Q91HjmsRB0BF|4l}bkHA@ zk+|&>*d21I!EzTETN3Hsz8A@Fa08W^7hac-2rq5ww zYmi{iDQXgI=zhg>3AZGqbX*qcH?$Hh<#^Ef1hU-?h?FBT3ZWm~-gt$hd@NC1f(# zY)pT}Dotp%PP3x!1=d_CZLx_q$5PD>C;K^I(Qo3XO4Zh~8o=j?{sf%Y$vG{q2EZE? zUkgscG5o|?F?@}Z9MwEfvyX4~pGIbsiYx15KTxEKE9+Yi@*U=?xU#+nHL2pt`uM(| z+M`rlS>HP#|4Gu0D;q^Ow8X45E5;km_e8DezJ!?G0144X>wP82WQtaiW_{lRT}Dzx zn)P*t{1Z?cZAY4oxsc^!ViTI(02z9()hKXiWlWsUiuwzwmFP_fG_*}y@Ttbz zT7@R_%>;cI$)l|GF(59pJ**|thuB0m*@k4|N+G=}*8|Fm;$hzQaiE@V9-az#3h-ob zwrZs6F5MV=C(vEG>F(05oV}+T8;qI3?YUPU2HwF>c6XWty#3ku5BBt%658FWDEcwtrbNr0Pu$N#WjrT>Py6WE_qi59= zX2#_84D--Js^IC&lW~QkW|&*eFh`AQ?=aooS5R~p3bogW-S80-QK{{fR6Ei`?L0|( zG8pK~Hgu%BhLKJU{A7h^an zgD2w~UCI;hD&>iHN_h)dDk=^ZL?_~BDam$Sczz3u z+C)XhweloHcZ&ODS?p&F2pkcZo7`~FWIa1s&uKQNBgX{IDfYRi2xG(}Fr&CRM@JAU znQ@YFZZxMjw+zf`jtc}MhL6U<-3dAvajW`Ml0(g5c1h{*$BAyk)ZFE^0S^QsF(bUa zo-)n3+3j^4<_>10W$YF$WQS`$C6LRo%$)+7$F(tMes>OJnCve0RBmf4c4vedG5r7V zWa|Hppw7P{o^s&!-&x5MDzI{sqbQrfe(iY2uDf2j#d0Q*hr0)}1#qCF%ix^T*3%qu zkbAd{NNp1_5dUrOL+Io_ZF~nJdbaT$^UbROIk3%T_#KrPadw-CUTrFxM+``enAOHN z-1leSvk{XLBT^EP-CGF_XxluZM`A>7n~2NX)cNj>nBE2%UTp4^h7y6$Ph&WuR=q3gzwx6aO?B4&*qqnQe270`j1QTk< zVm}1f@OS;;2$|CokaDypg&3M?Ksqog(twbA?4toeXT--GkkIQ9LKz!!yaeI6^X3&G z%DD;%J#x~d@!^jFwzl5TN&^;#JRTa5cMZ}s949=_Sx$>{-U2mVRcvL+pqd&Zvt+ae zBUO6ktv-Q;*lS^ijnueZXh)l4T#yJjJY*l@H_k!~R=Ia}(2`-?r{l8Vth>O?mKw|8 z_zgFlo{?}fB{;=#T~QpqgTu&d9mkIdF-^o;_;cM)Z$8~?`Oxb(EuH)M*n!qnQ*hf}aec;* zvzJ}{ajWJVJSA6m;bZa%Bp(dvfW&!(oD0JDhBJ`nBk>t|4bmp0hmdw4?Lj(#REu;1 z$%jiHh?AM0d2 z^rg1P)Q@8I^s}F786Wc5=Q#Gp4eDT1G+-3|*gNrXh(tLK#jz~y;k08u1u>lXfxlgR zCPR)htoY%p7XOxOKw90kLWLIRx)81fVK{PzB4?QL=k6cUgY9G3a)uz^2R)x6{eaXA z4(W{42Z>`PobNjyX$8`)NbH;Zq|)n1pCBDaih*B9<6jL4wFAV)u^O^?YbMXS)gtu? z*z_nij!NNQ-BpQ{8Y=>e;}@b!J*0xgr&wXBhjg%d!ac&`!9!iV*^^Z!RiI&q8X|%e z2S`L%4b&lLK9aCFHplY3u@qZ4ghkdO{D{RI+9Qj%kRrvg1F|@HAX4l&WbxioZ0Qe_ zEZ$Q}L5_!!#al>W1ubt0OQIAu-EV^9h2sUHirsSL?9B;>VUvKah3O@&YnRKD}vxGk$e2%+o`7y%p3qHr*HNUMvw}wo#$Q?$9WW66o zVJ(EnUxi-ulJK_+tPuDcfzu!_->o@T;7;SJbHd0rz}FTPLcw3mFo z3?~0&flqm@s#-%IUl22&-^wN2i2NN!J_a(YWDcyd>l)CUXG1?w|0F3l3j9M-jZEga<3x3{T`9q3Em5k(|Soi zAaWZGegt@x!e1p2Be_+(MGy0TBm7M8Ip>#llYgo3CxEZ}2l*F(*8PKYn#lD9zuG9@ z-Dn5pP7^sE-)v75(4`5B2J|20Ed`tK*3&i`4D$Xm$b|3Q}M`F3(qMSay z$-i6pl>%1;m0K$O0+iGKX1V#ozf|B@l+*2J{>UIb{X{MaeCQ)C`ha|6y-VuNxR9tex z0Yaw;tm`^(hX$K+gAY_Gvw1W^yK>&wN61z?Z9Dw~x`+2S=Ocs~~ z2p!(e0(lX}-I3QP@Hq70zR1h#1M4{gh}W>*8sQ%lKKh5^?-l+Y;qMmy4&iSX{x;!P z0ir7J7C_ds8IbjC68=WvZxH@E;ja;Xh49OTzf|~(gkLKBBH`x?f4=Z@gg;yOGlf4x z_|t?xS@`3HKUVmog`X1z z4&)yIU2D+$K_4*aeW3RkH2P`P4ujqU`XPhf4SJJ7SA$+-&^tjdGUy$k=Nt5P&@&8r z8|bkHy%qEjgMJ8fcZ041-NB%@fc6>mX3!_#7i`Kun?N&`r>47uo+kd{{A9NGNx5I( zJYlwXi$Sx!>kYaZ^fd;(6ZAZTW_za@G~1hI&}?sSgJydZ4Vvxs7&P1aHKuUVe%iMM z^alpb_U&cF{^c!q`#)Vwp`r}2UTJMR;m_eUPV zd5s?-I4?{dWUwsfwp|aLa@_c=tnsrAoYA*5|3ih_6d#T?pZ7udXZTTHzY9o>23}no=$> zV(A+HS4H)b(=fx_^&{ptD5$kL?~G)z)-PKi8}w$wwn3{#{o!8GHM~;Sh}$pm{r_Kw z^8Y34ctdmmd1v&$Zyu6D4t_WABH;h=i-wTjK?t!!!!KKIKsfZu<)#&IEnaT0h->|F zD9J!v|FHd0z2bC2_J>fy*Ifa2$oCvqG*({T!8r4h8!lkHF>6q<`#nm-IzzwCX}C=2 z4&0zgq5E)yMMA$XYp{s>l^I2U@%I$^r3@OBlEh7|Kc7@EuMm^E)j1o``J96F@2)=| za*n-zoDjDnD&f{fZB1E!{ss!k*ou`h0CTEY(rc9~1^AImmb0ifc+EEFHuGL{Pl7#W z{?IV{-G?quC_2KfKR>~HD99ZZ9Vehe?l{1)H)EZ1$nO}OWIJ#VbKEImmjlb$v>oBr zpC89P=6FaS!GoJBH{2dz$E~BIRdj@1JD$n`2Iv@)C_0?l1BmDdyM}$V=ole7Ho=ZC z{s_DNd@OWuoG2AK%q@gJ!hYA`8tC{0g^L^4ksWRg`|Mcz{p1X+tHmRMwFPaNU>XD* zYo!qqJG(F|KND*oNW0?#oM?$RHsBw{D;L`DJI~ey^PEk5T2x$ES{Ulv5Xl%I<9_Lk zhjZ#kf)4r=I)e9Y*fs3kMMsk8=q@^-CRj(}JHKL$Vt zx1RNN*ctfM>(9fjVW*C6IA*kt6tsoMF*c`*XdU6!uuo@@A2@N+sj8g$Q(s4zHSE*n zHQFS7(h6v)rz6}N_FtkS+!}W3s6dU{j-vCOW3HYZ;nuK!(7`tTucrqZAy_>f;nuKI zM>z^LMMtVD z0XiaZ5?muXd?THB9)^yF*RbD=gOrEc4Sfv@fa07|K@P4}IQDbrXX=kjDB2wpWE*s> zL5&YVhf^`+a4wt=pf>W^owtp$tW?4=cu$Wp44!kv|5gfcCe}F+$vhu}bZwiU2g4rq zw&1nc_Oj2_u#jt9eQVQe{VTsjC*rE)m7n7R&GnG75`8+QxB|1Y|E_+hT&1z?UA!k7Hh{7XX(|f zE04sgva|fFDkzWj;hjDHRa~a!uS~^n{PS)V4^su!nEsLQ75}OckWp*MxiA<@rPq>= zrM-SYG#Izl+#UnlX&GF{B>7$42LV5R!4}YT_050U&%+)-UbZOG&`aK`p9gfvK&=eimEKs zO8sS0r(f#q5L9QT)S0F0bVoFBddiWQKm(5wudL>;yMe8xvQwq9Du|dJH} zxuIhhTn+c>VZgbC#X1xMzJp|BDA&``fdNP74Gtyq^X>2Cnz+4B0(rKR0<>~YfE1?$ z7s7Baf~z$7;qpS5CHo{`r`{*7F+=lH1CE0&j#YVZ zVdq4f&PY9xh9iwfnu%0|v=Zqqq$iMGMfwzp!P`&4UC}v6=OSHl(B~UoX~o%jh-y*+Vpz=U^oc zmQPGoah1ax{*t83)rP)}f^!^e3-A|F_A%hw1m|3&YT$dp z=LFt2fWHHr-%qarUIRQA1|J3fCGfX^dvU8z`7t>0wg-M3_>;i<0RI{I>F5Mwfcs!j zCGbq(t%08eel>7@4>b=L(OX0w^G2=5fS(Eeg}A|Z0eA}VXMt-!^+X@lekua~CS-;| z<^kYrGt9M8QTNB-r-4r&voBU4gAiTST7-Q1ZYT2TyX`^Og3FP|jbnttTTfw>OCGNm z+>(&^&Ykt4CYlixo8b;{5Sw8?K^qU}{&C~}@Yt~#UW0v}Hq20q?cY+QA8luB2Jc}- z)2gBYG@V%gj0hhQiE?YGZ3kv`EoKDslhixu}Tw~ z->F&AzX#@9PCg`tQIa z9%Y$Ms=;h5JDn$kQ}QEKgFD@3x6l`<8r;cg@K0=TrxWNCYSI2{RMTClp$fLtld;fI z)7`D6yQ9Vn1)lErqY|a&7|ZogYN&!;-IMX0qo#*jO%J!49>3RWI$}S2&Q@xuf=7ub z!waU}sI%Q_&UULgd%IS19@U(q)KCQvFi*xsj+%4aYR+-1IfuuEYLqJ1Q>h`!W7Csy zv!kY`TTM^5nw~FeHGY=srPNRb4{J}xdybl3ZZ*B!YI^ZeMp?sejd^-2HB`Yff+r&h zzqW6ByVdk|tLe>9Z%WNaRMSVPp$eW%JQ?#GHGSM_`nc8f`9P~tlj%~F8mi!V$dkbt zLAEt1ZZ#=xH7S47YKEeOr>{~&6+DG`GQM}z^mVK0>sHhEuvRmlYWgWPRKc^KCu0OK z+nRoEHT~Rb`W@A3Zljw1N)1);#OcXc>8R=NR@2|DrvHyx%^s>5pwv(W&$*tAzc^|J zxYZ1Bs~PaKR`U<48K~4y1-qpuqZJg|jT-1yGtjMOU^AXI`HjOQRO}g~)KCS_^q!0v zj+#MkHG|x01|?`UW2t7ihbIoI;6=idaj&ChxLeI|N6k|Z@eFTotMNXsD7%S?mO9b4 z?2XwKh?Iffs4-_t2#6+xP+oi+2akoEcUdaB9Fj4s@T2Crwn^X>rB!p7810F<3v9%4fQhX- zDNd^-fGBS(&RdI$Xmz$t^(XMf@I1u_VNZOkivWC{R(v>)@wS>v5YdXO+Ci-*@Wt?0 zxd*5xq1D3xUT>>E5cmS_8UCxIZUiDsFbqYM4#E*_e^@Za48q|H3c}IM9qR(Gg9AZ0 zT7-;_5nKOLfGu^PjyN+=M||k`6$y6yidKOz9#%O{Y7v&21n2n|ba=4wf{6crfBkx& zNuwqdX8$Iyw9xwRh$2x|Qrsu6AUnS-C$|s768yIq@hd`E1U;YpsxTJyA9sQxQs9$@ zh(2*vqVF+ZSH_}9jBK_7VI#6zuXKLr)Wh=>r#{~(!`XXd;7L^lB4% z;SAJp7JA%LbU1WFY<$tmyFVSQfG0CEu*7neH_47N@e&9$FT^8_#rwvf>43cTtM3dj zaYp%{5k;c@ZvXd>KzsFkkVZ8VFx+59V^JlHu!MmJ^pI19oV^#c2QU>WOsI)4dojfB zQnSW_n-v&a&~XRCOQ^vane!K3N{yj3D#a0%MuqJ0l}5$Xh)R>BnkK17Vj5Mchjp6P zWG&sKrfcCQxje1Z9w8F}T9%j74bz;L;LBn+IK_% z8m=O62usMGg<1J!x%Go^WMe!TW1tA>!;xbvzp!8)&LV<16a)6CF=DGs28Qi89uCDK z4q>Qrcy668_Qa_fTKim%?^-!(P}d2!fgr89i;SVzumg^P(?swHZH8EldWHo>zc2@b zU8BStlMi<;HLOu8O(jO2u9n?bb>R?s>aaBU=0LM9Zy#TVkj@BJ8mvtG8cJt~tYB^R zstvRQ&tJHrJ268z4%Qt>4`11Ln9(ZU0@&)}k1M?z3u6ohZWz{6@{GfffYb_!)2Nuo zsZf}@!zE#Aj>qYMU6I!Rap&c~@7}x56K}lw&3CtKu6!%)H!HFqd1m6h-`)4<1vlS* zZS0c+JKl1|>*q3t$f(Qv%-q}d(}dCYCRI&KfAI8|-s`#&uzzU|M}UO+tBc8q8>tAX9BBj67Nl)R)kyo0YLJd1S@3lN62~)AkW!H*Bh5xC zLMlhvfV2f^8&WmWKBO9?qevWtOhDqpu6k|;>qp?+c4Mc|L`_qM^m*J_*wly!AlEr@ zdt2mn{ue^eWFc%n3cXR})i4qGi`WiqYA6ygSy6}qBK7eho?9FsRcX4j(ASGS1BKS* z)!+u?yFw2)HA(@PC$t(E0v#>(Op)?mioI$y4EcSsMnypg$1%ACr7dzaq45zZz?V z{BOm6#)KxS>2HMA{)pg%KJvAFYAgY?Zl4<20ImJsMdbDV>?O4JpBm4D{0rjG^CVx> zI&KT=WC}iCfMr?Pd51XW&B0!tSGcd~5BiAhpl?|pZJ=JZh5qC|qF?9>?hm$!{hEE1 z_Ong8Uzv75eLXvP4$?BTk>?`X!VOixc6W>!HkW14T#M&5j1(xHaezF(as4Z&sB#`z zQl}#~vW<*0!*35Wp3Lu;y#24Yk6xC*m@SbQ@<)=NmDo&!;2ae!5%IQB#q#}$Re zF)p$=o+T_btOXW_o5d~;dQpl4*&@YJFS0%eu+-=oSUfpM!O0Mz6d$FV{v70oE58Z(+Zrgp1NlE8 zKh(aV{RfbL@dx4SKY{#vkk6NZ!TVOVpXY}#`5jPX2=Y@8*42$R%VXa&ZyNIEBad@v z9o;~gSA@Lf$U8eI?`8C1%ma>kGRC@}?_sgsw++0_!oMyC-xU@{>gCKj!YIg};E5gjdBFaJME>^zKZ>@h28cf9W36-**RN>#y@+9??PEUI zKC?V0))8)myw*Phymi9oG&|-mKz@qoWBxotKk3U2{iKIWx&8vX8T!A%!QM&uZ3Ni<&UJII%BKHkTCJR>;vlinQ}u%C35l-n$DouPjk zcoo85DliZEiDEzVvkm>EryKf750-L$1fFK-=d(|H;l~U795V?XIn z5$j1GU!->-vHgr?Lii};wSP*$`>pWr5{PvGRs1$5^)r8kp`SGFg&h5)85@9lCkn)~ zgrh$Syg|ZekUGkpf_$IoXMUogpR~`=Pr4T8S(d92h-XSiKhN=dgkLT2_sI8(e&#<2 zS|7ip??Ox{?H|%hq#R;Wsd};v{bz%Bx$vh7JRkX%=x6>=LqF+WhJMm5rCgN2@6n~S z|98U4yh&vHJ`?yR@=wa~$NX18Yx_yRfZGCXKk56W+>M6ba`09fa-`=Xv7T81xn_g( zSVJxjyb;3h1$|uqh)u_is^Yp#P4j+<<&yy+=1l?|irf9pfI|Rztr`r-`y)b*ZBUNS z5tQ=*QVxf$H3$&E!tN%iAnYRH9W5|bAnhX`WfdGCkn2v!=Q9%_$6*MQ1ttlkedN z@9G^d`C}!2G$7Gb;g1mh5aH|CRw=^oDg5q$tS4FcNy6vdFZmsWpD6qU;l~Q!Cw#B) zl@Ta+678nQ2|(&OE`B&F{3F7z75*XN*9iZh@DB)ozwq}7f3NWO2!FTmtA)Q)_&bEZ zUHIFCzg74T3BOACTZF$^_?v{kQTQ8#zfSmTgkK^2a^Wu({vzR*3cpDB`NE$s{2bwr z2V{R34d?^x2{-`#CK-@^OcK~ZU?QLw|FJ@&jH0^(>f?qGGD;tS(nrYSW;!|*_tR8? zyq_T*FYwkVo4!flM1dCyj1eetdA-%Bh~;+*Tr99mAg;qIzqi1zaDAfu7Xo?RB+cweH)Vgf(%XcN=sS=0I*(8&h96m+6NF9Pi~=u*(fy9L@;1p1Ic!*5ml z4I2Kd+HKG|ptl?JY|vE(JrndsgPsAp!l0*tE;Z=MpmPj*Jm_f#Jr?w6gB}fffI+8% zPB!Qfpc4&x2xzZC4*-3t?bPeds4f-JH zu?Bqr^gx5&54x*C?*kog(0f6jJTuUqJ)jR8^ls4a7<4u0T?V}qG}kI(Q~u{z4MG;E z`=oOL&qKlzWNR1BAB<_njprodrNBEx*!W|>InGW#_NkR4_zl20wn#pwqHYsB7w{dy zIVqF_u9V@-&K`nudM2JH6#sOu{VYNmPLyOG@sq$m5u8&N+khsY^A7Q>rErc1b7d0w z&jRPSP>FLI-;08CQr%~Qb8=iWl#jy&iR*cK3qBhcuL8l#fj=TR=X$>*IM@2r3C?-o zJy9R^a4tBW-Blbmu1C%ld=K!u1g`~NEx5ObJ^0ADZOOn}!zSXRfe#Zr2RO$$$gcpt zUhpd5&j`L7_~(Kj0^Z(d%X`m8oLRw>fiD((G;n^~nmTiUe=K+f@HWkCeid-8$Dqt^ z;PVAP1pH3Ht#i;8!8-%TJ+O)ew-2_!_10-jp`NBq8Z~LW-Kg;EXC$iC__UGf z<1?FDsDAvofbnWR*n*OIQ*#UOF;tV9T2_=>+)sE7L`{=#-|(iZ0nsyyF%{;iw6bM3(9VIwx<)$Ex1(Rh#M9NMi*Yl zK2J44n|<6iL69@1no_ep{irFDYT{B;1)D6aXGk?gvHRrJ1SjYMO?8HrZ@N=-i6*z# zEbxm9{Ss%%>8uG}(laj`5DiS9G-vNMw9f)1!b`d5T(bIK9PhCIz=8b+Bym&m4g<5; zWmU0`co-_);U?T$TS@jkEJLJ(+R7*4*#UWkxOG+u?s9HuTa?Z4MB__Z`10-Mh-EOcaUJ1e6;2+FIl?IJonY(exzO&npz5_HT&%)! z=tx3=0iq)xI;60nqv2SETcBe+d^$~ZEQO9Kwn_DL@G8SB952(;ri`(r@Oxw|VkH1> zx!7jKE^fq*qO9y-9i`*!$!y)Fa!0wNiuKxU2^Xty6Lg%8J~m!-bcP-1GTe-|G#sn& zPvh|i_29B1c`F{ahCu2xh#>65<~oz&ln{p(vB+YtH{wLp1wj4s${`49u>OnSZKaDv$z!?IUMI&S7h{2KZ zE1tzJdY;FNf8{6&rPugZp0ALD{*}WOasaNRw$E?|P(GV*Ks)q#ux_wMbSw3aNG+TD zO8Qamaro5ljbWEsKjA2Qm4CuPU0^*5_|uPGUtJbcyA=3Wj2c$EfSLi<5bjc)aVGao z4fhQLtzE*5&dIei0LS>#4-Fp>6Tc!CGtI@cRPg=j`>A6f(3QJKxZ-8XL89$jy{aR` z%MuL}?M|SMp)bc$m(PD=+$li3Kq?{5hU-S`fds31kML#x>YJ&~ZmKdEJ?H^st=YxC zM6BY2_>I-^PgMtZDBG@C{>ra;#+Xp+zcvwJ=3>{UAJaQa`r0K>!pL>27P2a@$6xsa zODql8G=R3irgXwxYp=keQ9#+s_bDi+n0OINB1D+EpS2RY8See&0%bKEPORdC(!u^! z*QmzfQ1sxu0Y%uU-vMB!)@rpoAbdmmcf-<;#oxLMd*rKW{#C`Q@(BDQ8tE}JeCiF5 zrlofg!iawwM)=E)&}Z|I1@FNQV)Wjwwdw$!0W$unUBQ0rS<8M0KmM*gbWS+r`0;3v zALCG7`LQ=DRepSoB@90v!IhWR{X_^q;>>a;Wh-x{p!o3>5jsGKCOoB;h#wyW-?pEa z?MGe|SheBDBeox%(^CI(=eH_l@T!;KF>g4R7n zXm`htDO-6F1;vf!B6JfWnoy{fh#O~vZ`)4{ZXD`g^%b?a-6-c6r#tq5@LZf^<_=H) zF3=%ARn;%SFJj1kXL|AGrEH~#g5t?RB6I;EJb8vzBA#pqzHL7-yF=bbEpAT+ zcgT-%^Ay}6?@*Nwa>({ZmW9@_k z&T-9)wmKcl`Ed}+D>q(}2!!XycUZ!3V%<3azbiIlB;hJxb8Z${ceylG?; zKGI6Wjc*{|wx1Z>c)owtWz^z!V~u@WJ6Fj~5XQv}7xVrTj`UBjZMH{s%Y$EC=3g~M z8Sxz|@@L@ue*`winw@i|n6!WpCcST%RY^#VFUOgLR2(LOTn7 zuR1k&j8k6a;u_`Ea+WZ>`aC4))i((3!~6t9{FONr6tCVPLXQxl32U?x@#5S z@a)jgLB0v)l^=INQ2B8POBjA!2nkxZn$SMTw^6pTGX=$u7mLswLNp;&D-l2T1>g1~ zG24$jsm0wpgAek5o)3|rtIl>+`Aq)05AxR_OhZ2+gbgDM8{{B=1X;Ej#0)py1+t;; zco-u(W_Jv}>RgQS%8geg0O3LYElU_~>;nl}mr7`N$2`hbzD+@KV{;MeM2IH*Ln{$C zeu)`9w*AE5MqG8usKxEZ;H%D)5UzjKS)i)#h+l+=c3pK=LY}s6B!n5?8)is{oQ*8o z5@LoYF9z9AhrBlqIvcp^#Gt(Lq(gQ@ zmTd+x!;Q^BhUk#aRcA&^=xpGsQ$50N%c>d(DmTt%3B!%|K!Vo&fe>!QRp$U@D@RjM z+_+eTZXiSx=4&P5#!JDs?I#8|;;M6qTHJ1|fj-=oJ6D~q5Ds_MIjD@-z~7KpozI8c zcK=8SlX47`Hbx#lojXUmqEpkx`T?}jFPnaw}db#&M-)NY9X?0n}``coei=f zpE7uBLp`+}$}67^f`^n(pJEBar^kod)5dTMXVR^CZL@#z~PR6~d+Jg=3APyYbE zZ9g&Fr^Bel?bG0%x(LDyieB>_d|Dgu=|TFG-|@hnMNJf`b;nIVkA}dflL%qZGloIZ zPdg#YwuzYG(^!!8e7gL|I?E2FipNQNOzrRx>R$WYQZ?M*^H+Y_42%g!IW%z3UBqS3 z?r{oYsDvaQUGE2(^1;ybBk|X-jYJ!+#efD1#o!r;g~X*xSqLpyZx{Bj`huD1wJS%& zM6Nv%zoIXSa_JU)aIdQOkiU{4g4a%{@mId8kc0lpR}^xzxK z^;bTvkUjp&Cl#{WU-<`xRQoF*Rme_%<%0^@;jjFyLbm%Wrz&LI`pT~qvUPps-xc!E z`pRz{UwKR+o7Y!ZMRpyAO|3Qk%5Yy`iM`9PXy1HfpKGp``X6{)zn}eS?;o8cJ&4;dhnPIxW>Jl+^yi zk1MG)S}G=#)Pci(B~_uNJ{hPyk>K+E!LR1~)62EU^GYQC`o2GNw9eQ?HD9Hzz2Yc8 z>Z3*%S3?em4z6I^^szCUtX(%mVtmmzA~pW{m|zu$R3&%>8U)Fd4=Sq5S{?rLPjz)q zdh9;*Rm77Xec-A}IzY~UJ&$A_bIn2F46uARk9j>3!a?-}HJ+5|U;R-O4nDnt z{suX#_KN{{qy6;XkcFo&hx;bDD|aW%%EUJhdUl{-V4Hbb0M{7b3v=#({mp}XzLv`_ zEJOUL(&Dn*j3QTj_T1u|C2n!?!{aAZi$6Flm8; zviy8Vm1gA?XniFX-!d2GOwF5DkX2e%oGV{Dm^3#aF)z1N6VnzK=H^X&OOhOqu3KuK;s+*4R=WfjjWTaa5&YVWU6`B^0; z6Y@%wkH!@QX37K{s|&C>O_M|enU(w@C#b2i~RC- zutd{KsqWIWX4@U9X|i%~mZ;MQkJj`>Md*FGIY$2qiUpUMD8!nOGxh`eS_rfh;tuOKcwMEqmiZ|Wh0d$RUmCb+J^KB zQVr4xq{LG!>kOp9NU2CyA>Dbfh9AbHm-Ynh)ax z%(n8Z63igE3Il)Rtf~0s>%~|vo#T$WD(yuiW$SueoiT3b#6sdcp->y^pd9_fIXv9h zc0ceXz&FFDO~5-sAN_VOaIAN;o&f)0;9me|JD&v3b(Cx`@gcYnvE9VWaUEj&i8Brs z{Xo1G8b*H*pMg6p`h_?j73d%0Kj7Y)ejS zIe5tZR}Fk`8wBqG|1ZGbY;U(2=33S8%e&ye2|n*(dHviC-Y4LFV(>WM>o|Cy8oUa$ zo$?quvA#z>eVlYE2y7i7r?=E0sVTz-SPRXMmyFZAe$2ziL>Bf{Sn3cf+my?8*v_{@ z7~*kZVRlw&USUC3bcWQf?&z*vSud~K+>-bM|FCVa78cXq^9f|T3lQI)c!%Ir4{u+& zEkTlRPwc`j^PI{I_3ep0io68==eH*;?~jy>x&pt^+4zZ|+^I2G!>7JB;X4N2eDVh( zD0&3eWKpvDAXd|YdFz?Sk4{A03@rM0_!+5G#B!;R&lCL=IQit9*77<4Z&ciK;Kc92 zPn;FA0<7f7<_QTUpsB~#2^`)nMaF`R^mWx_OGTao@=@l-DKcG?@rvY1BWjOSAF1$_ zf_#HyE9P2J9{`WNAIunU^aKF4kT)S_FHo2ju)&JiuUMrC37J4p7|r8qrBAQBc$Z$uqHS9*Racr@Gge%`IXF>hjF;jKb-K&EwhBld%_= z?e$r1ug`K?SU@voNedIp6vYNa+?3evw&z>TvyrdD!Ba-B-=)jk~Zry?mXImfc7s@_S1G=`8^r@P^InvCCdJH9s8HK z?O)=ue+lj1O%D|f33^@YiU2@ zC$)PVs=k6MyY_2&)pm|wP1*KeOZ#WC%nZoi$TG@)k&-^A%eeEX^%2^CowA>{^R5v6 z-?9HXWj|s?zjEFOxe!?RlENzbKAenW&bkT{}63Sg{q}c zWm~+g257`h;!920_AjITud~b-D3io8%KsuIZPsPnd9|a6qr_z?QplShB*|o3u-t@nwZ2MQx{>3cwI?BYcjIvRr#Q(aCJCF8v#Hrr1QrS=2 z`DBLvkHg6J|4L>5y^j4W-S)3^*}szZBi^0WZV6QV7gX8yuRLk`UsJaID{21|EYlV8 zb67^%FH+)vUB;b9`>&w=>y`bqolleK|2ULv``0V`UvlhU@3w!v*x&9r%Ki~$?c2|r zdHZ<=&J681-DVT{>h^OZ8_3%%^+0Fedfvu+#pU3sJIP$g{)RT(Zrn*0AXjajuA{Y` zJsz6Lg=C(LHYjc1Ms`-FIydi~wWU^PhPsSyuG;A761YLNysuGR)J0GceKCGMAbF~K zI1D_xof*gHFZF~LWyOrZl`$zMCh&CR>kkekVw&NZCQ?0RT?Jh+%}H8O*8-2d95T_K zQ+XR0^$Zz&_KWhy-UWVCMC^S8-q=S7e6c$KVj^N+A@Ih&N8pP+3gGp|{y^Zvkcj7u zxHeIdajiTF(VgNxSr+@*G8{4yfv+=-Ytzcp+LPKm2m1vPrXu5pwHV%FT$=&0yvky- zPh{K(^wB8$Yf{nX*Q8>Cz9!`h{+d)XoExm>`twjN%+Et1*j8lRc`aJNmX<_Yv^Wna zzV0;+X2hRvjcd~fbVA^BRITcNc&c@v5rHPOaWw(EDKWrci`p6_a@)0lhg!qO?FTqb zj{v_z3r_|>M}v#Pr*!f3RqmS6;!>E`DPX{W*nkP01MG2ak|5V5P$!-*?Jr=dC@>LL zTU-M?|NGgi+~Piy^Rr5^Kz2b%pS;QQ3k!0m<}D}#tFX8?UZtpb2vi2BIStjrA>N4 zc3}=yM}ny&Cb-}F*s?s@c_NGKf{$Z$#mBKCh9quj?)yBVYe(NY-=)6uS02YFta`S^ zPv15v5wjA~Dw_LljyR)@Z+t|z#E3C%d=-&#hawlvUFVICd|_F{*&eSaa<_F)neU6M ziz~MH=0#q$BC^$sjVY29c_w;Y`(R5MEAsq;cd}K->s2xb8if6k=Jav?WVvMxxlx< zH`~|S*QaUem~U=mq3=St>xb)nhv2RCo_8YS-iheZ?$LK6zrF4qcw!U|RSrJ=8OdW^ z@-DzXY!tt0RR(gkn?)&}{XH1=mW{(cCGl3c%P> zMnSTCisckM737(U<Z+^VnC`i^6#c~SH2g%QS8#VH|m-8=-f@IyHSWZDs-r$rD zqaYtR|AAx_BI z6x;}Mvtl^~`E0{c1fw8Xdlbtl_z}p@70W5ehYC)oGzyXxuUJmOGeGuItjW3q@NT{k z$tXxxu3}xRrIvtPsaQ@y-bU|2G76IQC&h9Kz5()G#c~Sr{*|wP;OIU8Sqhy_kkwXk z2^J{y5`t@NENi};MJnVdrZ7FabI!pf{k4JRky|Q zdiRSJ>jRY^xWuVXM2EWQK@Q#Zf5x{A1Lo>0@&fDEe$B9+P8H#%(eD-pUfRwr&RURb zWn$uoT8f`p;>`6h_YywEmYH2xz{w%G#Y&o34rYFo1ioRG&F`X>n+^qf!WZjQ~Iz-5QuYxoMDi*INg_wmR!O7~&2EV{o zZ^pw)H#{9DY_ZTU+QW)#o9x4*@tGj_{vCE|ZjSx^xsj75jklw>g>P-6Q$`xKt+7cK zjVfq-(nX^x8l6tjBn`h_i=Gtn>%FQq{c7)OMgIXWYgPX_KT*@K*VgzHnMQYi6Q<6D z)v-V(uZ0zGhfCrUoB1d*TF+#Gvik3RbcP5|{L`ehasBjQeJZis8Mu7>7X>YT4RRw-Fo*`=7Qhtobk zL1`0dGI!0=H9L%whCZQLrmqTyl*8kdA|E{^N&UFkbIng;YU7&JtDISOx>q-TfXJjw zX1e4yrm?+<=?+TvlyPu_p~@g4j|Y0j)`mv?z}Na0`ZIoZ1T zPj77RUHrv@g+JH*bZ6nkd*A=@mY=4^r~BIvJzjaTG{5xF9W$qOS>B>=;Y)jm)xG!X zBd^AtzwX(b>H}ks9BN*hyYQ|fd7s^$zyIhLse2ZEdg7Kpzt-!jJELB{?XB%C*0%FL zow?$7JJ9$&NC%K=kvQGQ2cI)eH&+%6K^luR18F|eBBV7)n~=65?L^{!I*4=x=_FDt z9M~DDC(;Ncj%Cb5%17dNfz}~yM%s$B6KOBfL8K!{Cz1FOl+H*!kvJFRCpD6QCnP{_ z=coY!#8$%dKDSvyC)=coAC6{Ne}ygF)Jt5z*SRyXsYwlhuVZL~n|etKsP$!Q{dSj7 zKB2yS{K2+f^7&qen|etG_&Np&xT)DlfMrs@dMyI_Bs&qd=cT-+Rc8gC{gr){o0|9n zI1%mVwpYq%o%Yxe`lPhsE6LaLZPi#vz-IL#9(v*+$4$K$1LPVnZt6u7;6$lkO~nE| zLfW8SWP*;9HuezxTE3sAF}lJ{O}qfC6d$UI450Ns%n^BA{|2FTd)|R8-L3cOpCn(~ zqh1VCpVYSlc2ZvN6D|rOt@rUiH7)HwM~wmn+LI-;-iPaSzQ}WJ7xn2rrOzegF@-vp zeDismr9F|yd3ZeMur2IEYy)C;|9nLpPxodg8qAlFmeS^PQ%C@k}v0Je$H||21;e4|cr(NfJ%=}gCqmo`|!J`{7xyqUCQs9@;jyc z_9?${%I}}@`=5a;E5g!CRE-z}|${J)Um z;1Et0#lOWt9Qh0>Ct;GsX&TZUITMsD4$^Q~3me}HlEujoBBkcAfyJ41yk212F9kW^ zBL&rKO=R(fs7P^=Cv|aDNu)*sg^6lDDWv#XS%mH3YIq<}F<*nSJV&0Sd<1B+<|9c# zc1yB2%~P7nH=bm1MwT?fCsHL~i>`cOanN0K@f|4(au8Dr%9m%<1XGdXD^yBx!jVYv zl_^<#hb}C>jwOrlV}-?ufn@P&AS}LsC5w|cgvFP!WN|)(u=rw@EKV^H)-2FuJ%uE! zhCgWh=uI|Dx`9r`z{HO5cXCOb}*}A$*!j$K6KW1lm`!*rJ;JNVncOd`P=fm4~ z0QoPx5Wf5g0iX{U^f{p4G3c(K_ZxIa&~F)Z0_c4P9RvDxgZ??us@iMN--G^(K_3Cl zc)Ii>?fn#Vib1~*y4;}O1YKd!dqA%-=odh*Gw7#4Z!qZJgWhP+RiHN+^j)Ag8}!Yf zw;1$V&{YOq4*DU3z8dsagDwEQ)S#y&TK99Eif->kxPbr}HA>)M$agpLy9hr{Uex)W)hxmGZ0bQfaO5mkYcS`K3laX4O>fFz5?JF4?G; zdQK63fk^e;N!12fW9~QZ_ zkQ-pgX6wXapc|Kz_cd`8D% z{?=9jKQO;a_?rc8K)&_^^KSsH{Xlw|$XzXP9`dyxm_G~k?={FApb=8?+JVX`T3%s`F{ef{XqI|k-H`#;0N-Hgg;l{B`Bx+1M?>e ze~iFk$k%>g{s7S052SmD-01>aAz%A}`99RI{Xn`7iS7G1KHvxPUl9H_fxi=Y3*=Iz zowwo!$1nVq0*jD8-^jlbwDtq#FA=%^@c}=O-$VEeaYK9JQBM1T`7y$;1J3+oaREOt z|L>r+A4vaA$%YYx4|D5puDDYwACmHqp7PR&QLZ@Z(skYPQ(N z{P#d>KahS&~q3{a?&Ov^XQO``!+7Fb!SmeeD9EyDH z2j-`se(eX+XNg=4lRmj}bTs<+LA|-&^=+3Ooh*+7Hafcd#8lkZvY&9)aIB5BP!kwao*5 zApJ2C+xG(Gv>(X7SNIzQt`b-Rxm0QATs*-4M)=tR$02`)kv|Hw_5RG!2FwpzgFP2$WJorxf-Fgz%5y z;g@zF7Whs~zz=U@Q0H~wzbx&;+7HaX zK=|hi#GGu$56tfcTKj=?SCKnKU~}YaKQP~e`n4ZOpFm>$2ciRhAb*GO9~OA8z;%#I zm3CHQpsPaoO9kd3f4q^O4O;tw@{>dk-)eM@3-Y@Pzk@&@%4t6^pDz?>=Lz71N1_6L zVE*TzwI4`-AaZ{dxC{B(56piiD&PmwkBi(*kkkEv{HugNN8k*B>5$WY7=!1{bA>-p z;OWR8D}G>pC(zmtr1_0xw&RdD;0N;GMvN zo7CqQxCHsy56mw{{klJp&J($Dkkfu3p8;#Ahhx!%G00DqdLP5{a~%@-KMMRJGEfim zKZ*?0L;7uz+W|RU5BVE~&p21qca^|Afs+M}6?mS&egZk##d2TcS)Z^bBJh0qJ;oK@ z1+D8NjrCPkLmG^Bm>5zM1u03;CXge5vsB1x^<@Nnk4E z^>ZKf3>N-5;3pe;x(dIQz(~|zZRB%JBJ1ba3n9nI2{~3nxJ}@F_!jSWFxXCx53K{8 zWY8-?cQELyq#VYJs}cH5~fsKZFq z^B(xx@8rJ-y0g?z`U#Qy9r)TV^6$0+c9FhGai~4KWDNntW4(fStZ}}@PB~n5 zlpGE(YcOa43%i`8f>nSZyjuir7Pv{^Mu8gyt`oRMV1>YPflCE05?Cs*NMOFe`2uqU z&K5XR;0%G&1Wpz>Uf@`PqXni493c=sQSBNaFhyWbf!zfr3rrH&Szrf&i2@S@#tQTa z^a=z}^^rdaekOmQ_!~CFmZN`i|1A<&3fK&Ek-!;%xaIV6j1pzNlL2w5^^O*Ps_;h$ zKSlU_2SfSp!smCJ$?AX~>PsYn{{-R33ZJhK$oC4Lg(!bg+HnGqBF6#AKPvnq!mkzn zA>r2u|Df;>2!Fru_X&Tm@b?IRxA3clzf<@-guh+*+l0SW_zwxcO88rZzghU3guhYv z8-%}3_-lk;A^dXTFBSeG;g<@(Ncj1}pD+9z;m;QSOySQE{xsoF7XEnQj}`uC;in3J zgz$$5e}M2)gr5M&egmM6-)1;Da6d%}{2QJ-Nq;2p34xCZyi?$90%r-lOkfv*9R(ha zwe@`_@E(D83cNz#r2=~hJVW3|=sdLNeSvoiyhC7~z+8c+3dD1oD)%7{8kT=g;KKqR z5I9TVWdgeh>?rUsoW=5=3A{((odT~Ac&Wf10?!cmkx%Rwc(*`2S17%C0&@kPD)1D6 zAL1ZZ_6vMiAiqye{w#r)3G5=Uqrk(sKUMY%yhq@j0%eYX_fnyI2s}d|!vnJX`vUJ4 zc!xlKZ=LzM0#6lqiog%i)0qFBz=s7sAaItz%LKL%i2FEI?nT@;vHbG_HwonZ82J|o zyg*=ofqeva64+kg$GCX09Oob@y#k*RxLhFan^gXIft)Wx`LhHvegf%(_#r$XkjEQo z9&d!aPa?ct+Ou3B?r#;pKwz*RrV4+Oz_9{H3*=i<>gCcP!X5(85ZF#&Yk|Rj= zob;6fxelH5bb(xJPI|P!RDld4OFq}#6P_xNYwJm?SUG_9k}S)6LiP*e3^4yQfs7?U z`YnNsb3pn9fzJxuD)1qJcL=;y;3|QPBf;_|0vRiU^lX7M1x^sixEahJCXlf)NC)@3 zMB#IZ3-cL_h>-W)gkK9}oD$L>2xMFo(t8B%7WhYjoOgkLuS}5eaxMmGhLs}Z{0zdS z0(n0|I!_?yaggRcI3eeD5RMYa`*PB}{~+Z32Vob1jO9bRxj;q{BK@NrPsaov5?CYf zO@Xfod|u!)0(pNkN7`=%og|33R?eZv;Klpf`XXZ_w*Nk1*&ppnDp0 z1?bKOT@E_dpwS$}XLS>FW)od9}(LC1nV-JpG-;|$sh`d=3X z?6E-C8uUrn|F%J&0R5st9|!#hgFXs+vq2vLz1E;>K`%7uL!f6GbPecn27M6pAcH;t zx|>1o2c2Nh`#}G6VW2&GL4Rq`dqBTy(7QqJHt2pR+8+ty57r2zbCJ$NIv*(&DGg~P zQh!{B;&6iFHd*i`z?TZn^ZO%$qmQfDJ(TB)>;zn^iEjbCRB+zk+$A_yGjmQcWw=23 zG~^NIn&T|Nxs3Qh!MQT{Tfw>5cNof3p6hq77o1CS-w>RuY`Z`&Ww>y5w%}X~%lW+I zbH(dRf^(7SSHw{d<6ma^tA^C=QmtA^^N>w;G924 zd^GU0&^F?;foBO`4*V9uw*dcG@M_@6Xg}p^fX^4)nusW4f+qoI413C?0v`c;m44uB z1uqBA@6(dM1$a03j(9cjBEf5b|Civ_B#br0+A>MNCkmblyjbwrz;8o8h{wKXC>prZ zibp#+#>;CZ@oL~%g6{_YCy{5Y@f9fGQKis!13y*a5X3gzz;S*RY4`$pAk{X{;LAOQ z;>-Pp!nY_HyToG#{-S~JGw=@$oMWci&W>oS#xZ{C;8y0Okr$529Cu0Dl+5JJP-{SY z*Iz-}gfe=WQd9JYheMh+iQWn6)6$wCrbV0u(eerK+yzCYi!-yc5Kmoy z72IYmEX|se51z}8parwRnG+fQy*_in9Ip3OicD(*ri>jmy*R6AT!Adnu`K(0#0yI1P0cO93SyI*T85}8{e)MHAm>>nTHX#q?_{Zn^koRU5<(~~z|WbI zixBk%X2m5eG_|xCtHi8Kd_y{WK~cDsuZ*l8cB$U~{}v2~SvjqjQ#HD1DXc5ChQ=0R zHL9TT#b1r8Xmn9qlQjH#Elpku)~G#N)35ffR`eh6vR3t<^HY=7(IFYWytR1cMqqRWw0I6V4J%(9-w`qKQiWBZ~BC>p$XTt?WPHY_01*<8-a< zKkBolouHerH=A&dZi1GkoTeL4_GvaA#}IK+ z1cG(!gfQ#n7>T*Lb*RTl<&XTllG5O|?1wOhtgJQA!E!s%7Br7rz5TKvYhG?%!Q8@N z9S2a5`*vNB9c~>?H>d7;{i8;V-dJCUlDEs`j9& zho5L?y|#|5Idh707b-hkI$lDDgiaJ zm93idYjorz$QbJhrQ<@>sO|9LC5`OcdUo(*d7*T0o&mR(7?TXz>ggydo5Q}&bCAm) z)Um0FI?&-&HNiUgLCho^Y!5WS4%sdB{L!kV-GY~}W-w^0*Ot5jdKIHFL2aQ9?%sxV zWHFRpCeJ@O71q=ipWIZh5X!wy>qk6zjuY)1$5&#~a|#rjBY>!3pl*VCcw zD9XwX)-fA8cn(SoK6yE+Sg&n|+Od!g)=>c+@1re4L&X@|;*sy{Wsq?P=mR0cEj(~Ml4g^ij&v*!TN|-n%=d^F zYwXML0OezAB0L=*9rS!RVCY~;w?in_ErJ|*Mny!HHN8KH=Vo?nA=x=NcM?k2RB|X( z;=_5ip%tUh@Hiefw1T_mO*l+*bxBJTPT}lKwmr*R8)k%7@VNA*#)F}v(6mD#Zy!cy zf)w%(Xz~td@)xvxfu~fc>|p3Nbp|{llA8Rfq1)6c??p%vy8U5Fm&0{`L2ftgbHqvx zQRov0HXUEOyQ6dJrz-fA(2`G3etlZ;wC7Q)rAK^D%o{2uK+#F45riy&kfpnQ(TtCS zQFH8ZP7EFIa3X3b%4fQH=EakUgW%zKN}UZlr&0CA5w-IcDgpy|&4vwq$p~^#lvSyU zx%D?-p%?SoVJbApDi@N)G14@6G%bykB^s0RwpVUB0(l70({Wr9&#_PQ{Y-rajv44y zBK!cttq9+RFm$x7pCP;v;cW>24q?g#YH`f;2t4(T@ULV6s6NMdjv=0hUj~F_XSxFj zvphZ~fEy}sI^fWl^W7p2hQo1iLoI2O(xE-N_88yea<`4x{&Ycj>b+>O*!hHuJmc*F zP;kcE9|*GT49%$OC}+Iw0m;s0ggWDGpF)45QNQ;+g}#YjoSS7Ot38{P>mV%kdi-!$ zZfE-n0lc2RfwcArU?gD4iErtOGlLh?@-yxp#_>qBluZbwZpV+(KFQAHMfBOJyFpQV zM4hr80>zu0{SqhvUWP2o_XCi4;#v8jd4(Q;#(RuSboY_b>drE zjf1Ka-_mXXO6mH-<;&~ph7pzY5m>Ag_P4eisH9}sgX(}(vl#<2V*hSji4b;xGZKm&z;@D*mIWp|bh@95#3@bO<1@pj+A2ZfgZ4C~to8~a~3 z!ktKTkYlohL$LoE>E=Q3&X~#>OP#2ns$J=Xjjab~vY(caD?G$K8E530?g=gM);6#v zC%oF`*g8V8noPkkr(>&*b0&I@kLhr0afIgDn}{mI%tqgNf1Oj`dBGB-SqHxfejEHQ`2Fw);g7-}<|_!W0G>__Q2`xX z^t~+(XXwBOE>OyAx_8TSK9WY zoj=GMx%a1nxXtR&D|7Zu0_5o@8k2e2!J>G-=3_cBw&=H=ad5){g;Ag|% z1iuD;GyHb=J@6a_>qIIyVYBPb1lii>w({5;MXF8`Aro#2Jtr;@fQlc7wFvcfKzhM z2F|@02j>-}99}luC*B|+>aV_&MVrwKn}y{;^_?tu{mg=Vyx+;kdy9NtK&&yT#{fD8 zQ9k#)48SX#a653O-zugZM0=?3K355x2Z;OETLVZrvjK5$ds%-}$2&#h zOC^4y(8mgWw9rQieW=g}3w@x_`wG2C=&Ucx1)%D4kG^fZ-xJ91$eI5nfoBOkLm=fb zp7IFK6#61u2Ol43xGr3WT>$*JUZ7KW1Mn6Dp9lPafukLo_Zm3bqj`scR|4N+;M0L` zFz{}`Xc z<-vb}i$gtUI)3}lFrO*YB>X#sS4x;Kne7bwu;&H%u7nRFO&(rKq;t*cVhImLmf*+ocxkq9 zqr?>D|A}I>s{FsC4s5FQo_IQN!qNE2#{U18=Mr(1`4aZRggSjEOJV5h8LEBXAXS8h z-^tTWylle6^08wkl~RK+A$ycwU?RSgOrBk3oP_D+8lIfdm=d0xIb!anwDj;CgPxC8 zFE*OQj4(=&;`6XqHWc&#M_bfykUJe?dr(&Lq4b@S^v>Y>g|t{lnA8Tun} zb#gjFMl(1ELWb$^igKOEz$rNKb#it=Mgh3rmU4KzsIi_U#Zz+1%TKI>atO>A1H^1{ zMwVm7OjD5sd&m)bPD^l|)5av6?zxVSZUo(3R9RdZ z33N~nNWb8z-BB*49Eo&LzKM)PIw+J;ha8=9Y($4c)#zf%kw^#SVvHwWM1q-|G{H4P zh6H0|B+^02MK73yw1v3mqg;%PL^>$6>G~MBZ#xAUiF8nMaXr`{3OOi-D?Qu2_hZVD zNC)LS$Y5Q*B{CWy1GgcaA>+h4C^tjKNL+}!MaD+R;CMWq430+_5v}|23nbw4+h4D8EF9!mVn(!wHJv z@Jv}olPz<0fvY#JFO9d75@ltIS=@%nc=N1yR?w3}torUQ6f{Sn@}^n48Q z^2n`>P^|Mqjy$#^A|v%jt_m&v+6(=RlB1z#evGP6fduLnG``;SLeruGZ>Z!b33rnK zxS4QIXz7#W9Y+m~KxmvFz~9tR;G?EV)8K-Z8gf0~)VH8z7DF8iT4=o;0ufin5MpS@ z-B1dN)M-(LC?eS+=XO@9GuTM#UV^G3{5cxG^f`ITh2; zpJjRq;iA@%))smcNT}opbH85&RaaP#VD^)HmhSGM6na*#xIIc9EWBH*o~N{Ggo;|1 zy#-C6#vg{(JdlKO#8+(1TjE7faZKi;^?Q;F?ay|f>jLgkRJ zncp8U|b zJb=8=xT655{t*D(sd;na#^dS96!1Gj_UNXsLyM2LJWCX{`w5_2^hZfTiU$bMI_m(P z%dQl*@>SoyB6RC>=;EQK8(G*gUsEYAnw0h$l_X#Ewp{)-il56L!pK{b_eo1}`~(#$ z!5Og`*zx&`75~ThH8MbIs|EJyQ3;d?NVKcR3A{Yyv98Lh$F~E+8phVnsA#CJojb^y zUsYE90HnO8S_wa?-?8T?P2u@OjK~{Br$@Mr6vb5GAaD0Cb`~djL@U!4=hF=H&UHJcj z*M;rYT>>g^V8i5)#o#>Xz~emIhT7oSLxc6RYa44SgV$6AD}r-Szu+~E4Z-SqM5*&A zgBCtV=I-i^hh{t&HGhoA1SoiSq+>$p!xyxLyv` z@m~Tjk_$wB*u!U+@R|*_`#pRy`+?m@2L8YB4+(mF+ z_LC^Rvvr_A?~MCAb`N_C0lc-IfwH7O0kM1Z#V^&6)aqJ~O(>k_PJhy8D()eL1uX9& zrbwQN-;^5ssFl8+seeO|Drdff2wV>@Drc!*Ga{)?AZ-ze)HO@Ki=iA!Ew-7ZQe2qL zKv~kaPy@TzDTpeTVE%MftYQ`mPYx?xm8+QLqRY4+0(dv`1!?#9KSltrN}72NLRQv6 z{BZSB7o!70DcnKo18?{A^d~r9muMWMehcmCl<0h?M71oRV1C_ff(3N>&S&|aL`J%N z=d*kd0=2R)rTh_Ez8z>wK_iYL*797*n9(}s2IRU$<*aISBZ3bSy*MYF0_;|s8B8=z zCt`vFDv_PkK*8fE7?;xW%q81pnvE=+;oD^ye+Kz2pkAV-IpIWXv)si@)Y(1?QM@i} z4ZAE|U7OBqiIFHky1FEpG;~uEf|K+YUg0 z&Ms(2BV>~iJZ%C3+=;R>z63LEe!b5`=bYw4#9~HR`FElSDRv4stnXz>hn@Za!Ra<7 z+wGO1xeg2mRFO|-k*!p|iM-y6&7Rl^Jf}a+v;kFFTPFxGffmz-Vyq4?fsmYM!^E)_ zpk1=$JhBA11)iLz>U_Tnvd-gJ_J>E`(&730v|!m4%YhFmUH@mV{no#$sJfEBu|2 zYiDFIGicfOk|toYTXS(KJ=Q^7$^R+>{zoVRh8Je%@MY=j!1S8U*DS{qb7$eh4GeVf zktQJMic61kfZ_H8S7}wfJIc~5`aZ^u*27M}FnOS7Ses7E|BNo_pc?4;{` zhddYNCe?Vl*y%~No&mP!oLo<7yQDVv`94jm-s)R$cT!$MQo}k=m)t^6x4bu+JcDz6 z&m`p>O7{%N^>k~S+}CqX9)zMlpVv11LQl_j=>t98Pn#MJdXhz9@D=nt+nt}Q@xU9A zB)$O_vR7J{5xk&+d{!&R*bfxxQinvYC=zw}@=U?~S{l9g43lWH65W>k&9NWO3aM%@}MbW=$@Yxu3|`Bif{Xm{oV z7?xM)M$*G~HTn&=Qk+Hs>2fuNh!A78b9E)N(oAZ^9>IyIQcf|*GrkG~dci)Xn(9h5M6a)&g|F6vGcd!khEJFB(z>An-)U89h6yvn zTdMU|qjOR{lZ~HLh7bL#W}%LpkLVeaD&)+@xidH&Q%Gf1{fxTmdBnk2S!K=9Gp)%9 zb784fi7mA#ja6kexwH8CFTf2j5q_b*5mYDE_l1`uPkIjr;~XRJ2f~phhdyff^CKjp z5RRkNSc63C9#*hSN zZ7=!VJ^R;v{xtP7p0DIhCL$2P*_!D2J9 ziKsn6r^e8L99Ge(;W412>8P3zI9rkKC3xmtKm_heAjGNJKO+tIWc2IQSiErFr~P?i zv7@m_jYj8G;@yzJm&b?j|9}r5(=PD5He=wY!q>vz27ed)7I@Cg@UI@)qHW0GElC{T zN)xJKK1iIAU=fv$7l~YahI2j$$Kf$a9C{0vn%jZIE+V8KAxJL12_zv0d5mG`m#c+gkH52J59&c%F<@DXv zB{a^l9Sm~K;nvpI62wmhJ@{d3>-(&aqr+&VXBFT7sI~QrIO)0Ouo3=eM_OBp%y@(u z$2;{^#1+ShV|iK z`8dscCBLiCS@yy+zg+^iBYu|=kF#@{xxWs#nf#mJaru&0fWA&YcoqF-Nk32E41vQ1 z4ib2Vz+8c}>&^U+<9wP;B5yu2_+Q|!NxsD2K`$oX?*-yhvF2R{{~n?LOyE<9-)6-B z0QlR6ynBU@^J>anE$}Arh`vvD4kbJmr+A%D|a)647()aBMh}(iXlxje6 zCSVXax+G0ID9C3EaXuFb0|J?VI7bzPltT!hAnS$VdY1qOA$I{F@p*#J7JRzkQv{zV z_-Mh03O-QqBEh=}9u%DAql z{Sko=3go+q{ObhXDv*nKq_bZUUMuh_fs+NY-5EbpV01ao6?#{J=*x~5}2>8VYj{e%*-@qGycQx>Nz}p%4F5o}bgOSbDAJ_@}egoeD{0;-(4t$}3 zZv!s+C@TF{;FFB_Ex?Bwcr);x2EGY+djsDH93S-3DR~=!A49nud_C}Y44m!xvVr3{ zqI9g!0_+Um1-=0OY~r{FvT#wj3ZZnYaieixW(etk+>_x4whVJWW`cyd7c)h|+=r=< zF!x}tl`!{Tc-92da_?o4gt_msoMGJP)Qeav;i2e&SEEeXC<_QiB=UOk{8e+Q@}MpAI_ym3*|Z z8i|uX2qND_j*j(1M)-B`0aZ?YuP)&m0Ui3MM)-S1nD0MFrhfM56z>^yJvi3%uMN6I zh0)kW3R2@NI)urw%M6Uu>kJI(g$9P4l?EfMmKtJowz=2# z(m_a^G;n1kw86(!f+=8bX5kGdaunrc z`o4VrGsCZ>9Mn?5Ba-8==yD{~vt1x{Q3E!k90(dRPON9U1TyII*eD5{qu-iH&z3Si zgLh;slDa^g+a!*RM0&RK@gDdP3DVPJ3K1(Kfu8MjHXz)wQ;?BJ&-R=8B0)V zryLv69@5M)bxEXW%XwXI)TM#TWN^)pA>BSkMj}01o=GttX&)9DN|64Ek-?`DU9?{5 zbjWxgg+F!*G7{<8mf)jBI{EfZBlvB zxJ^K===Nxai~`W*yFe{S{~C2M$`MD;cCW~o>fWWUm>3y}^lXnn#xh)&B_e|=c=8-I zWSm&fmbNPSO`z9N(vf1|QLv0bJd05O6WeK{ok@=Uf{@{63>;*+bD>)34?)>< zDirccsnV+S7~jAX38Jal_X>m1?0XSV%(Xp-V9WoI4%yETz7SeDlcE&B9^(yrR zgwo%{Pg|zR%{U7n#rA&)N-B$=Q4B(|R|!b>AUsU*Wqu2QT4q@k$8`(QGRvIEh@^`H z*=jwxSr!s(WZSr%V+mq!8)w(@dl*wzLb$hZXk{3aAd(w9Re;wY=IR#yv z#F{!`1=d z?qdAvCo;$9yzL{3V)3zNDn#&Ma^l%WSBY=dI`d9V7GB+>NhJ5F1hbxBBMmrV^BhE4KR&$ zH9!VI4TUdkCcR8v-I3QD1+1Q{R7u=AMl~omAkbx8+fM8~^jwRkL!W@xGZBVI{ozQ) zxQ~BTJP_g0@am-txCWl?6?pP-%uM%9v;>%rE;?`S_B(R$3|Hew3<;HE@#AR{kj`{; z&KQ$ZUJRjJI<*3*9YC!CY7K($Z30JwfcB5D#;j~({1)&CWx(_9IU9Z; z{3Y-lL0%8f!2-nwDWZM;2^pzS%+II7VVPAi=-7TSeo5!v~Uhk7DFc z$8iElyvv2eK?zBGb4$kRr45v$9ucpGDj;!qA|wu5n2%ZIWUXf%jY~{FnrP9w5=*P9yD7Qf%}KF$CKP5@Swn7W18H+GGg663qQYv zC*QLIcL;n;;6noM7Kj;e^E@Mcwa_aBVlLfWW5lDsH*;?jPUUxz@D&L>8}YM^_)frm z2F}K2`Pd&Z-%;Hhcb1<4^w)&@gZCgFV!X1J?JX9(r@$(7BgS_T9Qi7oQ$^A#pOE_$J^3416Q-0t4RwJjcM-1OJ*g zpvYSX{38Ru1NZ?0Uj>|VC5L|*@E;oZ65tyQoO47UJgY!5v;JTBEHpglt*E=jJr26d z;j=++2AzF}boS4gLf;Mg%?LaD1=6;l=yOm-jIt%{@Swe1{wIy_^F~;$lDjVo>wfK6F>SPyN)xh{f>m zN;T>(=gjo}ChOA0#l8D$ezh)be&2M`b?LX+34;21H!vK>@%z-{h$H0M13m8>x>H$~ zUWI#(>FIW#iFW`4vFp+a*OZx_qp>CIq=w@g!Eq;BQ=W*22A`j!af376vY=iw#C^b9 zUpbNCE(%B6f0zv!-M~3rWNZ)Wdq=0%zfL(4opZAeGWbwgB{IBc>9z+cx*Q45m!UEm zW!xb$bk32#QVtA1>+9p$_SgU!yd>*Hh9BjS_B6_IVw)P9AR`DF8z94Uk=NzKHZ^uZ z1~c3N83Gqzm9BN?7KE`E3^xMcY72bu6;gIp>$z>!w zZ>InkWk2hH^CD6>z*7Zg$rY4 zB-s1-O24PAW9%f6E=ES8y^n7qBhlUmW$>dpryR|l-D?|Dj+zAL+?1n#c10Z~<5^6% z6*Aag;9_JX+WS}z8O=zrSY)Ww`X@$4qP>sq=v$4rwr62n5anWIB-;D9PddYQxzHZz zVq_%R`=AWIk4`MZ*mD4H^uEPIkg)}Q>|QCyzRtLZb$N_(oOthJ9Qsx%(v)=23Ac7} zFG!3GKEvwc?0sy8i~=P8zR1v$)NhQ8M0+2WBsH?n=` z45I`H;#OQn3dfEo+xs{O8Arf(05aUd1IH_THh^-Z^PRjKl|C16CpvaF2_46Cz?b zU>@1_aDzdGu)%NzC`)(yol|5CgCVfHKocM>mnhK`i!*SRo<)h+L0L+@aT-~WGjKX6 z$*?ieF?7$_PO8rV<+)%I3>L z$#J=xs+7 za1R2K5NPv-sk0-dvsz%lrL#UlT{sq`TMh#5M0dT0<4lh6q8*2fDe!C)rmaBuD};|A z{5rz?BI#3vxuC@l-~R#s0m2;tQz4IEA{8N=gYeY|GfzZY9On;#=Qjr+t2X1lHj98~ zv2_q}EYoxn;I;{5m~BiKgufqQrbkMO#Te`&0&(93boL$t_FADX)R43T{IVaY-}|sa{mg=A7^!u4eTI?B%=b5lxE@~Zn#ed&rhqdY>)8IBlB6;vIp zG?_`-rcVRlo@54#-3f?u*wRc!U{BJ2E{WWeOyMKLQ;Q$Fi~ThKbLC~V%Np^UshX{e z${Dh(B-L(RoUF69vE8~RwHw^_#%6J69pA$_dYNh-dVb31?*hTiGkj^r)%h_dT;8!u#wV( z$Kgm!&*zI>#)i;^%Zikd<;bv<5esi}diZiBXQ0j=D}4eIds8w4ety@YF4t+-Q)(b3 z89CbNK?+$jR5_XRn5J(H)FlIo zVwbjWAPyESYC&%QHo`vNWf}VbSy|sCmL}sBpj7MfmC`%}MCI6LXXPd*W#vFBii-@ zEWVG))d@4hxgmQz`JhzoW)Czw1J&X3cp$uojm}KXqBh}kn{xHJO?l3_O>M(F)QJvR z(%ar@w>m%eXs6TlzIOX?O^{(Z8royE!|#9hrT-K5rK4Zo@eg6rnmBrc7^f9Q4tN|g zUfv59Y6K&K;n-K@XaEBxjDNYZ4_C|gcy;&Z=>_pm!@QLln+ ziZqFN&~1WOS*axvKHuF1soF{$_8b0soR6&WlT_{0d4GxzKeT?pXL(G6SbQhBJEwdt zxr^O=yu~z*#iv$O+pviL5oQvi%7y;%&+m;}=Uo*gPMH)l2gotUHkqxB{cB~F+!-da zek>5Z@jJ<}?mF{e`BB|y~# z$C^|EQxR^e3TMtDbE1*PUBpEeWihT^s~#k}+ak*Ds{T1y#FQ1yhP2x_;`7Z@xFIY0tJhpL_6UTYI()$b0$L z1Ksx`{Q-DRkdMQ2bC!y4-QYRg9t}SQem499_*L*5;MG7A{7L#@XUPYS)`Nnp0W;#S z0x#V$&>3{%J!lW&+<2yAUc}!~7>26s_X!Ll+xr_QEKu*AsZb#!=~ z{=rEi9jb$JqyQ%4FGF2((wT-$K*)I^A^Q${62sAbhh_eF*&laNx#QUf26m^y$HJx` ztoKd7?IJ3D%=~WWpYnh!nvigmJ*Wh-AM)OV{|uhW7#-mY;fKSQ!Lxr*KjJRRl0HwqW0Amrj4L^=Tn+$3?tEu^0a7hjknOPP-Y z7vHZ!QnOHyIO}Z(561yJW$_IyIdZIze~a@DaB&zf%xVsV7*4B%#EB%CIe7$$a|emx z+>(;{wwC-kt0alFPmxwcFCOxS@aG~*Fw+z$AKh#OK-$`zd-7R6E6^$2YI_h-g_uyI`F9mPJLkA7xVzK*8PUR~KSo9d0xC?{)$2Y2dhS z&1V=mu3vMefo})?4|Gl^{Wjnq8~9e>e=zVZz<+Jv&A^{E@J+xUGjQ~e=6eks{iJ!d zfv*R?*ud8TpJU*-Zq3|%VEMR#un+j%c^c;)-(KJ=4V>*U$G~?1ckB?5pY1W!h-Z8B zH1O@f+Z#CBBh|p!9&$FuX3ArGyrW-P3TJz~Y~Y)KKV#r*k1Yny_PEQy^HH_4;5);2 zfiHkR8@?<2Iq+x?t2;c;v!smxy2~V7f$$9y=JM}%CCrKWFD1-H&m$7%IwkGoP!87{ z`!b9hg8LPhGwj239dMe^x#qu2!rZ@jRKn8{eoew^?Hza)9y$lnZs`&}j&QMr^V>p~ zLBazOzDdGU5PnR;3lM%o!Zht~W6VaG+Ys)Bx@9AdYx^j=m5m1upZ#Nn&i$9Mh;Vf5 z=7LT>xkfIz3U`NBt_IWsg)w|hm;D=v;jQ()%zJ2=l4bmz7;mD_jp+Wre7axDk!}uD%*-)QH%#W(ABSEn`sHL62OZOjhKd=r6*c8pFOQY62;v9k>=nlln&=L4` zbbk}+4^zfutZO?m7N9P}b!xY(Ix-UJ4-e=FOUJkng`7-8x>y+r^oQGEL4Yp(91V@% z7#WH5hrfx8MEb*&@pE)?ryQ%syJPg2awO6pe)TME!S^LTc;MDSMu85-$Vj9=oYn>R zKHAjop%WUvF)|YA4-Z17-@}WbHy4Z|U5t!G`opiBXQ?xJUhJy{Y@49_EwC6FiS&nA z2R;iw7a2z(gZC|*A>+jQ!>2>W7I5d_{YG~jGJ5M^j10c17!|F9{PSLz*Ma`i0XpHT zOWgv*$Vj9=+`Uj=%d-Y*8OCpnj70jw;~;~!ZA(PP29#r@7G%gcvHtMoeRTcD4>n4G zAf749Na4HpWctIaAY&aa#1hDGGe$Z*PuWb$k3LQ~Il zBw*-!=ip%(^0#a9wxbsBS){E@@-xj+Bh44+DWSD14N40s-#afN^?RT-9bLLRaCN!T zI5kv%9d+YhlI4ZaVqa+K-INBiF5c8o=!-0brF?6^g2UWK4C$o$zxU z=*QG{DCD6eo_Z$|#xfq-&yxT@8Wmca!gxbY572SoUysnz^r)CNhzTvtilTmnF$5KP zlMrht^2Vv&2jqN#D!ogeLg7{E`WSWlG2^M@OUN_(&Im0Xz<8XW=af)XyjPM1l~_ZF z%vS&|Z*_EfJH}DzzFJheE0plieRpS~1lmx}c#?1`B^xQMMP5LvI&`o*Lr}0T(n(i5 ziKLF<8Y$1;i$FrrGgYF{il@m!BRM=yvhk==bS4Xm`W7Liy-J8GyaX7(-JBvnPEK4+ zC~2>`g~j$F0PQZfQ!FF{a$ie`hHLB}T2YR-ZfMP0=&a6#pM==Znm-woVdPg;9L3O| zLMyT<9_2OqLq|rT++7G!-c-Qo@;av#KJf(Z-Ow}V@fOh<^nWcxs**!!E`3xW&`_w* zD8sX4(4FE{CS#YK!FZhCr%H~jzt2=lXEAy)MX6?GnU*jy%Cu53{DutZU0!?nu7-0$ zq3b9{6y!x!{|YcJJ%SGfj^Y@{P}z}>I_xPq!e_#s67^`IA5%=tp*6D&rdvpS{`RE7T^hWDhc;dtT2aGT-gPBg znfhu;-JnvdBSNo4FtlPG_*SbUE%i-0Z3}P8LdKOeGi4v90O>qMQo@1=F5O)tr<87& zoXFG(G0S&lFI$ZF-Rc!j8ZpTd^Ms1oVZ?mYL#KIP#XN1qydp8DcEe-fs}1Y>UzX<$68@ z+Dt9%2P(Mu14r5iheySeR!=FA)~O)kZmD!BM% zN7~DWpZPLQ^R;x-HT{|pHC=B=+eexz*((e!-s{NPd$=~9tc@b;$0Ca+Ae>9Fgf!<; z+@{3sR+nOzBXrl{_VI*%ON34np&JdMMWE^Xt)-B`IU9aIZKoq|=iy&{p-w4wzr4a> zy}!q717qrtHzm~c3d3c2d}Btv@Lt8-n*(6?i>v$=zH9O2)?G}azVXt}Vs&IVzd>Vs z%RNY^&ex3^#INLe&dAp0QytvEz`YLKNl#q^1aBgjdZUt|hTi0gar&HIELYFM;%&VZ z{>%%;0qcj&t-k>Vq4<@S94%+zpxqg>tLmsk8a{Pu5G@mpQ<}~Ouh68w!dHA+tP40Y5Lj}4YXc@4J4dM7)BO^zHE%1ErIvH0V3 zO`P+HN!Gc9#R&^*SF&Ipv^dp4VD3T2AcuMJaT{=bViwLUhVc!@AP4C*|K#9`F`SSZ zy|oSac&xgj#%boT9mg==h}yXgu<}%eFXgmR=%`cw2Eks{+)91PAQQHw>Z?i?RM$74 zMKpEHT*@Cbv$ifQHRh8%QAgG0v-#DYrLP5RVc68hY0EhO4Ck9QR#B5z2XOvzodj!Y zaoJTYLt|acIi3u*NF=pG!9is@fkT)SmgbOR<&YAl&aA1e5Gj?ljn~vvNx9HF6TP zuY|9Jp98-D{xToRSd*|< ze<|$dsI&DV_gS12VgC&S-JV$YDff5x@xYz^%UYWQNh7pSv(Hlpd( znho25Yy5Qm5#B1{Zv#FFkD;sUqQAA|{sP^U91Wdc%BJV_|F!Upfb7>0UI#k+!5wLWI-*?~$2H3tVS%wv$Q51qn$Z70;3$U}|0@WbjzH!p z#&_poTCyhT>BDUL*gSWG*|3k;Wz>MtS@ls_O>nd76PZ;XC#y9`@iu(s6z0(HE)?(@ zB!V(cC8+pRvJ7Azyge+vk>CQGS+N`1Wt{MNRn0C?*}=rGuGj^Uxm_T+WvEOpU?#Bf z>kmN4{qVYW7qWJZ$T_o`MH%uPbgxyaC>|)STJ~_849uAQ-Y%o=vd(;XWah&oGav3$ zbq|tWgrqvVk(73ilCQ39+E7IQkr{Q!K19*@iZ;M2T>`p%MVphwW4wHJ+O+`Z!`q$O za59Q7T={io-Xi>DS=rPBFGxxcw4I0mJ4xX05J)ZGBtOuk0Kc|XXr@9_5px@IO5)Mm zNr5&FileuI@*`JDPr}jL_!)-aQlk9M6JN)!ML4S#KdIg{8&zT%>_GPS0ldjs;WAj+ zn-!@c(3ZMmNDQs}t_WpQWisG3SOXuUd~7u@v-AX}BFOK)z3S7_z)GO}O2ONPu~y0u zild&IeTmJB#>>OUkzIB#xm5qSB=Qnn;$9-vu`l7ZV8`c|sFRSio$3PPC=CVdLoq3V za9vJI0)<6LX~R=`QIS6ZWX&VR&gUoTDOvc*;Vg16L#NHVE^n zy{+F$nTkMqGbnbc&Bov}*)Dq=zq&z6BO9dDZ4mV&C}r!jK{(3)1U_>v?}^D=Vcg9& zvC`k5?5Q^8@)>WJ;Y4$}_oph^Z-7hRjZ-6qPj!UzJiBY*Gw-B;tKWd|54G^GDg0WS zg89<0%Vr^@3w~{6!LM~?zd#|^QV0sJA86O=obozwmm~8fGSr-ohxI>*enxZ-FG3e| zw~imD;`RgS5Xp1TNX3RndOBnIjf3TH0l5IQGaqF9JYGuAo%8e&A)0pcnUI`x=eAoc z|6#~F9|h47_3RLyJ8LaJX)Ld%Hz>OVch0u_q`m6W8_(wZUo=|LhgyEpc%8KT#S=hJx^w3(Y@e zvdF8s%)Od((bo1d{iF_L%vTtn0eEg(p4k+7yAn!)96#7)x4S}bj}&@)q|n<%sMYCq zifL=xOivvdyX<9GM%zdkZ5FUL2pB3&VRyNgNy&37@r*?+^m_GY`Mx^B$ zx3F`ortwzogsa@y#z*0>&Y2l#n*x+i$G~eyHUx-$8qlP`aiF~I?R=tE$_PXycV}-* zxe>uM?%WL^+9AJ@xH}~1mwhwH-pn@P0$3@Vz>@ta=z%PMpzRR0Eb?s6-p#(91s&d$ z9pK63dqTZflC5ms8^P?vRHd zR%ZfVRuMp|C+i{tZ`P#*zO2~*Ua$49eA7<};g9O|NB;lJSN&o80b%O_8DYV+9pHDq z*3S%ot*<`n4}XuJ9sZ1KNdi!HH&Z?aJrt5BX0Io0o4N!KaMR zcgV2I&`KT8u#0n9w<#G{;5InJs2gI>3}?owb_zE~Uw^nkf?@KQ+#sZ!6_$do9cyX8 zdY1joq7jGxS{3+Du__QbosMr;AUtKo=l{5d5wlpCNNXzr<0lQPtE&i`7YL_xC%c*v zBFrTH;!-(1g-w%?{vgwA=M&bhwF@ArM%cZF}t(q*J| z&-3lP%{M>Y_qgYRTu+x=-=}{C{R7ZF{d0ZG5HrLxCfE0d?^DmbJlatx&hzvEew#|& zGtc+TZAoc=P4{#|$eW&Y|1G}XdF`Y_)_tCCxk;J6!ArL$HTdrH-5K}q>7+)_RNFH# z*E2R3mK*q6mK%efj$Hfa!D54_XKvD}Tc*Hf!wB58tl~;|TNyVdre?His%lLpXoa_} zOF4VwRMI$0;C~VG7Zp1Zzshk2`8~yTsYBv%BDCIPScTw>XD*)^SO*eU2~>Y#<;r>& zqz@I>L>h?V6axteba1kh_E&hB{*5oxa2+_B#ls6Ew;X(>UZhBF4o?C7StQ9FIfjcC zhtw1GLCN5#md9z3+$I)Z`p#$ne6i!Mi0rKvXBZK;n|mLrdf^*~#)b;4HmciBnZ1hO zmcDCoUJ&P&vp5I=J?iGNI0OJW(XD{RIZXedl0^+-+SlL+XVvl?kzPwt|6_r8s~?a;5oIXJgmyeqESGr?vMdV;%jUyps3S=c|p0jtL1 zf4$xai4!r1w^q0a;b+7RII|T7Pa^h&i12)_#D|PPnE4K-@aUJd{!k>UyPR-iEq*7_ zJ3Qf{JKym{Nj|j=rTAGS+G;sDcYKbB9hhls9CHjZrhbBYCQhhx?AKs#hF_S?iQElf zy6DGl+|3*CMK%U{L1HT};XY(^C#OrA-A`>|s@n|PSmr>81&e-4*K-fn?269L9C#DH zB$z1L>Sov)PweZ0A3W5GiGQ{G*T5}6y_sgI{XMG&WyNE&K?hvS*`o^@TrMq=J%X(E z?3{gNv{z--0==)B;1)f}&M`lPbEHK*^-jK%XZF&>yMrfqq@VJRbj&Sxs@t_(2;-sQ ztFc_dwJyg!fI-m!&@Y4MYLDae=8l&uC-nAi@NszL*ks`*4!>a`q{A=?9zx(S>`@zm z6o)+^WqXBtFZ_;(hC%qDJMFP>iErcncYbllg2vMWX~D)h8ShMJDxS9HC-e8^oxgm; zqR-FG%NalXy=U8X{l|kVF1dE?(%By$q&=UD-dj6z#8rh;4|>{PReAN|TSpJKo_k@; z*EN^7pO$sw>^TqKR5Gfx;G&_wYr6Nvqi=ZD-jI*N@uS~?@T1{rq+&Mw0{B(%8{oIV z?||P6e*nG({y4l3(OxO8eU9MDOx_G*A1Vg0I%7rPg{8rg42bwI2fL z@T-j(;51r5_kpB;O3HUkaHsq>=wx-uuNLBfJN&AX0B1j;YcKpx`PE(;=uY|jOT3f6 zTK7i0(;jL|47gJtwY&`cQjvePBVX#raqz@WJjm+cz5$0zzNi~A{_>gA z0{;2iY2)bGMg6`!+PzI7?H}<_D{DseA=*OGd!F zTz%7Zw22h#aAd7xFKN>wFMUq?NIx#Wrtj-VuMFJt&h^=g&~|I#AAtV}Jnt)hl=NqK z8}~~d{5kM6S~CuQ7Ch}Et%lzO{{;LC@V|$r5d#`_YJ&!&?W=+Cm%v{Qe?9y%`0v5f zNCB6r_QSsi{~0`Yu#lyiaB&wEj$1q=<)f_&6vg6x7D-%G6)rBclB8BtH5dB{Nu2G8 zog}r*2@>~I#pcl>k;SENA#rz)3Aynm;{t?VYm_8TDTT!CIg&U-783U(N#ah2$l}^EN!+v$64&KP;@npf zss(hAxZE$L=Ylo4xcedrxzR@wH+F=?rE!ut0Tx-@t0jrsFv6wwcR?xvNyKvnoLt;| z5iYKjlf-=>A#q8ZByOz;=@cwmMX@-KibQs-(2pSgi3IT*LBHkY*4Awa;&+0c{hQWSWf^~1mT#G7c&69L z|82y7iTLj(NdFb+*Y9s_y){96N3`y55&t@_qg#KG&!NR&#IO8aYwIvGz1Z5Cg1D`S zQ=hLnWdmPF_y)xN5^|O4@%cgz2(%G@ z%t-%fdZfHVc+XHCPoyS%3GqQg-t$7|G1QFTig;7reNpo6626eYTM*yTkavU7YXwe^ zl6P5@ywSpUp}=Cq=Nt063;isCZKC9PqvU;wo00YSMBw{rR&$;q?+-$MUEm9dH|x6t zxOqLc3g2ddcOgDt$XhM+Q|D1*LN=$KYCk2L6y3;hAmha2?uLSF^?P=kJ>(4h;^Jj9?+ z7kVk^w8h{&&qfLT0)c%5b`#hJ{O0xGh=cXA1%8fa9`O&8Bd_BDq3;9zsB!(D7y2^- zpAh&6_>LHS_X&NSKCVLHr>jzJ0Rgz8}b+Eqot) zbvll3nErLI)qGIWT@M;L5guB7N&)|Pf z=#PWG*PuTHIZk;f=WgL!1HSbJ-zuRm6gU_0PW_o~Ht>9@KXFbUSdI|_FA&%be7i;N zPcY&O3ca1cbR%EJdxd@+HaDI8NQXVw<~+%d_y_RJ?~ek1i}+neJ}<(yr!$@)|Fgn( zkHGH;3<;z*43Mm$HcjK5G|AA!^uBpr%`%^MB=bfF)_ zn27OQ8X?>-5NB{SZx?>5c0MNbhXj5f@!O2}b+8rc)RX+wfu_6}0%1#3;g=xYR!Mgs z9u_4+?+5x8gMOaSJAmG7&}qV$a=DB^_@!kvZ!+RPf=tri6Zk6Poq99B7lr;T=o^f5 zKf;XG>5t@lSooF-gfgld&uM$D&}Tr7(_cxSCUopsy8VXqOMnNY-w-bmKA1>w+l};M zp?4Q}2GZRj3tT7g4uPu#E)%#!;39zw1U3kqC$L7~Y=M;mrwg1aaEicEffEIe6*yYpNP$BI z4i-32U|)en0(%HV-BtYx1O^3m6qqkCPhdcxU!YH*S0I3rHx&I3LoYAqB7_44_65YN z+gl_s9}qIUd4O!^03cosUa!zCp??Lrq#p$Y$$JEl=~^VeLqb0&^tXk6KQdfv*UBR^U$sJ|u9nz|{hq1U3r1Uf?u=R|qT-I80zqf!zhR z6__KCy16W$tigDHE%=K9rwP15;9!9R1@b0f`mfM{gnttFmcV9#n*_d$i%Y&=3H**g zetS*2Ec|%6BuV@zeh7~U+$nH}zqCeG&tA)gn7RP!PHhot+nzz+q!CGZV_dj;+m_!EJ6&nY>N z3Vc}L{Q~(F1oOE=;3|O&1>!xZ;%5rHM&KlY69f(wI9MR=36-w9z|I2ku2ytz9Wh_7 z*Ae3KDhQxpfxw_Z-jC$t{Yc0gjga?Wy!5-8~7^*egOE-4g59WKQi$Bz&9KCKHzs6IQmiZtp<+%)O@{x?*d+7;5&g| zYT!G74>R!Xz>5vM8}N^%em@6Xfc6~Ght-3v=t8w-*IZ=a^ALZAf!6>}H}KiO|K2;C z9;@QbhYWl=@K+3cD)8qFd-SUnGUT)wcfz!|soT|@I z;O84So-55=4SXQ*Tm$b5Tnuoj^hLlw<{(kz^#J~+fp-JG$G{7KZ#VED@VgDXBXHUf za^&R$Z!mD)FSHco#PfcknIH$}{c?eU^M2`O;Jjbj8aVG4kAd@k`3oP0QXk$gZyPx8 zmlq8jT|(JOqX;$=FMVJ5e(?R_F`l*t!oP;+D!+iEqg4-v*CEXL9>aXTe@nv05aw1B z>5qVSn}jC=zAIsVx6>A$Jk(4aEMa~Yvp~Y!W`9`1{1#%bg!xUwM+{@2!0#TNBMz-`7LE0-m^^0?;Zy-+zDINXoTSs-h^H+yyaeH2NO%*%HXgF%--U2*3BQf-WCbtQf-jUnh_fW^(kIVls-+ zQj6h;)@%}E&l4}3P.gt3mX=R_Zr3;Wn%!%N1NpK2mqh_L--hFbhO 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

    D?KBm z-v#_sz#S5PH{b-|+W?t=z8B*FTP1ugAlj(XFT(OH1U?$D3Xthm0FDAI1!Vb3{x5rP z0$5dbt&iVxbCX;{NCHU^1vLUHDw2VO86`qAXb^-XQl}6@5GoKP0YOC&q!Qymt5(`- zrD~r;ZHujKd1@7>N*!@VZ58W;RV#I*PYb{ATYK$u?>$2ZYTxVs{ojU@@2tJnUVE>7 z_C3QM)&>p+7Af5uI0!U4|-wtq(5@1x|?4-k=k+eGO_2krzxntp+Z`i#!ltn?;D z`nDziH;UHp#0^SYzY|v|ErS-2KVRvy6?tF9|BM>N@rwGokim|9^7&>$cI7L^Zc$n>c9YVIv2{u-#yH=QZOaC}-I2yUQ37A-NH0

    >yRcVeiF>pE< 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 literal 0 HcmV?d00001 diff --git a/Pods/HockeySDK/Support/HockeySDKTests/OCMockitoIOS.framework/Versions/A/Resources/Info.plist b/Pods/HockeySDK/Support/HockeySDKTests/OCMockitoIOS.framework/Versions/A/Resources/Info.plist new file mode 100644 index 0000000..38ea089 --- /dev/null +++ b/Pods/HockeySDK/Support/HockeySDKTests/OCMockitoIOS.framework/Versions/A/Resources/Info.plist @@ -0,0 +1,42 @@ + + + + + BuildMachineOSBuild + 13A584 + CFBundleDevelopmentRegion + English + CFBundleExecutable + OCMockitoIOS + CFBundleIdentifier + org.mockito.OCMockitoIOS + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + OCMockitoIOS + CFBundlePackageType + FMWK + CFBundleShortVersionString + 1.0.0 + CFBundleSignature + ???? + CFBundleVersion + 1.0.0 + DTCompiler + com.apple.compilers.llvm.clang.1_0 + DTPlatformBuild + 5A1413 + DTPlatformVersion + GM + DTSDKBuild + 12D75 + DTSDKName + macosx10.8 + DTXcode + 0500 + DTXcodeBuild + 5A1413 + NSHumanReadableCopyright + Copyright © 2013 Jonathan M. Reid + + diff --git a/Pods/HockeySDK/Support/HockeySDKTests/OCMockitoIOS.framework/Versions/Current b/Pods/HockeySDK/Support/HockeySDKTests/OCMockitoIOS.framework/Versions/Current new file mode 120000 index 0000000..8c7e5a6 --- /dev/null +++ b/Pods/HockeySDK/Support/HockeySDKTests/OCMockitoIOS.framework/Versions/Current @@ -0,0 +1 @@ +A \ No newline at end of file diff --git a/Pods/HockeySDK/Support/HockeySDKTests/en.lproj/InfoPlist.strings b/Pods/HockeySDK/Support/HockeySDKTests/en.lproj/InfoPlist.strings new file mode 100644 index 0000000..477b28f --- /dev/null +++ b/Pods/HockeySDK/Support/HockeySDKTests/en.lproj/InfoPlist.strings @@ -0,0 +1,2 @@ +/* Localized versions of Info.plist keys */ + diff --git a/Pods/HockeySDK/Support/buildnumber.xcconfig b/Pods/HockeySDK/Support/buildnumber.xcconfig new file mode 100644 index 0000000..fe9245d --- /dev/null +++ b/Pods/HockeySDK/Support/buildnumber.xcconfig @@ -0,0 +1,9 @@ +#include "HockeySDK.xcconfig" + +BUILD_NUMBER = 38 +VERSION_STRING = 3.6.4 +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) BITHOCKEY_VERSION="@\""$(VERSION_STRING)"\"" BITHOCKEY_BUILD="@\""$(BUILD_NUMBER)"\"" BITHOCKEY_C_VERSION="\""$(VERSION_STRING)"\"" BITHOCKEY_C_BUILD="\""$(BUILD_NUMBER)"\"" +BIT_ARM_ARCHS = armv7 armv7s arm64 +BIT_SIM_ARCHS = x86_64 i386 +ARCHS = $(BIT_ARM_ARCHS) +VALID_ARCHS = $(BIT_ARM_ARCHS) diff --git a/Pods/HockeySDK/Support/crashonly.xcconfig b/Pods/HockeySDK/Support/crashonly.xcconfig new file mode 100644 index 0000000..0593ddb --- /dev/null +++ b/Pods/HockeySDK/Support/crashonly.xcconfig @@ -0,0 +1,3 @@ +#include "buildnumber.xcconfig" + +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) HOCKEYSDK_FEATURE_CRASH_REPORTER=1 HOCKEYSDK_FEATURE_FEEDBACK=0 HOCKEYSDK_FEATURE_STORE_UPDATES=0 HOCKEYSDK_FEATURE_AUTHENTICATOR=0 HOCKEYSDK_FEATURE_UPDATES=0 BITHOCKEY_VERSION="@\""$(VERSION_STRING)"\"" BITHOCKEY_BUILD="@\""$(BUILD_NUMBER)"\"" BITHOCKEY_C_VERSION="\""$(VERSION_STRING)"\"" BITHOCKEY_C_BUILD="\""$(BUILD_NUMBER)"\"" diff --git a/Pods/HockeySDK/Support/module.modulemap b/Pods/HockeySDK/Support/module.modulemap new file mode 100644 index 0000000..73fba67 --- /dev/null +++ b/Pods/HockeySDK/Support/module.modulemap @@ -0,0 +1,6 @@ +framework module HockeySDK { + umbrella header "HockeySDK.h" + + export * + module * { export * } +} diff --git a/Pods/HockeySDK/Vendor/CrashReporter.framework/CrashReporter b/Pods/HockeySDK/Vendor/CrashReporter.framework/CrashReporter new file mode 120000 index 0000000..92b400e --- /dev/null +++ b/Pods/HockeySDK/Vendor/CrashReporter.framework/CrashReporter @@ -0,0 +1 @@ +Versions/Current/CrashReporter \ No newline at end of file diff --git a/Pods/HockeySDK/Vendor/CrashReporter.framework/Headers b/Pods/HockeySDK/Vendor/CrashReporter.framework/Headers new file mode 120000 index 0000000..a177d2a --- /dev/null +++ b/Pods/HockeySDK/Vendor/CrashReporter.framework/Headers @@ -0,0 +1 @@ +Versions/Current/Headers \ No newline at end of file diff --git a/Pods/HockeySDK/Vendor/CrashReporter.framework/Resources b/Pods/HockeySDK/Vendor/CrashReporter.framework/Resources new file mode 120000 index 0000000..953ee36 --- /dev/null +++ b/Pods/HockeySDK/Vendor/CrashReporter.framework/Resources @@ -0,0 +1 @@ +Versions/Current/Resources \ No newline at end of file diff --git a/Pods/HockeySDK/Vendor/CrashReporter.framework/Versions/A/CrashReporter b/Pods/HockeySDK/Vendor/CrashReporter.framework/Versions/A/CrashReporter new file mode 100644 index 0000000000000000000000000000000000000000..2344126c11fb6d90f5440a9018d4f533bbde95c8 GIT binary patch literal 1432156 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

      x38|^u}^~$|xw|)f2 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

      hoPBR|68e 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�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

      lX1W3W!x|N66y=7mvO)73#gaz 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

      &U0U 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 W5t;utTem%I!am8tLH|=_|NakoDCx`q literal 0 HcmV?d00001 diff --git a/Pods/HockeySDK/Vendor/CrashReporter.framework/Versions/A/Headers/CrashReporter.h b/Pods/HockeySDK/Vendor/CrashReporter.framework/Versions/A/Headers/CrashReporter.h new file mode 100644 index 0000000..c654319 --- /dev/null +++ b/Pods/HockeySDK/Vendor/CrashReporter.framework/Versions/A/Headers/CrashReporter.h @@ -0,0 +1,363 @@ +/* + * Author: Landon Fuller + * + * Copyright (c) 2008-2009 Plausible Labs Cooperative, Inc. + * All rights reserved. + * + * Permission is hereby granted, free of charge, to any person + * obtaining a copy of this software and associated documentation + * files (the "Software"), to deal in the Software without + * restriction, including without limitation the rights to use, + * copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following + * conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES + * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + */ + +#import + +#ifdef __APPLE__ +#import +#endif + +// This must be included before any other PLCrashReporter includes, as +// it redefines symbol names +#import "PLCrashNamespace.h" + +#import "PLCrashReporter.h" +#import "PLCrashReport.h" +#import "PLCrashReportTextFormatter.h" + +/** + * @defgroup functions Crash Reporter Functions Reference + */ + +/** + * @defgroup types Crash Reporter Data Types Reference + */ + +/** + * @defgroup constants Crash Reporter Constants Reference + */ + +/** + * @internal + * @defgroup plcrash_internal Crash Reporter Internal Documentation + */ + +/** + * @defgroup enums Enumerations + * @ingroup constants + */ + +/** + * @defgroup globals Global Variables + * @ingroup constants + */ + +/** + * @defgroup exceptions Exceptions + * @ingroup constants + */ + +/* Exceptions */ +extern NSString *PLCrashReporterException; + +/* Error Domain and Codes */ +extern NSString *PLCrashReporterErrorDomain; + +/** + * NSError codes in the Plausible Crash Reporter error domain. + * @ingroup enums + */ +typedef enum { + /** An unknown error has occured. If this + * code is received, it is a bug, and should be reported. */ + PLCrashReporterErrorUnknown = 0, + + /** An Mach or POSIX operating system error has occured. The underlying NSError cause may be fetched from the userInfo + * dictionary using the NSUnderlyingErrorKey key. */ + PLCrashReporterErrorOperatingSystem = 1, + + /** The crash report log file is corrupt or invalid */ + PLCrashReporterErrorCrashReportInvalid = 2, + + /** An attempt to use a resource which was in use at the time in a manner which would have conflicted with the request. */ + PLCrashReporterErrorResourceBusy = 3 +} PLCrashReporterError; + + +/* Library Imports */ +#import "PLCrashReporter.h" +#import "PLCrashReport.h" +#import "PLCrashReportTextFormatter.h" + +/** + * @mainpage Plausible Crash Reporter + * + * @section intro_sec Introduction + * + * Plausile CrashReporter implements in-process crash reporting on the iPhone and Mac OS X. + * + * The following features are supported: + * + * - Implemented as an in-process signal handler. + * - Does not interfer with debugging in gdb.. + * - Handles both uncaught Objective-C exceptions and fatal signals (SIGSEGV, SIGBUS, etc). + * - Full thread state for all active threads (backtraces, register dumps) is provided. + * + * If your application crashes, a crash report will be written. When the application is next run, you may check for a + * pending crash report, and submit the report to your own HTTP server, send an e-mail, or even introspect the + * report locally. + * + * @section intro_encoding Crash Report Format + * + * Crash logs are encoded using google protobuf, and may be decoded + * using the provided PLCrashReport API. Additionally, the include plcrashutil handles conversion of binary crash reports to the + * symbolicate-compatible iPhone text format. + * + * @section doc_sections Documentation Sections + * - @subpage example_usage_iphone + * - @subpage error_handling + * - @subpage async_safety + */ + +/** + * @page example_usage_iphone Example iPhone Usage + * + * @code + * // + * // Called to handle a pending crash report. + * // + * - (void) handleCrashReport { + * PLCrashReporter *crashReporter = [PLCrashReporter sharedReporter]; + * NSData *crashData; + * NSError *error; + * + * // Try loading the crash report + * crashData = [crashReporter loadPendingCrashReportDataAndReturnError: &error]; + * if (crashData == nil) { + * NSLog(@"Could not load crash report: %@", error); + * goto finish; + * } + * + * // We could send the report from here, but we'll just print out + * // some debugging info instead + * PLCrashReport *report = [[[PLCrashReport alloc] initWithData: crashData error: &error] autorelease]; + * if (report == nil) { + * NSLog(@"Could not parse crash report"); + * goto finish; + * } + * + * NSLog(@"Crashed on %@", report.systemInfo.timestamp); + * NSLog(@"Crashed with signal %@ (code %@, address=0x%" PRIx64 ")", report.signalInfo.name, + * report.signalInfo.code, report.signalInfo.address); + * + * // Purge the report + * finish: + * [crashReporter purgePendingCrashReport]; + * return; + * } + * + * // from UIApplicationDelegate protocol + * - (void) applicationDidFinishLaunching: (UIApplication *) application { + * PLCrashReporter *crashReporter = [PLCrashReporter sharedReporter]; + * NSError *error; + * + * // Check if we previously crashed + * if ([crashReporter hasPendingCrashReport]) + * [self handleCrashReport]; + + * // Enable the Crash Reporter + * if (![crashReporter enableCrashReporterAndReturnError: &error]) + * NSLog(@"Warning: Could not enable crash reporter: %@", error); + * + * } + * @endcode + * + */ + +/** + * @page error_handling Error Handling Programming Guide + * + * Where a method may return an error, Plausible Crash Reporter provides access to the underlying + * cause via an optional NSError argument. + * + * All returned errors will be a member of one of the below defined domains, however, new domains and + * error codes may be added at any time. If you do not wish to report on the error cause, many methods + * support a simple form that requires no NSError argument. + * + * @section error_domains Error Domains, Codes, and User Info + * + * @subsection crashreporter_errors Crash Reporter Errors + * + * Any errors in Plausible Crash Reporter use the #PLCrashReporterErrorDomain error domain, and and one + * of the error codes defined in #PLCrashReporterError. + */ + +/** + * @page async_safety Async-Safe Programming Guide + * + * Plausible CrashReporter provides support for executing an application specified function in the context of the + * crash reporter's signal handler, after the crash report has been written to disk. This was a regularly requested + * feature, and provides the ability to implement application finalization in the event of a crash. However, writing + * code intended for execution inside of a signal handler is exceptionally difficult, and is not recommended. + * + * @section program_flow Program Flow and Signal Handlers + * + * When the signal handler is called the normal flow of the program is interrupted, and your program is an unknown + * state. Locks may be held, the heap may be corrupt (or in the process of being updated), and your signal + * handler may invoke a function that was being executed at the time of the signal. This may result in deadlocks, + * data corruption, and program termination. + * + * @section functions Async-Safe Functions + * + * A subset of functions are defined to be async-safe by the OS, and are safely callable from within a signal handler. If + * you do implement a custom post-crash handler, it must be async-safe. A table of POSIX-defined async-safe functions + * and additional information is available from the + * CERT programming guide - SIG30-C + * + * Most notably, the Objective-C runtime itself is not async-safe, and Objective-C may not be used within a signal + * handler. + * + * @sa PLCrashReporter::setCrashCallbacks: + */ + +/** + * @page mach_exceptions Mach Exceptions on Mac OS X and iOS + * + * PLCrashReporter includes support for monitoring crashes via an in-process Mach exception handler. There are a small + * number of crash cases that will not be caught with via a POSIX signal handler, but can be caught via a Mach + * exception handler: + * + * - Stack overflow. sigaltstack() is broken in later iOS releases, and even if functional, must be configured + * on a per-thread basis. + * - Internal Apple assertions that call libSystem's __assert. These include compiler-checked constraints + * for built-in functions, such as strcpy_chk(). The __abort() implementation actually disables the SIGABRT + * signal handler (resetting it to SIG_DFL) prior to to issueing a SIGABRT, bypassing signal-based crash + * reporters entirely. + * + * Unfortunately, the latter issue (__assert) can not be handled on iOS; trapping abort requires that + * a Mach exception handler operate out-of-process, which is impossible on iOS. On Mac OS X, this will + * only be handled once we've implemented fully out-of-process crash excution. + * + * On Mac OS X, the Mach exception implementation is fully supported using entirely public API. On iOS, + * the APIs required are not fully public -- more details on the implications of this for exception handling on + * iOS may be found in @ref mach_exceptions_ios below. It is worth noting that even where the Mach exception APIs + * are fully supported, kernel-internal constants, as well + * as architecture-specific trap information, may be required to fully interpret a Mach exception's root cause. + * + * For example, the EXC_SOFTWARE exception is dispatched for four different failure types, using the exception + * code to differentiate failure types: + * - Non-existent system call invoked (SIGSYS) + * - Write on a pipe with no reader (SIGPIPE) + * - Abort program (SIGABRT -- unused) + * - Kill program (SIGKILL) + * + * Of those four types, only the constant required to interpret the SIGKILL behavior (EXC_SOFT_SIGNAL) is publicly defined. + * Of the remaining three failure types, the constant values are kernel implementation-private, defined only in the available + * kernel sources. On iOS, these sources are unavailable, and while they generally do match the Mac OS X implementation, there + * are no gaurantees that this is -- or will remain -- the case in the future. + * + * Likewise, interpretation of particular fault types requires information regarding the underlying machine traps + * that triggered the Mach exceptions. For example, a floating point trap on x86/x86-64 will trigger an EXC_ARITHMETIC, + * with a subcode value containing the value of the FPU status register. Determining the exact FPU cause requires + * extracting the actual exception flags from status register as per the x86 architecture documentation. The exact format + * of this subcode value is not actually documented outside the kernel, and may change in future releases. + * + * While we have the advantage of access to the x86 kernel sources, the situation on ARM is even less clear. The actual + * use of the Mach exception codes and subcodes is largely undefined by both headers and publicly available documentation, + * and the available x86 kernel sources are of little use in interpreting this data. + * + * As such, while Mach exceptions may catch some cases that BSD signals can not, they are not a perfect solution, + * and may also provide less insight into the actual failures that occur. By comparison, the BSD signal interface + * is both fully defined and architecture independent, with any necessary interpretation of the Mach exception + * codes handled in-kernel at the time of exception dispatch. It is generally recommended by Apple as the preferred + * interface, and should generally be preferred by PLCrashReporter API clients. + * + * @section mach_exceptions_compatibility Compatibility Issues + * + * @subsection Debuggers + * + * Enabling in-process Mach exception handlers will conflict with any attached debuggers; the debugger + * may suspend the processes Mach exception handling thread, which will result in any exception messages + * sent via the debugger being lost, as the in-process handler will be unable to receive and forward + * the messages. + * + * @subsection Managed Runtimes (Xamarin, Unity) + * + * A Mach exception handler may conflict with any managed runtime that registers a BSD signal handler that + * can safely handle otherwise fatal signals, allowing execution to proceed. This includes products + * such as Xamarin for iOS. + * + * In such a case, PLCrashReporter will write a crash report for non-fatal signals, as there is no + * immediate mechanism for determining whether a signal handler exists and that it can safely + * handle the failure. This can result in unexpected delays in application execution, increased I/O to + * disk, and other undesirable operations. + * + * @section mach_exceptions_ios Mach Exceptions on iOS + * + * The APIs required for Mach exception handling are not fully public on iOS. After filing a request with + * Apple DTS to clarify the status of the Mach exception APIs on iOS, and implementing a Mach Exception + * handler using only supported API, they provided the following guidance: + * + * Our engineers have reviewed your request and have determined that this would be best handled as a bug report, + * which you have already filed. There is no documented way of accomplishing this, nor is there a workaround + * possible. + * + * Due to user request, PLCrashReporter provides an optional implementation of Mach exception handling for both + * iOS and Mac OS X. + * + * This implementation uses only supported API on Mac OS X, and depends on limited undefined API on iOS. The reporter + * may be excluded entirely at build time by modifying the PLCRASH_FEATURE_MACH_EXCEPTIONS build configuration; it + * may also be disabled at runtime by configuring the PLCrashReporter instance appropriately via PLCrashReporterConfig. + * + * The iOS implementation is implemented almost entirely using public API, and links against no actual private symbols; + * the use of undocumented functionality is limited to assuming the use of specific msgh_id values (see below + * for details). As a result, it may be considered perfectly safe to include the Mach Exception code in the + * standard build, and enable/disable it at runtime. + * + * The following issues exist in the iOS implementation: + * - The msgh_id values required for an exception reply message are not available from the available + * headers and must be hard-coded. This prevents one from safely replying to exception messages, which + * means that it is impossible to (correctly) inform the server that an exception has *not* been + * handled. + * + * Impact: + * This can lead to the process locking up and not dispatching to the host exception handler (eg, Apple's + * crash reporter), depending on the behavior of the kernel exception code. + * + * - The mach_* structure/type variants required by MACH_EXCEPTION_CODES are not publicly defined (on Mac OS X, + * these are provided by mach_exc.defs). This prevents one from forwarding exception messages to an existing + * handler that was registered with a MACH_EXCEPTION_CODES behavior (eg, forwarding is entirely non-functional + * on ARM64 devices). + * + * Impact: + * This can break forwarding to any task exception handler that registers itself with MACH_EXCEPTION_CODES, + * including other handlers registered within the current process, eg, by a managed runtime. This could + * also result in misinterpretation of a Mach exception message, in the case where the message format is + * modified by Apple to be incompatible with the existing 32-bit format. + * + * This is the case with LLDB; it will register a task exception handler with MACH_EXCEPTION_CODES set. Failure + * to correctly forward these exceptions will result in the debugger breaking in interesting ways; for example, + * changes to the set of dyld-loaded images are detected by setting a breakpoint on the dyld image registration + * funtions, and this functionality will break if the exception is not correctly forwarded. + * + * Since Mach exception handling is important for a fully functional crash reporter, we have also filed a radar + * to request that the API be made public: + * Radar: rdar://12939497 RFE: Provide mach_exc.defs for iOS + * + * At the time of this writing, the radar remains open/unresolved. + */ diff --git a/Pods/HockeySDK/Vendor/CrashReporter.framework/Versions/A/Headers/PLCrashAsyncSignalInfo.h b/Pods/HockeySDK/Vendor/CrashReporter.framework/Versions/A/Headers/PLCrashAsyncSignalInfo.h new file mode 100644 index 0000000..15f12a8 --- /dev/null +++ b/Pods/HockeySDK/Vendor/CrashReporter.framework/Versions/A/Headers/PLCrashAsyncSignalInfo.h @@ -0,0 +1,58 @@ +/* + * Author: Landon Fuller + * + * Copyright (c) 2008-2009 Plausible Labs Cooperative, Inc. + * All rights reserved. + * + * Permission is hereby granted, free of charge, to any person + * obtaining a copy of this software and associated documentation + * files (the "Software"), to deal in the Software without + * restriction, including without limitation the rights to use, + * copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following + * conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES + * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + */ + +#ifndef PLCRASH_ASYNC_SIGNAL_INFO_H +#define PLCRASH_ASYNC_SIGNAL_INFO_H + +#ifdef __cplusplus +extern "C" { +#endif + +/** + * @internal + * + * @defgroup plcrash_async_signal_info Signal Information + * @ingroup plcrash_async + * + * Provides mapping of signal number and code to strings. + * + * @{ + */ + +const char *plcrash_async_signal_signame (int signal); +const char *plcrash_async_signal_sigcode (int signal, int si_code); + +/** + * @} plcrash_async_signal_info + */ + +#ifdef __cplusplus +} +#endif + +#endif /* PLCRASH_ASYNC_SIGNAL_INFO_H */ diff --git a/Pods/HockeySDK/Vendor/CrashReporter.framework/Versions/A/Headers/PLCrashFeatureConfig.h b/Pods/HockeySDK/Vendor/CrashReporter.framework/Versions/A/Headers/PLCrashFeatureConfig.h new file mode 100644 index 0000000..a488048 --- /dev/null +++ b/Pods/HockeySDK/Vendor/CrashReporter.framework/Versions/A/Headers/PLCrashFeatureConfig.h @@ -0,0 +1,104 @@ +/* + * Author: Landon Fuller + * + * Copyright (c) 2012-2013 Plausible Labs Cooperative, Inc. + * All rights reserved. + * + * Permission is hereby granted, free of charge, to any person + * obtaining a copy of this software and associated documentation + * files (the "Software"), to deal in the Software without + * restriction, including without limitation the rights to use, + * copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following + * conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES + * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + */ + +#ifndef PLCRASH_FEATURE_CONFIG_H +#define PLCRASH_FEATURE_CONFIG_H + +#include + +/** + * @internal + * + * Build-time configuration for PLCrashReporter. + * + * This is used to automatically enable/disable features on a per-platform and per-configuration + * basis; it may also be used by third-party vendors to configure a custom build of PLCrashReporter. + * + * @defgroup build_config Build Configuration + * @ingroup constants + * @{ + */ + +/* + * Defaults + */ + +/* + * For release builds, disable unused unwind implementations on targets that do not use them. For non-release + * builds, we include the unwind implementations to allow testing on a broader range of targets. + */ +#ifdef PLCF_RELEASE_BUILD +# if defined(__arm__) +# ifndef PLCRASH_FEATURE_UNWIND_DWARF +# define PLCRASH_FEATURE_UNWIND_DWARF 0 +# endif +# ifndef PLCRASH_FEATURE_UNWIND_COMPACT +# define PLCRASH_FEATURE_UNWIND_COMPACT 0 +# endif +# endif +#endif + +/* + * Configuration Flags + */ + + +#ifndef PLCRASH_FEATURE_MACH_EXCEPTIONS +/** + * If true, enable Mach exception support. On Mac OS X, the Mach exception implementation is fully supported, + * using publicly available API. On iOS, the APIs required for a complete implementation are not public. However, a + * popular commercial crash reporter is now shipping with support for Mach exceptions, which implies that either + * they've received special dispensation to use private APIs / private structures, they've found another way to do + * it, or they're just using undocumented functionality and hoping for the best. + * + * The exposed surface of undocumented API usage is relatively low, and there has been strong user demand to + * implement Mach exception handling regardless of concerns over API visiblity. Given this, we've enabled + * Mach exception handling by default, and provided both build-time and runtime configuration + * to disable its use. + * + * For more information on the potential issues with enabling mach exception support, @sa @ref mach_exceptions. + */ +# define PLCRASH_FEATURE_MACH_EXCEPTIONS 1 +#endif + +#ifndef PLCRASH_FEATURE_UNWIND_DWARF +/** If true, enable DWARF unwinding support. */ +# define PLCRASH_FEATURE_UNWIND_DWARF 1 +#endif + + +#ifndef PLCRASH_FEATURE_UNWIND_COMPACT +/** If true, enable compact unwinding support. */ +# define PLCRASH_FEATURE_UNWIND_COMPACT 1 +#endif + +/** + * @} + */ + +#endif /* PLCRASH_FEATURE_CONFIG_H */ diff --git a/Pods/HockeySDK/Vendor/CrashReporter.framework/Versions/A/Headers/PLCrashNamespace.h b/Pods/HockeySDK/Vendor/CrashReporter.framework/Versions/A/Headers/PLCrashNamespace.h new file mode 100644 index 0000000..d28a054 --- /dev/null +++ b/Pods/HockeySDK/Vendor/CrashReporter.framework/Versions/A/Headers/PLCrashNamespace.h @@ -0,0 +1,80 @@ +/* + * Author: Landon Fuller + * + * Copyright (c) 2012-2013 Plausible Labs Cooperative, Inc. + * All rights reserved. + * + * Permission is hereby granted, free of charge, to any person + * obtaining a copy of this software and associated documentation + * files (the "Software"), to deal in the Software without + * restriction, including without limitation the rights to use, + * copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following + * conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES + * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + */ + +/* + * For external library integrators: + * + * Set this value to any valid C symbol prefix. This will automatically + * prepend the given prefix to all external symbols in the library. + * + * This may be used to avoid symbol conflicts between multiple libraries + * that may both incorporate PLCrashReporter. + */ +#define PLCRASHREPORTER_PREFIX BIT + +#ifdef PLCRASHREPORTER_PREFIX + +// We need two extra layers of indirection to make CPP substitute +// the PLCRASHREPORTER_PREFIX define. +#define PLNS_impl2(prefix, symbol) prefix ## symbol +#define PLNS_impl(prefix, symbol) PLNS_impl2(prefix, symbol) +#define PLNS(symbol) PLNS_impl(PLCRASHREPORTER_PREFIX, symbol) + +#define PLCrashMachExceptionServer PLNS(PLCrashMachExceptionServer) +#define PLCrashReport PLNS(PLCrashReport) +#define PLCrashReportApplicationInfo PLNS(PLCrashReportApplicationInfo) +#define PLCrashReportBinaryImageInfo PLNS(PLCrashReportBinaryImageInfo) +#define PLCrashReportExceptionInfo PLNS(PLCrashReportExceptionInfo) +#define PLCrashReportMachExceptionInfo PLNS(PLCrashReportMachExceptionInfo) +#define PLCrashReportMachineInfo PLNS(PLCrashReportMachineInfo) +#define PLCrashReportProcessInfo PLNS(PLCrashReportProcessInfo) +#define PLCrashReportProcessorInfo PLNS(PLCrashReportProcessorInfo) +#define PLCrashReportRegisterInfo PLNS(PLCrashReportRegisterInfo) +#define PLCrashReportSignalInfo PLNS(PLCrashReportSignalInfo) +#define PLCrashReportStackFrameInfo PLNS(PLCrashReportStackFrameInfo) +#define PLCrashReportSymbolInfo PLNS(PLCrashReportSymbolInfo) +#define PLCrashReportSystemInfo PLNS(PLCrashReportSystemInfo) +#define PLCrashReportTextFormatter PLNS(PLCrashReportTextFormatter) +#define PLCrashReportThreadInfo PLNS(PLCrashReportThreadInfo) +#define PLCrashReporter PLNS(PLCrashReporter) +#define PLCrashSignalHandler PLNS(PLCrashSignalHandler) +#define PLCrashReportHostArchitecture PLNS(PLCrashReportHostArchitecture) +#define PLCrashReportHostOperatingSystem PLNS(PLCrashReportHostOperatingSystem) +#define PLCrashReporterErrorDomain PLNS(PLCrashReporterErrorDomain) +#define PLCrashReporterException PLNS(PLCrashReporterException) +#define PLCrashHostInfo PLNS(PLCrashHostInfo) +#define PLCrashMachExceptionPort PLNS(PLCrashMachExceptionPort) +#define PLCrashMachExceptionPortSet PLNS(PLCrashMachExceptionPortSet) +#define PLCrashProcessInfo PLNS(PLCrashProcessInfo) +#define PLCrashReporterConfig PLNS(PLCrashReporterConfig) +#define PLCrashUncaughtExceptionHandler PLNS(PLCrashUncaughtExceptionHandler) +#define PLCrashMachExceptionForward PLNS(PLCrashMachExceptionForward) +#define PLCrashSignalHandlerForward PLNS(PLCrashSignalHandlerForward) +#define plcrash_signal_handler PLNS(plcrash_signal_handler) + +#endif diff --git a/Pods/HockeySDK/Vendor/CrashReporter.framework/Versions/A/Headers/PLCrashReport.h b/Pods/HockeySDK/Vendor/CrashReporter.framework/Versions/A/Headers/PLCrashReport.h new file mode 100644 index 0000000..a179cd6 --- /dev/null +++ b/Pods/HockeySDK/Vendor/CrashReporter.framework/Versions/A/Headers/PLCrashReport.h @@ -0,0 +1,200 @@ +/* + * Author: Landon Fuller + * + * Copyright (c) 2008-2013 Plausible Labs Cooperative, Inc. + * All rights reserved. + * + * Permission is hereby granted, free of charge, to any person + * obtaining a copy of this software and associated documentation + * files (the "Software"), to deal in the Software without + * restriction, including without limitation the rights to use, + * copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following + * conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES + * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + */ + +#import + +#import "PLCrashReportApplicationInfo.h" +#import "PLCrashReportBinaryImageInfo.h" +#import "PLCrashReportExceptionInfo.h" +#import "PLCrashReportMachineInfo.h" +#import "PLCrashReportMachExceptionInfo.h" +#import "PLCrashReportProcessInfo.h" +#import "PLCrashReportProcessorInfo.h" +#import "PLCrashReportRegisterInfo.h" +#import "PLCrashReportSignalInfo.h" +#import "PLCrashReportStackFrameInfo.h" +#import "PLCrashReportSymbolInfo.h" +#import "PLCrashReportSystemInfo.h" +#import "PLCrashReportThreadInfo.h" + +/** + * @ingroup constants + * Crash file magic identifier */ +#define PLCRASH_REPORT_FILE_MAGIC "plcrash" + +/** + * @ingroup constants + * Crash format version byte identifier. Will not change outside of the introduction of + * an entirely new crash log format. */ +#define PLCRASH_REPORT_FILE_VERSION 1 + +/** + * @ingroup types + * Crash log file header format. + * + * Crash log files start with 7 byte magic identifier (#PLCRASH_REPORT_FILE_MAGIC), + * followed by a single unsigned byte version number (#PLCRASH_REPORT_FILE_VERSION). + * The crash log message format itself is extensible, so this version number will only + * be incremented in the event of an incompatible encoding or format change. + */ +struct PLCrashReportFileHeader { + /** Crash log magic identifier, not NULL terminated */ + const char magic[7]; + + /** Crash log encoding/format version */ + const uint8_t version; + + /** File data */ + const uint8_t data[]; +} __attribute__((packed)); + + +/** + * @internal + * Private decoder instance variables (used to hide the underlying protobuf parser). + */ +typedef struct _PLCrashReportDecoder _PLCrashReportDecoder; + +@interface PLCrashReport : NSObject { +@private + /** Private implementation variables (used to hide the underlying protobuf parser) */ + _PLCrashReportDecoder *_decoder; + + /** System info */ + PLCrashReportSystemInfo *_systemInfo; + + /** Machine info */ + PLCrashReportMachineInfo *_machineInfo; + + /** Application info */ + PLCrashReportApplicationInfo *_applicationInfo; + + /** Process info */ + PLCrashReportProcessInfo *_processInfo; + + /** Signal info */ + PLCrashReportSignalInfo *_signalInfo; + + /** Mach exception info */ + PLCrashReportMachExceptionInfo *_machExceptionInfo; + + /** Thread info (PLCrashReportThreadInfo instances) */ + NSArray *_threads; + + /** Binary images (PLCrashReportBinaryImageInfo instances */ + NSArray *_images; + + /** Exception information (may be nil) */ + PLCrashReportExceptionInfo *_exceptionInfo; + + /** Report UUID */ + CFUUIDRef _uuid; +} + +- (id) initWithData: (NSData *) encodedData error: (NSError **) outError; + +- (PLCrashReportBinaryImageInfo *) imageForAddress: (uint64_t) address; + +/** + * System information. + */ +@property(nonatomic, readonly) PLCrashReportSystemInfo *systemInfo; + +/** + * YES if machine information is available. + */ +@property(nonatomic, readonly) BOOL hasMachineInfo; + +/** + * Machine information. Only available in later (v1.1+) crash report format versions. If not available, + * will be nil. + */ +@property(nonatomic, readonly) PLCrashReportMachineInfo *machineInfo; + +/** + * Application information. + */ +@property(nonatomic, readonly) PLCrashReportApplicationInfo *applicationInfo; + +/** + * YES if process information is available. + */ +@property(nonatomic, readonly) BOOL hasProcessInfo; + +/** + * Process information. Only available in later (v1.1+) crash report format versions. If not available, + * will be nil. + */ +@property(nonatomic, readonly) PLCrashReportProcessInfo *processInfo; + +/** + * Signal information. This provides the signal and signal code of the fatal signal. + */ +@property(nonatomic, readonly) PLCrashReportSignalInfo *signalInfo; + +/** + * Mach exception information, if available. This will only be included in the + * case that encoding crash reporter's exception-based reporting was enabled, and a Mach + * exception was caught. + * + * @warning If Mach exception information is available, the legacy signalInfo property will also be provided; this + * s required to maintain backwards compatibility with the established API. Note, however, that the signal info may be derived from the + * Mach exception info by the encoding crash reporter, and thus may not exactly match the kernel exception-to-signal + * mappings implemented in xnu. As such, when Mach exception info is available, its use should be preferred. + */ +@property(nonatomic, readonly) PLCrashReportMachExceptionInfo *machExceptionInfo; + +/** + * Thread information. Returns a list of PLCrashReportThreadInfo instances. + */ +@property(nonatomic, readonly) NSArray *threads; + +/** + * Binary image information. Returns a list of PLCrashReportBinaryImageInfo instances. + */ +@property(nonatomic, readonly) NSArray *images; + +/** + * YES if exception information is available. + */ +@property(nonatomic, readonly) BOOL hasExceptionInfo; + +/** + * Exception information. Only available if a crash was caused by an uncaught exception, + * otherwise nil. + */ +@property(nonatomic, readonly) PLCrashReportExceptionInfo *exceptionInfo; + +/** + * A client-generated 16-byte UUID. May be used to filter duplicate reports submitted or generated + * by a single client. Only available in later (v1.2+) crash report format versions. If not available, + * will be NULL. + */ +@property(nonatomic, readonly) CFUUIDRef uuidRef; + +@end diff --git a/Pods/HockeySDK/Vendor/CrashReporter.framework/Versions/A/Headers/PLCrashReportApplicationInfo.h b/Pods/HockeySDK/Vendor/CrashReporter.framework/Versions/A/Headers/PLCrashReportApplicationInfo.h new file mode 100644 index 0000000..0f84c89 --- /dev/null +++ b/Pods/HockeySDK/Vendor/CrashReporter.framework/Versions/A/Headers/PLCrashReportApplicationInfo.h @@ -0,0 +1,53 @@ +/* + * Author: Landon Fuller + * + * Copyright (c) 2008-2009 Plausible Labs Cooperative, Inc. + * All rights reserved. + * + * Permission is hereby granted, free of charge, to any person + * obtaining a copy of this software and associated documentation + * files (the "Software"), to deal in the Software without + * restriction, including without limitation the rights to use, + * copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following + * conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES + * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + */ + +#import + +@interface PLCrashReportApplicationInfo : NSObject { +@private + /** Application identifier */ + NSString *_applicationIdentifier; + + /** Application version */ + NSString *_applicationVersion; +} + +- (id) initWithApplicationIdentifier: (NSString *) applicationIdentifier + applicationVersion: (NSString *) applicationVersion; + +/** + * The application identifier. This is usually the application's CFBundleIdentifier value. + */ +@property(nonatomic, readonly) NSString *applicationIdentifier; + +/** + * The application version. This is usually the application's CFBundleVersion value. + */ +@property(nonatomic, readonly) NSString *applicationVersion; + +@end diff --git a/Pods/HockeySDK/Vendor/CrashReporter.framework/Versions/A/Headers/PLCrashReportBinaryImageInfo.h b/Pods/HockeySDK/Vendor/CrashReporter.framework/Versions/A/Headers/PLCrashReportBinaryImageInfo.h new file mode 100644 index 0000000..339fdbb --- /dev/null +++ b/Pods/HockeySDK/Vendor/CrashReporter.framework/Versions/A/Headers/PLCrashReportBinaryImageInfo.h @@ -0,0 +1,90 @@ +/* + * Author: Landon Fuller + * + * Copyright (c) 2008-2009 Plausible Labs Cooperative, Inc. + * All rights reserved. + * + * Permission is hereby granted, free of charge, to any person + * obtaining a copy of this software and associated documentation + * files (the "Software"), to deal in the Software without + * restriction, including without limitation the rights to use, + * copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following + * conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES + * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + */ + +#import +#import "PLCrashReportProcessorInfo.h" + +@interface PLCrashReportBinaryImageInfo : NSObject { +@private + /** Code type */ + PLCrashReportProcessorInfo *_processorInfo; + + /** Base image address */ + uint64_t _baseAddress; + + /** Image segment size */ + uint64_t _imageSize; + + /** Name of binary image */ + NSString *_imageName; + + /** If the UUID is available */ + BOOL _hasImageUUID; + + /** 128-bit object UUID. May be nil. */ + NSString *_imageUUID; +} + +- (id) initWithCodeType: (PLCrashReportProcessorInfo *) processorInfo + baseAddress: (uint64_t) baseAddress + size: (uint64_t) imageSize + name: (NSString *) imageName + uuid: (NSData *) uuid; + +/** + * Image code type, or nil if unavailable. + */ +@property(nonatomic, readonly) PLCrashReportProcessorInfo *codeType; + +/** + * Image base address. + */ +@property(nonatomic, readonly) uint64_t imageBaseAddress; + +/** + * Segment size. + */ +@property(nonatomic, readonly) uint64_t imageSize; + +/** + * Image name (absolute path) + */ +@property(nonatomic, readonly) NSString *imageName; + + +/** + * YES if this image has an associated UUID. + */ +@property(nonatomic, readonly) BOOL hasImageUUID; + +/** + * 128-bit object UUID (matches Mach-O DWARF dSYM files). May be nil if unavailable. + */ +@property(nonatomic, readonly) NSString *imageUUID; + +@end diff --git a/Pods/HockeySDK/Vendor/CrashReporter.framework/Versions/A/Headers/PLCrashReportExceptionInfo.h b/Pods/HockeySDK/Vendor/CrashReporter.framework/Versions/A/Headers/PLCrashReportExceptionInfo.h new file mode 100644 index 0000000..623b1d4 --- /dev/null +++ b/Pods/HockeySDK/Vendor/CrashReporter.framework/Versions/A/Headers/PLCrashReportExceptionInfo.h @@ -0,0 +1,65 @@ +/* + * Author: Landon Fuller + * + * Copyright (c) 2008-2009 Plausible Labs Cooperative, Inc. + * All rights reserved. + * + * Permission is hereby granted, free of charge, to any person + * obtaining a copy of this software and associated documentation + * files (the "Software"), to deal in the Software without + * restriction, including without limitation the rights to use, + * copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following + * conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES + * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + */ + +#import +#import "PLCrashReportThreadInfo.h" + + +@interface PLCrashReportExceptionInfo : NSObject { +@private + /** Name */ + NSString *_name; + + /** Reason */ + NSString *_reason; + + /** Ordered list of PLCrashReportStackFrame instances, or nil if unavailable. */ + NSArray *_stackFrames; +} + +- (id) initWithExceptionName: (NSString *) name reason: (NSString *) reason; + +- (id) initWithExceptionName: (NSString *) name + reason: (NSString *) reason + stackFrames: (NSArray *) stackFrames; + +/** + * The exception name. + */ +@property(nonatomic, readonly) NSString *exceptionName; + +/** + * The exception reason. + */ +@property(nonatomic, readonly) NSString *exceptionReason; + +/* The exception's original call stack, as an array of PLCrashReportStackFrameInfo instances, or nil if unavailable. + * This may be preserved across rethrow of an exception, and can be used to determine the original call stack. */ +@property(nonatomic, readonly) NSArray *stackFrames; + +@end diff --git a/Pods/HockeySDK/Vendor/CrashReporter.framework/Versions/A/Headers/PLCrashReportFormatter.h b/Pods/HockeySDK/Vendor/CrashReporter.framework/Versions/A/Headers/PLCrashReportFormatter.h new file mode 100644 index 0000000..77c2029 --- /dev/null +++ b/Pods/HockeySDK/Vendor/CrashReporter.framework/Versions/A/Headers/PLCrashReportFormatter.h @@ -0,0 +1,51 @@ +/* + * Author: Landon Fuller + * + * Copyright (c) 2008-2013 Plausible Labs Cooperative, Inc. + * All rights reserved. + * + * Permission is hereby granted, free of charge, to any person + * obtaining a copy of this software and associated documentation + * files (the "Software"), to deal in the Software without + * restriction, including without limitation the rights to use, + * copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following + * conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES + * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + */ + +#import + +#import "PLCrashReport.h" + +/** + * A crash report formatter accepts a PLCrashReport instance, formats it according to implementation-specified rules, + * (such as implementing text output support), and returns the result. + */ +@protocol PLCrashReportFormatter + +/** + * Format the provided @a report. + * + * @param report Report to be formatted. + * @param outError A pointer to an NSError object variable. If an error occurs, this pointer will contain an error + * object indicating why the pending crash report could not be formatted. If no error occurs, this parameter will + * be left unmodified. You may specify nil for this parameter, and no error information will be provided. + * + * @return Returns the formatted report data on success, or nil on failure. + */ +- (NSData *) formatReport: (PLCrashReport *) report error: (NSError **) outError; + +@end diff --git a/Pods/HockeySDK/Vendor/CrashReporter.framework/Versions/A/Headers/PLCrashReportMachExceptionInfo.h b/Pods/HockeySDK/Vendor/CrashReporter.framework/Versions/A/Headers/PLCrashReportMachExceptionInfo.h new file mode 100644 index 0000000..a9d7f7c --- /dev/null +++ b/Pods/HockeySDK/Vendor/CrashReporter.framework/Versions/A/Headers/PLCrashReportMachExceptionInfo.h @@ -0,0 +1,48 @@ +/* + * Author: Landon Fuller + * + * Copyright (c) 2013 Plausible Labs Cooperative, Inc. + * All rights reserved. + * + * Permission is hereby granted, free of charge, to any person + * obtaining a copy of this software and associated documentation + * files (the "Software"), to deal in the Software without + * restriction, including without limitation the rights to use, + * copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following + * conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES + * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + */ + +#import + +@interface PLCrashReportMachExceptionInfo : NSObject { +@private + /** The Mach exception type. */ + uint64_t _type; + + /** The Mach exception codes, represented as an ordered array of NSNumber instances. */ + NSArray *_codes; +} + +- (id) initWithType: (uint64_t) type codes: (NSArray *) codes; + +/** The Mach exception type. */ +@property(nonatomic, readonly) uint64_t type; + +/** The Mach exception codes, represented as an ordered array of 64-bit unsigned NSNumber instances. */ +@property(nonatomic, readonly) NSArray *codes; + +@end diff --git a/Pods/HockeySDK/Vendor/CrashReporter.framework/Versions/A/Headers/PLCrashReportMachineInfo.h b/Pods/HockeySDK/Vendor/CrashReporter.framework/Versions/A/Headers/PLCrashReportMachineInfo.h new file mode 100644 index 0000000..4d0597c --- /dev/null +++ b/Pods/HockeySDK/Vendor/CrashReporter.framework/Versions/A/Headers/PLCrashReportMachineInfo.h @@ -0,0 +1,73 @@ +/* + * Author: Landon Fuller + * + * Copyright (c) 2008-2013 Plausible Labs Cooperative, Inc. + * All rights reserved. + * + * Permission is hereby granted, free of charge, to any person + * obtaining a copy of this software and associated documentation + * files (the "Software"), to deal in the Software without + * restriction, including without limitation the rights to use, + * copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following + * conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES + * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + */ + +#import + +#import "PLCrashReportProcessorInfo.h" + +@interface PLCrashReportMachineInfo : NSObject { +@private + /** The hardware model name (eg, MacBookPro6,1). This may be unavailable, and this property will be nil. */ + NSString *_modelName; + + /** The processor type. */ + PLCrashReportProcessorInfo *_processorInfo; + + /* The number of actual physical processor cores. */ + NSUInteger _processorCount; + + /* The number of logical processors. */ + NSUInteger _logicalProcessorCount; +} + +- (id) initWithModelName: (NSString *) modelName + processorInfo: (PLCrashReportProcessorInfo *) processorInfo + processorCount: (NSUInteger) processorCount + logicalProcessorCount: (NSUInteger) logicalProcessorCount; + +/** The hardware model name (eg, MacBookPro6,1). This may be unavailable, and this property will be nil. */ +@property(nonatomic, readonly) NSString *modelName; + +/** The processor type. This will be unavailable in reports generated prior to PLCrashReporter 1.2, in which case this property will be nil. */ +@property(nonatomic, readonly) PLCrashReportProcessorInfo *processorInfo; + +/* + * The number of actual physical processor cores. Note that the number of active processors may be managed by the + * operating system's power management system, and this value may not reflect the number of active + * processors at the time of the crash. + */ +@property(nonatomic, readonly) NSUInteger processorCount; + +/* + * The number of logical processors. Note that the number of active processors may be managed by the + * operating system's power management system, and this value may not reflect the number of active + * processors at the time of the crash. + */ +@property(nonatomic, readonly) NSUInteger logicalProcessorCount; + +@end diff --git a/Pods/HockeySDK/Vendor/CrashReporter.framework/Versions/A/Headers/PLCrashReportProcessInfo.h b/Pods/HockeySDK/Vendor/CrashReporter.framework/Versions/A/Headers/PLCrashReportProcessInfo.h new file mode 100644 index 0000000..ca683d5 --- /dev/null +++ b/Pods/HockeySDK/Vendor/CrashReporter.framework/Versions/A/Headers/PLCrashReportProcessInfo.h @@ -0,0 +1,103 @@ +/* + * Author: Damian Morris + * + * Copyright (c) 2010 MOSO Corporation, Pty Ltd. + * Copyright (c) 2010-2013 Plausible Labs Cooperative, Inc. + * + * All rights reserved. + * + * Permission is hereby granted, free of charge, to any person + * obtaining a copy of this software and associated documentation + * files (the "Software"), to deal in the Software without + * restriction, including without limitation the rights to use, + * copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following + * conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES + * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + */ + +#import + +@interface PLCrashReportProcessInfo : NSObject { +@private + /** Process name, or nil if unavailable. */ + NSString *_processName; + + /** Process ID */ + NSUInteger _processID; + + /** Process path */ + NSString* _processPath; + + /** Date and time that the crashing process was started. This may be unavailable, and this property + * will be nil. */ + NSDate *_processStartTime; + + /** Parent process name, or nil if unavailable. */ + NSString *_parentProcessName; + + /** Parent process ID */ + NSUInteger _parentProcessID; + + /** If false, the process is being run via process-level CPU emulation (such as Rosetta). */ + BOOL _native; +} + +- (id) initWithProcessName: (NSString *) processName + processID: (NSUInteger) processID + processPath: (NSString *) processPath + processStartTime: (NSDate *) processStartTime + parentProcessName: (NSString *) parentProcessName + parentProcessID: (NSUInteger) parentProcessID + native: (BOOL) native; + +/** + * The process name. This value may not be included in the crash report, in which case this property + * will be nil. + */ +@property(nonatomic, readonly) NSString *processName; + +/** + * The process ID. + */ +@property(nonatomic, readonly) NSUInteger processID; + +/** + * The path to the process executable. This value may not be included in the crash report, in which case this property + * will be nil. + */ +@property(nonatomic, readonly) NSString *processPath; + +/** + * Date and time that the crashing process was started. This value may not be included in the crash report, in which case this property + * will be nil. + */ +@property(nonatomic, readonly) NSDate *processStartTime; + +/** + * The parent process name. This value may not be included in the crash report, in which case this property + * will be nil. + */ +@property(nonatomic, readonly) NSString *parentProcessName; + +/** + * The parent process ID. + */ +@property(nonatomic, readonly) NSUInteger parentProcessID; + +/** The process' native execution status. If false, the process is being run via process-level CPU emulation (such as Rosetta). */ +@property(nonatomic, readonly) BOOL native; + +@end diff --git a/Pods/HockeySDK/Vendor/CrashReporter.framework/Versions/A/Headers/PLCrashReportProcessorInfo.h b/Pods/HockeySDK/Vendor/CrashReporter.framework/Versions/A/Headers/PLCrashReportProcessorInfo.h new file mode 100644 index 0000000..03d570b --- /dev/null +++ b/Pods/HockeySDK/Vendor/CrashReporter.framework/Versions/A/Headers/PLCrashReportProcessorInfo.h @@ -0,0 +1,74 @@ +/* + * Author: Landon Fuller + * + * Copyright (c) 2008-2013 Plausible Labs Cooperative, Inc. + * All rights reserved. + * + * Permission is hereby granted, free of charge, to any person + * obtaining a copy of this software and associated documentation + * files (the "Software"), to deal in the Software without + * restriction, including without limitation the rights to use, + * copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following + * conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES + * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + */ + +#import +#import + +/** + * @ingroup constants + * + * The type encodings supported for CPU types and subtypes. Currently only Apple + * Mach-O defined encodings are supported. + * + * @internal + * These enum values match the protobuf values. Keep them synchronized. + */ +typedef enum { + /** Unknown cpu type encoding. */ + PLCrashReportProcessorTypeEncodingUnknown = 0, + + /** Apple Mach-defined processor types. */ + PLCrashReportProcessorTypeEncodingMach = 1 +} PLCrashReportProcessorTypeEncoding; + +@interface PLCrashReportProcessorInfo : NSObject { +@private + /** Type encoding */ + PLCrashReportProcessorTypeEncoding _typeEncoding; + + /** CPU type */ + uint64_t _type; + + /** CPU subtype */ + uint64_t _subtype; +} + +- (id) initWithTypeEncoding: (PLCrashReportProcessorTypeEncoding) typeEncoding + type: (uint64_t) type + subtype: (uint64_t) subtype; + +/** The CPU type encoding. */ +@property(nonatomic, readonly) PLCrashReportProcessorTypeEncoding typeEncoding; + +/** The CPU type. */ +@property(nonatomic, readonly) uint64_t type; + +/** The CPU subtype. */ +@property(nonatomic, readonly) uint64_t subtype; + +@end diff --git a/Pods/HockeySDK/Vendor/CrashReporter.framework/Versions/A/Headers/PLCrashReportRegisterInfo.h b/Pods/HockeySDK/Vendor/CrashReporter.framework/Versions/A/Headers/PLCrashReportRegisterInfo.h new file mode 100644 index 0000000..20b618d --- /dev/null +++ b/Pods/HockeySDK/Vendor/CrashReporter.framework/Versions/A/Headers/PLCrashReportRegisterInfo.h @@ -0,0 +1,52 @@ +/* + * Author: Landon Fuller + * + * Copyright (c) 2008-2013 Plausible Labs Cooperative, Inc. + * All rights reserved. + * + * Permission is hereby granted, free of charge, to any person + * obtaining a copy of this software and associated documentation + * files (the "Software"), to deal in the Software without + * restriction, including without limitation the rights to use, + * copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following + * conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES + * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + */ + +#import + +@interface PLCrashReportRegisterInfo : NSObject { +@private + /** Register name */ + NSString *_registerName; + + /** Register value */ + uint64_t _registerValue; +} + +- (id) initWithRegisterName: (NSString *) registerName registerValue: (uint64_t) registerValue; + +/** + * Register name. + */ +@property(nonatomic, readonly) NSString *registerName; + +/** + * Register value. + */ +@property(nonatomic, readonly) uint64_t registerValue; + +@end diff --git a/Pods/HockeySDK/Vendor/CrashReporter.framework/Versions/A/Headers/PLCrashReportSignalInfo.h b/Pods/HockeySDK/Vendor/CrashReporter.framework/Versions/A/Headers/PLCrashReportSignalInfo.h new file mode 100644 index 0000000..2c5c5fe --- /dev/null +++ b/Pods/HockeySDK/Vendor/CrashReporter.framework/Versions/A/Headers/PLCrashReportSignalInfo.h @@ -0,0 +1,60 @@ +/* + * Author: Landon Fuller + * + * Copyright (c) 2008-2009 Plausible Labs Cooperative, Inc. + * All rights reserved. + * + * Permission is hereby granted, free of charge, to any person + * obtaining a copy of this software and associated documentation + * files (the "Software"), to deal in the Software without + * restriction, including without limitation the rights to use, + * copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following + * conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES + * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + */ + +#import + +@interface PLCrashReportSignalInfo : NSObject { +@private + /** Signal name */ + NSString *_name; + + /** Signal code */ + NSString *_code; + + /** Fauling instruction or address */ + uint64_t _address; +} + +- (id) initWithSignalName: (NSString *) name code: (NSString *) code address: (uint64_t) address; + +/** + * The signal name. + */ +@property(nonatomic, readonly) NSString *name; + +/** + * The signal code. + */ +@property(nonatomic, readonly) NSString *code; + +/** + * The faulting instruction or address. + */ +@property(nonatomic, readonly) uint64_t address; + +@end diff --git a/Pods/HockeySDK/Vendor/CrashReporter.framework/Versions/A/Headers/PLCrashReportStackFrameInfo.h b/Pods/HockeySDK/Vendor/CrashReporter.framework/Versions/A/Headers/PLCrashReportStackFrameInfo.h new file mode 100644 index 0000000..997e762 --- /dev/null +++ b/Pods/HockeySDK/Vendor/CrashReporter.framework/Versions/A/Headers/PLCrashReportStackFrameInfo.h @@ -0,0 +1,52 @@ +/* + * Author: Landon Fuller + * + * Copyright (c) 2008-2013 Plausible Labs Cooperative, Inc. + * All rights reserved. + * + * Permission is hereby granted, free of charge, to any person + * obtaining a copy of this software and associated documentation + * files (the "Software"), to deal in the Software without + * restriction, including without limitation the rights to use, + * copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following + * conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES + * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + */ + +#import +#import "PLCrashReportSymbolInfo.h" + +@interface PLCrashReportStackFrameInfo : NSObject { +@private + /** Frame instruction pointer. */ + uint64_t _instructionPointer; + + /** Symbol information, if available. Otherwise, will be nil. */ + PLCrashReportSymbolInfo *_symbolInfo; +} + +- (id) initWithInstructionPointer: (uint64_t) instructionPointer symbolInfo: (PLCrashReportSymbolInfo *) symbolInfo; + +/** + * Frame's instruction pointer. + */ +@property(nonatomic, readonly) uint64_t instructionPointer; + +/** Symbol information for this frame. + * This may be unavailable, and this property will be nil. */ +@property(nonatomic, readonly) PLCrashReportSymbolInfo *symbolInfo; + +@end diff --git a/Pods/HockeySDK/Vendor/CrashReporter.framework/Versions/A/Headers/PLCrashReportSymbolInfo.h b/Pods/HockeySDK/Vendor/CrashReporter.framework/Versions/A/Headers/PLCrashReportSymbolInfo.h new file mode 100644 index 0000000..c6ceb6c --- /dev/null +++ b/Pods/HockeySDK/Vendor/CrashReporter.framework/Versions/A/Headers/PLCrashReportSymbolInfo.h @@ -0,0 +1,61 @@ +/* + * Author: Landon Fuller + * + * Copyright (c) 2012-2013 Plausible Labs Cooperative, Inc. + * All rights reserved. + * + * Permission is hereby granted, free of charge, to any person + * obtaining a copy of this software and associated documentation + * files (the "Software"), to deal in the Software without + * restriction, including without limitation the rights to use, + * copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following + * conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES + * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + */ + +#import + +@interface PLCrashReportSymbolInfo : NSObject { +@private + /** The symbol name. */ + NSString *_symbolName; + + /** The symbol start address. */ + uint64_t _startAddress; + + /** The symbol end address, if explicitly defined. Will be 0 if unknown. */ + uint64_t _endAddress; +} + +- (id) initWithSymbolName: (NSString *) symbolName + startAddress: (uint64_t) startAddress + endAddress: (uint64_t) endAddress; + +/** The symbol name. */ +@property(nonatomic, readonly) NSString *symbolName; + +/** The symbol start address. */ +@property(nonatomic, readonly) uint64_t startAddress; + +/* The symbol end address, if explicitly defined. This will only be included if the end address is + * explicitly defined (eg, by DWARF debugging information), will not be derived by best-guess + * heuristics. + * + * If unknown, the address will be 0. + */ +@property(nonatomic, readonly) uint64_t endAddress; + +@end diff --git a/Pods/HockeySDK/Vendor/CrashReporter.framework/Versions/A/Headers/PLCrashReportSystemInfo.h b/Pods/HockeySDK/Vendor/CrashReporter.framework/Versions/A/Headers/PLCrashReportSystemInfo.h new file mode 100644 index 0000000..e98c969 --- /dev/null +++ b/Pods/HockeySDK/Vendor/CrashReporter.framework/Versions/A/Headers/PLCrashReportSystemInfo.h @@ -0,0 +1,145 @@ +/* + * Author: Landon Fuller + * + * Copyright (c) 2008-2009 Plausible Labs Cooperative, Inc. + * All rights reserved. + * + * Permission is hereby granted, free of charge, to any person + * obtaining a copy of this software and associated documentation + * files (the "Software"), to deal in the Software without + * restriction, including without limitation the rights to use, + * copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following + * conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES + * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + */ + +#import + +/** + * @ingroup constants + * + * Indicates the Operating System under which a Crash Log was generated. + * + * @internal + * These enum values match the protobuf values. Keep them synchronized. + */ +typedef enum { + /** Mac OS X. */ + PLCrashReportOperatingSystemMacOSX = 0, + + /** iPhone OS */ + PLCrashReportOperatingSystemiPhoneOS = 1, + + /** iPhone Simulator (Mac OS X with additional simulator-specific runtime libraries) */ + PLCrashReportOperatingSystemiPhoneSimulator = 2, + + /** Unknown operating system */ + PLCrashReportOperatingSystemUnknown = 3, +} PLCrashReportOperatingSystem; + +/** + * @ingroup constants + * + * Indicates the architecture under which a Crash Log was generated. + * + * @deprecated The architecture value has been deprecated in v1.1 and later crash reports. All new reports + * will make use of the new PLCrashReportProcessorInfo CPU type encodings. + * + * @internal + * These enum values match the protobuf values. Keep them synchronized. + */ +typedef enum { + /** x86-32. */ + PLCrashReportArchitectureX86_32 = 0, + + /** x86-64 */ + PLCrashReportArchitectureX86_64 = 1, + + /** ARMv6 */ + PLCrashReportArchitectureARMv6 = 2, + + /** + * ARMv6 + * @deprecated This value has been deprecated in favor of ARM subtype-specific + * values. + * @sa PLCrashReportArchitectureARMv6 + */ + PLCrashReportArchitectureARM = PLCrashReportArchitectureARMv6, + + /** PPC */ + PLCrashReportArchitecturePPC = 3, + + /** PPC64 */ + PLCrashReportArchitecturePPC64 = 4, + + /** ARMv7 */ + PLCrashReportArchitectureARMv7 = 5, + + /** Unknown */ + PLCrashReportArchitectureUnknown = 6 +} PLCrashReportArchitecture; + + +extern PLCrashReportOperatingSystem PLCrashReportHostOperatingSystem; +extern PLCrashReportArchitecture PLCrashReportHostArchitecture; + +@interface PLCrashReportSystemInfo : NSObject { +@private + /** Operating system */ + PLCrashReportOperatingSystem _operatingSystem; + + /** Operating system version */ + NSString *_osVersion; + + /** OS build. May be nil. */ + NSString *_osBuild; + + /** Architecture */ + PLCrashReportArchitecture _architecture; + + /** Date crash report was generated. May be nil if the date is unknown. */ + NSDate *_timestamp; +} + +- (id) initWithOperatingSystem: (PLCrashReportOperatingSystem) operatingSystem + operatingSystemVersion: (NSString *) operatingSystemVersion + architecture: (PLCrashReportArchitecture) architecture + timestamp: (NSDate *) timestamp; + +- (id) initWithOperatingSystem: (PLCrashReportOperatingSystem) operatingSystem + operatingSystemVersion: (NSString *) operatingSystemVersion + operatingSystemBuild: (NSString *) operatingSystemBuild + architecture: (PLCrashReportArchitecture) architecture + timestamp: (NSDate *) timestamp; + +/** The operating system. */ +@property(nonatomic, readonly) PLCrashReportOperatingSystem operatingSystem; + +/** The operating system's release version. */ +@property(nonatomic, readonly) NSString *operatingSystemVersion; + +/** The operating system's build identifier (eg, 10J869). This may be unavailable, and this property will be nil. */ +@property(nonatomic, readonly) NSString *operatingSystemBuild; + +/** Architecture. @deprecated The architecture value has been deprecated in v1.1 and later crash reports. All new reports + * include the CPU type as part of the crash report's machine info structure, using the PLCrashReportProcessorInfo + * extensible encoding. */ +@property(nonatomic, readonly) PLCrashReportArchitecture architecture; + +/** Date and time that the crash report was generated. This may be unavailable, and this property will be nil. */ +@property(nonatomic, readonly) NSDate *timestamp; + +@end diff --git a/Pods/HockeySDK/Vendor/CrashReporter.framework/Versions/A/Headers/PLCrashReportTextFormatter.h b/Pods/HockeySDK/Vendor/CrashReporter.framework/Versions/A/Headers/PLCrashReportTextFormatter.h new file mode 100644 index 0000000..2ba7e35 --- /dev/null +++ b/Pods/HockeySDK/Vendor/CrashReporter.framework/Versions/A/Headers/PLCrashReportTextFormatter.h @@ -0,0 +1,62 @@ +/* + * Authors: + * Landon Fuller + * Damian Morris + * + * Copyright (c) 2008-2013 Plausible Labs Cooperative, Inc. + * Copyright (c) 2010 MOSO Corporation, Pty Ltd. + * All rights reserved. + * + * Permission is hereby granted, free of charge, to any person + * obtaining a copy of this software and associated documentation + * files (the "Software"), to deal in the Software without + * restriction, including without limitation the rights to use, + * copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following + * conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES + * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + */ + + +#import + +#import "PLCrashReportFormatter.h" + +/** + * Supported text output formats. + * + * @ingroup enums + */ +typedef enum { + /** An iOS-compatible crash log text format. Compatible with the crash logs generated by the device and available + * through iTunes Connect. */ + PLCrashReportTextFormatiOS = 0 +} PLCrashReportTextFormat; + + +@interface PLCrashReportTextFormatter : NSObject { +@private + /** Text output format. */ + PLCrashReportTextFormat _textFormat; + + /** Encoding to use for string output. */ + NSStringEncoding _stringEncoding; +} + ++ (NSString *) stringValueForCrashReport: (PLCrashReport *) report withTextFormat: (PLCrashReportTextFormat) textFormat; + +- (id) initWithTextFormat: (PLCrashReportTextFormat) textFormat stringEncoding: (NSStringEncoding) stringEncoding; + +@end diff --git a/Pods/HockeySDK/Vendor/CrashReporter.framework/Versions/A/Headers/PLCrashReportThreadInfo.h b/Pods/HockeySDK/Vendor/CrashReporter.framework/Versions/A/Headers/PLCrashReportThreadInfo.h new file mode 100644 index 0000000..04c8604 --- /dev/null +++ b/Pods/HockeySDK/Vendor/CrashReporter.framework/Versions/A/Headers/PLCrashReportThreadInfo.h @@ -0,0 +1,77 @@ +/* + * Author: Landon Fuller + * + * Copyright (c) 2008-2009 Plausible Labs Cooperative, Inc. + * All rights reserved. + * + * Permission is hereby granted, free of charge, to any person + * obtaining a copy of this software and associated documentation + * files (the "Software"), to deal in the Software without + * restriction, including without limitation the rights to use, + * copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following + * conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES + * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + */ + +#import + +#import "PLCrashReportStackFrameInfo.h" +#import "PLCrashReportRegisterInfo.h" + +@interface PLCrashReportThreadInfo : NSObject { +@private + /** The thread number. Should be unique within a given crash log. */ + NSInteger _threadNumber; + + /** Ordered list of PLCrashReportStackFrame instances */ + NSArray *_stackFrames; + + /** YES if this thread crashed. */ + BOOL _crashed; + + /** List of PLCrashReportRegister instances. Will be empty if _crashed is NO. */ + NSArray *_registers; +} + +- (id) initWithThreadNumber: (NSInteger) threadNumber + stackFrames: (NSArray *) stackFrames + crashed: (BOOL) crashed + registers: (NSArray *) registers; + +/** + * Application thread number. + */ +@property(nonatomic, readonly) NSInteger threadNumber; + +/** + * Thread backtrace. Provides an array of PLCrashReportStackFrameInfo instances. + * The array is ordered, last callee to first. + */ +@property(nonatomic, readonly) NSArray *stackFrames; + +/** + * If this thread crashed, set to YES. + */ +@property(nonatomic, readonly) BOOL crashed; + +/** + * State of the general purpose and related registers, as a list of + * PLCrashReportRegister instances. If this thead did not crash (crashed returns NO), + * this list will be empty. + */ +@property(nonatomic, readonly) NSArray *registers; + +@end diff --git a/Pods/HockeySDK/Vendor/CrashReporter.framework/Versions/A/Headers/PLCrashReporter.h b/Pods/HockeySDK/Vendor/CrashReporter.framework/Versions/A/Headers/PLCrashReporter.h new file mode 100644 index 0000000..88824a6 --- /dev/null +++ b/Pods/HockeySDK/Vendor/CrashReporter.framework/Versions/A/Headers/PLCrashReporter.h @@ -0,0 +1,133 @@ +/* + * Author: Landon Fuller + * + * Copyright (c) 2008-2009 Plausible Labs Cooperative, Inc. + * All rights reserved. + * + * Permission is hereby granted, free of charge, to any person + * obtaining a copy of this software and associated documentation + * files (the "Software"), to deal in the Software without + * restriction, including without limitation the rights to use, + * copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following + * conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES + * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + */ + +#import +#import + +#import "PLCrashReporterConfig.h" + +@class PLCrashMachExceptionServer; +@class PLCrashMachExceptionPortSet; + +/** + * @ingroup functions + * + * Prototype of a callback function used to execute additional user code with signal information as provided + * by PLCrashReporter. Called upon completion of crash handling, after the crash report has been written to disk. + * + * @param info The signal info. + * @param uap The crash's threads context. + * @param context The API client's supplied context value. + * + * @sa @ref async_safety + * @sa PLCrashReporter::setPostCrashCallbacks: + */ +typedef void (*PLCrashReporterPostCrashSignalCallback)(siginfo_t *info, ucontext_t *uap, void *context); + +/** + * @ingroup types + * + * This structure contains callbacks supported by PLCrashReporter to allow the host application to perform + * additional tasks prior to program termination after a crash has occured. + * + * @sa @ref async_safety + */ +typedef struct PLCrashReporterCallbacks { + /** The version number of this structure. If not one of the defined version numbers for this type, the behavior + * is undefined. The current version of this structure is 0. */ + uint16_t version; + + /** An arbitrary user-supplied context value. This value may be NULL. */ + void *context; + + /** + * The callback used to report caught signal information. In version 0 of this structure, all crashes will be + * reported via this function. + * + * @warning When using PLCrashReporterSignalHandlerTypeMach, the siginfo_t argument to this function will be derived + * from the Mach exception data, and may be incorrect, or may otherwise not match the expected data as provided via + * PLCrashReporterSignalHandlerTypeBSD. In addition, the provided ucontext_t value will be zero-initialized, and will + * not provide valid thread state. + * + * This callback will be deprecated in favor of a Mach-compatible replacement in a future release; support is maintained + * here to allow clients that rely on post-crash callbacks without thread state to make use of Mach exceptions. + */ + PLCrashReporterPostCrashSignalCallback handleSignal; +} PLCrashReporterCallbacks; + +@interface PLCrashReporter : NSObject { +@private + /** Reporter configuration */ + PLCrashReporterConfig *_config; + + /** YES if the crash reporter has been enabled */ + BOOL _enabled; + +#if PLCRASH_FEATURE_MACH_EXCEPTIONS + /** The backing Mach exception server, if any. Nil if the reporter has not been enabled, or if + * the configured signal handler type is not PLCrashReporterSignalHandlerTypeMach. */ + PLCrashMachExceptionServer *_machServer; + + /** Previously registered Mach exception ports, if any. */ + PLCrashMachExceptionPortSet *_previousMachPorts; +#endif /* PLCRASH_FEATURE_MACH_EXCEPTIONS */ + + /** Application identifier */ + NSString *_applicationIdentifier; + + /** Application version */ + NSString *_applicationVersion; + + /** Path to the crash reporter internal data directory */ + NSString *_crashReportDirectory; +} + ++ (PLCrashReporter *) sharedReporter; + +- (instancetype) initWithConfiguration: (PLCrashReporterConfig *) config; + +- (BOOL) hasPendingCrashReport; + +- (NSData *) loadPendingCrashReportData; +- (NSData *) loadPendingCrashReportDataAndReturnError: (NSError **) outError; + +- (NSData *) generateLiveReportWithThread: (thread_t) thread; +- (NSData *) generateLiveReportWithThread: (thread_t) thread error: (NSError **) outError; + +- (NSData *) generateLiveReport; +- (NSData *) generateLiveReportAndReturnError: (NSError **) outError; + +- (BOOL) purgePendingCrashReport; +- (BOOL) purgePendingCrashReportAndReturnError: (NSError **) outError; + +- (BOOL) enableCrashReporter; +- (BOOL) enableCrashReporterAndReturnError: (NSError **) outError; + +- (void) setCrashCallbacks: (PLCrashReporterCallbacks *) callbacks; + +@end diff --git a/Pods/HockeySDK/Vendor/CrashReporter.framework/Versions/A/Headers/PLCrashReporterConfig.h b/Pods/HockeySDK/Vendor/CrashReporter.framework/Versions/A/Headers/PLCrashReporterConfig.h new file mode 100644 index 0000000..82f0bd9 --- /dev/null +++ b/Pods/HockeySDK/Vendor/CrashReporter.framework/Versions/A/Headers/PLCrashReporterConfig.h @@ -0,0 +1,165 @@ +/* + * Author: Landon Fuller + * + * Copyright (c) 2013 Plausible Labs Cooperative, Inc. + * All rights reserved. + * + * Permission is hereby granted, free of charge, to any person + * obtaining a copy of this software and associated documentation + * files (the "Software"), to deal in the Software without + * restriction, including without limitation the rights to use, + * copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following + * conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES + * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + */ + +#import +#import "PLCrashFeatureConfig.h" + +/** + * @ingroup enums + * Supported mechanisms for trapping and handling crashes. + */ +typedef NS_ENUM(NSUInteger, PLCrashReporterSignalHandlerType) { + /** + * Trap fatal signals via a sigaction(2)-registered BSD signal handler. + * + * PLCrashReporter's signal handler will supersede previously registered handlers; existing + * handlers will not be called. This behavior may be modified in a future release, and should + * not be relied upon as a mechanism to prevent existing signal handlers from being called. + * + * There are some limitations to signal-based crash handling on Mac OS X and iOS; specifically: + * + * - On Mac OS X, stack overflows will only be handled on the thread on which + * the crash reporter was initialized. This should generally be the main thread. + * - On iOS 6.0 and later, any stack overflows will not be handled due to sigaltstack() being + * non-functional on the device. (see rdar://13002712 - SA_ONSTACK/sigaltstack() ignored on iOS). + * - Some exit paths in Apple's Libc will deregister a signal handler before firing SIGABRT, resulting + * in the signal handler never being called (see rdar://14313497 - ___abort() disables SIGABRT signal + * handlers prior to raising SIGABRT). These __abort()-based checks are: + * - Implemented for unsafe memcpy/strcpy/snprintf C functions. + * - Only enabled when operating on a fixed-width target buffer (in which case the + * compiler rewrites the function calls to the built-in variants, and provides the fixed-width length as an argument). + * - Only trigger in the case that the source data exceeds the size of the fixed width target + * buffer, and the maximum length argument either isn't supplied by the caller (eg, when using strcpy), + * or a too-long argument is supplied (eg, strncpy with a length argument longer than the target buffer), + * AND that argument can't be checked at compile-time. + */ + PLCrashReporterSignalHandlerTypeBSD = 0, + +#if PLCRASH_FEATURE_MACH_EXCEPTIONS + /** + * Trap fatal signals via a Mach exception server. + * + * If any existing Mach exception server has been registered for the task, exceptions will be forwarded to that + * exception handler. Should the exceptions be handled by an existing handler, no report will be generated + * by PLCrashReporter. + * + * @par Mac OS X + * + * On Mac OS X, the Mach exception implementation is fully supported, using publicly available API -- note, + * however, that some kernel-internal constants, as well as architecture-specific trap information, + * may be required to fully interpret a Mach exception's root cause. + * + * @par iOS + * + * On iOS, the APIs required for a complete implementation are not fully public. + * + * The exposed surface of undocumented API usage is relatively low, and there has been strong user demand to + * implement Mach exception handling regardless of concerns over API visiblity. Given this, we've included + * Mach exception handling as an optional feature, with both build-time and runtime configuration + * to disable its inclusion or use, respectively. + * + * @par Debugger Incompatibility + * + * The Mach exception handler executes in-process, and will interfere with debuggers when they attempt to + * suspend all active threads (which will include the Mach exception handler). Mach-based handling + * should not be used when a debugger is attached. + * + * @par More Details + * + * For more information, refer to @ref mach_exceptions. + */ + PLCrashReporterSignalHandlerTypeMach = 1 +#endif /* PLCRASH_FEATURE_MACH_EXCEPTIONS */ +}; + +/** + * @ingroup enums + * Supported mechanisms for performing local symbolication. + * + * Local symbolication is performed using inexact heuristics and symbol data available at runtime; it may + * return information that is incorrect. This may still be useful in the case where DWARF data is unavailable + * for a given build; in that case, it can provide function and method names (though not line numbers) for a + * crash report that may otherwise be unusable. + * + * Note, however, this comes at the cost of a significant increase in code that must run within the critical + * crash reporting section, where failures may result in crash reports being corrupted or left unwritten. In + * addition, some of the provided symbolication strategies rely on knowledge of runtime internals that may + * change in future iOS releases. Given that DWARF symbolication data will always be more accurate, and + * the risks inherent in executing considerably more code at crash time, it is strongly recommended that local + * symbolication only be enabled for non-release builds. + * + * Multiple symbolication strategies may be enabled, in which case a best-match heuristic will be applied to the + * results. + */ +typedef NS_OPTIONS(NSUInteger, PLCrashReporterSymbolicationStrategy) { + /** No symbolication. */ + PLCrashReporterSymbolicationStrategyNone = 0, + + /** + * Use the standard binary symbol table. On iOS, this alone will return + * incomplete results, as most symbols are rewritten to the common '\' string. + */ + PLCrashReporterSymbolicationStrategySymbolTable = 1 << 0, + + /** + * Use Objective-C metadata to find method and class names. This relies on detailed parsing + * of the Objective-C runtime data, including undefined flags and other runtime internals. As such, + * it may return incorrect data should the runtime be changed incompatibly. + */ + PLCrashReporterSymbolicationStrategyObjC = 1 << 1, + + /** + * Enable all available symbolication strategies. + */ + PLCrashReporterSymbolicationStrategyAll = (PLCrashReporterSymbolicationStrategySymbolTable|PLCrashReporterSymbolicationStrategyObjC) +}; + +@interface PLCrashReporterConfig : NSObject { +@private + /** The configured signal handler type. */ + PLCrashReporterSignalHandlerType _signalHandlerType; + + /** The configured symbolication strategy. */ + PLCrashReporterSymbolicationStrategy _symbolicationStrategy; +} + ++ (instancetype) defaultConfiguration; + +- (instancetype) init; +- (instancetype) initWithSignalHandlerType: (PLCrashReporterSignalHandlerType) signalHandlerType + symbolicationStrategy: (PLCrashReporterSymbolicationStrategy) symbolicationStrategy; + +/** The configured signal handler type. */ +@property(nonatomic, readonly) PLCrashReporterSignalHandlerType signalHandlerType; + +/** The configured symbolication strategy. */ +@property(nonatomic, readonly) PLCrashReporterSymbolicationStrategy symbolicationStrategy; + + +@end + diff --git a/Pods/HockeySDK/Vendor/CrashReporter.framework/Versions/A/Resources/Info.plist b/Pods/HockeySDK/Vendor/CrashReporter.framework/Versions/A/Resources/Info.plist new file mode 100644 index 0000000..a86e074 --- /dev/null +++ b/Pods/HockeySDK/Vendor/CrashReporter.framework/Versions/A/Resources/Info.plist @@ -0,0 +1,38 @@ + + + + + BuildMachineOSBuild + 13D65 + CFBundleDevelopmentRegion + English + CFBundleExecutable + CrashReporter + CFBundleIdentifier + coop.plausible.CrashReporter + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + CrashReporter + CFBundlePackageType + FMWK + CFBundleSignature + ???? + CFBundleVersion + 1.0 + DTCompiler + com.apple.compilers.llvm.clang.1_0 + DTPlatformBuild + 5B1008 + DTPlatformVersion + GM + DTSDKBuild + 13C64 + DTSDKName + macosx10.9 + DTXcode + 0511 + DTXcodeBuild + 5B1008 + + diff --git a/Pods/HockeySDK/Vendor/CrashReporter.framework/Versions/Current b/Pods/HockeySDK/Vendor/CrashReporter.framework/Versions/Current new file mode 120000 index 0000000..8c7e5a6 --- /dev/null +++ b/Pods/HockeySDK/Vendor/CrashReporter.framework/Versions/Current @@ -0,0 +1 @@ +A \ No newline at end of file diff --git a/Pods/Manifest.lock b/Pods/Manifest.lock index f7893de..6a62850 100644 --- a/Pods/Manifest.lock +++ b/Pods/Manifest.lock @@ -8,6 +8,7 @@ PODS: - dyci/Injections (= 0.1.5.6) - dyci/Injections (0.1.5.6) - FontAwesome+iOS (0.0.1) + - HockeySDK (3.6.4) - libextobjc (0.4.1): - libextobjc/EXTADT (= 0.4.1) - libextobjc/EXTConcreteProtocol (= 0.4.1) @@ -99,6 +100,7 @@ PODS: DEPENDENCIES: - dyci - FontAwesome+iOS (from `https://github.com/alexdrone/ios-fontawesome.git`) + - HockeySDK - libextobjc - Mantle - MBProgressHUD @@ -119,6 +121,7 @@ SPEC CHECKSUMS: CocoaLumberjack: 628fca2e88ef06f7cf6817309aa405f325d9a6fa dyci: 099c2e6dc98abb8f21b370cabbf1443ff700608a FontAwesome+iOS: c6d3bbd2856b9633028d316d56133d45fb6a6cb0 + HockeySDK: c07cdd580296737edcd0963e292c19885a53f563 libextobjc: a650fc1bf489a3d3a9bc2e621efa3e1006fc5471 Mantle: d7c75b6fb789b20f7ae30cd0d09435fe545896ff MBProgressHUD: c47f2c166c126cf2ce36498d80f33e754d4e93ad diff --git a/Pods/Pods.xcodeproj/project.pbxproj b/Pods/Pods.xcodeproj/project.pbxproj index 0886178..d25e2b7 100644 --- a/Pods/Pods.xcodeproj/project.pbxproj +++ b/Pods/Pods.xcodeproj/project.pbxproj @@ -7,2891 +7,3338 @@ objects = { /* Begin PBXBuildFile section */ - 0047F00BC5487425F902DE2A /* MTLReflection.h in Headers */ = {isa = PBXBuildFile; fileRef = D6F649D98FF31429228DA07B /* MTLReflection.h */; }; - 006E12B21ADB086382B7B389 /* NSSet+ObjectiveSugar.m in Sources */ = {isa = PBXBuildFile; fileRef = 06CC2C50158075B98D39886F /* NSSet+ObjectiveSugar.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 007DF36FA1373F06ECEC4D69 /* YapDatabaseExtension.m in Sources */ = {isa = PBXBuildFile; fileRef = A47A2086519EDA50DB4EE026 /* YapDatabaseExtension.m */; }; - 00EBCCE65DEEB8A78749892B /* YapDatabaseFullTextSearchConnection.m in Sources */ = {isa = PBXBuildFile; fileRef = 23BD74E6F48DF4303D3DD1D3 /* YapDatabaseFullTextSearchConnection.m */; }; - 010AA1989251633577BF4784 /* YDBCKMappingTableInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = 4A7FDFC0733456C5288CC777 /* YDBCKMappingTableInfo.h */; }; - 0182DA4FE29F11894D890153 /* YDBCKRecordInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = 1C8E98D480058DC58AA665A1 /* YDBCKRecordInfo.m */; }; - 01902FAF8DCD68D42FFC4871 /* YapDatabaseConnectionState.m in Sources */ = {isa = PBXBuildFile; fileRef = 337C6668C1832227E942F3B0 /* YapDatabaseConnectionState.m */; }; - 02C8180BE97803C6E2E75CF1 /* YapDatabaseSecondaryIndex.m in Sources */ = {isa = PBXBuildFile; fileRef = DD122DC87EF95AA1148BBD4B /* YapDatabaseSecondaryIndex.m */; }; - 0323EC767BBE703A9D46E4AE /* YapDatabaseManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 03E7AE5E5F87DE38625B7182 /* YapDatabaseManager.h */; }; - 0428E069E2E16D9177897352 /* DDFileLogger.h in Headers */ = {isa = PBXBuildFile; fileRef = DD22178A835D85EE476DA1E8 /* DDFileLogger.h */; }; - 04C30ED7A8D161101E6C8410 /* Pods-Blog-CocoaLumberjack-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 9B3EEA141DFFF8B997B64E5B /* Pods-Blog-CocoaLumberjack-dummy.m */; }; - 04FF51B70CCCC9E71BC49106 /* YapDatabaseFullTextSearch.h in Headers */ = {isa = PBXBuildFile; fileRef = 649D6CCC882389A562CF0274 /* YapDatabaseFullTextSearch.h */; }; - 05084687910E135323E525C2 /* YapDatabaseCloudKitTransaction.m in Sources */ = {isa = PBXBuildFile; fileRef = FAEFFDB0E559BA6373293B65 /* YapDatabaseCloudKitTransaction.m */; }; - 06272D3A42FEFA98CEBEB36C /* DDContextFilterLogFormatter.h in Headers */ = {isa = PBXBuildFile; fileRef = 97088D634D871C989AC567F8 /* DDContextFilterLogFormatter.h */; }; - 0686BF0F10062801E72580DF /* OMGUserAgent.h in Headers */ = {isa = PBXBuildFile; fileRef = 7B1AF19C92986A056A79EA54 /* OMGUserAgent.h */; }; - 06CDFA862CED2A2C876DF800 /* YapMurmurHash.m in Sources */ = {isa = PBXBuildFile; fileRef = BEB425B1114D949845BDF86E /* YapMurmurHash.m */; }; - 0780C5F35909937A57DC552D /* PMKPromise+When.m in Sources */ = {isa = PBXBuildFile; fileRef = 103234F27AF3A35888A43C88 /* PMKPromise+When.m */; }; - 0782BBA6AA03F1BE4602038D /* YapDatabaseExtension.h in Headers */ = {isa = PBXBuildFile; fileRef = FC18FEA194A01FF1F09F4976 /* YapDatabaseExtension.h */; }; - 087CCD524F442E6AADB1FA83 /* NSValueTransformer+MTLPredefinedTransformerAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = DA1630DEACEC1F0DBBB26B02 /* NSValueTransformer+MTLPredefinedTransformerAdditions.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 09603DE5164058589317574D /* OMGFormURLEncode.h in Headers */ = {isa = PBXBuildFile; fileRef = FD465E5F5A152F512D1E6C97 /* OMGFormURLEncode.h */; }; - 09DFD88547271A9888C2B9BE /* YapDatabaseFilteredViewConnection.h in Headers */ = {isa = PBXBuildFile; fileRef = 681FDD2EA6F32C0C0927CAD7 /* YapDatabaseFilteredViewConnection.h */; }; - 0AC392DC83FB0B0B84F97C06 /* YDBCKChangeSet.h in Headers */ = {isa = PBXBuildFile; fileRef = 5B07E093944A1BEEE2009374 /* YDBCKChangeSet.h */; }; - 0AD445D775F3B3FC0117F600 /* DDDispatchQueueLogFormatter.h in Headers */ = {isa = PBXBuildFile; fileRef = 7179DB8624B6FDCCD414340B /* DDDispatchQueueLogFormatter.h */; }; - 0AEFE94890E0EDA3A1B820C9 /* MTLModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 8A19FCF4FEDFE1A737135355 /* MTLModel.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 0B13C34931F01E7E663941EE /* NSSet+ClassesList.m in Sources */ = {isa = PBXBuildFile; fileRef = 89CE12B46FC99669F2F30E76 /* NSSet+ClassesList.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 0C5F568EB39C41F83BDD4EA8 /* CALayer+PromiseKit.h in Headers */ = {isa = PBXBuildFile; fileRef = DB7EE0A8BE1C843607A95B96 /* CALayer+PromiseKit.h */; }; - 0CE623A2DC83AD82A91ED1C7 /* YDBCKRecordInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = 5BFCA205D07088177172144F /* YDBCKRecordInfo.h */; }; - 0D3F2F61493966E74DB414C5 /* DDTTYLogger.h in Headers */ = {isa = PBXBuildFile; fileRef = 0CB02F9D6072169ACD618BA8 /* DDTTYLogger.h */; }; - 0D6B7755C64921321D9DAA2C /* DDLog+LOGV.h in Headers */ = {isa = PBXBuildFile; fileRef = CBACA283CCCF6009B7B70F86 /* DDLog+LOGV.h */; }; - 0D93281DC60ECF5680EE5F5B /* YapDatabaseCloudKit.m in Sources */ = {isa = PBXBuildFile; fileRef = 3096C8BF574F9EAED6EE702E /* YapDatabaseCloudKit.m */; }; - 0DD13EC26765BE01D110837A /* YapDatabaseFullTextSearchTransaction.h in Headers */ = {isa = PBXBuildFile; fileRef = E4157BD8F52E22C28E657B30 /* YapDatabaseFullTextSearchTransaction.h */; }; - 0E92521F70C751D47F3B9FFE /* Promise.h in Headers */ = {isa = PBXBuildFile; fileRef = EA8ED6BE5F0E935AEEF89179 /* Promise.h */; }; - 0FA5E3257F71596096F22F41 /* PMKPromise+Until.m in Sources */ = {isa = PBXBuildFile; fileRef = 926302AC32ED98504756ACFA /* PMKPromise+Until.m */; }; - 0FFA8BECAB52B9008511F9AB /* UIViewController+PromiseKit.h in Headers */ = {isa = PBXBuildFile; fileRef = 69F3CB18F0BD2FB7A815570E /* UIViewController+PromiseKit.h */; }; - 1014EEA273EC7CCCD2CD22BD /* YapDatabaseSecondaryIndexSetup.m in Sources */ = {isa = PBXBuildFile; fileRef = 0C381178C401C525B83FB29C /* YapDatabaseSecondaryIndexSetup.m */; }; - 1079D8AE0E8E1D7D4413D268 /* EXTScope.h in Headers */ = {isa = PBXBuildFile; fileRef = AA0D30FD1176F99D224FC86A /* EXTScope.h */; }; - 1091A7674195424BDA2225FE /* YapDatabaseViewPage.mm in Sources */ = {isa = PBXBuildFile; fileRef = 63B74A3BDE5D2C43ED4C300F /* YapDatabaseViewPage.mm */; }; - 1103F32340C80DA7F612279B /* DDLog+LOGV.h in Headers */ = {isa = PBXBuildFile; fileRef = CBACA283CCCF6009B7B70F86 /* DDLog+LOGV.h */; }; - 110A9124F148460364497812 /* NSError+MTLModelException.h in Headers */ = {isa = PBXBuildFile; fileRef = 26A36DEBCFC1E544819F6620 /* NSError+MTLModelException.h */; }; - 111876AC596ADD18834DF91A /* MTLTransformerErrorHandling.h in Headers */ = {isa = PBXBuildFile; fileRef = 8057CEDCDCF924E040D9D14F /* MTLTransformerErrorHandling.h */; }; - 1172C7A33D43CDB7AFA854A6 /* YapDatabaseSecondaryIndexTransaction.h in Headers */ = {isa = PBXBuildFile; fileRef = CA57D5967D1C64AA13F116B1 /* YapDatabaseSecondaryIndexTransaction.h */; }; - 1176446286C9FAE132A9AA27 /* EXTKeyPathCoding.h in Headers */ = {isa = PBXBuildFile; fileRef = 2C185110F55E76571CD7FEF4 /* EXTKeyPathCoding.h */; }; - 119580849D63F0569FB153D6 /* UIViewController+PromiseKit.m in Sources */ = {isa = PBXBuildFile; fileRef = B4621CFB38ED1F55BD111539 /* UIViewController+PromiseKit.m */; }; - 127B9B948E8C3C238EB53C70 /* DDDispatchQueueLogFormatter.m in Sources */ = {isa = PBXBuildFile; fileRef = E00F4C2CEA4AABEA497BC954 /* DDDispatchQueueLogFormatter.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 129C5B44E0E41F93D6323A5B /* YapDatabaseLogging.m in Sources */ = {isa = PBXBuildFile; fileRef = 3EDB03794C1EE1D78ED16415 /* YapDatabaseLogging.m */; }; - 13BEA5FB2AE23B723E73E50F /* YapWhitelistBlacklist.h in Headers */ = {isa = PBXBuildFile; fileRef = 295FA13B52BF1EC408A07D30 /* YapWhitelistBlacklist.h */; }; - 140889D048463ED26470CA7F /* NSDictionary+MTLJSONKeyPath.h in Headers */ = {isa = PBXBuildFile; fileRef = 92B21B00302059E1DDD80395 /* NSDictionary+MTLJSONKeyPath.h */; }; - 1546EF14B923E49E2F7D7521 /* YapDatabaseSecondaryIndexTransaction.h in Headers */ = {isa = PBXBuildFile; fileRef = CA57D5967D1C64AA13F116B1 /* YapDatabaseSecondaryIndexTransaction.h */; }; - 1579C54E551620F6A55B0C2C /* Promise.h in Headers */ = {isa = PBXBuildFile; fileRef = EA8ED6BE5F0E935AEEF89179 /* Promise.h */; }; - 16866C684664F217C1EE8F44 /* DDContextFilterLogFormatter.m in Sources */ = {isa = PBXBuildFile; fileRef = 08BF8ADC6335EBEEAA693C8B /* DDContextFilterLogFormatter.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 17028C6F4337E567E4AF04E4 /* DDAbstractDatabaseLogger.m in Sources */ = {isa = PBXBuildFile; fileRef = 713BC91C67E960567555A7E3 /* DDAbstractDatabaseLogger.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 1704101AB5EC08BBA1148769 /* YapDatabaseExtensionConnection.m in Sources */ = {isa = PBXBuildFile; fileRef = AB496579B695219E073A1228 /* YapDatabaseExtensionConnection.m */; }; - 17961A2FED4FF9FA0DD79D36 /* NSObject+MTLComparisonAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = B9459FA7A26B44B49E1B8DA9 /* NSObject+MTLComparisonAdditions.h */; }; - 179DA93ABEE7EDA88B364703 /* NSMutableArray+ObjectiveSugar.m in Sources */ = {isa = PBXBuildFile; fileRef = 68409D3A60AC62207CF83689 /* NSMutableArray+ObjectiveSugar.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 17BF9625E83E90AAADC1D5A1 /* YapDatabaseFilteredView.m in Sources */ = {isa = PBXBuildFile; fileRef = 6AAEFE8334EE8B1A57941755 /* YapDatabaseFilteredView.m */; }; - 17C5D46E9D7951E2EE426AD0 /* YapDatabaseFilteredViewTypes.h in Headers */ = {isa = PBXBuildFile; fileRef = BF11035CE8441F3D8436BE98 /* YapDatabaseFilteredViewTypes.h */; }; - 17F2709276679D04C922FA06 /* SFInjectionsNotificationsCenter.m in Sources */ = {isa = PBXBuildFile; fileRef = FE63A5979137FFA0FB2ECF58 /* SFInjectionsNotificationsCenter.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 17FD72E1BD8F1E92DC5C4286 /* YapDatabaseViewChangePrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = E551A6312A2FA76799E05477 /* YapDatabaseViewChangePrivate.h */; }; - 19DA0F3D46397B9F1A21C5B6 /* NSValueTransformer+MTLPredefinedTransformerAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = DA1630DEACEC1F0DBBB26B02 /* NSValueTransformer+MTLPredefinedTransformerAdditions.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 1A0BD3516E4C120655880CA0 /* NSURLConnection+PromiseKit.h in Headers */ = {isa = PBXBuildFile; fileRef = 509D1EEBC84654B87CE5A9EC /* NSURLConnection+PromiseKit.h */; }; - 1A557CCEF12FF2E7A3C40B93 /* DDAbstractDatabaseLogger.h in Headers */ = {isa = PBXBuildFile; fileRef = ACC4ADA03EC617F34275A4AD /* DDAbstractDatabaseLogger.h */; }; - 1A57924FE25D4C3755871480 /* PMKPromise+Pause.m in Sources */ = {isa = PBXBuildFile; fileRef = ADE62191234188700E91A3C4 /* PMKPromise+Pause.m */; }; - 1AAD10E1EECE1603745DB8A7 /* YapDatabaseConnectionDefaults.h in Headers */ = {isa = PBXBuildFile; fileRef = 5A03BCA0B53EC593875B55F0 /* YapDatabaseConnectionDefaults.h */; }; - 1AFE15F07467A6CDB900CAC5 /* YapDatabaseRelationshipTransaction.h in Headers */ = {isa = PBXBuildFile; fileRef = 86490A5C7E1542C913C23B91 /* YapDatabaseRelationshipTransaction.h */; }; - 1BEBEE9C9C9FAFF34430FD48 /* YapDatabaseConnectionState.h in Headers */ = {isa = PBXBuildFile; fileRef = 0CE2F7439995D0103D65BBEF /* YapDatabaseConnectionState.h */; }; - 1BF000695CCBBAF93B5DCC64 /* YapDatabaseViewRangeOptions.h in Headers */ = {isa = PBXBuildFile; fileRef = E0410AC21BBA64B5018C9D5A /* YapDatabaseViewRangeOptions.h */; }; - 1C05F3462DA9FCE0F1422433 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 282B9211FFD2F2EA6B21538A /* Foundation.framework */; }; - 1C877CB9D82B6CC6A30E35FF /* NSDictionary+ObjectiveSugar.h in Headers */ = {isa = PBXBuildFile; fileRef = 21DCA3553D9065FA5DFACC3A /* NSDictionary+ObjectiveSugar.h */; }; - 1CA461887F4A46ED7333C2D8 /* YapDatabaseSecondaryIndex.m in Sources */ = {isa = PBXBuildFile; fileRef = DD122DC87EF95AA1148BBD4B /* YapDatabaseSecondaryIndex.m */; }; - 1CC1ACFEEFC394298F16AEE4 /* EXTNil.m in Sources */ = {isa = PBXBuildFile; fileRef = F705C1486FDCE242C971DA99 /* EXTNil.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 1CEECFB9F83765B4AAEF79E7 /* YapDatabaseCloudKitTypes.m in Sources */ = {isa = PBXBuildFile; fileRef = B2A111142956A2B235607E94 /* YapDatabaseCloudKitTypes.m */; }; - 1D2CFA9A9A83A02152EA0BA2 /* YapDatabaseFilteredViewTransaction.h in Headers */ = {isa = PBXBuildFile; fileRef = C56296B5B051B629550E3981 /* YapDatabaseFilteredViewTransaction.h */; }; - 1DFEA471D50CAED32581BD2E /* MTLValueTransformer.m in Sources */ = {isa = PBXBuildFile; fileRef = 97892F78259C4A8DFF823F37 /* MTLValueTransformer.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 1E1AB4C7E95FCD054E2E2AD5 /* NSDictionary+MTLMappingAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = B1B0B16301E7F3AA55ED61A9 /* NSDictionary+MTLMappingAdditions.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 1ECEF831A6A93F173E12DA32 /* YapDatabaseCloudKitTransaction.h in Headers */ = {isa = PBXBuildFile; fileRef = 3CB1830581E0F7750B97F18F /* YapDatabaseCloudKitTransaction.h */; }; - 1EEFAAB00A47E160EFF45F33 /* YapDatabaseSecondaryIndexHandler.m in Sources */ = {isa = PBXBuildFile; fileRef = 4FAAF95BBB79A541624C0213 /* YapDatabaseSecondaryIndexHandler.m */; }; - 1EF721D2146DE7FC6D1FA19B /* YapDatabaseRelationshipOptions.m in Sources */ = {isa = PBXBuildFile; fileRef = 1863159C33B07B9214745599 /* YapDatabaseRelationshipOptions.m */; }; - 1FA6BC142D6AB9C6B35FAC3D /* EXTScope.m in Sources */ = {isa = PBXBuildFile; fileRef = 105EB70EFA6E97885129527A /* EXTScope.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 1FC25BCF9BC1499A5C689257 /* YapDatabaseFilteredViewPrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = 8F2CE775C0991741117C17A6 /* YapDatabaseFilteredViewPrivate.h */; }; - 1FD3333D0A07AB7A4757C015 /* YDBCKMergeInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = 3D8451A16089F9E2452997B6 /* YDBCKMergeInfo.m */; }; - 1FE46598ADEE728EE54C681D /* YapDatabaseQuery.h in Headers */ = {isa = PBXBuildFile; fileRef = A9E38DE2F43EAB0D83E65838 /* YapDatabaseQuery.h */; }; - 1FFCE0601A53D98F62827B6F /* PMKPromise.m in Sources */ = {isa = PBXBuildFile; fileRef = 49E66D7F3B72C857E575D900 /* PMKPromise.m */; }; - 202A2A4170FBDB56D33CCA56 /* YapDatabaseExtensionConnection.h in Headers */ = {isa = PBXBuildFile; fileRef = A534B6AA0706AF078AECCFB3 /* YapDatabaseExtensionConnection.h */; }; - 208A7366E8216FEF47D630F5 /* NSDictionary+MTLManipulationAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = BD94BC098827CB4529B6B691 /* NSDictionary+MTLManipulationAdditions.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 20CF4F5D69E12267C92E9688 /* YapDatabaseFilteredViewConnection.h in Headers */ = {isa = PBXBuildFile; fileRef = 681FDD2EA6F32C0C0927CAD7 /* YapDatabaseFilteredViewConnection.h */; }; - 2141A96D18A8694C94878ABA /* YapDatabaseSearchResultsViewTransaction.h in Headers */ = {isa = PBXBuildFile; fileRef = 61A77A8988C9576F505C98DB /* YapDatabaseSearchResultsViewTransaction.h */; }; - 2165C42E6A3C0F9A52EA176E /* YapDatabaseSecondaryIndexSetup.m in Sources */ = {isa = PBXBuildFile; fileRef = 0C381178C401C525B83FB29C /* YapDatabaseSecondaryIndexSetup.m */; }; - 216B2BBF00259861C3672EAA /* FAImageView.m in Sources */ = {isa = PBXBuildFile; fileRef = AE0BDE620A3316B0ED12C5D6 /* FAImageView.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 21E3C2043D128E82982AFD1E /* Mantle.h in Headers */ = {isa = PBXBuildFile; fileRef = 2B676AC6FC7F0B593FF0C475 /* Mantle.h */; }; - 22C469447122BDB606CE3394 /* NSObject+MTLComparisonAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = 2596C15D5F1AE58CEB1FE929 /* NSObject+MTLComparisonAdditions.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 2399BA981BCE1F918610BA15 /* metamacros.h in Headers */ = {isa = PBXBuildFile; fileRef = E5B2C1599BA4D2E41858C836 /* metamacros.h */; }; - 23ABD2ADE971C605D2425E47 /* YapDatabaseCloudKitOptions.h in Headers */ = {isa = PBXBuildFile; fileRef = 9B56652957A37B420495B728 /* YapDatabaseCloudKitOptions.h */; }; - 24F694F5F34381AA38AEB6A4 /* YDBCKMergeInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = 26BD73A193575E26B265F62D /* YDBCKMergeInfo.h */; }; - 252A7F5502F186A5A53A6822 /* YapDatabaseCloudKit.h in Headers */ = {isa = PBXBuildFile; fileRef = BDF670E3E9733857B25E9DB8 /* YapDatabaseCloudKit.h */; }; - 252B8A117584ABA1353188C6 /* YapDatabaseFilteredViewTypes.m in Sources */ = {isa = PBXBuildFile; fileRef = 4FD8BF6204556957877719C6 /* YapDatabaseFilteredViewTypes.m */; }; - 25738E74528C5828BDC30743 /* NSObject+DyCInjection.m in Sources */ = {isa = PBXBuildFile; fileRef = 41FA86567743B90E1C5C5B2A /* NSObject+DyCInjection.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc -fno-objc-arc"; }; }; - 25B460D711D4EBE411E2E88C /* YapDatabaseExtensionConnection.m in Sources */ = {isa = PBXBuildFile; fileRef = AB496579B695219E073A1228 /* YapDatabaseExtensionConnection.m */; }; - 25C2E98CA88B16C91B382DF8 /* NSObject+MTLComparisonAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = 2596C15D5F1AE58CEB1FE929 /* NSObject+MTLComparisonAdditions.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 278136F387E138EA2D1C3124 /* YapDatabaseRelationshipConnection.h in Headers */ = {isa = PBXBuildFile; fileRef = D056195F1F4A6E3E72375C02 /* YapDatabaseRelationshipConnection.h */; }; - 27AFF141066A7DE0E5939948 /* Promise+Until.h in Headers */ = {isa = PBXBuildFile; fileRef = 2F67F2A03BD8CAE4FCA8864E /* Promise+Until.h */; }; - 27FF1695BDFB7E7291CF558D /* YapDatabaseConnection.m in Sources */ = {isa = PBXBuildFile; fileRef = 3CA8C04D7B74D34696706F13 /* YapDatabaseConnection.m */; }; - 2870099DD66B6E0A471C93BB /* UIActionSheet+PromiseKit.m in Sources */ = {isa = PBXBuildFile; fileRef = ACDC50426BA46C319FCC7580 /* UIActionSheet+PromiseKit.m */; }; - 28C43F8DBD564FDD08C43283 /* YapDatabaseViewTypes.m in Sources */ = {isa = PBXBuildFile; fileRef = A12CE7E0ACAAD4903151FC8A /* YapDatabaseViewTypes.m */; }; - 28F4983E0B511A0299216B1F /* YapDatabaseManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 73D91BB8A8E14B16DBB10DEE /* YapDatabaseManager.m */; }; - 29644FE8297FB6208735A6D6 /* YapDatabaseViewRangeOptions.m in Sources */ = {isa = PBXBuildFile; fileRef = 6188C6A5C56A8881E01E3727 /* YapDatabaseViewRangeOptions.m */; }; - 2986E5110ADBAFD19FD5AD6B /* OMGHTTPURLRQ.m in Sources */ = {isa = PBXBuildFile; fileRef = 91B4C3AA04FF0180D1576B35 /* OMGHTTPURLRQ.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 29BA0EF70A9E40DFC5DDFF24 /* YapDatabaseFilteredViewConnection.m in Sources */ = {isa = PBXBuildFile; fileRef = 3CA4E2CB17BBE44F3F11AC15 /* YapDatabaseFilteredViewConnection.m */; }; - 29EC765F52ADEF060B316CEC /* YapDatabaseSecondaryIndexPrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = E627228ACFEB88446047C673 /* YapDatabaseSecondaryIndexPrivate.h */; }; - 2A31AD05C1D1A7D43DD439E2 /* YDBCKRecord.m in Sources */ = {isa = PBXBuildFile; fileRef = A17C57A06F0A48B26E09F2C7 /* YDBCKRecord.m */; }; - 2A4A6007B2473CCFDDF3A3B5 /* YapDatabaseViewState.m in Sources */ = {isa = PBXBuildFile; fileRef = E6AD97AD225B82A4359AF1A6 /* YapDatabaseViewState.m */; }; - 2A66FC5C98ABBA3B4DEE5FEF /* YapDatabaseSearchResultsViewConnection.h in Headers */ = {isa = PBXBuildFile; fileRef = 1784AD76848A711FD14E57D8 /* YapDatabaseSearchResultsViewConnection.h */; }; - 2B2F17D0D4C8CF93CDD737C7 /* NSDictionary+YapDatabase.h in Headers */ = {isa = PBXBuildFile; fileRef = 9C32FD3A04D3DBF1F06F295A /* NSDictionary+YapDatabase.h */; }; - 2B79290F4B6E8DEBB38256FF /* DDContextFilterLogFormatter.h in Headers */ = {isa = PBXBuildFile; fileRef = 97088D634D871C989AC567F8 /* DDContextFilterLogFormatter.h */; }; - 2BDEE1C8538E09F58C077261 /* EXTRuntimeExtensions.h in Headers */ = {isa = PBXBuildFile; fileRef = 61C20876098EA3BE0E318D2C /* EXTRuntimeExtensions.h */; }; - 2CC6CD5032F35D05D99086BE /* NSDictionary+MTLMappingAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = 7B4EA2D9B2F2657EC6A40FBC /* NSDictionary+MTLMappingAdditions.h */; }; - 2D4AC1524D25A5233FF66C93 /* DDAbstractDatabaseLogger.m in Sources */ = {isa = PBXBuildFile; fileRef = 713BC91C67E960567555A7E3 /* DDAbstractDatabaseLogger.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 2DFE40865FED47236212E098 /* DDMultiFormatter.h in Headers */ = {isa = PBXBuildFile; fileRef = 69255EE076182BDFE3907A29 /* DDMultiFormatter.h */; }; - 2E07634F3AC35BE2BEA98C4F /* YapDatabaseViewConnection.h in Headers */ = {isa = PBXBuildFile; fileRef = 1A6866806A4DACB1EF227A7B /* YapDatabaseViewConnection.h */; }; - 2E2A27BFFFD01AA6DFCF8A88 /* FAImageView.h in Headers */ = {isa = PBXBuildFile; fileRef = A4E2B2B2594BC455CE033849 /* FAImageView.h */; }; - 2E86C40174240972E1D21824 /* MTLModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 8A19FCF4FEDFE1A737135355 /* MTLModel.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 2F1C9ECF9C258E3C27045813 /* YDBCKRecordTableInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = AFD8EB43C750E47E672F2A5D /* YDBCKRecordTableInfo.h */; }; - 2F89FB79EDDE991454547481 /* YapDatabaseExtensionConnection.h in Headers */ = {isa = PBXBuildFile; fileRef = A534B6AA0706AF078AECCFB3 /* YapDatabaseExtensionConnection.h */; }; - 30048B3E4EB9E41BD36DADD0 /* YapNull.m in Sources */ = {isa = PBXBuildFile; fileRef = 4526FE3440E12F0E226424E3 /* YapNull.m */; }; - 307111B60C42287C35E33F17 /* YapDatabaseViewOptions.m in Sources */ = {isa = PBXBuildFile; fileRef = 2B84FAE9096DC6E821A22193 /* YapDatabaseViewOptions.m */; }; - 3072A5F0C8625B6A2DFB67D3 /* UIImage+FontAwesome.h in Headers */ = {isa = PBXBuildFile; fileRef = 423F148D857849770632B527 /* UIImage+FontAwesome.h */; }; - 30972DF4610250BA686EEB9F /* NSNotificationCenter+PromiseKit.m in Sources */ = {isa = PBXBuildFile; fileRef = 86112BBD72AF95226FFBCB32 /* NSNotificationCenter+PromiseKit.m */; }; - 30B8C9C68568D5265DCF4D96 /* YapDatabaseStatement.m in Sources */ = {isa = PBXBuildFile; fileRef = 9F4BF4133904EC91F6C7894C /* YapDatabaseStatement.m */; }; - 3138F08E2B042ED35D2F7FB1 /* YapDatabaseViewPage.h in Headers */ = {isa = PBXBuildFile; fileRef = 0EFB27F6C4879CBCFD5F931C /* YapDatabaseViewPage.h */; }; - 313EB501EF3CBA5FCC0F7EBB /* DDTTYLogger.m in Sources */ = {isa = PBXBuildFile; fileRef = 37DA2003F00041209AD13BD0 /* DDTTYLogger.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 31B01C9266B14CCD8C7EA2BE /* YapDatabase.m in Sources */ = {isa = PBXBuildFile; fileRef = 05A4B45E796332BB64F4DBEC /* YapDatabase.m */; }; - 31B6C08F3DDBC2603411A3F3 /* UIViewController+PromiseKit.h in Headers */ = {isa = PBXBuildFile; fileRef = 69F3CB18F0BD2FB7A815570E /* UIViewController+PromiseKit.h */; }; - 31F1810B3ECB3B7E35D13013 /* UIImage+FontAwesome.m in Sources */ = {isa = PBXBuildFile; fileRef = 696F6ED531D4220585C941DE /* UIImage+FontAwesome.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 3286FE5EEE23ABC1FFD7B7DC /* OMGHTTPURLRQ.h in Headers */ = {isa = PBXBuildFile; fileRef = E07FA55FCC59E1BAB9A01C6A /* OMGHTTPURLRQ.h */; }; - 3345BA4A2C633022C52C6AA4 /* YapDatabaseView.m in Sources */ = {isa = PBXBuildFile; fileRef = B0F1AAC002F658078F7FFED8 /* YapDatabaseView.m */; }; - 33AEE597729CE5F26A8F0904 /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 337995D95A64BEC9D2535623 /* QuartzCore.framework */; }; - 3421B1D559CA8859E8E395F5 /* UINib+StoryBoardSupport.m in Sources */ = {isa = PBXBuildFile; fileRef = A9096A5DE69CB535E48E5435 /* UINib+StoryBoardSupport.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 34C77EF91099115EE4638AFC /* YapCache.m in Sources */ = {isa = PBXBuildFile; fileRef = F315CCFD0A27245944E3F42B /* YapCache.m */; }; - 34E901EE661FD81B509F0A16 /* YapDatabaseCloudKitTypes.m in Sources */ = {isa = PBXBuildFile; fileRef = B2A111142956A2B235607E94 /* YapDatabaseCloudKitTypes.m */; }; - 353BA85FDE8E3C5537377F71 /* YapDatabaseSecondaryIndexOptions.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C80234048DBD71D5000659A /* YapDatabaseSecondaryIndexOptions.m */; }; - 354BE000C1C44FC3C85DB202 /* YapDatabaseFullTextSearchSnippetOptions.h in Headers */ = {isa = PBXBuildFile; fileRef = E059B319E0FD73D04BB73471 /* YapDatabaseFullTextSearchSnippetOptions.h */; }; - 35720865AA135100C1875E02 /* YapDatabaseFilteredView.h in Headers */ = {isa = PBXBuildFile; fileRef = F33C50ACAC6196E63C7FB313 /* YapDatabaseFilteredView.h */; }; - 358220CCEF74A50E11FE7690 /* YapDatabaseRelationshipEdge.m in Sources */ = {isa = PBXBuildFile; fileRef = D437A835620FA49588FBF822 /* YapDatabaseRelationshipEdge.m */; }; - 3697A849E9562FDB6D67A31F /* YapDatabaseConnection.h in Headers */ = {isa = PBXBuildFile; fileRef = 25253F668642F34F93F33A00 /* YapDatabaseConnection.h */; }; - 374E943CE7A693722420777B /* YapCache.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E16230D0F5D1F3D90F20556 /* YapCache.h */; }; - 38001D94B3D69FEE99C468B0 /* Mantle.h in Headers */ = {isa = PBXBuildFile; fileRef = 2B676AC6FC7F0B593FF0C475 /* Mantle.h */; }; - 384EBE69E65771B7C46BA6F6 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 282B9211FFD2F2EA6B21538A /* Foundation.framework */; }; - 3890209BC4773F7414CB3D64 /* YapDatabaseLogging.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E3BDF9CE1C072CA9AE57367 /* YapDatabaseLogging.h */; }; - 3920E77EE9548079230BBE52 /* Pods-samhuri.net-MBProgressHUD-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 3D267AF5977A7AC5360BB7F7 /* Pods-samhuri.net-MBProgressHUD-dummy.m */; }; - 3925B47BD0C69F97332AE5BE /* NSArray+MTLManipulationAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = 34F95094705A52D263AB17D6 /* NSArray+MTLManipulationAdditions.h */; }; - 39787575B6BE7CB5471054E9 /* EXTConcreteProtocol.m in Sources */ = {isa = PBXBuildFile; fileRef = 4FC527BF4D6156DF3F602401 /* EXTConcreteProtocol.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 39D21701EA96EA3AA29A192D /* YDBCKRecord.h in Headers */ = {isa = PBXBuildFile; fileRef = D14F9CAC90EDB9BBAC6B4EBD /* YDBCKRecord.h */; }; - 39F10802E3C1328B3A800D4F /* DDDispatchQueueLogFormatter.h in Headers */ = {isa = PBXBuildFile; fileRef = 7179DB8624B6FDCCD414340B /* DDDispatchQueueLogFormatter.h */; }; - 3AD932611B867767C1C6FC56 /* NSDictionary+MTLJSONKeyPath.h in Headers */ = {isa = PBXBuildFile; fileRef = 92B21B00302059E1DDD80395 /* NSDictionary+MTLJSONKeyPath.h */; }; - 3B006A267CA59F3D78F7BDC4 /* NSDictionary+MTLJSONKeyPath.m in Sources */ = {isa = PBXBuildFile; fileRef = 76B6885BED46A34231D2AA63 /* NSDictionary+MTLJSONKeyPath.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 3B207885E9C8A662288025E3 /* YapDatabaseTransaction.h in Headers */ = {isa = PBXBuildFile; fileRef = 28965EF36F91445CA1F60896 /* YapDatabaseTransaction.h */; }; - 3BBF3C85A560C7DDCD22AA50 /* YapMemoryTable.m in Sources */ = {isa = PBXBuildFile; fileRef = 5A915C2018C7188C18AEA6BA /* YapMemoryTable.m */; }; - 3D10468D8752DAA32EE07781 /* YapDatabaseQuery.m in Sources */ = {isa = PBXBuildFile; fileRef = EF6FC1CC5A910AB5BBD4A60D /* YapDatabaseQuery.m */; }; - 3D713D147BB77582578E7A46 /* OMGUserAgent.m in Sources */ = {isa = PBXBuildFile; fileRef = EB10B6590D0FF76128A2727B /* OMGUserAgent.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 3DBCED99292ABD432F29A17B /* EXTSafeCategory.h in Headers */ = {isa = PBXBuildFile; fileRef = EE50E6FE438091CDBEEA8379 /* EXTSafeCategory.h */; }; - 3DD21C1C79DE3E3BD35936A4 /* YapDatabaseExtensionTransaction.h in Headers */ = {isa = PBXBuildFile; fileRef = 9F2301E8E4020A0784F1E252 /* YapDatabaseExtensionTransaction.h */; }; - 3EC415D8CF1BAE671926C78A /* YapDatabaseRelationship.h in Headers */ = {isa = PBXBuildFile; fileRef = 634946019DCA0FC20F8A0C24 /* YapDatabaseRelationship.h */; }; - 3F07750D3F291635B5A32FA2 /* YapMurmurHash.m in Sources */ = {isa = PBXBuildFile; fileRef = BEB425B1114D949845BDF86E /* YapMurmurHash.m */; }; - 3F281064F253E9E2F0D8E0B0 /* YapDatabaseSearchResultsViewTransaction.h in Headers */ = {isa = PBXBuildFile; fileRef = 61A77A8988C9576F505C98DB /* YapDatabaseSearchResultsViewTransaction.h */; }; - 3FD4F9A6D1E0D92E392E677B /* NSString+FontAwesome.m in Sources */ = {isa = PBXBuildFile; fileRef = B0D7BE5939DDF632A91F809A /* NSString+FontAwesome.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 40CE9F2F979FE53276D94D70 /* Pods-samhuri.net-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 3CB41934427A39A44B61B5B8 /* Pods-samhuri.net-dummy.m */; }; - 40D1D13F68058673EA545AD9 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 282B9211FFD2F2EA6B21538A /* Foundation.framework */; }; - 410450C8872122B209B5A1AF /* EXTSelectorChecking.m in Sources */ = {isa = PBXBuildFile; fileRef = 895404BEE45472758E516B8A /* EXTSelectorChecking.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 415CC871BEF61F0571C2903C /* YapTouch.m in Sources */ = {isa = PBXBuildFile; fileRef = 2E3487FC5A902204ABC002FE /* YapTouch.m */; }; - 421CE780AC3B652433D5EF3D /* NSString+FontAwesome.h in Headers */ = {isa = PBXBuildFile; fileRef = 2271EAA178AE46FA26875B0F /* NSString+FontAwesome.h */; }; - 42A781CF0960033B4C75F190 /* YapDatabaseFullTextSearchHandler.h in Headers */ = {isa = PBXBuildFile; fileRef = 08F9631220752789EFC32EDF /* YapDatabaseFullTextSearchHandler.h */; }; - 42D61D1A305D7F3BFDED6D77 /* UIViewController+PromiseKit.m in Sources */ = {isa = PBXBuildFile; fileRef = B4621CFB38ED1F55BD111539 /* UIViewController+PromiseKit.m */; }; - 43310C7852933F81B689FD80 /* YapDatabaseViewTypes.m in Sources */ = {isa = PBXBuildFile; fileRef = A12CE7E0ACAAD4903151FC8A /* YapDatabaseViewTypes.m */; }; - 43DDC4E226CB3DBAA6DF440A /* SFDynamicCodeInjection.h in Headers */ = {isa = PBXBuildFile; fileRef = 2C058B96487AFE809BA37B48 /* SFDynamicCodeInjection.h */; }; - 43ED0D8400202BEAE5B6F032 /* YapDatabaseSecondaryIndexOptions.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C80234048DBD71D5000659A /* YapDatabaseSecondaryIndexOptions.m */; }; - 452730B214FC6FCA0D971A90 /* YapDatabaseConnectionDefaults.m in Sources */ = {isa = PBXBuildFile; fileRef = 6CFB1E1426BA23ADE09F279C /* YapDatabaseConnectionDefaults.m */; }; - 459AA756788A80D5F96761E5 /* NSString+ObjectiveSugar.h in Headers */ = {isa = PBXBuildFile; fileRef = C94F068735DD25B3F47447A7 /* NSString+ObjectiveSugar.h */; }; - 46CAAF699C6461DB10535CC2 /* OMGHTTPURLRQ.m in Sources */ = {isa = PBXBuildFile; fileRef = 91B4C3AA04FF0180D1576B35 /* OMGHTTPURLRQ.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 46CDC935161A17799E08A82D /* YapDatabaseCloudKitPrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = F34B15A83ECE7FD57A16725C /* YapDatabaseCloudKitPrivate.h */; }; - 4710CEEF69FAE68A05FC44D4 /* YapDatabaseViewTransaction.h in Headers */ = {isa = PBXBuildFile; fileRef = C7DBD38E1A6FB082A4FC248E /* YapDatabaseViewTransaction.h */; }; - 477ADD56A9471A891355C031 /* Pods-Blog-OMGHTTPURLRQ-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = E09576D940AC91C4F475452C /* Pods-Blog-OMGHTTPURLRQ-dummy.m */; }; - 47C4AEC4E41E99DB5164A8E3 /* YapRowidSet.h in Headers */ = {isa = PBXBuildFile; fileRef = F1AC858269432ACD0E963EED /* YapRowidSet.h */; }; - 48636383586DE5319CFF03CB /* YapDatabaseViewRangeOptionsPrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = 9CD9EE6B1057B60296198587 /* YapDatabaseViewRangeOptionsPrivate.h */; }; - 4890D134C0665E5CAA406A28 /* OMGHTTPURLRQ.h in Headers */ = {isa = PBXBuildFile; fileRef = E07FA55FCC59E1BAB9A01C6A /* OMGHTTPURLRQ.h */; }; - 48B276494586442613ACAF0C /* Pods-samhuri.net-ObjectiveSugar-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 6DD0D5C44738B16EEEAACFDD /* Pods-samhuri.net-ObjectiveSugar-dummy.m */; }; - 48D8FD2E9CFF49BEF3F5A78C /* YapDatabaseLogging.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E3BDF9CE1C072CA9AE57367 /* YapDatabaseLogging.h */; }; - 4954A0444441EAFB954A4814 /* CALayer+PromiseKit.h in Headers */ = {isa = PBXBuildFile; fileRef = DB7EE0A8BE1C843607A95B96 /* CALayer+PromiseKit.h */; }; - 497F2A894BF79C38B4FDC8A0 /* SFInjectionsNotificationsCenter.h in Headers */ = {isa = PBXBuildFile; fileRef = 959D14BDE72A8AEF1BC386BB /* SFInjectionsNotificationsCenter.h */; }; - 49D22B95EB8C3423D5AA308B /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BDE7046DB6D273BC2CCF83FD /* CoreGraphics.framework */; }; - 4A106DD36DD71F79A79B91E7 /* NSNumber+ObjectiveSugar.h in Headers */ = {isa = PBXBuildFile; fileRef = F4084EE5921F8B24A0D25AC6 /* NSNumber+ObjectiveSugar.h */; }; - 4A4DAA9C7812E9A45D3632B9 /* SFFileWatcher.m in Sources */ = {isa = PBXBuildFile; fileRef = 349A76A262017BE01B9A86C5 /* SFFileWatcher.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 4AD1C7D9A8947566FC890853 /* YapDatabaseString.h in Headers */ = {isa = PBXBuildFile; fileRef = BD5003130FC9121387EE8C8B /* YapDatabaseString.h */; }; - 4B2735621138369A716C0CBF /* YapDatabaseViewRangeOptions.h in Headers */ = {isa = PBXBuildFile; fileRef = E0410AC21BBA64B5018C9D5A /* YapDatabaseViewRangeOptions.h */; }; - 4C91165095D369C91AFC55B3 /* YapDatabaseManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 73D91BB8A8E14B16DBB10DEE /* YapDatabaseManager.m */; }; - 4D00B24DBBF71E9F1A5860FB /* NSValueTransformer+MTLPredefinedTransformerAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = 68C325E0F350FD04981ED74F /* NSValueTransformer+MTLPredefinedTransformerAdditions.h */; }; - 4D11171E67F0DA3594A16E7F /* YapSet.h in Headers */ = {isa = PBXBuildFile; fileRef = 32CE7DC3A3011AFE024C1BD6 /* YapSet.h */; }; - 4DD3F6A89DB14BB58F97F4CF /* DDDispatchQueueLogFormatter.m in Sources */ = {isa = PBXBuildFile; fileRef = E00F4C2CEA4AABEA497BC954 /* DDDispatchQueueLogFormatter.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 4DEC4A71E3626BDCA40BA4E6 /* YapDatabaseFullTextSearchPrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = 27B7ABCDE2097188B5ACFA26 /* YapDatabaseFullTextSearchPrivate.h */; }; - 4DFDB7BF9D8FAC19064586B9 /* NSArray+MTLManipulationAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = 34F95094705A52D263AB17D6 /* NSArray+MTLManipulationAdditions.h */; }; - 4ED75DB13BFD2834A8D6866B /* SFFileWatcher.h in Headers */ = {isa = PBXBuildFile; fileRef = AD57B3F5CA76A8FBA1527BEE /* SFFileWatcher.h */; }; - 4F0A4A2B8D5F7CA9D4374DEF /* NSDictionary+MTLManipulationAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = BD94BC098827CB4529B6B691 /* NSDictionary+MTLManipulationAdditions.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 4F9BF90F1E5F1BE97B50AF2B /* NSArray+MTLManipulationAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = 6CBEC5B980E9F5999568CA3D /* NSArray+MTLManipulationAdditions.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 4FD5964E08C1F9302ACD7DFB /* YapDatabaseSearchResultsViewOptions.m in Sources */ = {isa = PBXBuildFile; fileRef = 322A6EDFCB536912D423794E /* YapDatabaseSearchResultsViewOptions.m */; }; - 4FFB6714A63209102AC9612D /* DDASLLogger.m in Sources */ = {isa = PBXBuildFile; fileRef = F0CEAFE4966D62D25D52F4CE /* DDASLLogger.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 50071C867E89CE5AA2170C0C /* YapDatabaseCloudKitTransaction.h in Headers */ = {isa = PBXBuildFile; fileRef = 3CB1830581E0F7750B97F18F /* YapDatabaseCloudKitTransaction.h */; }; - 5026248FC0B00F3614295F22 /* YDBCKRecordTableInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = 37FE19233C994D0A51E15285 /* YDBCKRecordTableInfo.m */; }; - 506035626E4085061787A9E6 /* YapDatabaseRelationshipConnection.m in Sources */ = {isa = PBXBuildFile; fileRef = DD46B99FC4F0FBEC69A8D8FF /* YapDatabaseRelationshipConnection.m */; }; - 50B10246D96213A8958248E1 /* YapDatabaseRelationshipEdge.h in Headers */ = {isa = PBXBuildFile; fileRef = D8347C06DDDCDECFEEEB950D /* YapDatabaseRelationshipEdge.h */; }; - 512C4BF447EDA603FAA3CA4D /* YapDatabaseStatement.h in Headers */ = {isa = PBXBuildFile; fileRef = DE7DEDA3D0BE9F15715450E5 /* YapDatabaseStatement.h */; }; - 51527E79DBBADAD6CC1F4381 /* YapDatabaseViewTransaction.h in Headers */ = {isa = PBXBuildFile; fileRef = C7DBD38E1A6FB082A4FC248E /* YapDatabaseViewTransaction.h */; }; - 515DC9169987004125A36FDA /* YapDatabaseSecondaryIndexConnection.m in Sources */ = {isa = PBXBuildFile; fileRef = D9CC93DB3842FCD2686B0818 /* YapDatabaseSecondaryIndexConnection.m */; }; - 5180F38E63218E74882FE3B2 /* MTLJSONAdapter.m in Sources */ = {isa = PBXBuildFile; fileRef = 56CA459B2FFE8509276AF82A /* MTLJSONAdapter.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 518A05DB486C2D5234197E99 /* YapDatabaseExtensionPrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = 89C91FFE423BF4A4AED61E95 /* YapDatabaseExtensionPrivate.h */; }; - 52430495A4D41CEBC72253E5 /* YapDatabaseSearchResultsViewTransaction.m in Sources */ = {isa = PBXBuildFile; fileRef = 18687F1C88FFF4AA735AB49E /* YapDatabaseSearchResultsViewTransaction.m */; }; - 52787E0E24FDE7F9F70FB36C /* NSDictionary+MTLMappingAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = 7B4EA2D9B2F2657EC6A40FBC /* NSDictionary+MTLMappingAdditions.h */; }; - 537506CD7A26CC1CAE5F5AF7 /* YapDatabaseSearchResultsViewOptions.h in Headers */ = {isa = PBXBuildFile; fileRef = 42603304AE5D753415BC0AF9 /* YapDatabaseSearchResultsViewOptions.h */; }; - 544FF475679E921F98AE63C6 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 113FC1CE12C29850DA58914B /* UIKit.framework */; }; - 545C0F3BECE9F7221B8BA0E3 /* MTLJSONAdapter.h in Headers */ = {isa = PBXBuildFile; fileRef = 4DCEB5E54C2A35459ED59054 /* MTLJSONAdapter.h */; }; - 54BC16BDB881424710ECAD9D /* YapDatabaseCloudKitOptions.m in Sources */ = {isa = PBXBuildFile; fileRef = 246374EB66C3DED971BDFA98 /* YapDatabaseCloudKitOptions.m */; }; - 5528E3FC0D1F65CF00563006 /* YapDatabase.h in Headers */ = {isa = PBXBuildFile; fileRef = 7B241E60723A2C4C61918512 /* YapDatabase.h */; }; - 55F912F459CAB0C7C23DAC5B /* DDASLLogCapture.m in Sources */ = {isa = PBXBuildFile; fileRef = AAD1947343ECF887A0F86AAD /* DDASLLogCapture.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 56810E3C760B148DA91247B5 /* YDBCKChangeQueue.h in Headers */ = {isa = PBXBuildFile; fileRef = 22E2BE721AB7902C5709752B /* YDBCKChangeQueue.h */; }; - 56F943ACBF3B079304259FF2 /* Pods-samhuri.net-Mantle-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 547E0C610F134F11F17F7664 /* Pods-samhuri.net-Mantle-dummy.m */; }; - 575759749E7A4C5227BF98C8 /* YapDatabaseRelationship.m in Sources */ = {isa = PBXBuildFile; fileRef = B987983BAE99D1200135A6D5 /* YapDatabaseRelationship.m */; }; - 5790776E50FDB121E500047A /* Pods-Blog-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 8F362095B44E9606CFF28D43 /* Pods-Blog-dummy.m */; }; - 5804BFDF831D16C929B43FCB /* MBProgressHUD.m in Sources */ = {isa = PBXBuildFile; fileRef = 26D67668333253E8C2245192 /* MBProgressHUD.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 584B810F4C366ACD8FD9FCB1 /* YapDatabaseSearchResultsView.h in Headers */ = {isa = PBXBuildFile; fileRef = D2F97F98947C1274C7DE386D /* YapDatabaseSearchResultsView.h */; }; - 58761A783890DB0A1FD88FF0 /* EXTKeyPathCoding.h in Headers */ = {isa = PBXBuildFile; fileRef = 460D03ADC9278DEE1EA6F3FB /* EXTKeyPathCoding.h */; }; - 587BBD5C63BAE018AA6D7A22 /* DDFileLogger.h in Headers */ = {isa = PBXBuildFile; fileRef = DD22178A835D85EE476DA1E8 /* DDFileLogger.h */; }; - 58A7D8FA71AA27663FA247AE /* YapDatabaseExtension.h in Headers */ = {isa = PBXBuildFile; fileRef = FC18FEA194A01FF1F09F4976 /* YapDatabaseExtension.h */; }; - 59396BF394A074D5F213CAAD /* PromiseKit.h in Headers */ = {isa = PBXBuildFile; fileRef = 6AA1D52525F1F893E4247002 /* PromiseKit.h */; }; - 59CDC94C083B27BA1715E444 /* YapDatabaseRelationshipConnection.h in Headers */ = {isa = PBXBuildFile; fileRef = D056195F1F4A6E3E72375C02 /* YapDatabaseRelationshipConnection.h */; }; - 59D6D1DD3E06C9A0E6A35654 /* YDBCKMergeInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = 3D8451A16089F9E2452997B6 /* YDBCKMergeInfo.m */; }; - 59F02357F46162F43B0C1DAC /* MBProgressHUD.m in Sources */ = {isa = PBXBuildFile; fileRef = 26D67668333253E8C2245192 /* MBProgressHUD.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 5A221B8046120ACD1D6E5CB5 /* YapDatabaseViewPageMetadata.m in Sources */ = {isa = PBXBuildFile; fileRef = C43FA8920F4D17EE9023C769 /* YapDatabaseViewPageMetadata.m */; }; - 5A86DC168DE3B006FDA91247 /* NSValueTransformer+MTLPredefinedTransformerAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = 68C325E0F350FD04981ED74F /* NSValueTransformer+MTLPredefinedTransformerAdditions.h */; }; - 5C53FAA47582AEBE9BB4E03D /* UIViewController+XIBSupport.h in Headers */ = {isa = PBXBuildFile; fileRef = 7891CFAFF566F8684D3075D5 /* UIViewController+XIBSupport.h */; }; - 5CBD8AF797EF56FF8A4C0EC5 /* YapDatabaseViewPage.mm in Sources */ = {isa = PBXBuildFile; fileRef = 63B74A3BDE5D2C43ED4C300F /* YapDatabaseViewPage.mm */; }; - 5D17AC660FB12C5C86B9D65D /* YapDatabaseViewTypes.h in Headers */ = {isa = PBXBuildFile; fileRef = B83D6397BBA0C832599715CF /* YapDatabaseViewTypes.h */; }; - 5D5F904142DA1E679B22B39A /* YapNull.m in Sources */ = {isa = PBXBuildFile; fileRef = 4526FE3440E12F0E226424E3 /* YapNull.m */; }; - 5DA5FD41E1E4A08FC32BF212 /* YapDatabaseSearchQueuePrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = 1FFF64ECFF383922B2C27C21 /* YapDatabaseSearchQueuePrivate.h */; }; - 5F987A7A5900403D83899F69 /* DDASLLogger.h in Headers */ = {isa = PBXBuildFile; fileRef = 40668D7AD9D7B1456E623014 /* DDASLLogger.h */; }; - 5FBEEA8FD4BB655F51769DA9 /* DDFileLogger.m in Sources */ = {isa = PBXBuildFile; fileRef = 3D9CCA2DFAB56D733D2B5075 /* DDFileLogger.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 5FF0555AF8A7D412653110C1 /* MTLReflection.m in Sources */ = {isa = PBXBuildFile; fileRef = DFAF920A969CF66653C464CF /* MTLReflection.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 6095D46360CCC9D88B6BAD8A /* NSDictionary+ObjectiveSugar.m in Sources */ = {isa = PBXBuildFile; fileRef = 16DAEEE0FC4F440060ACF984 /* NSDictionary+ObjectiveSugar.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 60FF75B66C5357D6DE4BF850 /* YapDatabaseView.h in Headers */ = {isa = PBXBuildFile; fileRef = 8DBBA9D2D52D43F8A8752E8A /* YapDatabaseView.h */; }; - 61B7DE14D404EE15716EDDB2 /* DDLog.h in Headers */ = {isa = PBXBuildFile; fileRef = 0E2D7EE88C3D855404E6AF0A /* DDLog.h */; }; - 627D7C1E745D5157A6BB11CB /* EXTScope.h in Headers */ = {isa = PBXBuildFile; fileRef = AA0D30FD1176F99D224FC86A /* EXTScope.h */; }; - 629F834049FEC9A37031CC88 /* ObjectiveSugar.h in Headers */ = {isa = PBXBuildFile; fileRef = 6FC571996060E71C36F9609F /* ObjectiveSugar.h */; }; - 62B64AA28286D99009CF6B6C /* YapDatabaseSecondaryIndexTransaction.m in Sources */ = {isa = PBXBuildFile; fileRef = C3D5ED24D0D549034AFFD8C1 /* YapDatabaseSecondaryIndexTransaction.m */; }; - 62CE36F5E6E8C78D94E82086 /* NSNumber+ObjectiveSugar.m in Sources */ = {isa = PBXBuildFile; fileRef = 292ADC73D143BB23A41C2F8E /* NSNumber+ObjectiveSugar.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 62E1D8BAD93C1F2802EE3194 /* MTLModel+NSCoding.h in Headers */ = {isa = PBXBuildFile; fileRef = DB13F9E8BE40D9526BAF9596 /* MTLModel+NSCoding.h */; }; - 62FB3BC1EBD87AB0C43255B4 /* NSDictionary+MTLMappingAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = B1B0B16301E7F3AA55ED61A9 /* NSDictionary+MTLMappingAdditions.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 637C54174018EC58B63431DC /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 282B9211FFD2F2EA6B21538A /* Foundation.framework */; }; - 6509CFAE07D3A72F21059B53 /* YapDatabaseViewRangeOptionsPrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = 9CD9EE6B1057B60296198587 /* YapDatabaseViewRangeOptionsPrivate.h */; }; - 657ACB9F07A569478D242DE4 /* YapDatabaseRelationshipTransaction.m in Sources */ = {isa = PBXBuildFile; fileRef = 4375875DBF26E773E7BDD0A2 /* YapDatabaseRelationshipTransaction.m */; }; - 66A2F55FA6A0B38F6F51902C /* YapDatabaseFullTextSearch.m in Sources */ = {isa = PBXBuildFile; fileRef = 3F4DA54A83A51A4C3DD5C88E /* YapDatabaseFullTextSearch.m */; }; - 670A7640494791E6D2E51B8A /* NSArray+ObjectiveSugar.h in Headers */ = {isa = PBXBuildFile; fileRef = 44290497B83C652848C2AD4A /* NSArray+ObjectiveSugar.h */; }; - 670BB2C89C5E0CA8E48AD995 /* YapRowidSet.mm in Sources */ = {isa = PBXBuildFile; fileRef = 877AEDBCB6C973CE784A7612 /* YapRowidSet.mm */; }; - 6722DF77781536AE04DB079E /* YapDatabaseCloudKitOptions.h in Headers */ = {isa = PBXBuildFile; fileRef = 9B56652957A37B420495B728 /* YapDatabaseCloudKitOptions.h */; }; - 67B74B7D876412E21F14FAC7 /* YDBCKMappingTableInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = 4B5E0DAB0F48615409D8356F /* YDBCKMappingTableInfo.m */; }; - 67CC384A132D9F07630CEDE2 /* YapTouch.h in Headers */ = {isa = PBXBuildFile; fileRef = AE5975520DCEEF0BAF8507B5 /* YapTouch.h */; }; - 686E16572DD5A8D90F3F8F0A /* YapDatabaseSearchResultsViewOptions.h in Headers */ = {isa = PBXBuildFile; fileRef = 42603304AE5D753415BC0AF9 /* YapDatabaseSearchResultsViewOptions.h */; }; - 6880E7BC14AE25750621F72A /* YapDatabaseViewOptions.m in Sources */ = {isa = PBXBuildFile; fileRef = 2B84FAE9096DC6E821A22193 /* YapDatabaseViewOptions.m */; }; - 68DEA58764C4282F9525D49E /* DDASLLogCapture.m in Sources */ = {isa = PBXBuildFile; fileRef = AAD1947343ECF887A0F86AAD /* DDASLLogCapture.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 6A8D2E3E20419404444C65D2 /* YapCache.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E16230D0F5D1F3D90F20556 /* YapCache.h */; }; - 6AFAC7E6B6D6D877B24B492B /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 113FC1CE12C29850DA58914B /* UIKit.framework */; }; - 6B19B512D86BFE72E8C00C7A /* YapDatabaseFullTextSearch.m in Sources */ = {isa = PBXBuildFile; fileRef = 3F4DA54A83A51A4C3DD5C88E /* YapDatabaseFullTextSearch.m */; }; - 6B85B68AE11AE82F71F65BC3 /* MTLValueTransformer.h in Headers */ = {isa = PBXBuildFile; fileRef = 2BFD39420731A8315336D476 /* MTLValueTransformer.h */; }; - 6BAF5669D91C351368D0924F /* YapDatabaseFullTextSearchConnection.h in Headers */ = {isa = PBXBuildFile; fileRef = 5D2AA5881FC238BBD9A2077A /* YapDatabaseFullTextSearchConnection.h */; }; - 6BFF889018D748F49AB84CBE /* YDBCKAttachRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = 2E1B5DB271BEA6ACAC0D7CF8 /* YDBCKAttachRequest.m */; }; - 6C0856F08A9BDC137A3F0ED3 /* YapDatabaseCloudKitOptions.m in Sources */ = {isa = PBXBuildFile; fileRef = 246374EB66C3DED971BDFA98 /* YapDatabaseCloudKitOptions.m */; }; - 6C46AA1321E390658103EA81 /* YapDatabaseRelationshipEdge.m in Sources */ = {isa = PBXBuildFile; fileRef = D437A835620FA49588FBF822 /* YapDatabaseRelationshipEdge.m */; }; - 6DEA03AA16894415A172E984 /* YapDatabaseFullTextSearchPrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = 27B7ABCDE2097188B5ACFA26 /* YapDatabaseFullTextSearchPrivate.h */; }; - 6EAFCD8B5E4B1B0E70CE2123 /* OMGFormURLEncode.m in Sources */ = {isa = PBXBuildFile; fileRef = 142AC53FEB92071B60F07F34 /* OMGFormURLEncode.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 6EF6C4587A9E6A22341981B6 /* EXTNil.h in Headers */ = {isa = PBXBuildFile; fileRef = 56D7019F69A8FACE13A8F912 /* EXTNil.h */; }; - 6F2616F27720A72FC18D19BA /* YapDatabaseSecondaryIndexHandler.h in Headers */ = {isa = PBXBuildFile; fileRef = 645D577E41F144151AF448CE /* YapDatabaseSecondaryIndexHandler.h */; }; - 6FF2381091928DAC2B1478C4 /* EXTSafeCategory.m in Sources */ = {isa = PBXBuildFile; fileRef = 01069A44285D1FE6BB352013 /* EXTSafeCategory.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 7090DABFC728D90033EB3204 /* YapDatabaseViewChange.h in Headers */ = {isa = PBXBuildFile; fileRef = 9E8129BFA6BCE82E4531713D /* YapDatabaseViewChange.h */; }; - 70B297DFD2AF33D6A9460743 /* metamacros.h in Headers */ = {isa = PBXBuildFile; fileRef = E5B2C1599BA4D2E41858C836 /* metamacros.h */; }; - 70DEE267D47FC4F5541A289C /* YapDatabaseFullTextSearchConnection.h in Headers */ = {isa = PBXBuildFile; fileRef = 5D2AA5881FC238BBD9A2077A /* YapDatabaseFullTextSearchConnection.h */; }; - 715A8CA6BD8682575DEA51F6 /* YapDatabaseFilteredViewTransaction.h in Headers */ = {isa = PBXBuildFile; fileRef = C56296B5B051B629550E3981 /* YapDatabaseFilteredViewTransaction.h */; }; - 72044C7CDBBCBC7D602CDEBE /* YapDatabaseViewChangePrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = E551A6312A2FA76799E05477 /* YapDatabaseViewChangePrivate.h */; }; - 72682EE21FA484D4349E2D41 /* Pods-samhuri.net-CocoaLumberjack-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 240E372D9BC934267E060F45 /* Pods-samhuri.net-CocoaLumberjack-dummy.m */; }; - 72967322EE192FFF6979CFB4 /* YapDatabaseRelationshipEdge.h in Headers */ = {isa = PBXBuildFile; fileRef = D8347C06DDDCDECFEEEB950D /* YapDatabaseRelationshipEdge.h */; }; - 72E316936606D1044E77894B /* NSDictionary+ObjectiveSugar.m in Sources */ = {isa = PBXBuildFile; fileRef = 16DAEEE0FC4F440060ACF984 /* NSDictionary+ObjectiveSugar.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 7388EB18A537BD973559A546 /* NSInvocation+EXT.m in Sources */ = {isa = PBXBuildFile; fileRef = 58A8E5B9EF491E6EBEA811F4 /* NSInvocation+EXT.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 73C0368FF6BCDCE40AE6301B /* NSValueTransformer+MTLInversionAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = 97EDC1CE12F7454A1577983F /* NSValueTransformer+MTLInversionAdditions.h */; }; - 73C3A62207D794820FF67493 /* YapSet.m in Sources */ = {isa = PBXBuildFile; fileRef = 66BA5087B815C31DC755D759 /* YapSet.m */; }; - 7439E0C912A7EFB38F43A461 /* YapWhitelistBlacklist.m in Sources */ = {isa = PBXBuildFile; fileRef = 5E6272DFACEB1CAB08C65772 /* YapWhitelistBlacklist.m */; }; - 753052C0BDF5978ADBE66F0C /* Pods-Blog-ObjectiveSugar-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 73CCE0F1C83C0994FFC3E48F /* Pods-Blog-ObjectiveSugar-dummy.m */; }; - 756ECE33A18CB6BF1D713112 /* YapDatabaseSearchResultsViewPrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = 36A385ED54EA2353AEA99BFD /* YapDatabaseSearchResultsViewPrivate.h */; }; - 7580E07B13D9647AC69E0C80 /* Pods-Blog-YapDatabase-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = C37519D9FDFE06C1EC83F2B2 /* Pods-Blog-YapDatabase-dummy.m */; }; - 7591056B2CB9E11889585B90 /* YapDebugDictionary.m in Sources */ = {isa = PBXBuildFile; fileRef = 1D157FFDB1D61A6CEF1B03C6 /* YapDebugDictionary.m */; }; - 75D9FFEEEAF302FE0605A6C7 /* YapDatabaseViewMappingsPrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = C31DF20DFF8951BEBD0CE76D /* YapDatabaseViewMappingsPrivate.h */; }; - 75FEF8C3FE748AF456CEECBA /* YapDatabaseConnectionDefaults.m in Sources */ = {isa = PBXBuildFile; fileRef = 6CFB1E1426BA23ADE09F279C /* YapDatabaseConnectionDefaults.m */; }; - 760BBC129A934F7A0CA8BD1B /* Pods-Blog-libextobjc-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 7A289C8AFDFB082AC4C361B5 /* Pods-Blog-libextobjc-dummy.m */; }; - 770C60D86FA0760EBE50BA11 /* UIActionSheet+PromiseKit.m in Sources */ = {isa = PBXBuildFile; fileRef = ACDC50426BA46C319FCC7580 /* UIActionSheet+PromiseKit.m */; }; - 785DAE28BAF26D3A32E5F1BF /* NSURLConnection+PromiseKit.h in Headers */ = {isa = PBXBuildFile; fileRef = 509D1EEBC84654B87CE5A9EC /* NSURLConnection+PromiseKit.h */; }; - 78F61C9447CD24893149C986 /* YapDatabaseFilteredViewPrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = 8F2CE775C0991741117C17A6 /* YapDatabaseFilteredViewPrivate.h */; }; - 7944D09CB2AF7DC4B702BEDF /* UIAlertView+PromiseKit.h in Headers */ = {isa = PBXBuildFile; fileRef = E265977D887E17AC61258250 /* UIAlertView+PromiseKit.h */; }; - 79894A61C5A0FCC6F2832A4C /* MBProgressHUD.h in Headers */ = {isa = PBXBuildFile; fileRef = 732A57C29CE769769AC295FB /* MBProgressHUD.h */; }; - 7992A32505715D774BE66A03 /* YapDatabaseSearchQueuePrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = 1FFF64ECFF383922B2C27C21 /* YapDatabaseSearchQueuePrivate.h */; }; - 7A1B0B983A5ECB3DC65A77F0 /* MTLReflection.h in Headers */ = {isa = PBXBuildFile; fileRef = D6F649D98FF31429228DA07B /* MTLReflection.h */; }; - 7A9B0CF4E630E922DA133597 /* DDASLLogCapture.h in Headers */ = {isa = PBXBuildFile; fileRef = 61576E9675A4DBF5F8B14925 /* DDASLLogCapture.h */; }; - 7ABF98AB72A56026B9C53EB1 /* YapMemoryTable.h in Headers */ = {isa = PBXBuildFile; fileRef = D227F98CFDC69A99159C6C15 /* YapMemoryTable.h */; }; - 7AFB20FAD65C310074D81E74 /* PromiseKit.h in Headers */ = {isa = PBXBuildFile; fileRef = 6AA1D52525F1F893E4247002 /* PromiseKit.h */; }; - 7C821F8F4C7D05C164221224 /* YapDatabaseCloudKitConnection.m in Sources */ = {isa = PBXBuildFile; fileRef = 6554430CBCF9416FB8671D97 /* YapDatabaseCloudKitConnection.m */; }; - 7C90CE28B7C731E7AAD079F4 /* fwd.h in Headers */ = {isa = PBXBuildFile; fileRef = C841A29BC816EA1D9898F6A9 /* fwd.h */; }; - 7CAA842ED5165F4B3D447001 /* NSURLConnection+PromiseKit.m in Sources */ = {isa = PBXBuildFile; fileRef = 03B758E6F2BBE95619257F7E /* NSURLConnection+PromiseKit.m */; }; - 7EF15106C430D0D4C3BAD23E /* extobjc.h in Headers */ = {isa = PBXBuildFile; fileRef = A91B4F1C9D2D7D99EE8B3B3C /* extobjc.h */; }; - 7F4DD96B05B6D579C6D690FF /* YapDatabaseManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 03E7AE5E5F87DE38625B7182 /* YapDatabaseManager.h */; }; - 7F8C19A2012A00C8A18E3400 /* YapDatabaseSecondaryIndexSetup.h in Headers */ = {isa = PBXBuildFile; fileRef = C3503A5B9E91A284655E94DF /* YapDatabaseSecondaryIndexSetup.h */; }; - 7F8C74FF0C080E973FE2137C /* YapDatabaseSearchResultsViewTransaction.m in Sources */ = {isa = PBXBuildFile; fileRef = 18687F1C88FFF4AA735AB49E /* YapDatabaseSearchResultsViewTransaction.m */; }; - 7F9A584DE412377854B723FA /* UIFont+FontAwesome.m in Sources */ = {isa = PBXBuildFile; fileRef = D17A7DFC073846581287A51D /* UIFont+FontAwesome.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 80D6EF4201CB4FFCB958F024 /* MTLModel.h in Headers */ = {isa = PBXBuildFile; fileRef = 7D99FA2965FE4B331BABD09B /* MTLModel.h */; }; - 8109D9793D3606DA42AFCE32 /* NSDictionary+ObjectiveSugar.h in Headers */ = {isa = PBXBuildFile; fileRef = 21DCA3553D9065FA5DFACC3A /* NSDictionary+ObjectiveSugar.h */; }; - 8180E03DD1E4F382B2A57455 /* YapDatabaseSecondaryIndex.h in Headers */ = {isa = PBXBuildFile; fileRef = 03F716AF51842D5CACEF1B81 /* YapDatabaseSecondaryIndex.h */; }; - 81981C51895C5DCE801F13A6 /* YapDatabaseViewState.h in Headers */ = {isa = PBXBuildFile; fileRef = 26896C5EA3FFCF71FEBC02B8 /* YapDatabaseViewState.h */; }; - 8259979D8468532A5D45BBC7 /* UIActionSheet+PromiseKit.h in Headers */ = {isa = PBXBuildFile; fileRef = DCA3F06ABFD63178DFC72DE8 /* UIActionSheet+PromiseKit.h */; }; - 82B39ED556B339D523636314 /* YapDatabaseViewMappings.h in Headers */ = {isa = PBXBuildFile; fileRef = 21F299A3CC041D21E49E128A /* YapDatabaseViewMappings.h */; }; - 8362479704A676B3E41F59BD /* NSNumber+ObjectiveSugar.h in Headers */ = {isa = PBXBuildFile; fileRef = F4084EE5921F8B24A0D25AC6 /* NSNumber+ObjectiveSugar.h */; }; - 83789D2462DCE19B30F51BFD /* NSNotificationCenter+PromiseKit.h in Headers */ = {isa = PBXBuildFile; fileRef = D8011BA9F83F8DEF158819C7 /* NSNotificationCenter+PromiseKit.h */; }; - 8390EB4900CD55F417A1BFDF /* YapDatabaseRelationshipTransaction.h in Headers */ = {isa = PBXBuildFile; fileRef = 86490A5C7E1542C913C23B91 /* YapDatabaseRelationshipTransaction.h */; }; - 848E82F641B27A3990ABB9D7 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 282B9211FFD2F2EA6B21538A /* Foundation.framework */; }; - 8620E10467A7DB22F3387332 /* YapDatabaseRelationshipConnection.m in Sources */ = {isa = PBXBuildFile; fileRef = DD46B99FC4F0FBEC69A8D8FF /* YapDatabaseRelationshipConnection.m */; }; - 864EE40604B0969CF24C701E /* YapDatabaseSearchResultsViewConnection.m in Sources */ = {isa = PBXBuildFile; fileRef = F307457ACA39801C012B0340 /* YapDatabaseSearchResultsViewConnection.m */; }; - 86714B5F0F9B60853D54ABED /* Pods-Blog-PromiseKit-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 2FB47F54C6EE520019A54078 /* Pods-Blog-PromiseKit-dummy.m */; }; - 86780755B6F86DDE290DE41A /* YapDatabase.h in Headers */ = {isa = PBXBuildFile; fileRef = 7B241E60723A2C4C61918512 /* YapDatabase.h */; }; - 86AF5AFD28097B1B4A7AB51F /* DDAbstractDatabaseLogger.h in Headers */ = {isa = PBXBuildFile; fileRef = ACC4ADA03EC617F34275A4AD /* DDAbstractDatabaseLogger.h */; }; - 871DDCBC2D63183F45FB4FDD /* UIView+PromiseKit.m in Sources */ = {isa = PBXBuildFile; fileRef = 6A66B23BA0714E62F554AF0C /* UIView+PromiseKit.m */; }; - 878177CC682F13692B96B30D /* EXTRuntimeExtensions.m in Sources */ = {isa = PBXBuildFile; fileRef = F5DC9F1CBEC8594767B97AA2 /* EXTRuntimeExtensions.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 88001D83C5A2B64A5E93FF83 /* PMKPromise.m in Sources */ = {isa = PBXBuildFile; fileRef = 49E66D7F3B72C857E575D900 /* PMKPromise.m */; }; - 883D4D35F71AE3B778988EA5 /* YapDatabaseConnection.h in Headers */ = {isa = PBXBuildFile; fileRef = 25253F668642F34F93F33A00 /* YapDatabaseConnection.h */; }; - 885CB96C8312C6C7AAF8C62D /* YapDatabaseRelationshipPrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = 1100C9110EBEABB79C035D6C /* YapDatabaseRelationshipPrivate.h */; }; - 89326DA6FBC5A7BF6F733DC6 /* YDBCKChangeRecord.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2AE04DA9E8D2909FC03C17 /* YDBCKChangeRecord.h */; }; - 89A9C806FD2DDBDD1140795F /* YapDatabaseFilteredViewTypes.m in Sources */ = {isa = PBXBuildFile; fileRef = 4FD8BF6204556957877719C6 /* YapDatabaseFilteredViewTypes.m */; }; - 8A84769F3C236C521ADCBDA4 /* NSError+MTLModelException.m in Sources */ = {isa = PBXBuildFile; fileRef = DDE458D739C793BC51799396 /* NSError+MTLModelException.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 8A91499BC49CCB451A37988D /* YapDatabaseView.m in Sources */ = {isa = PBXBuildFile; fileRef = B0F1AAC002F658078F7FFED8 /* YapDatabaseView.m */; }; - 8AABB86FCF853319FC735145 /* DDAssert.h in Headers */ = {isa = PBXBuildFile; fileRef = 5B345BCAB4F6A6EEBFC889B4 /* DDAssert.h */; }; - 8B06BD3A7818CA50566888F9 /* YDBCKChangeSet.m in Sources */ = {isa = PBXBuildFile; fileRef = 7543E7E85BED6829E62D7E5C /* YDBCKChangeSet.m */; }; - 8B70FC820477332D6033D453 /* YapDatabaseViewPage.h in Headers */ = {isa = PBXBuildFile; fileRef = 0EFB27F6C4879CBCFD5F931C /* YapDatabaseViewPage.h */; }; - 8B925EE4ED3B0D33A9FB8F01 /* YapDatabaseExtensionTransaction.h in Headers */ = {isa = PBXBuildFile; fileRef = 9F2301E8E4020A0784F1E252 /* YapDatabaseExtensionTransaction.h */; }; - 8BEB340F3AA086B27312762B /* MTLTransformerErrorHandling.h in Headers */ = {isa = PBXBuildFile; fileRef = 8057CEDCDCF924E040D9D14F /* MTLTransformerErrorHandling.h */; }; - 8C1D79E1EC2DBA0BB68E7886 /* YapDatabaseRelationshipOptions.m in Sources */ = {isa = PBXBuildFile; fileRef = 1863159C33B07B9214745599 /* YapDatabaseRelationshipOptions.m */; }; - 8D3F13CDDD9338CF41CAA209 /* NSSet+ObjectiveSugar.m in Sources */ = {isa = PBXBuildFile; fileRef = 06CC2C50158075B98D39886F /* NSSet+ObjectiveSugar.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 8D419D6969FF23FF5BEC3B0F /* EXTADT.m in Sources */ = {isa = PBXBuildFile; fileRef = E1B00040177F35188E4DF29F /* EXTADT.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 8D4ED978E6A96200CFF886B1 /* MTLModel+NSCoding.m in Sources */ = {isa = PBXBuildFile; fileRef = 6338CB3B9261AC5478915139 /* MTLModel+NSCoding.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 8D639B8E375128722436CD5D /* YapDatabaseViewMappings.m in Sources */ = {isa = PBXBuildFile; fileRef = 247E87DA6CAC4333E9E5EE97 /* YapDatabaseViewMappings.m */; }; - 8E3FB52F24CE614DD5605A86 /* MTLTransformerErrorHandling.m in Sources */ = {isa = PBXBuildFile; fileRef = 49B490E4F28ED008C184E20D /* MTLTransformerErrorHandling.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 8E5E6F3CB4738D82E08B9528 /* YapDatabaseFullTextSearchTransaction.m in Sources */ = {isa = PBXBuildFile; fileRef = DD309FE540A9641A1D2460EE /* YapDatabaseFullTextSearchTransaction.m */; }; - 8E9A31C0DA6F79BEFFE916CE /* EXTRuntimeExtensions.m in Sources */ = {isa = PBXBuildFile; fileRef = F5DC9F1CBEC8594767B97AA2 /* EXTRuntimeExtensions.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 8EEE8157D80E93124F3700A1 /* NSMutableArray+ObjectiveSugar.h in Headers */ = {isa = PBXBuildFile; fileRef = FCB09E16D1B8F4E125214DF2 /* NSMutableArray+ObjectiveSugar.h */; }; - 8F000BC342A96A5887157C09 /* EXTConcreteProtocol.h in Headers */ = {isa = PBXBuildFile; fileRef = 33275D7AE06D272A53F23F30 /* EXTConcreteProtocol.h */; }; - 8F638899C0252CB7AA45A808 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 282B9211FFD2F2EA6B21538A /* Foundation.framework */; }; - 8F7AE8C1854848F30EA960F6 /* YapDatabaseConnectionState.m in Sources */ = {isa = PBXBuildFile; fileRef = 337C6668C1832227E942F3B0 /* YapDatabaseConnectionState.m */; }; - 8FDB19A8053857D55A60BEF5 /* YapDatabaseSearchQueue.m in Sources */ = {isa = PBXBuildFile; fileRef = 393FD5B68516CC4EE733E287 /* YapDatabaseSearchQueue.m */; }; - 90F7B71628080E4C3B0134B2 /* CALayer+PromiseKit.m in Sources */ = {isa = PBXBuildFile; fileRef = CE2AEB9857A6EB1F03C5C585 /* CALayer+PromiseKit.m */; }; - 91557E0A0AA5A17F72C289E1 /* YapDatabaseStatement.m in Sources */ = {isa = PBXBuildFile; fileRef = 9F4BF4133904EC91F6C7894C /* YapDatabaseStatement.m */; }; - 917383AAD3131BCAA5D1D353 /* YapDatabaseOptions.m in Sources */ = {isa = PBXBuildFile; fileRef = 219F916D56045D897DB374C2 /* YapDatabaseOptions.m */; }; - 91E16F3B8E408C7407E3226B /* YapDatabaseFullTextSearchSnippetOptions.m in Sources */ = {isa = PBXBuildFile; fileRef = 97AEA4F2F91015BFEEA144EE /* YapDatabaseFullTextSearchSnippetOptions.m */; }; - 91FBB4CD13A18160D8575669 /* YapDatabaseConnection.m in Sources */ = {isa = PBXBuildFile; fileRef = 3CA8C04D7B74D34696706F13 /* YapDatabaseConnection.m */; }; - 92D4570C159D6CB39AA99DF7 /* EXTRuntimeExtensions.m in Sources */ = {isa = PBXBuildFile; fileRef = AECBD90C6B6D01CB4D3CEAB2 /* EXTRuntimeExtensions.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 93261122F108096C94B01A4E /* YapDatabaseViewConnection.h in Headers */ = {isa = PBXBuildFile; fileRef = 1A6866806A4DACB1EF227A7B /* YapDatabaseViewConnection.h */; }; - 9373ABADF54FAC71DD582149 /* YapDatabaseViewConnection.m in Sources */ = {isa = PBXBuildFile; fileRef = B421CB7EC4F054DFD0135AE4 /* YapDatabaseViewConnection.m */; }; - 938B3026ECA98540048D2247 /* YapDatabaseViewPrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = A546DD09B66B18871BB49F8B /* YapDatabaseViewPrivate.h */; }; - 93FCA22CB5EF8A80135C0AD0 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 113FC1CE12C29850DA58914B /* UIKit.framework */; }; - 94089A4E19FF7F219233F202 /* YapDatabaseCloudKitConnection.h in Headers */ = {isa = PBXBuildFile; fileRef = 7F3FC06DF8143D5BBFF9CD98 /* YapDatabaseCloudKitConnection.h */; }; - 9530CEDD91483CED84568CCC /* NSURLConnection+PromiseKit.m in Sources */ = {isa = PBXBuildFile; fileRef = 03B758E6F2BBE95619257F7E /* NSURLConnection+PromiseKit.m */; }; - 966DC2311ADEB320D30DFCD1 /* YapDatabaseSecondaryIndexConnection.h in Headers */ = {isa = PBXBuildFile; fileRef = 7FBAF43C1D7DF390CCAAD290 /* YapDatabaseSecondaryIndexConnection.h */; }; - 968B46A4311E8CA251FE43F2 /* YDBCKChangeQueue.m in Sources */ = {isa = PBXBuildFile; fileRef = 28E81357C4025E01BFBB9B6F /* YDBCKChangeQueue.m */; }; - 9697CF3C854D6D97C9F57AD6 /* YDBCKRecordTableInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = 37FE19233C994D0A51E15285 /* YDBCKRecordTableInfo.m */; }; - 969C2CA13A5D83964194B800 /* YapMemoryTable.m in Sources */ = {isa = PBXBuildFile; fileRef = 5A915C2018C7188C18AEA6BA /* YapMemoryTable.m */; }; - 96E3E08BA20FA41FA8D3D24D /* EXTADT.h in Headers */ = {isa = PBXBuildFile; fileRef = FDE412DB6B49086569010E05 /* EXTADT.h */; }; - 97350DD4ABB016720EBF2A8A /* YDBCKChangeRecord.m in Sources */ = {isa = PBXBuildFile; fileRef = C1635D3D454F1C8B81A673D3 /* YDBCKChangeRecord.m */; }; - 979492C148A6FEA83EDEAFEE /* NSMethodSignature+EXT.h in Headers */ = {isa = PBXBuildFile; fileRef = C037BD02BB66FD15C32BBE12 /* NSMethodSignature+EXT.h */; }; - 97BC0E2D1E565BBB7EF309C0 /* YapSet.m in Sources */ = {isa = PBXBuildFile; fileRef = 66BA5087B815C31DC755D759 /* YapSet.m */; }; - 98E0C376953AF9F802EA6C3A /* YapCollectionKey.m in Sources */ = {isa = PBXBuildFile; fileRef = C3D90F13D18C759A77F15FA0 /* YapCollectionKey.m */; }; - 98F3373368491871E9839EE6 /* YapDatabaseSearchResultsView.h in Headers */ = {isa = PBXBuildFile; fileRef = D2F97F98947C1274C7DE386D /* YapDatabaseSearchResultsView.h */; }; - 9A123515F3B6B344C6ED61EF /* Pods-Blog-MBProgressHUD-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 2EE6020150256878B361C44B /* Pods-Blog-MBProgressHUD-dummy.m */; }; - 9A81E9DDF37E4947C3F6558F /* YapDatabaseExtensionPrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = 89C91FFE423BF4A4AED61E95 /* YapDatabaseExtensionPrivate.h */; }; - 9AC48F912FB15AA606C26A97 /* YapDatabaseSearchResultsView.m in Sources */ = {isa = PBXBuildFile; fileRef = 0DBFCE6A6A9E3DBC7B444FA4 /* YapDatabaseSearchResultsView.m */; }; - 9ADED8DFD97153BB4156FDF4 /* YapMemoryTable.h in Headers */ = {isa = PBXBuildFile; fileRef = D227F98CFDC69A99159C6C15 /* YapMemoryTable.h */; }; - 9B0F047E80DA2DA45DE5D1AC /* YapDatabaseQuery.h in Headers */ = {isa = PBXBuildFile; fileRef = A9E38DE2F43EAB0D83E65838 /* YapDatabaseQuery.h */; }; - 9B2A71776DCACA9406D59824 /* YapDatabaseViewTransaction.m in Sources */ = {isa = PBXBuildFile; fileRef = 1555478860271FB44E77C5AB /* YapDatabaseViewTransaction.m */; }; - 9B83A4E216A7A0B3D7202FA7 /* YapDatabaseSecondaryIndexHandler.h in Headers */ = {isa = PBXBuildFile; fileRef = 645D577E41F144151AF448CE /* YapDatabaseSecondaryIndexHandler.h */; }; - 9BBBBE16081D2B19FA6A575C /* YapDatabaseFilteredViewConnection.m in Sources */ = {isa = PBXBuildFile; fileRef = 3CA4E2CB17BBE44F3F11AC15 /* YapDatabaseFilteredViewConnection.m */; }; - 9C17D91A9A5448002A2C550F /* Pods-Blog-Mantle-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = FC07FAC5CB874A77328DF7BC /* Pods-Blog-Mantle-dummy.m */; }; - 9C82BE9EB4BB12A3F0633927 /* YapDatabaseSearchResultsView.m in Sources */ = {isa = PBXBuildFile; fileRef = 0DBFCE6A6A9E3DBC7B444FA4 /* YapDatabaseSearchResultsView.m */; }; - 9DA540D16A88D3D5B1A942DE /* YapDatabaseFullTextSearchSnippetOptions.m in Sources */ = {isa = PBXBuildFile; fileRef = 97AEA4F2F91015BFEEA144EE /* YapDatabaseFullTextSearchSnippetOptions.m */; }; - 9DAE969040006A81569421DC /* SFDynamicCodeInjection.m in Sources */ = {isa = PBXBuildFile; fileRef = EE6E1FC6E50F2EEAC22AEEA4 /* SFDynamicCodeInjection.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - 9DC02BF6713DD67147B3CF9B /* YapDatabaseStatement.h in Headers */ = {isa = PBXBuildFile; fileRef = DE7DEDA3D0BE9F15715450E5 /* YapDatabaseStatement.h */; }; - 9DFBB9F641E3781EB9710208 /* YapDatabaseFullTextSearchTransaction.h in Headers */ = {isa = PBXBuildFile; fileRef = E4157BD8F52E22C28E657B30 /* YapDatabaseFullTextSearchTransaction.h */; }; - 9F24450ED2DCD5153C1A8CCD /* YapDatabaseViewState.m in Sources */ = {isa = PBXBuildFile; fileRef = E6AD97AD225B82A4359AF1A6 /* YapDatabaseViewState.m */; }; - 9F4CB94C1FC72CA02CE0AA65 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 282B9211FFD2F2EA6B21538A /* Foundation.framework */; }; - 9F629F7F1008ADFF970AC1C8 /* YapDatabaseViewChange.m in Sources */ = {isa = PBXBuildFile; fileRef = 73A7A54ABE82D530977E185F /* YapDatabaseViewChange.m */; }; - A01FA4FC468884A664185F14 /* YapDatabaseRelationshipPrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = 1100C9110EBEABB79C035D6C /* YapDatabaseRelationshipPrivate.h */; }; - A03616869FB51CC082F29602 /* Promise+When.h in Headers */ = {isa = PBXBuildFile; fileRef = 81273C467F3A02094344D4CC /* Promise+When.h */; }; - A0C1FBB6011BD3CAA3357D8A /* UIActionSheet+PromiseKit.h in Headers */ = {isa = PBXBuildFile; fileRef = DCA3F06ABFD63178DFC72DE8 /* UIActionSheet+PromiseKit.h */; }; - A1060DA8DB9F29FF5FC89DA7 /* YapDatabaseFilteredViewTransaction.m in Sources */ = {isa = PBXBuildFile; fileRef = 22B196B446DA79536F4BD761 /* YapDatabaseFilteredViewTransaction.m */; }; - A120EF58F09B0453186F1339 /* YDBCKChangeRecord.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2AE04DA9E8D2909FC03C17 /* YDBCKChangeRecord.h */; }; - A12622D09B1C51BB89C80543 /* UIViewController+XIBSupport.m in Sources */ = {isa = PBXBuildFile; fileRef = 30A67CC6BE0A0FD55C71BE1F /* UIViewController+XIBSupport.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - A2433C26E00B7105F5E7E399 /* NSNotificationCenter+PromiseKit.h in Headers */ = {isa = PBXBuildFile; fileRef = D8011BA9F83F8DEF158819C7 /* NSNotificationCenter+PromiseKit.h */; }; - A30080FA2631F9B63DCB0B63 /* YapDatabaseSearchQueue.h in Headers */ = {isa = PBXBuildFile; fileRef = 6EFACE16A4E6A16CE18DE264 /* YapDatabaseSearchQueue.h */; }; - A33E3021650D12AF9D36CAEC /* YDBCKChangeRecord.m in Sources */ = {isa = PBXBuildFile; fileRef = C1635D3D454F1C8B81A673D3 /* YDBCKChangeRecord.m */; }; - A38744D58F951C46F9401807 /* YapDatabaseRelationshipOptions.h in Headers */ = {isa = PBXBuildFile; fileRef = A2622D962BE3622CC07EE90F /* YapDatabaseRelationshipOptions.h */; }; - A3A040CBCEBDF5DFD2D2221E /* NSSet+ObjectiveSugar.h in Headers */ = {isa = PBXBuildFile; fileRef = FAB2EDC47DE1B571774A0679 /* NSSet+ObjectiveSugar.h */; }; - A4CDD6B49B351DD03DF070D2 /* YapDatabaseRelationshipNode.h in Headers */ = {isa = PBXBuildFile; fileRef = B7C06E7CBC9A9B43F2AFBEC0 /* YapDatabaseRelationshipNode.h */; }; - A4F69B99DF84F2CC97D2965A /* MTLModel+NSCoding.m in Sources */ = {isa = PBXBuildFile; fileRef = 6338CB3B9261AC5478915139 /* MTLModel+NSCoding.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - A59499B41ACF8ED583ECC8CD /* YapDatabaseSecondaryIndexSetup.h in Headers */ = {isa = PBXBuildFile; fileRef = C3503A5B9E91A284655E94DF /* YapDatabaseSecondaryIndexSetup.h */; }; - A5F52D941F651DE95E29E9B4 /* Promise+Pause.h in Headers */ = {isa = PBXBuildFile; fileRef = 53EEB8D97485A543890769B0 /* Promise+Pause.h */; }; - A64938BEE09D0CF68FA33A08 /* NSMethodSignature+EXT.m in Sources */ = {isa = PBXBuildFile; fileRef = C9BAD913D12B16045DF40035 /* NSMethodSignature+EXT.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - A678D5695CB8CA27BF8741C6 /* NSNumber+ObjectiveSugar.m in Sources */ = {isa = PBXBuildFile; fileRef = 292ADC73D143BB23A41C2F8E /* NSNumber+ObjectiveSugar.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - A693FAAFCD81D212BEDAF4E1 /* EXTRuntimeExtensions.h in Headers */ = {isa = PBXBuildFile; fileRef = 9DC96F512065D3A3C6DCBADF /* EXTRuntimeExtensions.h */; }; - A72B0FEA2C76B44A54DEA984 /* YapDatabaseFilteredViewTypes.h in Headers */ = {isa = PBXBuildFile; fileRef = BF11035CE8441F3D8436BE98 /* YapDatabaseFilteredViewTypes.h */; }; - A843B68D19D50F2DCC59B0BA /* DDAssert.h in Headers */ = {isa = PBXBuildFile; fileRef = 5B345BCAB4F6A6EEBFC889B4 /* DDAssert.h */; }; - A87C165FACCBBE6E1EE2FDE3 /* YapDatabaseViewMappings.m in Sources */ = {isa = PBXBuildFile; fileRef = 247E87DA6CAC4333E9E5EE97 /* YapDatabaseViewMappings.m */; }; - A94C81F3082E3ECCA9F19C26 /* UIView+PromiseKit.m in Sources */ = {isa = PBXBuildFile; fileRef = 6A66B23BA0714E62F554AF0C /* UIView+PromiseKit.m */; }; - AA8A3E2F7CADE93AF4B9FC23 /* YapDatabaseRelationshipEdgePrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = FFA7A32A5E1F8557243B97D7 /* YapDatabaseRelationshipEdgePrivate.h */; }; - AAA383773CEC7D1116A467F3 /* YapDatabaseCloudKitTypes.h in Headers */ = {isa = PBXBuildFile; fileRef = D1402AE4B1F9DCDA28E026A3 /* YapDatabaseCloudKitTypes.h */; }; - AB308FE1F625E4294D9EB141 /* YapDatabasePrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = D869A072D5127D760C35AEFF /* YapDatabasePrivate.h */; }; - AB813A5EEB895B2416165860 /* YapDatabaseFullTextSearchTransaction.m in Sources */ = {isa = PBXBuildFile; fileRef = DD309FE540A9641A1D2460EE /* YapDatabaseFullTextSearchTransaction.m */; }; - AB8A8D47655681C8525C6AA7 /* UIView+PromiseKit.h in Headers */ = {isa = PBXBuildFile; fileRef = 2F6B46C76C5923866A8E01D3 /* UIView+PromiseKit.h */; }; - ABA95B0BDE3610DF662E0040 /* YapDatabaseFilteredView.m in Sources */ = {isa = PBXBuildFile; fileRef = 6AAEFE8334EE8B1A57941755 /* YapDatabaseFilteredView.m */; }; - ABCE3F8B5F60FCD1E16762A2 /* MBProgressHUD.h in Headers */ = {isa = PBXBuildFile; fileRef = 732A57C29CE769769AC295FB /* MBProgressHUD.h */; }; - AC45733BEC1BF8886444AC0E /* YapCollectionKey.h in Headers */ = {isa = PBXBuildFile; fileRef = 4FA5B6AD9496F6B7327BEF6B /* YapCollectionKey.h */; }; - AE2BF43BC88EEEF2DFEE0BFF /* YapMurmurHash.h in Headers */ = {isa = PBXBuildFile; fileRef = BD94A6ABBAFEC252B2F503E2 /* YapMurmurHash.h */; }; - AE6EECC23C58534574989A4B /* NSObject+DyCInjection.h in Headers */ = {isa = PBXBuildFile; fileRef = 7FB7C5B3D6CA606E943307DD /* NSObject+DyCInjection.h */; }; - AF1188FE0B8C6FA41508DBF6 /* YapDatabaseViewState.h in Headers */ = {isa = PBXBuildFile; fileRef = 26896C5EA3FFCF71FEBC02B8 /* YapDatabaseViewState.h */; }; - B08AE889A3A44ED99F89F8C8 /* YapDatabaseSearchQueue.m in Sources */ = {isa = PBXBuildFile; fileRef = 393FD5B68516CC4EE733E287 /* YapDatabaseSearchQueue.m */; }; - B0F211CFACC81094E05BBA17 /* YDBCKMappingTableInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = 4A7FDFC0733456C5288CC777 /* YDBCKMappingTableInfo.h */; }; - B23A56C3A6D5528E178F2CFA /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 282B9211FFD2F2EA6B21538A /* Foundation.framework */; }; - B2595B2BE1CF218984F291AB /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 282B9211FFD2F2EA6B21538A /* Foundation.framework */; }; - B3037BE4B8D6324F04960F32 /* YapDatabaseViewPrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = A546DD09B66B18871BB49F8B /* YapDatabaseViewPrivate.h */; }; - B31C7124339DBF1A0F1563E6 /* UIAlertView+PromiseKit.h in Headers */ = {isa = PBXBuildFile; fileRef = E265977D887E17AC61258250 /* UIAlertView+PromiseKit.h */; }; - B3BA4B4E1B7D94B53AEDBAAB /* Pods-samhuri.net-OMGHTTPURLRQ-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 7AB034DDB3A12EFE221909D4 /* Pods-samhuri.net-OMGHTTPURLRQ-dummy.m */; }; - B3BDA4A79A89923D2B486FE8 /* PMKPromise+When.m in Sources */ = {isa = PBXBuildFile; fileRef = 103234F27AF3A35888A43C88 /* PMKPromise+When.m */; }; - B3F0DFAF852C82E72767FF71 /* MTLJSONAdapter.h in Headers */ = {isa = PBXBuildFile; fileRef = 4DCEB5E54C2A35459ED59054 /* MTLJSONAdapter.h */; }; - B4A289963271B5271FC0FEA5 /* YapDatabaseSecondaryIndexConnection.h in Headers */ = {isa = PBXBuildFile; fileRef = 7FBAF43C1D7DF390CCAAD290 /* YapDatabaseSecondaryIndexConnection.h */; }; - B4E9D96084FE62628AAD8B60 /* YapDatabaseOptions.m in Sources */ = {isa = PBXBuildFile; fileRef = 219F916D56045D897DB374C2 /* YapDatabaseOptions.m */; }; - B5BD01612462AF0A1F7C1770 /* YapDatabaseViewRangeOptions.m in Sources */ = {isa = PBXBuildFile; fileRef = 6188C6A5C56A8881E01E3727 /* YapDatabaseViewRangeOptions.m */; }; - B6CB374BDC636D91F432F94C /* EXTKeyPathCoding.h in Headers */ = {isa = PBXBuildFile; fileRef = 2C185110F55E76571CD7FEF4 /* EXTKeyPathCoding.h */; }; - B6DBB13507A5ACF0F2247970 /* UIAlertView+PromiseKit.m in Sources */ = {isa = PBXBuildFile; fileRef = 00294DB9529CE75E49B8279A /* UIAlertView+PromiseKit.m */; }; - B70BDB36BCB9E323C1925660 /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 337995D95A64BEC9D2535623 /* QuartzCore.framework */; }; - B70DD87C148D12AD00F32766 /* EXTScope.m in Sources */ = {isa = PBXBuildFile; fileRef = 105EB70EFA6E97885129527A /* EXTScope.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - B802E490A34953268DB07ED9 /* DDFileLogger.m in Sources */ = {isa = PBXBuildFile; fileRef = 3D9CCA2DFAB56D733D2B5075 /* DDFileLogger.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - B89FF7D2AA530280FB17D3D5 /* YapDatabaseConnectionDefaults.h in Headers */ = {isa = PBXBuildFile; fileRef = 5A03BCA0B53EC593875B55F0 /* YapDatabaseConnectionDefaults.h */; }; - B9AE5859978DD71268EEB0D4 /* DDLog.m in Sources */ = {isa = PBXBuildFile; fileRef = 24FC991C5B5EC9B91AB20554 /* DDLog.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - B9D79E406B6BB5DB6E022699 /* DDMultiFormatter.m in Sources */ = {isa = PBXBuildFile; fileRef = B3D437B9C71381C43100C0E9 /* DDMultiFormatter.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - BB28CE3AC79D4944D7374872 /* MTLReflection.m in Sources */ = {isa = PBXBuildFile; fileRef = DFAF920A969CF66653C464CF /* MTLReflection.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - BB5985231BB3F9D8C5AEE273 /* YapDatabaseViewMappings.h in Headers */ = {isa = PBXBuildFile; fileRef = 21F299A3CC041D21E49E128A /* YapDatabaseViewMappings.h */; }; - BCA27D5FD72221C09429F9D1 /* YapDatabaseViewChange.m in Sources */ = {isa = PBXBuildFile; fileRef = 73A7A54ABE82D530977E185F /* YapDatabaseViewChange.m */; }; - BCD47B541E370F1FCB08042B /* YapDatabaseFilteredView.h in Headers */ = {isa = PBXBuildFile; fileRef = F33C50ACAC6196E63C7FB313 /* YapDatabaseFilteredView.h */; }; - BCF459CA484E99C40FFAB90F /* OMGFormURLEncode.h in Headers */ = {isa = PBXBuildFile; fileRef = FD465E5F5A152F512D1E6C97 /* OMGFormURLEncode.h */; }; - BD74B25B0AC1F82ADB8B3A3C /* YapDatabaseSecondaryIndex.h in Headers */ = {isa = PBXBuildFile; fileRef = 03F716AF51842D5CACEF1B81 /* YapDatabaseSecondaryIndex.h */; }; - BE1BE5BFA6C6188776CE3DD6 /* YapDatabaseViewTypes.h in Headers */ = {isa = PBXBuildFile; fileRef = B83D6397BBA0C832599715CF /* YapDatabaseViewTypes.h */; }; - BE4FB6E8A5051DF1167B15AD /* YapDatabaseCloudKitConnection.h in Headers */ = {isa = PBXBuildFile; fileRef = 7F3FC06DF8143D5BBFF9CD98 /* YapDatabaseCloudKitConnection.h */; }; - BEC4E5CB41693360B05F2009 /* MTLJSONAdapter.m in Sources */ = {isa = PBXBuildFile; fileRef = 56CA459B2FFE8509276AF82A /* MTLJSONAdapter.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - BF1257725BDC97C7F424152B /* YapDatabaseExtensionTransaction.m in Sources */ = {isa = PBXBuildFile; fileRef = 5CCEC9463B85B3DB96E36B30 /* YapDatabaseExtensionTransaction.m */; }; - BF343A3D5ACEEBC822F911FB /* NSObject+MTLComparisonAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = B9459FA7A26B44B49E1B8DA9 /* NSObject+MTLComparisonAdditions.h */; }; - BF61F988A71EA087D65AC5DE /* YapCache.m in Sources */ = {isa = PBXBuildFile; fileRef = F315CCFD0A27245944E3F42B /* YapCache.m */; }; - BFA0D8C5684344CA3D351CFF /* YapDebugDictionary.h in Headers */ = {isa = PBXBuildFile; fileRef = B734E8E4589967249213497A /* YapDebugDictionary.h */; }; - BFFB46E2FCBA26F014EF1746 /* YapDatabaseFullTextSearchHandler.m in Sources */ = {isa = PBXBuildFile; fileRef = 5C48852EDD96E0F750E8285D /* YapDatabaseFullTextSearchHandler.m */; }; - C018405869EA56D12028D7C8 /* YDBCKChangeSet.m in Sources */ = {isa = PBXBuildFile; fileRef = 7543E7E85BED6829E62D7E5C /* YDBCKChangeSet.m */; }; - C13F8527602CA23ED5CE9B30 /* YapDatabaseFullTextSearchSnippetOptions.h in Headers */ = {isa = PBXBuildFile; fileRef = E059B319E0FD73D04BB73471 /* YapDatabaseFullTextSearchSnippetOptions.h */; }; - C150DFD9AF9CA6919AC519F4 /* YDBCKAttachRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = A058329B5F27921DE5E4E7CD /* YDBCKAttachRequest.h */; }; - C199AC6A1951FC0438F0FBC4 /* Promise+Pause.h in Headers */ = {isa = PBXBuildFile; fileRef = 53EEB8D97485A543890769B0 /* Promise+Pause.h */; }; - C1E23919B9517F1091F60008 /* EXTScope.m in Sources */ = {isa = PBXBuildFile; fileRef = C9A1ECE57856CF96C336ECCE /* EXTScope.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - C2184B6834D7845392CFA135 /* DDASLLogger.m in Sources */ = {isa = PBXBuildFile; fileRef = F0CEAFE4966D62D25D52F4CE /* DDASLLogger.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - C261BC1C928FE4DDE597138E /* EXTScope.h in Headers */ = {isa = PBXBuildFile; fileRef = 8A3197B0CED46F8A3CC6ED35 /* EXTScope.h */; }; - C3031E523DAFA48304440DD9 /* YapDatabaseSecondaryIndexTransaction.m in Sources */ = {isa = PBXBuildFile; fileRef = C3D5ED24D0D549034AFFD8C1 /* YapDatabaseSecondaryIndexTransaction.m */; }; - C311E3D244155D68BB1062BC /* YapDatabaseRelationshipOptions.h in Headers */ = {isa = PBXBuildFile; fileRef = A2622D962BE3622CC07EE90F /* YapDatabaseRelationshipOptions.h */; }; - C31BF272BD09BE84522F92D0 /* YapDatabasePrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = D869A072D5127D760C35AEFF /* YapDatabasePrivate.h */; }; - C341B44970B3E5B7F12EF178 /* YapDatabaseViewMappingsPrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = C31DF20DFF8951BEBD0CE76D /* YapDatabaseViewMappingsPrivate.h */; }; - C353537B0AAFFFB9B1A325CF /* YapWhitelistBlacklist.h in Headers */ = {isa = PBXBuildFile; fileRef = 295FA13B52BF1EC408A07D30 /* YapWhitelistBlacklist.h */; }; - C4150DF6A34E12A45DC11B60 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 282B9211FFD2F2EA6B21538A /* Foundation.framework */; }; - C50868A66217D8C33B608508 /* YDBCKChangeQueue.h in Headers */ = {isa = PBXBuildFile; fileRef = 22E2BE721AB7902C5709752B /* YDBCKChangeQueue.h */; }; - C56EBB06C710C15436FD35DB /* UIAlertView+PromiseKit.m in Sources */ = {isa = PBXBuildFile; fileRef = 00294DB9529CE75E49B8279A /* UIAlertView+PromiseKit.m */; }; - C5CA51A7A083BCDA38B4E618 /* DDTTYLogger.h in Headers */ = {isa = PBXBuildFile; fileRef = 0CB02F9D6072169ACD618BA8 /* DDTTYLogger.h */; }; - C62046CC48BB7C7BB702F57B /* EXTSynthesize.h in Headers */ = {isa = PBXBuildFile; fileRef = B1107E0C8A76D6F93CB161AE /* EXTSynthesize.h */; }; - C62A8BEC8D7F9EEA3E0366C4 /* NSMutableArray+ObjectiveSugar.h in Headers */ = {isa = PBXBuildFile; fileRef = FCB09E16D1B8F4E125214DF2 /* NSMutableArray+ObjectiveSugar.h */; }; - C69B6653657DF7897F751861 /* YDBCKMappingTableInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = 4B5E0DAB0F48615409D8356F /* YDBCKMappingTableInfo.m */; }; - C6B210779AEEC6EB85307679 /* YapWhitelistBlacklist.m in Sources */ = {isa = PBXBuildFile; fileRef = 5E6272DFACEB1CAB08C65772 /* YapWhitelistBlacklist.m */; }; - C764FD5A9BE913AD874C989B /* MTLModel.h in Headers */ = {isa = PBXBuildFile; fileRef = 7D99FA2965FE4B331BABD09B /* MTLModel.h */; }; - C7EC781D95DAA34EBDE9C511 /* NSError+MTLModelException.m in Sources */ = {isa = PBXBuildFile; fileRef = DDE458D739C793BC51799396 /* NSError+MTLModelException.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - C815F974EE0B306B9FB300BB /* YapDatabaseFullTextSearchHandler.m in Sources */ = {isa = PBXBuildFile; fileRef = 5C48852EDD96E0F750E8285D /* YapDatabaseFullTextSearchHandler.m */; }; - C8F8291037C79FD01F4DD1E0 /* YapDatabaseRelationshipEdgePrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = FFA7A32A5E1F8557243B97D7 /* YapDatabaseRelationshipEdgePrivate.h */; }; - C915902D17CB150737BBCF51 /* PMKPromise+Pause.m in Sources */ = {isa = PBXBuildFile; fileRef = ADE62191234188700E91A3C4 /* PMKPromise+Pause.m */; }; - C9177B265B0A76BEDBC08008 /* YapCollectionKey.m in Sources */ = {isa = PBXBuildFile; fileRef = C3D90F13D18C759A77F15FA0 /* YapCollectionKey.m */; }; - C9B3D8657AA861D764E21BA7 /* MTLTransformerErrorHandling.m in Sources */ = {isa = PBXBuildFile; fileRef = 49B490E4F28ED008C184E20D /* MTLTransformerErrorHandling.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - CA0BE5C77063A8DE59016953 /* YapDatabaseOptions.h in Headers */ = {isa = PBXBuildFile; fileRef = 33744720CD09248B783228E4 /* YapDatabaseOptions.h */; }; - CA9CA9BE26EFF08CE8D7254D /* YapNull.h in Headers */ = {isa = PBXBuildFile; fileRef = 26BAC2FC50220B883968CD82 /* YapNull.h */; }; - CB411CB6D1DE7CB6BED3AE01 /* NSError+MTLModelException.h in Headers */ = {isa = PBXBuildFile; fileRef = 26A36DEBCFC1E544819F6620 /* NSError+MTLModelException.h */; }; - CB78EF7E505A7C9C99B4DA0B /* YapDatabaseFilteredViewTransaction.m in Sources */ = {isa = PBXBuildFile; fileRef = 22B196B446DA79536F4BD761 /* YapDatabaseFilteredViewTransaction.m */; }; - CB99A26AE8465EDF34FDF10A /* YapDatabaseSecondaryIndexOptions.h in Headers */ = {isa = PBXBuildFile; fileRef = A4DD2587658B14BA1C93C95B /* YapDatabaseSecondaryIndexOptions.h */; }; - CC560935ED81176772FA24B7 /* YapDatabaseFullTextSearchConnection.m in Sources */ = {isa = PBXBuildFile; fileRef = 23BD74E6F48DF4303D3DD1D3 /* YapDatabaseFullTextSearchConnection.m */; }; - CC8694732E6D577459CC396F /* NSValueTransformer+MTLInversionAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = 97EDC1CE12F7454A1577983F /* NSValueTransformer+MTLInversionAdditions.h */; }; - CCD85C8216952C9EAFACB858 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 282B9211FFD2F2EA6B21538A /* Foundation.framework */; }; - CD8D56CA564807104DBABFDB /* Promise+When.h in Headers */ = {isa = PBXBuildFile; fileRef = 81273C467F3A02094344D4CC /* Promise+When.h */; }; - CDE25EF93DAB24331455D67F /* YapDatabaseCloudKitConnection.m in Sources */ = {isa = PBXBuildFile; fileRef = 6554430CBCF9416FB8671D97 /* YapDatabaseCloudKitConnection.m */; }; - CDECD6005FC0BF5533389347 /* NSDictionary+MTLManipulationAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = 2833440792FAAB7CDCB5B4F0 /* NSDictionary+MTLManipulationAdditions.h */; }; - CDF72B96E21E531EE51CAE27 /* YapDatabaseOptions.h in Headers */ = {isa = PBXBuildFile; fileRef = 33744720CD09248B783228E4 /* YapDatabaseOptions.h */; }; - CDF91EFF816D8370EC7D13D5 /* metamacros.h in Headers */ = {isa = PBXBuildFile; fileRef = 33336F4E31CF0F4C63B0FDDB /* metamacros.h */; }; - CE0F9827E2BEB8A32FE5F7DB /* YapDatabaseViewOptions.h in Headers */ = {isa = PBXBuildFile; fileRef = 08AC1CAD878E7894E245C1DB /* YapDatabaseViewOptions.h */; }; - CE82BE27873EE6707143CABB /* OMGUserAgent.h in Headers */ = {isa = PBXBuildFile; fileRef = 7B1AF19C92986A056A79EA54 /* OMGUserAgent.h */; }; - CEACAB0894E00A847B6DEAEC /* YDBCKRecordInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = 1C8E98D480058DC58AA665A1 /* YDBCKRecordInfo.m */; }; - CF695950D026255C3FAF08A8 /* YDBCKAttachRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = 2E1B5DB271BEA6ACAC0D7CF8 /* YDBCKAttachRequest.m */; }; - D03EDDA864E1ACEF960BAD58 /* YapDatabaseViewChange.h in Headers */ = {isa = PBXBuildFile; fileRef = 9E8129BFA6BCE82E4531713D /* YapDatabaseViewChange.h */; }; - D096262D7CACC17E9B160F0B /* YapDatabaseQuery.m in Sources */ = {isa = PBXBuildFile; fileRef = EF6FC1CC5A910AB5BBD4A60D /* YapDatabaseQuery.m */; }; - D0C48E2293F6961CD3BC6BAD /* NSString+ObjectiveSugar.h in Headers */ = {isa = PBXBuildFile; fileRef = C94F068735DD25B3F47447A7 /* NSString+ObjectiveSugar.h */; }; - D0F8B5F24A468640A2DC5469 /* YapDatabaseSearchQueue.h in Headers */ = {isa = PBXBuildFile; fileRef = 6EFACE16A4E6A16CE18DE264 /* YapDatabaseSearchQueue.h */; }; - D1539B2543291BFC71714405 /* fwd.h in Headers */ = {isa = PBXBuildFile; fileRef = C841A29BC816EA1D9898F6A9 /* fwd.h */; }; - D198F2222FC759C4272532A4 /* YapDatabaseView.h in Headers */ = {isa = PBXBuildFile; fileRef = 8DBBA9D2D52D43F8A8752E8A /* YapDatabaseView.h */; }; - D19DC4639C2B153A364CF990 /* YapDatabaseSecondaryIndexHandler.m in Sources */ = {isa = PBXBuildFile; fileRef = 4FAAF95BBB79A541624C0213 /* YapDatabaseSecondaryIndexHandler.m */; }; - D2A00C4A7E67B361B2C8A7D2 /* YapDatabaseViewOptions.h in Headers */ = {isa = PBXBuildFile; fileRef = 08AC1CAD878E7894E245C1DB /* YapDatabaseViewOptions.h */; }; - D31ADEDB4B6476B3A9EB7BF9 /* ObjectiveSugar.h in Headers */ = {isa = PBXBuildFile; fileRef = 6FC571996060E71C36F9609F /* ObjectiveSugar.h */; }; - D3A94C1EF91BB20A729F0B2D /* DDASLLogger.h in Headers */ = {isa = PBXBuildFile; fileRef = 40668D7AD9D7B1456E623014 /* DDASLLogger.h */; }; - D3D9C26BA183C1C573D89790 /* YapDatabaseViewPageMetadata.h in Headers */ = {isa = PBXBuildFile; fileRef = AC1696FA3B0F85F5E7286B06 /* YapDatabaseViewPageMetadata.h */; }; - D3F016DADC6B0EE69960147C /* NSValueTransformer+MTLInversionAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = F906B890EB25C26B46F1D2C7 /* NSValueTransformer+MTLInversionAdditions.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - D528C8CB87F13CDA2A39F389 /* NSValueTransformer+MTLInversionAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = F906B890EB25C26B46F1D2C7 /* NSValueTransformer+MTLInversionAdditions.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - D5A1D2556F1112FF2CBFA7A0 /* YapDatabaseConnectionState.h in Headers */ = {isa = PBXBuildFile; fileRef = 0CE2F7439995D0103D65BBEF /* YapDatabaseConnectionState.h */; }; - D616B9E8521A2D06A84D13B8 /* CALayer+PromiseKit.m in Sources */ = {isa = PBXBuildFile; fileRef = CE2AEB9857A6EB1F03C5C585 /* CALayer+PromiseKit.m */; }; - D61739BD54CB16191811E7D6 /* NSArray+ObjectiveSugar.m in Sources */ = {isa = PBXBuildFile; fileRef = 3FAB5F9974743053DA63B943 /* NSArray+ObjectiveSugar.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - D681ECACBAE3BE3E564784D5 /* MTLValueTransformer.h in Headers */ = {isa = PBXBuildFile; fileRef = 2BFD39420731A8315336D476 /* MTLValueTransformer.h */; }; - D6FE84BF4CF6E37B2A7687BB /* YapNull.h in Headers */ = {isa = PBXBuildFile; fileRef = 26BAC2FC50220B883968CD82 /* YapNull.h */; }; - D835B850B4AE3A010FFC1F80 /* NSDictionary+YapDatabase.m in Sources */ = {isa = PBXBuildFile; fileRef = A2AFFC46474155E870F06DE4 /* NSDictionary+YapDatabase.m */; }; - D85446BED508DD5ECE768453 /* NSNotificationCenter+PromiseKit.m in Sources */ = {isa = PBXBuildFile; fileRef = 86112BBD72AF95226FFBCB32 /* NSNotificationCenter+PromiseKit.m */; }; - D89F24B29804905EC5B09056 /* DDASLLogCapture.h in Headers */ = {isa = PBXBuildFile; fileRef = 61576E9675A4DBF5F8B14925 /* DDASLLogCapture.h */; }; - D98AAA228C6C4966EB6D2614 /* YapDatabaseFullTextSearchHandler.h in Headers */ = {isa = PBXBuildFile; fileRef = 08F9631220752789EFC32EDF /* YapDatabaseFullTextSearchHandler.h */; }; - DA117FD449B0E3D55C3CA8C9 /* YapDatabaseString.h in Headers */ = {isa = PBXBuildFile; fileRef = BD5003130FC9121387EE8C8B /* YapDatabaseString.h */; }; - DA974CF3BB3EFAED215A7D6F /* MTLModel+NSCoding.h in Headers */ = {isa = PBXBuildFile; fileRef = DB13F9E8BE40D9526BAF9596 /* MTLModel+NSCoding.h */; }; - DB448C4943DD880B16F93190 /* YapDatabaseTransaction.h in Headers */ = {isa = PBXBuildFile; fileRef = 28965EF36F91445CA1F60896 /* YapDatabaseTransaction.h */; }; - DB9263140B8A47E3A5863A6B /* YDBCKRecordTableInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = AFD8EB43C750E47E672F2A5D /* YDBCKRecordTableInfo.h */; }; - DBA1E1B98D63553386D395D5 /* YapTouch.m in Sources */ = {isa = PBXBuildFile; fileRef = 2E3487FC5A902204ABC002FE /* YapTouch.m */; }; - DC6358E82E5745F031C0B986 /* Pods-Blog-FontAwesome+iOS-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 970A41A308FA5A23713B24BA /* Pods-Blog-FontAwesome+iOS-dummy.m */; }; - DC958149C03634092B008C38 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 282B9211FFD2F2EA6B21538A /* Foundation.framework */; }; - DD248DAD9FCD4B7CBC38F5F9 /* NSArray+ObjectiveSugar.m in Sources */ = {isa = PBXBuildFile; fileRef = 3FAB5F9974743053DA63B943 /* NSArray+ObjectiveSugar.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - DD960CDD917854BCDF3D63DB /* NSInvocation+EXT.h in Headers */ = {isa = PBXBuildFile; fileRef = 10BDA234BD3091894487BCEB /* NSInvocation+EXT.h */; }; - DE512CA347014B34FF774CBE /* OMGUserAgent.m in Sources */ = {isa = PBXBuildFile; fileRef = EB10B6590D0FF76128A2727B /* OMGUserAgent.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - DF9EDBA1809549A91B1F59E5 /* YapDatabaseCloudKitTransaction.m in Sources */ = {isa = PBXBuildFile; fileRef = FAEFFDB0E559BA6373293B65 /* YapDatabaseCloudKitTransaction.m */; }; - DFA70B59ADE103AD415E4140 /* YapDatabaseSecondaryIndexOptions.h in Headers */ = {isa = PBXBuildFile; fileRef = A4DD2587658B14BA1C93C95B /* YapDatabaseSecondaryIndexOptions.h */; }; - DFC1086B4489BE1927D44090 /* YapDatabaseViewPageMetadata.m in Sources */ = {isa = PBXBuildFile; fileRef = C43FA8920F4D17EE9023C769 /* YapDatabaseViewPageMetadata.m */; }; - DFD45687B9C8B3A7F7FBF0FF /* YapDatabaseTransaction.m in Sources */ = {isa = PBXBuildFile; fileRef = 8AA07DBB582A55093BB80C5E /* YapDatabaseTransaction.m */; }; - E0CFA77829CFB696CCAEDD49 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 282B9211FFD2F2EA6B21538A /* Foundation.framework */; }; - E141D55100F25A5F99BAFF8C /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 282B9211FFD2F2EA6B21538A /* Foundation.framework */; }; - E16227AF8D20367C23BB5CDC /* NSString+ObjectiveSugar.m in Sources */ = {isa = PBXBuildFile; fileRef = D81F168E6C5567C22EB2AE16 /* NSString+ObjectiveSugar.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - E1DB1DF00C390D53E3EC5606 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 282B9211FFD2F2EA6B21538A /* Foundation.framework */; }; - E217C0C47DD1D0721488F932 /* Pods-samhuri.net-YapDatabase-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = DC744A09D2B51336CD5397E3 /* Pods-samhuri.net-YapDatabase-dummy.m */; }; - E2A66B5C245D0A84D34F4F3D /* YapDatabaseViewConnection.m in Sources */ = {isa = PBXBuildFile; fileRef = B421CB7EC4F054DFD0135AE4 /* YapDatabaseViewConnection.m */; }; - E2DEDC4F5FE250E3F5732493 /* YapDatabaseSearchResultsViewConnection.h in Headers */ = {isa = PBXBuildFile; fileRef = 1784AD76848A711FD14E57D8 /* YapDatabaseSearchResultsViewConnection.h */; }; - E354822275447B940A93A7AD /* YapDatabaseViewPageMetadata.h in Headers */ = {isa = PBXBuildFile; fileRef = AC1696FA3B0F85F5E7286B06 /* YapDatabaseViewPageMetadata.h */; }; - E3702E93E5CAD2F9835E6AA8 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 282B9211FFD2F2EA6B21538A /* Foundation.framework */; }; - E37EA3CCCBCD8626411E551D /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 282B9211FFD2F2EA6B21538A /* Foundation.framework */; }; - E4230C5349B8124FE4535B6C /* PMKPromise+Until.m in Sources */ = {isa = PBXBuildFile; fileRef = 926302AC32ED98504756ACFA /* PMKPromise+Until.m */; }; - E4C52D14F7DFAE2A364545F6 /* YapDatabaseRelationship.m in Sources */ = {isa = PBXBuildFile; fileRef = B987983BAE99D1200135A6D5 /* YapDatabaseRelationship.m */; }; - E5299DE7A90108BE94431E39 /* YapDatabaseSecondaryIndexPrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = E627228ACFEB88446047C673 /* YapDatabaseSecondaryIndexPrivate.h */; }; - E5568D431658BE2486C299DC /* DDLog.m in Sources */ = {isa = PBXBuildFile; fileRef = 24FC991C5B5EC9B91AB20554 /* DDLog.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - E5B81DE23B99ADD18A25C3FD /* YDBCKRecordInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = 5BFCA205D07088177172144F /* YDBCKRecordInfo.h */; }; - E64E97349F949002E88F2FA8 /* YapRowidSet.h in Headers */ = {isa = PBXBuildFile; fileRef = F1AC858269432ACD0E963EED /* YapRowidSet.h */; }; - E65535EA5F14606888F443E4 /* Pods-samhuri.net-PromiseKit-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 36694C5AC36D673C03C2B481 /* Pods-samhuri.net-PromiseKit-dummy.m */; }; - E669F9F7782409FAFCE56F63 /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BDE7046DB6D273BC2CCF83FD /* CoreGraphics.framework */; }; - E70BA536E210F10654599DAA /* Promise+Until.h in Headers */ = {isa = PBXBuildFile; fileRef = 2F67F2A03BD8CAE4FCA8864E /* Promise+Until.h */; }; - E85E9E303EE8793978009AAB /* UIFont+FontAwesome.h in Headers */ = {isa = PBXBuildFile; fileRef = 1BF1D70C0B73C5A0D485757D /* UIFont+FontAwesome.h */; }; - E89837A85D49504E36CB3B47 /* YapDatabaseSearchResultsViewOptions.m in Sources */ = {isa = PBXBuildFile; fileRef = 322A6EDFCB536912D423794E /* YapDatabaseSearchResultsViewOptions.m */; }; - E8EA4DFAC18BEEA78CE69508 /* YapTouch.h in Headers */ = {isa = PBXBuildFile; fileRef = AE5975520DCEEF0BAF8507B5 /* YapTouch.h */; }; - E904CD1A8F4D1FEAB64AC5A7 /* YapDatabaseCloudKit.h in Headers */ = {isa = PBXBuildFile; fileRef = BDF670E3E9733857B25E9DB8 /* YapDatabaseCloudKit.h */; }; - E93F73DB5F3C481C4055E543 /* UIView+PromiseKit.h in Headers */ = {isa = PBXBuildFile; fileRef = 2F6B46C76C5923866A8E01D3 /* UIView+PromiseKit.h */; }; - E96A0E27A3C6B4AEA78D21F1 /* YDBCKRecord.m in Sources */ = {isa = PBXBuildFile; fileRef = A17C57A06F0A48B26E09F2C7 /* YDBCKRecord.m */; }; - E972F3A00AA023AC4211BDED /* EXTSelectorChecking.h in Headers */ = {isa = PBXBuildFile; fileRef = D0E95F1A3ED48F2D5CF19D98 /* EXTSelectorChecking.h */; }; - E9A4483FFA32511CEAB7DFD2 /* YapDatabaseCloudKit.m in Sources */ = {isa = PBXBuildFile; fileRef = 3096C8BF574F9EAED6EE702E /* YapDatabaseCloudKit.m */; }; - E9BCE6D7C2CD54995897B823 /* YapDatabaseTransaction.m in Sources */ = {isa = PBXBuildFile; fileRef = 8AA07DBB582A55093BB80C5E /* YapDatabaseTransaction.m */; }; - EA4E814F03F012601385DF1F /* YapDatabaseCloudKitTypes.h in Headers */ = {isa = PBXBuildFile; fileRef = D1402AE4B1F9DCDA28E026A3 /* YapDatabaseCloudKitTypes.h */; }; - EAA5AC77D8319632853056AD /* SFFileWatcherDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = 5C2F5AD1A6C07D15185D9DAA /* SFFileWatcherDelegate.h */; }; - EACDBCE18E90D0D320588F4B /* NSArray+MTLManipulationAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = 6CBEC5B980E9F5999568CA3D /* NSArray+MTLManipulationAdditions.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - EACDF28A3F06D0002131EA60 /* YDBCKChangeSet.h in Headers */ = {isa = PBXBuildFile; fileRef = 5B07E093944A1BEEE2009374 /* YDBCKChangeSet.h */; }; - EB0E4C962E8BB29B21A9E17A /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 282B9211FFD2F2EA6B21538A /* Foundation.framework */; }; - EB98C667A5C8E58E2F76FEF2 /* YapDatabaseExtension.m in Sources */ = {isa = PBXBuildFile; fileRef = A47A2086519EDA50DB4EE026 /* YapDatabaseExtension.m */; }; - EC043914693F706D75264041 /* YapDatabaseFullTextSearch.h in Headers */ = {isa = PBXBuildFile; fileRef = 649D6CCC882389A562CF0274 /* YapDatabaseFullTextSearch.h */; }; - EC1EED97F30A61342F36F6A9 /* NSMutableArray+ObjectiveSugar.m in Sources */ = {isa = PBXBuildFile; fileRef = 68409D3A60AC62207CF83689 /* NSMutableArray+ObjectiveSugar.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - ED09711501FEC44F3BB595B7 /* YapMurmurHash.h in Headers */ = {isa = PBXBuildFile; fileRef = BD94A6ABBAFEC252B2F503E2 /* YapMurmurHash.h */; }; - EDB91895ED9B73654D5117B1 /* DDMultiFormatter.m in Sources */ = {isa = PBXBuildFile; fileRef = B3D437B9C71381C43100C0E9 /* DDMultiFormatter.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - EDBC93D2E4129D6F1974BA05 /* NSDictionary+MTLManipulationAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = 2833440792FAAB7CDCB5B4F0 /* NSDictionary+MTLManipulationAdditions.h */; }; - EE31380ADFE23211CC5CB34B /* DDTTYLogger.m in Sources */ = {isa = PBXBuildFile; fileRef = 37DA2003F00041209AD13BD0 /* DDTTYLogger.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - EE421D46866DE74667E056D5 /* NSSet+ClassesList.h in Headers */ = {isa = PBXBuildFile; fileRef = 80FB9B7030A0525D7CA856F9 /* NSSet+ClassesList.h */; }; - EF0A48E827F892B4522B98D5 /* YDBCKAttachRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = A058329B5F27921DE5E4E7CD /* YDBCKAttachRequest.h */; }; - EF13530CE8F400825695B943 /* YapDatabaseCloudKitPrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = F34B15A83ECE7FD57A16725C /* YapDatabaseCloudKitPrivate.h */; }; - EF50F9676A4F9AC0A3E24A7A /* YDBCKMergeInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = 26BD73A193575E26B265F62D /* YDBCKMergeInfo.h */; }; - EF646B68EAA8700876E8F80D /* DDContextFilterLogFormatter.m in Sources */ = {isa = PBXBuildFile; fileRef = 08BF8ADC6335EBEEAA693C8B /* DDContextFilterLogFormatter.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - EF888733AA3946C44292C501 /* YapDatabase.m in Sources */ = {isa = PBXBuildFile; fileRef = 05A4B45E796332BB64F4DBEC /* YapDatabase.m */; }; - F02C24B5B91CEBA0962DA7E4 /* YapDatabaseSearchResultsViewPrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = 36A385ED54EA2353AEA99BFD /* YapDatabaseSearchResultsViewPrivate.h */; }; - F0B47C2F14A8235591C3997A /* OMGFormURLEncode.m in Sources */ = {isa = PBXBuildFile; fileRef = 142AC53FEB92071B60F07F34 /* OMGFormURLEncode.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - F0E848AC962E1A1BA15DAF3C /* YapDatabaseRelationshipNode.h in Headers */ = {isa = PBXBuildFile; fileRef = B7C06E7CBC9A9B43F2AFBEC0 /* YapDatabaseRelationshipNode.h */; }; - F1598F715D5C94102101DF22 /* DDLog.h in Headers */ = {isa = PBXBuildFile; fileRef = 0E2D7EE88C3D855404E6AF0A /* DDLog.h */; }; - F1A931E6460F68D42B909518 /* YapDatabaseExtensionTransaction.m in Sources */ = {isa = PBXBuildFile; fileRef = 5CCEC9463B85B3DB96E36B30 /* YapDatabaseExtensionTransaction.m */; }; - F1D854CF8109E45A410DD9A7 /* YapDatabaseSearchResultsViewConnection.m in Sources */ = {isa = PBXBuildFile; fileRef = F307457ACA39801C012B0340 /* YapDatabaseSearchResultsViewConnection.m */; }; - F249B2A8389B99653C80EAE7 /* UINib+StoryBoardSupport.h in Headers */ = {isa = PBXBuildFile; fileRef = AE60EB5020820A9FE013D7EF /* UINib+StoryBoardSupport.h */; }; - F3E8312B7135BAE4F9FA57FB /* YapRowidSet.mm in Sources */ = {isa = PBXBuildFile; fileRef = 877AEDBCB6C973CE784A7612 /* YapRowidSet.mm */; }; - F3F4AFDC609A448768AE4247 /* DDMultiFormatter.h in Headers */ = {isa = PBXBuildFile; fileRef = 69255EE076182BDFE3907A29 /* DDMultiFormatter.h */; }; - F3F6E1B8396A9A23919B76A0 /* EXTRuntimeExtensions.h in Headers */ = {isa = PBXBuildFile; fileRef = 61C20876098EA3BE0E318D2C /* EXTRuntimeExtensions.h */; }; - F4304AB013BFE6FBFA4FA960 /* YapDatabaseLogging.m in Sources */ = {isa = PBXBuildFile; fileRef = 3EDB03794C1EE1D78ED16415 /* YapDatabaseLogging.m */; }; - F4CB672000C65110BA57E58B /* YapDatabaseSecondaryIndexConnection.m in Sources */ = {isa = PBXBuildFile; fileRef = D9CC93DB3842FCD2686B0818 /* YapDatabaseSecondaryIndexConnection.m */; }; - F5218215B330652216D147AA /* YapDatabaseViewTransaction.m in Sources */ = {isa = PBXBuildFile; fileRef = 1555478860271FB44E77C5AB /* YapDatabaseViewTransaction.m */; }; - F53F28F5834010BFE83DCFBA /* YDBCKChangeQueue.m in Sources */ = {isa = PBXBuildFile; fileRef = 28E81357C4025E01BFBB9B6F /* YDBCKChangeQueue.m */; }; - F5491DE21FB45F0D89E8C30D /* NSDictionary+YapDatabase.m in Sources */ = {isa = PBXBuildFile; fileRef = A2AFFC46474155E870F06DE4 /* NSDictionary+YapDatabase.m */; }; - F5781817B34BC5450C2F729B /* YapDebugDictionary.h in Headers */ = {isa = PBXBuildFile; fileRef = B734E8E4589967249213497A /* YapDebugDictionary.h */; }; - F68CBEAB787589A869F64AFD /* NSDictionary+YapDatabase.h in Headers */ = {isa = PBXBuildFile; fileRef = 9C32FD3A04D3DBF1F06F295A /* NSDictionary+YapDatabase.h */; }; - F6F1FAC465342FBD47008226 /* NSSet+ObjectiveSugar.h in Headers */ = {isa = PBXBuildFile; fileRef = FAB2EDC47DE1B571774A0679 /* NSSet+ObjectiveSugar.h */; }; - F7072C0F54F419EE1A796AFF /* YapDatabaseRelationshipTransaction.m in Sources */ = {isa = PBXBuildFile; fileRef = 4375875DBF26E773E7BDD0A2 /* YapDatabaseRelationshipTransaction.m */; }; - F82EB88918E70AB4AFC0478A /* YapDatabaseRelationship.h in Headers */ = {isa = PBXBuildFile; fileRef = 634946019DCA0FC20F8A0C24 /* YapDatabaseRelationship.h */; }; - F941304C5EB2555FA1D86E40 /* MTLValueTransformer.m in Sources */ = {isa = PBXBuildFile; fileRef = 97892F78259C4A8DFF823F37 /* MTLValueTransformer.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - F9C70B293EA89BE5B1DEFD06 /* YapDebugDictionary.m in Sources */ = {isa = PBXBuildFile; fileRef = 1D157FFDB1D61A6CEF1B03C6 /* YapDebugDictionary.m */; }; - FA8ABD32BD371C877AC612C7 /* NSString+ObjectiveSugar.m in Sources */ = {isa = PBXBuildFile; fileRef = D81F168E6C5567C22EB2AE16 /* NSString+ObjectiveSugar.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - FAC5BC47E032C273AE001F13 /* NSDictionary+MTLJSONKeyPath.m in Sources */ = {isa = PBXBuildFile; fileRef = 76B6885BED46A34231D2AA63 /* NSDictionary+MTLJSONKeyPath.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; - FD5FD1016B7FCDA60E15731D /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BDE7046DB6D273BC2CCF83FD /* CoreGraphics.framework */; }; - FDB21F16458EF45140DB7AF3 /* YapSet.h in Headers */ = {isa = PBXBuildFile; fileRef = 32CE7DC3A3011AFE024C1BD6 /* YapSet.h */; }; - FDBAF07225E4AB998B2A6BE2 /* YapCollectionKey.h in Headers */ = {isa = PBXBuildFile; fileRef = 4FA5B6AD9496F6B7327BEF6B /* YapCollectionKey.h */; }; - FE2D38834DA7B527D513F5BE /* YDBCKRecord.h in Headers */ = {isa = PBXBuildFile; fileRef = D14F9CAC90EDB9BBAC6B4EBD /* YDBCKRecord.h */; }; - FED93FA3367F1A0B33D80C29 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 282B9211FFD2F2EA6B21538A /* Foundation.framework */; }; - FF6C1FB7DC95CA416A917F6F /* Pods-Blog-dyci-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 96A52C89C81885BCCEDD93EE /* Pods-Blog-dyci-dummy.m */; }; - FF910F4A912229591A889F4B /* NSArray+ObjectiveSugar.h in Headers */ = {isa = PBXBuildFile; fileRef = 44290497B83C652848C2AD4A /* NSArray+ObjectiveSugar.h */; }; + 00357407E7E80CD89C172ADB /* YapNull.h in Headers */ = {isa = PBXBuildFile; fileRef = F8FEFB0BE1417D56700D9213 /* YapNull.h */; }; + 00498625488DDDBBC8B9AD3A /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 17C59EF9C856FDB786D8B3CA /* CoreGraphics.framework */; }; + 006239E8AB37A87419A2748C /* HockeySDKFeatureConfig.h in Headers */ = {isa = PBXBuildFile; fileRef = A216285800003DE12DBB5C40 /* HockeySDKFeatureConfig.h */; }; + 008C3E74C1C12AAA19CE4164 /* YapDatabaseRelationshipConnection.m in Sources */ = {isa = PBXBuildFile; fileRef = 0855BACE0760B100075781C5 /* YapDatabaseRelationshipConnection.m */; }; + 008DE6052787417F2DF2F262 /* DDFileLogger.m in Sources */ = {isa = PBXBuildFile; fileRef = 45606DBAD5CBEFF605BBBE0F /* DDFileLogger.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 0097FD1F383B8AAD531EDA30 /* BITFeedbackComposeViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 8C75D3C67A76B2CAAB81F5A7 /* BITFeedbackComposeViewController.m */; }; + 00EF80D2EB0E9EB28081410F /* OMGFormURLEncode.m in Sources */ = {isa = PBXBuildFile; fileRef = 4B88B4102B01AB0D44046BEF /* OMGFormURLEncode.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 00F3C0F4EF36A78C4A2FA21E /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A3D858279C71419EA04223FF /* Foundation.framework */; }; + 018BA01A81E14C8A35CA2440 /* YDBCKRecord.h in Headers */ = {isa = PBXBuildFile; fileRef = D91554D87B0BD4AAF366D2C0 /* YDBCKRecord.h */; }; + 01A4F724F2B0EEBE6DD04A30 /* UIActionSheet+PromiseKit.m in Sources */ = {isa = PBXBuildFile; fileRef = 3E5A3CF1D0D1D9690B1CCF66 /* UIActionSheet+PromiseKit.m */; }; + 02547D51A2C2F8C01EBBA59A /* YDBCKAttachRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = 5590AEB0D60DF19D256F4950 /* YDBCKAttachRequest.m */; }; + 02A3F1626976266045E1CAE9 /* YapRowidSet.mm in Sources */ = {isa = PBXBuildFile; fileRef = E4D6ADCE5C818EA034B01E1A /* YapRowidSet.mm */; }; + 030D75880C907B9471A12A8C /* DDAssert.h in Headers */ = {isa = PBXBuildFile; fileRef = 3308D7BDAB66931744762B7D /* DDAssert.h */; }; + 03D39A60C40221C81476E791 /* YapDatabaseViewRangeOptions.h in Headers */ = {isa = PBXBuildFile; fileRef = 2A5922524CFC0A15389AC04C /* YapDatabaseViewRangeOptions.h */; }; + 0493177CCDC5B18BBF3A99BD /* YapDatabaseFilteredViewPrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = CDE6C69A5800B0A1879965FB /* YapDatabaseFilteredViewPrivate.h */; }; + 04AE49F7649E6D1749B19148 /* YapDatabaseTransaction.h in Headers */ = {isa = PBXBuildFile; fileRef = D6844828514EBDD81BB1276A /* YapDatabaseTransaction.h */; }; + 0547E26936EECA293D929914 /* NSError+MTLModelException.m in Sources */ = {isa = PBXBuildFile; fileRef = 02E31D1B67428645190E3A61 /* NSError+MTLModelException.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 06323A17E8CC7E5D9335C111 /* YapDatabaseSearchResultsViewTransaction.m in Sources */ = {isa = PBXBuildFile; fileRef = 1F96846693844552C3879C5C /* YapDatabaseSearchResultsViewTransaction.m */; }; + 065A6B165C710850A8D55726 /* YapDatabaseFullTextSearchHandler.h in Headers */ = {isa = PBXBuildFile; fileRef = 3C72DCC85D12BD3E79F49B39 /* YapDatabaseFullTextSearchHandler.h */; }; + 067F19DFAA83A04CD4F0AD12 /* SFDynamicCodeInjection.h in Headers */ = {isa = PBXBuildFile; fileRef = 1B6A6462C66A44AE7521BB7D /* SFDynamicCodeInjection.h */; }; + 06A25DAC73C2E0B999C17411 /* BITCrashMetaData.h in Headers */ = {isa = PBXBuildFile; fileRef = EF4AED6747EAC52458F96C18 /* BITCrashMetaData.h */; }; + 06B4A6A1D18FB459C9D42814 /* YapDatabaseSearchResultsView.m in Sources */ = {isa = PBXBuildFile; fileRef = 2E75BAF1F32217CB67E61AAD /* YapDatabaseSearchResultsView.m */; }; + 06C9E68113FF9274BE5797AA /* BITHockeyBaseViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = D02CD2D8EE77AAE8D582FD34 /* BITHockeyBaseViewController.m */; }; + 0715BE8CEE93D3276F3818FB /* BITHockeyAppClient.h in Headers */ = {isa = PBXBuildFile; fileRef = F00A760A0913EC89EAD483E1 /* BITHockeyAppClient.h */; }; + 082F530DE3DF7D319B500262 /* UIViewController+PromiseKit.h in Headers */ = {isa = PBXBuildFile; fileRef = 18D675DC0E73CC8FBADB4C42 /* UIViewController+PromiseKit.h */; }; + 086DD290ABF4CE621B32B702 /* feedbackActivity.png in Resources */ = {isa = PBXBuildFile; fileRef = 261E60A2F8407C25ECD19683 /* feedbackActivity.png */; }; + 0890DB2288BBC937B5588EAF /* DDTTYLogger.m in Sources */ = {isa = PBXBuildFile; fileRef = 66A8CF0B03941003744ADBD7 /* DDTTYLogger.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 09A76763A2E0359A0EAF4743 /* NSDictionary+YapDatabase.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E98D2B274BF59E45E17D265 /* NSDictionary+YapDatabase.m */; }; + 0A3ACD02E348E28E61AA4E45 /* YapDatabaseViewMappings.m in Sources */ = {isa = PBXBuildFile; fileRef = F5858E43FEA881D2581FAFA6 /* YapDatabaseViewMappings.m */; }; + 0A46B049564B293F7ADC6DBA /* YapDatabaseSearchResultsViewTransaction.h in Headers */ = {isa = PBXBuildFile; fileRef = 9E8578CF5A3F9A17E7DA4429 /* YapDatabaseSearchResultsViewTransaction.h */; }; + 0A8D2767E6C1078966DCB34C /* NSObject+MTLComparisonAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = 49AE2F6AA312BA5553E794E7 /* NSObject+MTLComparisonAdditions.h */; }; + 0A9DBEC8B5D7241CA7C019EF /* YapDatabaseCloudKit.m in Sources */ = {isa = PBXBuildFile; fileRef = 7CC64E9CC065CD7F735344B7 /* YapDatabaseCloudKit.m */; }; + 0B1357623F7E72A768B42865 /* es.lproj in Resources */ = {isa = PBXBuildFile; fileRef = D1E37A53CE49826B04F4AD43 /* es.lproj */; }; + 0B1FCFCDFD11C211B210A83B /* YapDatabaseView.h in Headers */ = {isa = PBXBuildFile; fileRef = C73DF6F02141EA46FDC67A4F /* YapDatabaseView.h */; }; + 0B3FCF695D5D413B70ED6178 /* YDBCKMergeInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = 32B70BC8A0F2BDB09E539261 /* YDBCKMergeInfo.h */; }; + 0B5CC4004358FE43BEB19BC4 /* DDDispatchQueueLogFormatter.h in Headers */ = {isa = PBXBuildFile; fileRef = D6DA7E38678327A6EE630CBB /* DDDispatchQueueLogFormatter.h */; }; + 0B6C0CCA434D51078E039DAC /* UIViewController+XIBSupport.m in Sources */ = {isa = PBXBuildFile; fileRef = 6954C9E2A73C06E2012F7EB0 /* UIViewController+XIBSupport.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 0C02DA37DC23E889BC399B0B /* EXTScope.m in Sources */ = {isa = PBXBuildFile; fileRef = 20E112DDB4AE54B73DE1336C /* EXTScope.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 0C61B768EA3C5845588195D5 /* YapDatabaseViewRangeOptions.m in Sources */ = {isa = PBXBuildFile; fileRef = 8F61AF671D23ECCDDCACDCCB /* YapDatabaseViewRangeOptions.m */; }; + 0CF1CC6E91822905E427C234 /* Pods-Blog-ObjectiveSugar-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 48371F1898B464965F96E51C /* Pods-Blog-ObjectiveSugar-dummy.m */; }; + 0D1A373DC590235F813C6CDD /* UIViewController+PromiseKit.m in Sources */ = {isa = PBXBuildFile; fileRef = 933A85934CD7833C22BE6788 /* UIViewController+PromiseKit.m */; }; + 0D455A540F1208658E387BF3 /* YapDatabaseConnectionDefaults.m in Sources */ = {isa = PBXBuildFile; fileRef = 96761BC6195A8322DCAAD104 /* YapDatabaseConnectionDefaults.m */; }; + 0D9FE163730BFC28AF2A8571 /* YapDatabaseSearchResultsViewOptions.m in Sources */ = {isa = PBXBuildFile; fileRef = 3D1E78B56DEAE2A8EBFC2DD1 /* YapDatabaseSearchResultsViewOptions.m */; }; + 0E3226F3116EC6833859B7FD /* BITFeedbackMessageAttachment.m in Sources */ = {isa = PBXBuildFile; fileRef = 5CE71EFCFE9F21DAA8D8EAE9 /* BITFeedbackMessageAttachment.m */; }; + 0E90A6CB92646ADE18C880DB /* YapDatabaseString.h in Headers */ = {isa = PBXBuildFile; fileRef = 412CC4C8070F307CC821193A /* YapDatabaseString.h */; }; + 0ECCB7050A52DC2425D6A7B6 /* UIImage+FontAwesome.m in Sources */ = {isa = PBXBuildFile; fileRef = 04AC09FAF6422E1AD477484B /* UIImage+FontAwesome.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 0F6CAA25A3F4F17AD757108B /* SFInjectionsNotificationsCenter.m in Sources */ = {isa = PBXBuildFile; fileRef = 843E4FAD7FFACCC6D7630FBC /* SFInjectionsNotificationsCenter.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 0F96F43BB182086FC34BB63E /* EXTConcreteProtocol.h in Headers */ = {isa = PBXBuildFile; fileRef = DA09FBC9D9FF33225EF7D0E3 /* EXTConcreteProtocol.h */; }; + 0FA120DD932050587D67E8B2 /* DDLog.m in Sources */ = {isa = PBXBuildFile; fileRef = FFC39F1AD2E4583CE74D9C2B /* DDLog.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 11023D424D27EEACC6A7010C /* YapDatabaseRelationshipConnection.h in Headers */ = {isa = PBXBuildFile; fileRef = B5B6A6CDAC99B9CA07E280F5 /* YapDatabaseRelationshipConnection.h */; }; + 110F72CA40BECDB028624B13 /* NSString+ObjectiveSugar.h in Headers */ = {isa = PBXBuildFile; fileRef = 95F07D0CC3B8F4224850657A /* NSString+ObjectiveSugar.h */; }; + 1158707815AA367832634F83 /* YapDatabaseSecondaryIndexTransaction.h in Headers */ = {isa = PBXBuildFile; fileRef = 4061E7AA76F19B7B8D034A9E /* YapDatabaseSecondaryIndexTransaction.h */; }; + 11A68B2D1F0DD651E71F8290 /* BITCrashReportTextFormatter.m in Sources */ = {isa = PBXBuildFile; fileRef = 34C1E658C17FBD703278F2B4 /* BITCrashReportTextFormatter.m */; }; + 11AE5E3E769018CD73B6942F /* AssetsLibrary.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C90CF2A7FD494577F199A4EC /* AssetsLibrary.framework */; }; + 11F4C4C7950318CA15892432 /* UIAlertView+PromiseKit.h in Headers */ = {isa = PBXBuildFile; fileRef = B47DEF53E78C1B11C9AE15AB /* UIAlertView+PromiseKit.h */; }; + 1268E69AB127998241200F3C /* YapCollectionKey.h in Headers */ = {isa = PBXBuildFile; fileRef = 66C92112F781616FECE24051 /* YapCollectionKey.h */; }; + 12DDD965846CEB2E30C4DFDF /* EXTScope.h in Headers */ = {isa = PBXBuildFile; fileRef = E7C9F2D6F3BE1DCBB8CEFA7E /* EXTScope.h */; }; + 1393704B16C6C2F98E0911C1 /* NSError+MTLModelException.h in Headers */ = {isa = PBXBuildFile; fileRef = 9114C6F1CBD9B1AC3E0997C0 /* NSError+MTLModelException.h */; }; + 13A6A92C6511061D772EFCFE /* EXTRuntimeExtensions.m in Sources */ = {isa = PBXBuildFile; fileRef = 30FCCFB779DD3B92DD26FDC7 /* EXTRuntimeExtensions.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 1400D058565D714ED4F6FAE3 /* YapDatabaseSearchResultsViewConnection.m in Sources */ = {isa = PBXBuildFile; fileRef = 7069286926FEEF472E209A85 /* YapDatabaseSearchResultsViewConnection.m */; }; + 145885C42ED68E062A79E894 /* BITHockeyHelper.m in Sources */ = {isa = PBXBuildFile; fileRef = C74F0DEAF54F1DE7FCC35457 /* BITHockeyHelper.m */; }; + 14DD4FEB056E3683E7FAA171 /* NSDictionary+YapDatabase.h in Headers */ = {isa = PBXBuildFile; fileRef = DA1C87786DB6AA85C2961C74 /* NSDictionary+YapDatabase.h */; }; + 1605A38ADF978E1402B7E819 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A3D858279C71419EA04223FF /* Foundation.framework */; }; + 162BCC6B284F1D323D6C178F /* YapDatabaseRelationshipEdge.m in Sources */ = {isa = PBXBuildFile; fileRef = ECC7511E43500B2A56A62B37 /* YapDatabaseRelationshipEdge.m */; }; + 165DE26398DCBFF6CDD32F60 /* NSObject+MTLComparisonAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = 6316E863B3D956960C6EE011 /* NSObject+MTLComparisonAdditions.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 19130D1EB925B80E2DA82E2A /* DDASLLogger.m in Sources */ = {isa = PBXBuildFile; fileRef = 1C1E5DF6B743BB5E23559BD5 /* DDASLLogger.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 199577487D34AFF3066F61A0 /* YapDatabasePrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = 386A83FA41D150D573E74F1E /* YapDatabasePrivate.h */; }; + 1A85F8C5E8C215FE963ECEED /* NSDictionary+ObjectiveSugar.h in Headers */ = {isa = PBXBuildFile; fileRef = 514533BEC75FAEE685837209 /* NSDictionary+ObjectiveSugar.h */; }; + 1A8D8CC127563D53D1C0609A /* Blur@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 9CF9D320F545EA3CC322ED59 /* Blur@2x.png */; }; + 1AADB49BA9D1B7CB4ABF6F20 /* YDBCKChangeSet.m in Sources */ = {isa = PBXBuildFile; fileRef = F221FECFC4C239D28B863351 /* YDBCKChangeSet.m */; }; + 1AEE436CB3B043B5DF38077E /* metamacros.h in Headers */ = {isa = PBXBuildFile; fileRef = D0609C4BB316F6C406515655 /* metamacros.h */; }; + 1B145ADB5BE1D50E2E085976 /* BITCrashManager.h in Headers */ = {isa = PBXBuildFile; fileRef = E724F9DD2709E8D9D5F680CA /* BITCrashManager.h */; }; + 1B51A4C3E72B77BCD9D1E6CB /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A3D858279C71419EA04223FF /* Foundation.framework */; }; + 1BC63E22FF3860025424C1AC /* YapDatabaseSecondaryIndexOptions.m in Sources */ = {isa = PBXBuildFile; fileRef = 3900BEAD0B3DBE7476E5802A /* YapDatabaseSecondaryIndexOptions.m */; }; + 1C6F66A698AF6DF763DBEC34 /* Rectangle@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 7E9F4A37E13B3D104EF0335F /* Rectangle@3x.png */; }; + 1C7BEE18E82F3E6D0AA497BC /* DDLog.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BF5F262FEB96CD07F5F3999 /* DDLog.h */; }; + 1D74412FA608B2E105AF99AE /* YDBCKMergeInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = E4BEDE1E64DAF695941F11E1 /* YDBCKMergeInfo.m */; }; + 1DE3763D1115834749720FAC /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F8053BF6CAFD67A02BBBC2B3 /* UIKit.framework */; }; + 1EE0D8DBDD5632F652DFD0A0 /* NSNumber+ObjectiveSugar.m in Sources */ = {isa = PBXBuildFile; fileRef = B7308DE79E6B59A6BCED0E55 /* NSNumber+ObjectiveSugar.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 1F75360C0928A1A733F002E3 /* Pods-samhuri.net-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 63C68CAC6E2E77059974D594 /* Pods-samhuri.net-dummy.m */; }; + 1FB65F9D59C8024201DF562C /* EXTSelectorChecking.m in Sources */ = {isa = PBXBuildFile; fileRef = B8927058D6ECCD98D7E28039 /* EXTSelectorChecking.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 2078B49093768B0674C1B482 /* NSDictionary+YapDatabase.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E98D2B274BF59E45E17D265 /* NSDictionary+YapDatabase.m */; }; + 21145BB5A5458AACE3E5F80F /* YapDatabaseRelationshipNode.h in Headers */ = {isa = PBXBuildFile; fileRef = 15F3D78FAB157E06EABAE019 /* YapDatabaseRelationshipNode.h */; }; + 21430E4CEC9F3975CDA10ABD /* BITFeedbackMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = 6DC5B5A9B11FDC576CAF04FE /* BITFeedbackMessage.h */; }; + 21DBACBFCDFA2B79D658C923 /* YapDatabaseExtension.h in Headers */ = {isa = PBXBuildFile; fileRef = 8D3C51219A6CD20F719844B0 /* YapDatabaseExtension.h */; }; + 2322D7F800EF87EBEDA25406 /* YapDatabaseRelationship.m in Sources */ = {isa = PBXBuildFile; fileRef = E6B6A08D1E9E5F8493A740AB /* YapDatabaseRelationship.m */; }; + 2350DE4E6598E2F17470A721 /* bg.png in Resources */ = {isa = PBXBuildFile; fileRef = A61395B78F311A97B3E1F8AE /* bg.png */; }; + 23F5A1C57238EE889C5D7F7B /* YapTouch.m in Sources */ = {isa = PBXBuildFile; fileRef = AD94996C5ACAD93E2413FFF5 /* YapTouch.m */; }; + 23F91B9F7692CB33CD2E5A55 /* YapDatabaseFullTextSearchSnippetOptions.h in Headers */ = {isa = PBXBuildFile; fileRef = B1462766B4B4AC72000D7B03 /* YapDatabaseFullTextSearchSnippetOptions.h */; }; + 23FB52544E2C5EE3D635F748 /* YapWhitelistBlacklist.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BA68376A1F3040D8C24D27A /* YapWhitelistBlacklist.h */; }; + 245B96990AEE7EB650DC2F51 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A3D858279C71419EA04223FF /* Foundation.framework */; }; + 25F476FB0AB40481D6C6A101 /* YapDatabaseSearchResultsViewOptions.h in Headers */ = {isa = PBXBuildFile; fileRef = 5C4660EB662865AAD461955E /* YapDatabaseSearchResultsViewOptions.h */; }; + 261EBF8D0B18CE82E71C3FE2 /* ObjectiveSugar.h in Headers */ = {isa = PBXBuildFile; fileRef = 3391BE37C10FF6570B07E29F /* ObjectiveSugar.h */; }; + 269EA710A2E2BA29BD12A2F9 /* YapDatabaseViewRangeOptions.m in Sources */ = {isa = PBXBuildFile; fileRef = 8F61AF671D23ECCDDCACDCCB /* YapDatabaseViewRangeOptions.m */; }; + 26F083E64ADEDC7CC839D698 /* UINib+StoryBoardSupport.m in Sources */ = {isa = PBXBuildFile; fileRef = D14CAE9F55AF8C3315965B96 /* UINib+StoryBoardSupport.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 27CDF919EC3FD849DFD6DD2C /* NSURLConnection+PromiseKit.m in Sources */ = {isa = PBXBuildFile; fileRef = 86AD898C83FEAEC66761F511 /* NSURLConnection+PromiseKit.m */; }; + 284F2E5F437DB6893837516D /* EXTRuntimeExtensions.m in Sources */ = {isa = PBXBuildFile; fileRef = 447352FCB4CBDE4B74C83AFB /* EXTRuntimeExtensions.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 285BBD7615D84E9D03BD129C /* fwd.h in Headers */ = {isa = PBXBuildFile; fileRef = E8487C0B60EDEB653E99C666 /* fwd.h */; }; + 2861CCFA65B2364D05AADC98 /* YapDatabaseViewChangePrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = 8AECA4DD8C3E0714B0121A40 /* YapDatabaseViewChangePrivate.h */; }; + 288CC222D3713C4A05440D85 /* NSNotificationCenter+PromiseKit.h in Headers */ = {isa = PBXBuildFile; fileRef = 9CD9C39CB45631556C93882F /* NSNotificationCenter+PromiseKit.h */; }; + 289EBDC6156336AC042865AC /* DDASLLogger.m in Sources */ = {isa = PBXBuildFile; fileRef = 1C1E5DF6B743BB5E23559BD5 /* DDASLLogger.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 28F03C931C207959E591B425 /* UINib+StoryBoardSupport.h in Headers */ = {isa = PBXBuildFile; fileRef = 415C8661A54B4780F14761E6 /* UINib+StoryBoardSupport.h */; }; + 28FE9672F83F5BB97074B2DB /* YapDatabase.m in Sources */ = {isa = PBXBuildFile; fileRef = 366C30DD854276061F3DCE87 /* YapDatabase.m */; }; + 292B7ED5EFF49A662136C262 /* DDAbstractDatabaseLogger.h in Headers */ = {isa = PBXBuildFile; fileRef = DE9E3163CF182F22103B1650 /* DDAbstractDatabaseLogger.h */; }; + 29EEA30B90CC88EAD902908E /* YapWhitelistBlacklist.m in Sources */ = {isa = PBXBuildFile; fileRef = 753BBA174B25F196ED8249FE /* YapWhitelistBlacklist.m */; }; + 2A643653ADC7A58DE971BC9F /* fr.lproj in Resources */ = {isa = PBXBuildFile; fileRef = 6FAAC7962D183FFE47391AB9 /* fr.lproj */; }; + 2B4256CDE5E1D6B310E9C983 /* YapDatabaseString.h in Headers */ = {isa = PBXBuildFile; fileRef = 412CC4C8070F307CC821193A /* YapDatabaseString.h */; }; + 2B9882226432EDE4AAD6F9F0 /* YapDatabaseManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 7AF7A347BA85C7686088C524 /* YapDatabaseManager.h */; }; + 2C450FD67EF5F1B5634822AE /* DDLog+LOGV.h in Headers */ = {isa = PBXBuildFile; fileRef = 4904A867238006F8F0B405A2 /* DDLog+LOGV.h */; }; + 2CBAC348FD758DD87B318E35 /* Pods-samhuri.net-Mantle-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 64BF29DC70A4D4C3D337E071 /* Pods-samhuri.net-Mantle-dummy.m */; }; + 2CE7893C33C84CA1E1203614 /* NSDictionary+MTLManipulationAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = FF03E67D65DA039C821AA8C3 /* NSDictionary+MTLManipulationAdditions.h */; }; + 2CF8CAF04F3CBE03E7DF0D1C /* BITAuthenticator_Private.h in Headers */ = {isa = PBXBuildFile; fileRef = 41F934FF9D68DD208014FA0C /* BITAuthenticator_Private.h */; }; + 2D100AA596363F640CFE3BF0 /* YapDatabaseRelationshipTransaction.h in Headers */ = {isa = PBXBuildFile; fileRef = A2C466CF4C38E61C56CD512C /* YapDatabaseRelationshipTransaction.h */; }; + 2D241C21A7B49C3A0502E6FE /* NSURLConnection+PromiseKit.h in Headers */ = {isa = PBXBuildFile; fileRef = 32E49968CE1A2501F494E2E2 /* NSURLConnection+PromiseKit.h */; }; + 2D6EB6058B64544B06C9CD79 /* YapDatabaseSearchResultsViewTransaction.h in Headers */ = {isa = PBXBuildFile; fileRef = 9E8578CF5A3F9A17E7DA4429 /* YapDatabaseSearchResultsViewTransaction.h */; }; + 2D8A04FCC3E235ED7FC51448 /* YapDatabaseViewPage.mm in Sources */ = {isa = PBXBuildFile; fileRef = 9D0A672919FBFFED7000A248 /* YapDatabaseViewPage.mm */; }; + 2D8AAF6B235B594A2C69994E /* OMGFormURLEncode.m in Sources */ = {isa = PBXBuildFile; fileRef = 4B88B4102B01AB0D44046BEF /* OMGFormURLEncode.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 2E6FA1D18CC45EF8167197DA /* YapDatabaseTransaction.m in Sources */ = {isa = PBXBuildFile; fileRef = C7613C63CBEE0C0E474AF6E0 /* YapDatabaseTransaction.m */; }; + 2E9D875E8CB2A76737F34920 /* YapDatabaseConnection.m in Sources */ = {isa = PBXBuildFile; fileRef = BFDEED53E120CF1A10841E3C /* YapDatabaseConnection.m */; }; + 2EC7BD423507DFCBE95D8E89 /* YapDatabaseCloudKitTransaction.m in Sources */ = {isa = PBXBuildFile; fileRef = 998A500C8011BA755A76F99E /* YapDatabaseCloudKitTransaction.m */; }; + 2EDDB0FEA81328795D9606AC /* EXTScope.h in Headers */ = {isa = PBXBuildFile; fileRef = 24D607AD9649AF74B29019EE /* EXTScope.h */; }; + 2FD314275DCA95602CA02586 /* YapDatabaseExtensionTransaction.h in Headers */ = {isa = PBXBuildFile; fileRef = FDFB2AD39FAADD99FFEEA589 /* YapDatabaseExtensionTransaction.h */; }; + 2FF65FDD87B8BB6EA51DD36D /* feedbackActivity@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = C5B718F30DB4FF5860248697 /* feedbackActivity@3x.png */; }; + 30A060B1E5479BC8D53810E0 /* YDBCKAttachRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = 832AFAEC6C62A621F2B71C67 /* YDBCKAttachRequest.h */; }; + 317CFEEDB2848A8FD409A50F /* YapDatabaseFullTextSearchTransaction.m in Sources */ = {isa = PBXBuildFile; fileRef = 8B49AB2BB16A44111D9E44FE /* YapDatabaseFullTextSearchTransaction.m */; }; + 31BB9492AFDA8C9999559AAB /* Pods-samhuri.net-MBProgressHUD-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 55F8BBCDD372EBC1468EADB5 /* Pods-samhuri.net-MBProgressHUD-dummy.m */; }; + 31CC509DA2B94A9AB24EF6AE /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A3D858279C71419EA04223FF /* Foundation.framework */; }; + 3353A6981718F60B7405D924 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A3D858279C71419EA04223FF /* Foundation.framework */; }; + 33593568E8FDEF06F0EE4A3A /* YapDatabaseSearchResultsView.h in Headers */ = {isa = PBXBuildFile; fileRef = 539ACB046AFD27463581E5D0 /* YapDatabaseSearchResultsView.h */; }; + 3362D47005F3E9BEA358352B /* BITRectangleImageAnnotation.m in Sources */ = {isa = PBXBuildFile; fileRef = 8FC9BF63F71BAFDF28AB4597 /* BITRectangleImageAnnotation.m */; }; + 33AC20898C1CE3354C460227 /* BITStoreUpdateManagerDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = 57044F55FDAAE1E32649A2E5 /* BITStoreUpdateManagerDelegate.h */; }; + 34C8574A0944D9217BC56184 /* PMKPromise+Until.m in Sources */ = {isa = PBXBuildFile; fileRef = 545EFEC13527422EBE0B200E /* PMKPromise+Until.m */; }; + 359A4D8615A1BA471317CFFD /* DDLog.m in Sources */ = {isa = PBXBuildFile; fileRef = FFC39F1AD2E4583CE74D9C2B /* DDLog.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 361BAE6AF1C562D0A3563FEF /* OMGFormURLEncode.h in Headers */ = {isa = PBXBuildFile; fileRef = 453E1EE596F7B0A7C9198283 /* OMGFormURLEncode.h */; }; + 3622839617440565AF702F22 /* Rectangle.png in Resources */ = {isa = PBXBuildFile; fileRef = 33E997B4175AFC16EB235986 /* Rectangle.png */; }; + 365115926027C6DB435E30D1 /* BITImageAnnotationViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 482A013B63DD44E516FABED5 /* BITImageAnnotationViewController.m */; }; + 3656C525B641AE4813545424 /* BITHTTPOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = 3845BA65DC2D79DCCF4DA8C7 /* BITHTTPOperation.m */; }; + 366920F898A46F3636CEC345 /* DDASLLogCapture.h in Headers */ = {isa = PBXBuildFile; fileRef = E75BDE50E6F2317995C8A437 /* DDASLLogCapture.h */; }; + 36B43E7F12DE5316B678B0D5 /* YapDatabaseSecondaryIndexTransaction.h in Headers */ = {isa = PBXBuildFile; fileRef = 4061E7AA76F19B7B8D034A9E /* YapDatabaseSecondaryIndexTransaction.h */; }; + 373961A175C4802E0671D3A0 /* NSError+MTLModelException.h in Headers */ = {isa = PBXBuildFile; fileRef = 9114C6F1CBD9B1AC3E0997C0 /* NSError+MTLModelException.h */; }; + 37D6F17F83F29FCDD74A14A4 /* NSSet+ObjectiveSugar.h in Headers */ = {isa = PBXBuildFile; fileRef = E53059491CB83D8CA77E1411 /* NSSet+ObjectiveSugar.h */; }; + 38178C845D54C64115F572DC /* EXTScope.h in Headers */ = {isa = PBXBuildFile; fileRef = 24D607AD9649AF74B29019EE /* EXTScope.h */; }; + 381AA6E9C668B337B315BB41 /* YapDatabaseRelationship.h in Headers */ = {isa = PBXBuildFile; fileRef = 191C50A85AAF5F220AED2574 /* YapDatabaseRelationship.h */; }; + 38723DFBBE55310952E8AEB1 /* EXTRuntimeExtensions.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B076585AB700AE148E81F98 /* EXTRuntimeExtensions.h */; }; + 38959F59DBB16864888169B2 /* YapMemoryTable.m in Sources */ = {isa = PBXBuildFile; fileRef = 67D375A5192D1EAA9A3541A9 /* YapMemoryTable.m */; }; + 389CC7C595810690AC4F9477 /* Pods-Blog-YapDatabase-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 950D8ECC84F1986A667311E6 /* Pods-Blog-YapDatabase-dummy.m */; }; + 38D2050023F32C245EEB18DB /* YapDatabaseFilteredView.h in Headers */ = {isa = PBXBuildFile; fileRef = 0B900CA50B103AAF414C31E2 /* YapDatabaseFilteredView.h */; }; + 395820EA4FAB28B3F7BC6CB6 /* extobjc.h in Headers */ = {isa = PBXBuildFile; fileRef = A7CEB319B56B9E9E04D27915 /* extobjc.h */; }; + 39AC0785B92DEED377498D5C /* NSError+MTLModelException.m in Sources */ = {isa = PBXBuildFile; fileRef = 02E31D1B67428645190E3A61 /* NSError+MTLModelException.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 3A213CE1F40C1E15730D7D83 /* BITHockeyManagerDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = 525C91DAABF989C5022B6BFE /* BITHockeyManagerDelegate.h */; }; + 3A2ADA8C9FEA07027C8A59B1 /* MBProgressHUD.m in Sources */ = {isa = PBXBuildFile; fileRef = B8307E4AD69BA3F0BD61CDE8 /* MBProgressHUD.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 3AA768A534536F1DE32EA739 /* DDContextFilterLogFormatter.m in Sources */ = {isa = PBXBuildFile; fileRef = 8ED3891C4132E5F3D987DA3B /* DDContextFilterLogFormatter.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 3AC7A036D41EC442E21BEBD8 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A3D858279C71419EA04223FF /* Foundation.framework */; }; + 3ADC96295CB0DAAD2965FE8C /* YapDatabaseRelationshipEdge.h in Headers */ = {isa = PBXBuildFile; fileRef = E9F63A4CF9750547BF9F8ED2 /* YapDatabaseRelationshipEdge.h */; }; + 3AE3672685E458AFCD2F44FB /* YapDatabaseSecondaryIndexHandler.m in Sources */ = {isa = PBXBuildFile; fileRef = 35B1468F88F9E2F09EF1C612 /* YapDatabaseSecondaryIndexHandler.m */; }; + 3B19A007A7F625CBC793CC29 /* NSSet+ObjectiveSugar.h in Headers */ = {isa = PBXBuildFile; fileRef = E53059491CB83D8CA77E1411 /* NSSet+ObjectiveSugar.h */; }; + 3B4B26C28AE1D73FEA28E2C7 /* BITCrashAttachment.m in Sources */ = {isa = PBXBuildFile; fileRef = F8410D047D5B93BAD5678990 /* BITCrashAttachment.m */; }; + 3C6C547974CB5E15FC33305D /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A3D858279C71419EA04223FF /* Foundation.framework */; }; + 3C7DC18908F9788ADA6D55D5 /* YDBCKChangeQueue.h in Headers */ = {isa = PBXBuildFile; fileRef = AAC5F68409702EBBD7F41EAB /* YDBCKChangeQueue.h */; }; + 3CB8598031796B218308589A /* DDContextFilterLogFormatter.h in Headers */ = {isa = PBXBuildFile; fileRef = 6311E6BB9B1CF3246CC9E400 /* DDContextFilterLogFormatter.h */; }; + 3D4F37D9F38D9118298EB8F2 /* YDBCKRecord.m in Sources */ = {isa = PBXBuildFile; fileRef = A191A2D84AFBCF9B4962F1C5 /* YDBCKRecord.m */; }; + 3DC787265ABCF0140C76F59E /* MTLTransformerErrorHandling.h in Headers */ = {isa = PBXBuildFile; fileRef = 7BA9BD8D62A3CB35ECD61CA5 /* MTLTransformerErrorHandling.h */; }; + 3E8FE604ECF464D71FA66475 /* EXTKeyPathCoding.h in Headers */ = {isa = PBXBuildFile; fileRef = 691E41760AB736863060BFD1 /* EXTKeyPathCoding.h */; }; + 3EA1CE7224EB298F5AFBC5AA /* NSObject+MTLComparisonAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = 49AE2F6AA312BA5553E794E7 /* NSObject+MTLComparisonAdditions.h */; }; + 3ED7969A67DBB1D88E8D0930 /* YDBCKRecordTableInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = 54D210743ABD4FDDB5813112 /* YDBCKRecordTableInfo.h */; }; + 3F0714F61A82801D3B8346D8 /* zh-Hans.lproj in Resources */ = {isa = PBXBuildFile; fileRef = 0C3BFDBBB613CE4EEBD25D5A /* zh-Hans.lproj */; }; + 3F3B102105C9F3051E716C32 /* SFFileWatcher.m in Sources */ = {isa = PBXBuildFile; fileRef = B20CE3A5B5E149600152DC07 /* SFFileWatcher.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 3FD1D46178BA8F6FDB797239 /* MTLTransformerErrorHandling.h in Headers */ = {isa = PBXBuildFile; fileRef = 7BA9BD8D62A3CB35ECD61CA5 /* MTLTransformerErrorHandling.h */; }; + 3FF5F8E65F95BDCDDDB1F156 /* YapCollectionKey.m in Sources */ = {isa = PBXBuildFile; fileRef = 5B5B9FC5946CF8F25215E267 /* YapCollectionKey.m */; }; + 402DAECFE97E5C8EFA6945D9 /* YapDatabaseExtensionPrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = 1C4CFB0B6D332951DF24B460 /* YapDatabaseExtensionPrivate.h */; }; + 40467043D018E30FB01BFC84 /* EXTSafeCategory.m in Sources */ = {isa = PBXBuildFile; fileRef = DC30B02B06505DAA3860C90D /* EXTSafeCategory.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 40B521ABF127FC7E5593E545 /* YapDatabaseFullTextSearchSnippetOptions.h in Headers */ = {isa = PBXBuildFile; fileRef = B1462766B4B4AC72000D7B03 /* YapDatabaseFullTextSearchSnippetOptions.h */; }; + 40F24D23BFA2093652EEA35E /* Pods-samhuri.net-CocoaLumberjack-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = AEF21CF6CF8B400C23953D19 /* Pods-samhuri.net-CocoaLumberjack-dummy.m */; }; + 416FC5318D61C6A173F56100 /* YapDatabaseViewConnection.h in Headers */ = {isa = PBXBuildFile; fileRef = F24D929AC6E47465E4EE4BB7 /* YapDatabaseViewConnection.h */; }; + 41D376E74F19FD5527C12DA8 /* BITFeedbackActivity.h in Headers */ = {isa = PBXBuildFile; fileRef = 2FDDA96DE068D2DC19AFAAF0 /* BITFeedbackActivity.h */; }; + 4210B239CB62DBB4FB86A42F /* YapDatabaseRelationshipOptions.h in Headers */ = {isa = PBXBuildFile; fileRef = B684D5708CAD4B3AF1CA9744 /* YapDatabaseRelationshipOptions.h */; }; + 425330D5F700D3B3705D88FC /* DDAbstractDatabaseLogger.m in Sources */ = {isa = PBXBuildFile; fileRef = 274D470094D17041FF3DA1AC /* DDAbstractDatabaseLogger.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 427854E66C67F65C3D1EA58C /* YapDatabase.h in Headers */ = {isa = PBXBuildFile; fileRef = 2EB9B1301FF3ED727D99E944 /* YapDatabase.h */; }; + 427937CFB6233998DFEA854B /* YapDatabaseViewPageMetadata.h in Headers */ = {isa = PBXBuildFile; fileRef = 49A31B1F8DB8E1B440578BD9 /* YapDatabaseViewPageMetadata.h */; }; + 4283E4F6A0F1CAEEDBBCD4BF /* YapDatabaseFullTextSearchConnection.m in Sources */ = {isa = PBXBuildFile; fileRef = 977CF34FEDCC96F3250AEB25 /* YapDatabaseFullTextSearchConnection.m */; }; + 42986754DD3DC2809C5D4F6A /* Cancel@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = B08CC53317FA226DE7E2F027 /* Cancel@2x.png */; }; + 434AAE7643238722D13447FA /* BITAttributedLabel.h in Headers */ = {isa = PBXBuildFile; fileRef = 691CB5AAF8BA3BB5039F9A78 /* BITAttributedLabel.h */; }; + 434B70DEB91169B805B19249 /* BITCrashManagerPrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = 05CDEC57933F3510C7B2441E /* BITCrashManagerPrivate.h */; }; + 43A65070852461DFA4DA0197 /* UIActionSheet+PromiseKit.h in Headers */ = {isa = PBXBuildFile; fileRef = 5F5979324BB9AF056953732E /* UIActionSheet+PromiseKit.h */; }; + 44094B30260168D12A1B078B /* iconCamera@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 19F462093848F17B8CD183C9 /* iconCamera@2x.png */; }; + 44ADB4A5E87F3D1730BA3522 /* OMGHTTPURLRQ.h in Headers */ = {isa = PBXBuildFile; fileRef = B13C12B74424099A7F6CDA66 /* OMGHTTPURLRQ.h */; }; + 44E3A069FB42F5C2B0D3E882 /* YapDatabaseCloudKit.h in Headers */ = {isa = PBXBuildFile; fileRef = 4D7B817EF8DE89D1830B62E0 /* YapDatabaseCloudKit.h */; }; + 44FA51EB9454715BB46D82C6 /* pt.lproj in Resources */ = {isa = PBXBuildFile; fileRef = 443A2BFCCC45974DA1DE3843 /* pt.lproj */; }; + 450E107E389350939CF7B087 /* NSString+ObjectiveSugar.m in Sources */ = {isa = PBXBuildFile; fileRef = A090016DDA06CAFA44418CEF /* NSString+ObjectiveSugar.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 45413FDBC6FA0D484BEBD67B /* PMKPromise+Pause.m in Sources */ = {isa = PBXBuildFile; fileRef = CEEB9080907A1F3C429BC151 /* PMKPromise+Pause.m */; }; + 4573E55737897CA4A8B39206 /* NSObject+DyCInjection.h in Headers */ = {isa = PBXBuildFile; fileRef = 3AE5F335396B442F9509FE0F /* NSObject+DyCInjection.h */; }; + 4585B286031DE9B7BD3FBEBC /* YapDatabaseViewPrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = 7AAD0A4416E4C0A3C3B5EB7B /* YapDatabaseViewPrivate.h */; }; + 4596C8F591570BFEA8B0AA48 /* YDBCKChangeSet.m in Sources */ = {isa = PBXBuildFile; fileRef = F221FECFC4C239D28B863351 /* YDBCKChangeSet.m */; }; + 4598CE7398E1FF82B9C7CE68 /* BITFeedbackManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 9D3B4B82336DE8E1ECE450F8 /* BITFeedbackManager.h */; }; + 46691DEF1A42BC5159F2DCBC /* YapRowidSet.h in Headers */ = {isa = PBXBuildFile; fileRef = E4A081B01B0CFF54E56D3534 /* YapRowidSet.h */; }; + 4687823C8703CA1976B569A7 /* Rectangle@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4466E9097130AE97FEF25D4C /* Rectangle@2x.png */; }; + 473D51590FA0313F20B086AF /* YapDatabaseQuery.h in Headers */ = {isa = PBXBuildFile; fileRef = 45A6D1C7B82660AECBF2B462 /* YapDatabaseQuery.h */; }; + 475599A3407596E54E462F7D /* MTLModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 9E3B403889BC6F9D19D277C6 /* MTLModel.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 480694C8A95C4E79D3079EEB /* BITFeedbackManagerPrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = F64755EE1D0B3CC119D83834 /* BITFeedbackManagerPrivate.h */; }; + 488579FF3BCD2FC028766EFA /* MTLReflection.m in Sources */ = {isa = PBXBuildFile; fileRef = EB9B1F88D41CBCBC72A4A328 /* MTLReflection.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 48F03942A12F6A3F62D63520 /* NSString+FontAwesome.h in Headers */ = {isa = PBXBuildFile; fileRef = 6B8C982A031F7F2E060DDE4D /* NSString+FontAwesome.h */; }; + 48F5731B24D708A56ACAFCE0 /* YapDatabaseSearchResultsViewOptions.h in Headers */ = {isa = PBXBuildFile; fileRef = 5C4660EB662865AAD461955E /* YapDatabaseSearchResultsViewOptions.h */; }; + 49012F1B75A8BD5D37C1A2E5 /* UIActionSheet+PromiseKit.m in Sources */ = {isa = PBXBuildFile; fileRef = 3E5A3CF1D0D1D9690B1CCF66 /* UIActionSheet+PromiseKit.m */; }; + 4984E149B7D43CFE121BC83C /* YapDatabaseRelationshipTransaction.m in Sources */ = {isa = PBXBuildFile; fileRef = A2CFBB2A4116F916F5E613CB /* YapDatabaseRelationshipTransaction.m */; }; + 4A0E4BE6BA3CAB01172A7160 /* YDBCKMappingTableInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = 2101B8C7F794EE24F25EC4E3 /* YDBCKMappingTableInfo.m */; }; + 4A90171444F708245C5035D0 /* YapDatabaseFullTextSearchSnippetOptions.m in Sources */ = {isa = PBXBuildFile; fileRef = 001556665D4E2E8E9F833610 /* YapDatabaseFullTextSearchSnippetOptions.m */; }; + 4AB45D0E7A0D8DEF9AF5D009 /* fwd.h in Headers */ = {isa = PBXBuildFile; fileRef = E8487C0B60EDEB653E99C666 /* fwd.h */; }; + 4B4FF55EDF5F646C1E1F9E9B /* DDDispatchQueueLogFormatter.m in Sources */ = {isa = PBXBuildFile; fileRef = FAAFB319976CD30D98D6FBC3 /* DDDispatchQueueLogFormatter.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 4B7F3462F67EE71A4C54BD5E /* YapWhitelistBlacklist.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BA68376A1F3040D8C24D27A /* YapWhitelistBlacklist.h */; }; + 4C181A8F8BAEB87A2996FE4E /* NSObject+DyCInjection.m in Sources */ = {isa = PBXBuildFile; fileRef = D45536A8A9292616190C0685 /* NSObject+DyCInjection.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc -fno-objc-arc"; }; }; + 4CC7582DFA3FF4C144AF95E7 /* YapDatabaseSecondaryIndexSetup.m in Sources */ = {isa = PBXBuildFile; fileRef = AED01E12B72132E11586734E /* YapDatabaseSecondaryIndexSetup.m */; }; + 4D03BDD4D156EDD5D2697F30 /* OMGHTTPURLRQ.h in Headers */ = {isa = PBXBuildFile; fileRef = B13C12B74424099A7F6CDA66 /* OMGHTTPURLRQ.h */; }; + 4D32179BE8B1D2ADE6B47FC5 /* YapDatabaseExtension.m in Sources */ = {isa = PBXBuildFile; fileRef = 96267790E8271AABDE698E41 /* YapDatabaseExtension.m */; }; + 4D527467D70C3490B4FC3A11 /* CALayer+PromiseKit.h in Headers */ = {isa = PBXBuildFile; fileRef = 9BDFF8E55AE2E7785B63D958 /* CALayer+PromiseKit.h */; }; + 4DF590756D84789350D4C3DD /* YapDatabaseFullTextSearchConnection.h in Headers */ = {isa = PBXBuildFile; fileRef = A00C1B96110873C1AFD2F0CB /* YapDatabaseFullTextSearchConnection.h */; }; + 4E6FF07590E89FD6811DFCE2 /* NSNotificationCenter+PromiseKit.m in Sources */ = {isa = PBXBuildFile; fileRef = 18F4F1884C30C7A824655957 /* NSNotificationCenter+PromiseKit.m */; }; + 4EC73B2A231CE6AECE4DDFA0 /* DDMultiFormatter.m in Sources */ = {isa = PBXBuildFile; fileRef = 761CDF1A0221DF27876DBBB4 /* DDMultiFormatter.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 4F609941BBD237787817E8D4 /* ru.lproj in Resources */ = {isa = PBXBuildFile; fileRef = 88B4CF4F8E92DAF09ED05A0F /* ru.lproj */; }; + 4FA6084DE8490CF2F57523B3 /* CALayer+PromiseKit.m in Sources */ = {isa = PBXBuildFile; fileRef = 577BD1F5A8EE64F101B8433C /* CALayer+PromiseKit.m */; }; + 4FC37FAB2CAD2CBF8E6C2C07 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A3D858279C71419EA04223FF /* Foundation.framework */; }; + 4FD11552C1B4196908E81496 /* NSDictionary+YapDatabase.h in Headers */ = {isa = PBXBuildFile; fileRef = DA1C87786DB6AA85C2961C74 /* NSDictionary+YapDatabase.h */; }; + 505BC5D0E337D45624051A39 /* YapDebugDictionary.h in Headers */ = {isa = PBXBuildFile; fileRef = F57AD2B915236D62BFDE1A39 /* YapDebugDictionary.h */; }; + 50AFD701C86ADD903692ECA1 /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8146B2DACA711A176F8EC65B /* QuartzCore.framework */; }; + 50B36EF3072ABF35FBF4CF2A /* BITKeychainUtils.h in Headers */ = {isa = PBXBuildFile; fileRef = 8D4323EE31234804931D429D /* BITKeychainUtils.h */; }; + 50D332F8DC83743E5379CFF7 /* YapDatabaseSearchResultsViewConnection.h in Headers */ = {isa = PBXBuildFile; fileRef = DFFD18C948C4C64B669FDF14 /* YapDatabaseSearchResultsViewConnection.h */; }; + 517164C704513EC46F5C4976 /* YapDatabaseSecondaryIndexHandler.h in Headers */ = {isa = PBXBuildFile; fileRef = D46AF56C180F857301A4EACF /* YapDatabaseSecondaryIndexHandler.h */; }; + 51A009701BDA90D322D7405C /* YapDatabaseSearchResultsViewPrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = FF4B485A40BF5685F4EE0E66 /* YapDatabaseSearchResultsViewPrivate.h */; }; + 51BFA2EF003121D2E7FE1EC4 /* EXTSynthesize.h in Headers */ = {isa = PBXBuildFile; fileRef = 4ECC27DC52F2BDBDE089DFC8 /* EXTSynthesize.h */; }; + 51DC872B4ED8A579377C6106 /* BITCrashManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 335E63163D0E30B59353F7C8 /* BITCrashManager.m */; }; + 51F60AC623006F2BDA43AB47 /* DDMultiFormatter.h in Headers */ = {isa = PBXBuildFile; fileRef = C47DA80EBDB0164E9BAFB0B5 /* DDMultiFormatter.h */; }; + 532776CA91CE5870319396F3 /* NSDictionary+MTLMappingAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = 7D5BD4AE5569C50E63719936 /* NSDictionary+MTLMappingAdditions.h */; }; + 53E1BFADA5A8C0CE6F0857DD /* BITHockeyAttachment.m in Sources */ = {isa = PBXBuildFile; fileRef = BFA1C7814DEAAEE25E98564F /* BITHockeyAttachment.m */; }; + 540FB4623D9CC3EAD5AD7509 /* NSDictionary+ObjectiveSugar.h in Headers */ = {isa = PBXBuildFile; fileRef = 514533BEC75FAEE685837209 /* NSDictionary+ObjectiveSugar.h */; }; + 54BC32B7D3DA95EE77EF1B0A /* YapDatabaseRelationshipEdge.m in Sources */ = {isa = PBXBuildFile; fileRef = ECC7511E43500B2A56A62B37 /* YapDatabaseRelationshipEdge.m */; }; + 55028B4D13C905DCDE26377E /* UIFont+FontAwesome.m in Sources */ = {isa = PBXBuildFile; fileRef = EE81F659FFBB39B939ED56D0 /* UIFont+FontAwesome.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 552DAF4220F1EA00AA650BC1 /* BITFeedbackUserDataViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = ABFFB19D5791381D1E38B388 /* BITFeedbackUserDataViewController.h */; }; + 555D9FF0F7CB80379897CBB5 /* UIView+PromiseKit.m in Sources */ = {isa = PBXBuildFile; fileRef = 80B569CC06E949026E572280 /* UIView+PromiseKit.m */; }; + 55719051D7D02B8246FA7900 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A3D858279C71419EA04223FF /* Foundation.framework */; }; + 55D4CACB09C4547053C91EDA /* EXTRuntimeExtensions.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B076585AB700AE148E81F98 /* EXTRuntimeExtensions.h */; }; + 5633BFB583198AD91B57F1EE /* BITArrowImageAnnotation.h in Headers */ = {isa = PBXBuildFile; fileRef = E1C13DDA10B2FCC00D0B1733 /* BITArrowImageAnnotation.h */; }; + 56ACEF1B02320380A3CA66DC /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F8053BF6CAFD67A02BBBC2B3 /* UIKit.framework */; }; + 56D80D9E9CB69B60A1DCE653 /* DDTTYLogger.h in Headers */ = {isa = PBXBuildFile; fileRef = 8484A41F8D3FA714135DCEB2 /* DDTTYLogger.h */; }; + 56FE7756F243B63EA920C1A9 /* YapDatabaseSecondaryIndexConnection.m in Sources */ = {isa = PBXBuildFile; fileRef = 2F427B1085094DE7CE81AC3D /* YapDatabaseSecondaryIndexConnection.m */; }; + 577540BC2F4F36FC7C832E16 /* YapDebugDictionary.h in Headers */ = {isa = PBXBuildFile; fileRef = F57AD2B915236D62BFDE1A39 /* YapDebugDictionary.h */; }; + 5793BDF913FCA4BF92073621 /* BITCrashManagerDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = 6352535A3B7C66C2B8436637 /* BITCrashManagerDelegate.h */; }; + 579AE92578B43D89D1DC0ED6 /* NSArray+ObjectiveSugar.h in Headers */ = {isa = PBXBuildFile; fileRef = 9BA8961ABB0603C8F593E999 /* NSArray+ObjectiveSugar.h */; }; + 57E08F67C686B24405B3446E /* NSString+ObjectiveSugar.m in Sources */ = {isa = PBXBuildFile; fileRef = A090016DDA06CAFA44418CEF /* NSString+ObjectiveSugar.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 580D2B959BD536D3D1DE1F4A /* DDFileLogger.h in Headers */ = {isa = PBXBuildFile; fileRef = 2F4B02F7F7BB4166E9B2450B /* DDFileLogger.h */; }; + 5827ED560814BA88E67AD96B /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A3D858279C71419EA04223FF /* Foundation.framework */; }; + 583BBB9166B3F30C0EF9E5DF /* UIAlertView+PromiseKit.h in Headers */ = {isa = PBXBuildFile; fileRef = B47DEF53E78C1B11C9AE15AB /* UIAlertView+PromiseKit.h */; }; + 583F572EEB82DFD4ECB485B3 /* MTLModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 9E3B403889BC6F9D19D277C6 /* MTLModel.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 58BABC4B369A9DE271D55FCF /* YapDatabaseExtensionTransaction.h in Headers */ = {isa = PBXBuildFile; fileRef = FDFB2AD39FAADD99FFEEA589 /* YapDatabaseExtensionTransaction.h */; }; + 598C9EC39DF87BFB5D3C98BB /* YapDatabaseSearchResultsViewOptions.m in Sources */ = {isa = PBXBuildFile; fileRef = 3D1E78B56DEAE2A8EBFC2DD1 /* YapDatabaseSearchResultsViewOptions.m */; }; + 5A03B68F0651EE9C9A7837EE /* YapDatabaseViewChangePrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = 8AECA4DD8C3E0714B0121A40 /* YapDatabaseViewChangePrivate.h */; }; + 5A189CEEEC7BB376FAD14908 /* DDLog+LOGV.h in Headers */ = {isa = PBXBuildFile; fileRef = 4904A867238006F8F0B405A2 /* DDLog+LOGV.h */; }; + 5A1BCB6C4EC6515869A89FC6 /* EXTNil.h in Headers */ = {isa = PBXBuildFile; fileRef = 2739CFE5A18784673E3C8B0F /* EXTNil.h */; }; + 5A31C5CAEC23C52D2E3D22B9 /* YapDatabaseViewChange.m in Sources */ = {isa = PBXBuildFile; fileRef = B2DCBAE0AAE04BFDF3DA4C76 /* YapDatabaseViewChange.m */; }; + 5B0E6B80ED57B5AF089A14D1 /* buttonRoundedRegular.png in Resources */ = {isa = PBXBuildFile; fileRef = 58943FAD5ED9486529E4D5EE /* buttonRoundedRegular.png */; }; + 5B91A7001ABDB0B159A6A605 /* PMKPromise+When.m in Sources */ = {isa = PBXBuildFile; fileRef = ED9A8DC9D7A6D0B12D942BC1 /* PMKPromise+When.m */; }; + 5BF63B7234D4618E25B3A5A6 /* BITAuthenticationViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = BE58D22186EDD7783D992802 /* BITAuthenticationViewController.m */; }; + 5BFA0CEA175DA99F05710845 /* Pods-Blog-OMGHTTPURLRQ-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 43F68042387E7D27F22F2807 /* Pods-Blog-OMGHTTPURLRQ-dummy.m */; }; + 5C74003B882E9EE86D060404 /* buttonRoundedDeleteHighlighted@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 00D8EEEC4E976B458CE6B47B /* buttonRoundedDeleteHighlighted@2x.png */; }; + 5C93875B4BC69E96444A77E7 /* EXTRuntimeExtensions.m in Sources */ = {isa = PBXBuildFile; fileRef = 447352FCB4CBDE4B74C83AFB /* EXTRuntimeExtensions.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 5CBAC22A405697FC159750FE /* OMGHTTPURLRQ.m in Sources */ = {isa = PBXBuildFile; fileRef = ACD6CDCFDCB6D2F7EB595AAB /* OMGHTTPURLRQ.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 5D075462E1BA7190B488486C /* YDBCKAttachRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = 5590AEB0D60DF19D256F4950 /* YDBCKAttachRequest.m */; }; + 5D32CBDAEBF6DFF7CF6FDFB2 /* MTLReflection.m in Sources */ = {isa = PBXBuildFile; fileRef = EB9B1F88D41CBCBC72A4A328 /* MTLReflection.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 5DA58AB026D9D71F73694972 /* YapDatabaseRelationshipNode.h in Headers */ = {isa = PBXBuildFile; fileRef = 15F3D78FAB157E06EABAE019 /* YapDatabaseRelationshipNode.h */; }; + 5DE003EB8D2EABDF00EDBB1C /* BITBlurImageAnnotation.m in Sources */ = {isa = PBXBuildFile; fileRef = EAE64D2FD6E6D984CD88A9FB /* BITBlurImageAnnotation.m */; }; + 5E0F27B1D5036867A5A2F90A /* NSArray+MTLManipulationAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = 1A16819046869E61CBED00EC /* NSArray+MTLManipulationAdditions.h */; }; + 5E165EAB71BAD19770E9C68E /* BITStoreUpdateManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 4AE7C3359CE7B7B47CA37885 /* BITStoreUpdateManager.m */; }; + 5E211EADC2486224298B17B8 /* YapDatabaseConnection.h in Headers */ = {isa = PBXBuildFile; fileRef = BE2D2CD73AFBEA265468CA73 /* YapDatabaseConnection.h */; }; + 5E2AD951CAED3666F1E0E552 /* EXTKeyPathCoding.h in Headers */ = {isa = PBXBuildFile; fileRef = 691E41760AB736863060BFD1 /* EXTKeyPathCoding.h */; }; + 5E6EDEBDB09C191FFF81DBCE /* YapDatabaseOptions.h in Headers */ = {isa = PBXBuildFile; fileRef = C18EA8F19C7A63910C2CC3D4 /* YapDatabaseOptions.h */; }; + 5EC3E64180520C60B09D7F3E /* NSObject+MTLComparisonAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = 6316E863B3D956960C6EE011 /* NSObject+MTLComparisonAdditions.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 5ECF79443E1FA2546A5AA388 /* SFFileWatcher.h in Headers */ = {isa = PBXBuildFile; fileRef = EF89A3837032C8E74AF768F4 /* SFFileWatcher.h */; }; + 5EDB1B6E6F9B3CAEA6CD8315 /* OMGUserAgent.h in Headers */ = {isa = PBXBuildFile; fileRef = B40A12346A638AE5BB40D958 /* OMGUserAgent.h */; }; + 5FB4A07C3A86CFB75FFB5B0A /* NSArray+ObjectiveSugar.m in Sources */ = {isa = PBXBuildFile; fileRef = B46A0572C7606D9CC10F8089 /* NSArray+ObjectiveSugar.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 601AEBC0CC26A06CE5054A92 /* YapDatabaseFilteredView.m in Sources */ = {isa = PBXBuildFile; fileRef = 53AC24C6C84404E125ECC04E /* YapDatabaseFilteredView.m */; }; + 615A16B420E726DF0D0A3BAD /* YapDatabaseCloudKitTypes.h in Headers */ = {isa = PBXBuildFile; fileRef = D7A637CFCFDF4A02FDE6118F /* YapDatabaseCloudKitTypes.h */; }; + 61C6E2661145FCE200C552B1 /* NSDictionary+MTLMappingAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = 7D5BD4AE5569C50E63719936 /* NSDictionary+MTLMappingAdditions.h */; }; + 623453C33714A3647C1AD783 /* Pods-Blog-PromiseKit-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 58A686DC5465A91A51A4F298 /* Pods-Blog-PromiseKit-dummy.m */; }; + 6250B782B7B1253D304D3C43 /* YapDatabaseFilteredViewPrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = CDE6C69A5800B0A1879965FB /* YapDatabaseFilteredViewPrivate.h */; }; + 62A2B20FCBB09CBD1A4D466E /* YapDatabaseViewOptions.m in Sources */ = {isa = PBXBuildFile; fileRef = 611A25336B904EA7D08FF5B0 /* YapDatabaseViewOptions.m */; }; + 62B04923FFF40CE24F3EB8D9 /* YapCache.m in Sources */ = {isa = PBXBuildFile; fileRef = 7E0B7A5DBCFD144BC8F28DDD /* YapCache.m */; }; + 62B083A2D11DC5F8F831300D /* YapDatabaseRelationshipPrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = D1955CF839D24FF2D7E4C901 /* YapDatabaseRelationshipPrivate.h */; }; + 630BAF3F26F7AD6EDB919BD9 /* YapDatabaseSecondaryIndexOptions.m in Sources */ = {isa = PBXBuildFile; fileRef = 3900BEAD0B3DBE7476E5802A /* YapDatabaseSecondaryIndexOptions.m */; }; + 631839B9B1D0246B828D86F6 /* YapDatabaseViewRangeOptions.h in Headers */ = {isa = PBXBuildFile; fileRef = 2A5922524CFC0A15389AC04C /* YapDatabaseViewRangeOptions.h */; }; + 6358BA2C16CA8ED98E89FE38 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A3D858279C71419EA04223FF /* Foundation.framework */; }; + 6368742B1BD0BB139888A4BE /* YDBCKMappingTableInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = 2101B8C7F794EE24F25EC4E3 /* YDBCKMappingTableInfo.m */; }; + 6395569F97880C12FA3D0BDD /* DDASLLogger.h in Headers */ = {isa = PBXBuildFile; fileRef = BBECDB2613259DCA4284788C /* DDASLLogger.h */; }; + 63CDDD3C015EDF2A5EC4AF61 /* YapDatabaseViewPageMetadata.h in Headers */ = {isa = PBXBuildFile; fileRef = 49A31B1F8DB8E1B440578BD9 /* YapDatabaseViewPageMetadata.h */; }; + 6434E3693419EA71FA91FDB4 /* YapDatabaseConnectionDefaults.h in Headers */ = {isa = PBXBuildFile; fileRef = DF857BC688A4F09603BDF1A6 /* YapDatabaseConnectionDefaults.h */; }; + 644DA495CEBBC4AFC765F670 /* Promise+When.h in Headers */ = {isa = PBXBuildFile; fileRef = CD30F7532A22486925B12E4A /* Promise+When.h */; }; + 64717D9CDE3304D3D6C20366 /* BITFeedbackComposeViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = D9C4F49E2358FA73E60B7C56 /* BITFeedbackComposeViewController.h */; }; + 64931B16F0AE64840E50776E /* YDBCKRecordTableInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = 1654AAF78C161D58CA37DF48 /* YDBCKRecordTableInfo.m */; }; + 64963BFF1B0E869CED1ED659 /* MTLReflection.h in Headers */ = {isa = PBXBuildFile; fileRef = 56086D9ACE3E4202CC5ECF36 /* MTLReflection.h */; }; + 649B0B8AD6001298455DE372 /* MTLJSONAdapter.h in Headers */ = {isa = PBXBuildFile; fileRef = 416560387AB86E58AEACA1CF /* MTLJSONAdapter.h */; }; + 64E0D3506B7F24C1B3A3AE8C /* YDBCKMappingTableInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = BDD742FFC289164ADC60BFEC /* YDBCKMappingTableInfo.h */; }; + 653387A73FF2930AF73AA02C /* YapDatabaseSearchResultsViewConnection.h in Headers */ = {isa = PBXBuildFile; fileRef = DFFD18C948C4C64B669FDF14 /* YapDatabaseSearchResultsViewConnection.h */; }; + 6544C3CEEC6D4AECD76DE69E /* MTLModel+NSCoding.h in Headers */ = {isa = PBXBuildFile; fileRef = 037C19BCE6D1052E33FDC70D /* MTLModel+NSCoding.h */; }; + 65BE749C5D0754968E60F01B /* YapDatabaseStatement.h in Headers */ = {isa = PBXBuildFile; fileRef = 07B61F7D0A8AFE3AFCA1A201 /* YapDatabaseStatement.h */; }; + 668D70CF2C0E7D460A2A1986 /* YapDatabaseViewState.m in Sources */ = {isa = PBXBuildFile; fileRef = F4C490BAB545A2CE19706343 /* YapDatabaseViewState.m */; }; + 66A53DDB931FB14CE1FB4798 /* SFFileWatcherDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = 8A73ACD2B5F4E4E72836B259 /* SFFileWatcherDelegate.h */; }; + 66BBA89A9E0E00981CCEAD15 /* YapDatabaseCloudKitTypes.m in Sources */ = {isa = PBXBuildFile; fileRef = AAC5621AA7FF6C4DFAE147B1 /* YapDatabaseCloudKitTypes.m */; }; + 66CB7AAE17ADE5F9DD0A415B /* FAImageView.h in Headers */ = {isa = PBXBuildFile; fileRef = D59452232BBDB6A18E87B2F1 /* FAImageView.h */; }; + 66EEBA507EE8CF4E0EDEC037 /* BITUpdateViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 5B0C0416A157FF1D419A9E3C /* BITUpdateViewController.m */; }; + 671889E6917F6D29DB501F29 /* YapDatabaseSecondaryIndexSetup.h in Headers */ = {isa = PBXBuildFile; fileRef = 99521752C217B4336CB569C8 /* YapDatabaseSecondaryIndexSetup.h */; }; + 6752FC9B469170B390D1E75E /* YapDatabaseSearchQueue.m in Sources */ = {isa = PBXBuildFile; fileRef = B565E1CEAC764B1FE933CC01 /* YapDatabaseSearchQueue.m */; }; + 681315E8411ACB2BA91AC807 /* UIViewController+PromiseKit.m in Sources */ = {isa = PBXBuildFile; fileRef = 933A85934CD7833C22BE6788 /* UIViewController+PromiseKit.m */; }; + 687FA4BAB37C10816CCD5DD1 /* YapDatabaseSecondaryIndexOptions.h in Headers */ = {isa = PBXBuildFile; fileRef = 51BC65067D57AD17F146909B /* YapDatabaseSecondaryIndexOptions.h */; }; + 6882153A3E548486987B6684 /* YapDatabaseFilteredViewTransaction.h in Headers */ = {isa = PBXBuildFile; fileRef = 47122A4E641865B3F459AF62 /* YapDatabaseFilteredViewTransaction.h */; }; + 6888425F03EFAF28A0CDF167 /* BITUpdateManager.m in Sources */ = {isa = PBXBuildFile; fileRef = D02D49B172DB14A13C0AF052 /* BITUpdateManager.m */; }; + 68929EAD030DD651F793FE8B /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A3D858279C71419EA04223FF /* Foundation.framework */; }; + 68EF378DD150B5E04FC26E03 /* BITCrashDetails.h in Headers */ = {isa = PBXBuildFile; fileRef = B8D383E28B52278F1229ADB2 /* BITCrashDetails.h */; }; + 6906E61AD645DFC3BB5ED3D4 /* NSDictionary+ObjectiveSugar.m in Sources */ = {isa = PBXBuildFile; fileRef = C2045BE9B71B985A9944A51A /* NSDictionary+ObjectiveSugar.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 696386EA4448035DB15647DF /* YapDatabaseSearchQueue.m in Sources */ = {isa = PBXBuildFile; fileRef = B565E1CEAC764B1FE933CC01 /* YapDatabaseSearchQueue.m */; }; + 69DA3299B01517FF28DA3F3D /* YapDatabaseRelationship.h in Headers */ = {isa = PBXBuildFile; fileRef = 191C50A85AAF5F220AED2574 /* YapDatabaseRelationship.h */; }; + 69EAAFE5FA014AEA185B79F0 /* YapDebugDictionary.m in Sources */ = {isa = PBXBuildFile; fileRef = 4125CD5484E2DEAAF2B5155C /* YapDebugDictionary.m */; }; + 6A3688BB94FB4F874B59FC53 /* YapDatabaseLogging.m in Sources */ = {isa = PBXBuildFile; fileRef = A788ADC1E50F277FB1BFEF64 /* YapDatabaseLogging.m */; }; + 6A3BDEB85CDCD8627D29FDED /* YapDatabaseConnectionDefaults.h in Headers */ = {isa = PBXBuildFile; fileRef = DF857BC688A4F09603BDF1A6 /* YapDatabaseConnectionDefaults.h */; }; + 6A854667DEDB6FE8C287536D /* NSArray+MTLManipulationAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = 1A16819046869E61CBED00EC /* NSArray+MTLManipulationAdditions.h */; }; + 6AA1896240A62E06D48D2A49 /* IconGradient.png in Resources */ = {isa = PBXBuildFile; fileRef = 0BA48468FA647EA7740B2237 /* IconGradient.png */; }; + 6AF53E7EE87CBB5EEFCCE4DA /* MTLModel+NSCoding.m in Sources */ = {isa = PBXBuildFile; fileRef = 5B00B4D81CE931A6E619B059 /* MTLModel+NSCoding.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 6B772D664EDEE75E3BE51A15 /* DDAssert.h in Headers */ = {isa = PBXBuildFile; fileRef = 3308D7BDAB66931744762B7D /* DDAssert.h */; }; + 6BF3BE2FDFEA4673488DB5AF /* BITWebTableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C8CF580CF90B8D37E3D1B8E /* BITWebTableViewCell.m */; }; + 6C8A56EB97A83A0ED61F75AC /* UIAlertView+PromiseKit.m in Sources */ = {isa = PBXBuildFile; fileRef = F4CC610441487CB0DD277837 /* UIAlertView+PromiseKit.m */; }; + 6CA18F5BC87264BADBB06DBE /* NSDictionary+ObjectiveSugar.m in Sources */ = {isa = PBXBuildFile; fileRef = C2045BE9B71B985A9944A51A /* NSDictionary+ObjectiveSugar.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 6D89A1B0E087B0812CBA75EC /* YapNull.m in Sources */ = {isa = PBXBuildFile; fileRef = 80C8E42F143FF516C3C9E62A /* YapNull.m */; }; + 6D8D81744C95AB10FBDEFBE3 /* YapDatabaseSecondaryIndex.h in Headers */ = {isa = PBXBuildFile; fileRef = D4D5E9E4EC00B726E888C956 /* YapDatabaseSecondaryIndex.h */; }; + 6DE4FCF743A42CD08C706A51 /* OMGUserAgent.h in Headers */ = {isa = PBXBuildFile; fileRef = B40A12346A638AE5BB40D958 /* OMGUserAgent.h */; }; + 6ED1EF78B66DF426B0CA3BF1 /* YapTouch.h in Headers */ = {isa = PBXBuildFile; fileRef = 95CF93105862D466397FF4B1 /* YapTouch.h */; }; + 6F1D542369F35F9B8D9D640B /* BITAppStoreHeader.m in Sources */ = {isa = PBXBuildFile; fileRef = 210BD69EAE008EA754D9A9C1 /* BITAppStoreHeader.m */; }; + 6F30826BD6D4457F3044F1A3 /* QuickLook.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F33084A95DA7F1AF3F92D6A1 /* QuickLook.framework */; }; + 6F8FCF9CA86259577B0DA06E /* PromiseKit.h in Headers */ = {isa = PBXBuildFile; fileRef = D09964036F500F44D0E6439F /* PromiseKit.h */; }; + 6F98BB58497A4B9F1DEE3BD9 /* YapDatabaseExtension.m in Sources */ = {isa = PBXBuildFile; fileRef = 96267790E8271AABDE698E41 /* YapDatabaseExtension.m */; }; + 6F9DD9938002B65CA8FEAD77 /* DDMultiFormatter.h in Headers */ = {isa = PBXBuildFile; fileRef = C47DA80EBDB0164E9BAFB0B5 /* DDMultiFormatter.h */; }; + 6FFF8EB8788895272CB3BEA8 /* DDContextFilterLogFormatter.m in Sources */ = {isa = PBXBuildFile; fileRef = 8ED3891C4132E5F3D987DA3B /* DDContextFilterLogFormatter.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 700BB04BD818F0D75FEA716E /* YapDatabaseQuery.m in Sources */ = {isa = PBXBuildFile; fileRef = CB51FD7660ED1FF6F7B15E8C /* YapDatabaseQuery.m */; }; + 71255373AD200D568D958BFE /* YapDatabaseRelationshipEdgePrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = 63531E051F24B64054132595 /* YapDatabaseRelationshipEdgePrivate.h */; }; + 7143169542FD9DFA4C964994 /* EXTSafeCategory.h in Headers */ = {isa = PBXBuildFile; fileRef = A94829669A15A21AC89295A3 /* EXTSafeCategory.h */; }; + 7307B08E5844A9C280225D90 /* YapDatabaseFullTextSearchHandler.m in Sources */ = {isa = PBXBuildFile; fileRef = 8C1222BFAD408530DF43CE93 /* YapDatabaseFullTextSearchHandler.m */; }; + 7308F09D2787A811C5AFAFE6 /* Pods-Blog-FontAwesome+iOS-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 0023677A545752E071C1FFDC /* Pods-Blog-FontAwesome+iOS-dummy.m */; }; + 733031B3E26DC1A8FB2E9EA9 /* YapDatabaseViewState.h in Headers */ = {isa = PBXBuildFile; fileRef = 56065D3D425D00854216D247 /* YapDatabaseViewState.h */; }; + 7332304751F927485FF1FD59 /* NSSet+ClassesList.m in Sources */ = {isa = PBXBuildFile; fileRef = 114CA422CC947006E8843BEA /* NSSet+ClassesList.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 73B459739F3339772F6360A1 /* YapDatabaseViewTypes.h in Headers */ = {isa = PBXBuildFile; fileRef = 9BACB6D0887A9C86E8002A81 /* YapDatabaseViewTypes.h */; }; + 73BB30FA324B7E16D8DBB62C /* NSArray+MTLManipulationAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = EE7CEFDE2BD6D14082EB9C63 /* NSArray+MTLManipulationAdditions.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 740DAD7997A499D732640C6C /* YapDatabaseFullTextSearch.m in Sources */ = {isa = PBXBuildFile; fileRef = BADB20F04C6004120E6DA699 /* YapDatabaseFullTextSearch.m */; }; + 74B0D181BC3C5825D0B62D35 /* DDFileLogger.h in Headers */ = {isa = PBXBuildFile; fileRef = 2F4B02F7F7BB4166E9B2450B /* DDFileLogger.h */; }; + 751DE155A8B203327ECB5412 /* YapDatabaseConnectionState.h in Headers */ = {isa = PBXBuildFile; fileRef = 4EE4DB3EADC9FA878C4AD403 /* YapDatabaseConnectionState.h */; }; + 7583066203DD70C7EAA9D5F4 /* YDBCKChangeSet.h in Headers */ = {isa = PBXBuildFile; fileRef = 97ECBA0283AE5FF1560FB2E1 /* YDBCKChangeSet.h */; }; + 758EFA378869E03BA1331D3B /* BITAppVersionMetaInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = A1D63A224DD1DDB55F3E0845 /* BITAppVersionMetaInfo.m */; }; + 75F431ABDB92F622987D93F6 /* NSDictionary+MTLManipulationAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = B699D2EB04366EDE0133874F /* NSDictionary+MTLManipulationAdditions.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 764F5587FE34D7F5B6065AD0 /* authorize_denied@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = D83377D5F081237EBC7B5F2A /* authorize_denied@2x.png */; }; + 7658344A7414E0854413251C /* pt-PT.lproj in Resources */ = {isa = PBXBuildFile; fileRef = 9E275F2737A058EBEE1A07B6 /* pt-PT.lproj */; }; + 76A02CC857D744FD48EB75DE /* UIImage+FontAwesome.h in Headers */ = {isa = PBXBuildFile; fileRef = 30D8535CBA3362C905BC3293 /* UIImage+FontAwesome.h */; }; + 774018F361A8826FFC46914C /* NSDictionary+MTLJSONKeyPath.h in Headers */ = {isa = PBXBuildFile; fileRef = 3847DF5D69761FB3443E5979 /* NSDictionary+MTLJSONKeyPath.h */; }; + 776A3F9160B23B6624BEB615 /* BITFeedbackMessageAttachment.h in Headers */ = {isa = PBXBuildFile; fileRef = B332B963262FCDB26F30025B /* BITFeedbackMessageAttachment.h */; }; + 77A4B9FAE356D6E0444D4416 /* BITStoreUpdateManagerPrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = AFE481C8464A7599F22AC98E /* BITStoreUpdateManagerPrivate.h */; }; + 783D661B13B6D0BDEB0B16C2 /* BITImageAnnotationViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = 08E41337BE767F4DC801E701 /* BITImageAnnotationViewController.h */; }; + 78629269CC95AF75A98BA19C /* YapDatabaseFilteredViewConnection.m in Sources */ = {isa = PBXBuildFile; fileRef = F47AA7E2BABC5E6D5330EB43 /* YapDatabaseFilteredViewConnection.m */; }; + 789B61DCEF5173C23691E4F8 /* NSNumber+ObjectiveSugar.h in Headers */ = {isa = PBXBuildFile; fileRef = FFCA7F6D3900ECC708486304 /* NSNumber+ObjectiveSugar.h */; }; + 78ACEE0A20CEDD3F8F40601B /* YapDatabaseCloudKitOptions.m in Sources */ = {isa = PBXBuildFile; fileRef = 2FC0EACA760A4D92F849FD81 /* YapDatabaseCloudKitOptions.m */; }; + 797EFA533450C1A24D6962BB /* YapDatabaseSecondaryIndexConnection.h in Headers */ = {isa = PBXBuildFile; fileRef = C8111B094F36B76CC8BEED1C /* YapDatabaseSecondaryIndexConnection.h */; }; + 799BFCD0F7659885C6FC80FD /* NSValueTransformer+MTLInversionAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = 9C2138252A4D097A38516BD3 /* NSValueTransformer+MTLInversionAdditions.h */; }; + 79A02A260804A3D90359F47E /* EXTADT.h in Headers */ = {isa = PBXBuildFile; fileRef = C762D834D70422D3F7A56BFD /* EXTADT.h */; }; + 7A07FEE90A4AAAEDF08B08F3 /* YDBCKChangeRecord.m in Sources */ = {isa = PBXBuildFile; fileRef = 35696F8E5828A75B31EEC22F /* YDBCKChangeRecord.m */; }; + 7A273F90EDE8BA62DAE5BD14 /* NSArray+MTLManipulationAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = EE7CEFDE2BD6D14082EB9C63 /* NSArray+MTLManipulationAdditions.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 7A2E84C78A05AC35C7B2BF2D /* YapDatabaseRelationshipOptions.h in Headers */ = {isa = PBXBuildFile; fileRef = B684D5708CAD4B3AF1CA9744 /* YapDatabaseRelationshipOptions.h */; }; + 7AF3727C0E690BFB421D84BC /* YapDatabaseSearchResultsViewPrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = FF4B485A40BF5685F4EE0E66 /* YapDatabaseSearchResultsViewPrivate.h */; }; + 7B0C3912E1436873C3C44F18 /* YapDatabaseSecondaryIndexPrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = 72A907C9088D4232E6FE4D80 /* YapDatabaseSecondaryIndexPrivate.h */; }; + 7BB21E6F9DF19119E80FBB26 /* YapDatabaseTransaction.h in Headers */ = {isa = PBXBuildFile; fileRef = D6844828514EBDD81BB1276A /* YapDatabaseTransaction.h */; }; + 7BBE1FEBD8510E03E485BA86 /* YDBCKChangeQueue.m in Sources */ = {isa = PBXBuildFile; fileRef = 9DF35933B404EF6610615A32 /* YDBCKChangeQueue.m */; }; + 7C721F95CC677F6F5DCA6F05 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A3D858279C71419EA04223FF /* Foundation.framework */; }; + 7C81CFE32318324096C35F61 /* MTLValueTransformer.h in Headers */ = {isa = PBXBuildFile; fileRef = 31FF98604D391FA436B6BDC0 /* MTLValueTransformer.h */; }; + 7CB861D5F9CA795431CFDD6F /* NSDictionary+MTLJSONKeyPath.m in Sources */ = {isa = PBXBuildFile; fileRef = 2692040EB7CBD64C984AEDE8 /* NSDictionary+MTLJSONKeyPath.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 7CCDD448F5931992C95CCF69 /* en.lproj in Resources */ = {isa = PBXBuildFile; fileRef = F5E14A083793793CCBE0A329 /* en.lproj */; }; + 7D80F20F4EB4FB34E9FA2750 /* YapDatabaseCloudKitTypes.h in Headers */ = {isa = PBXBuildFile; fileRef = D7A637CFCFDF4A02FDE6118F /* YapDatabaseCloudKitTypes.h */; }; + 7DC515A3EE6AADA3E5F784F6 /* DDASLLogger.h in Headers */ = {isa = PBXBuildFile; fileRef = BBECDB2613259DCA4284788C /* DDASLLogger.h */; }; + 7DC6588CE9B1E092EBDA1426 /* buttonRoundedRegular@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 8658767E5AE0054B5D0B1A98 /* buttonRoundedRegular@2x.png */; }; + 7DFF0727A308D78BC8736757 /* YapRowidSet.h in Headers */ = {isa = PBXBuildFile; fileRef = E4A081B01B0CFF54E56D3534 /* YapRowidSet.h */; }; + 7E225C559075D23FBB7A9300 /* YapDatabaseStatement.m in Sources */ = {isa = PBXBuildFile; fileRef = C807DB918DC08D171C49611E /* YapDatabaseStatement.m */; }; + 7E3442F187E50E964A514244 /* YapDatabaseViewTransaction.h in Headers */ = {isa = PBXBuildFile; fileRef = E9595918650E7F06225F7A3F /* YapDatabaseViewTransaction.h */; }; + 7ECC9886787400EC4BFB86DF /* YapDatabaseSecondaryIndexSetup.m in Sources */ = {isa = PBXBuildFile; fileRef = AED01E12B72132E11586734E /* YapDatabaseSecondaryIndexSetup.m */; }; + 7F2BC936C8B67D9EF6C931A1 /* YapDatabaseViewTransaction.m in Sources */ = {isa = PBXBuildFile; fileRef = 3B5FF76C4D98874EF77612FC /* YapDatabaseViewTransaction.m */; }; + 7F30B439BDDD34145F4E5AC2 /* MTLModel+NSCoding.h in Headers */ = {isa = PBXBuildFile; fileRef = 037C19BCE6D1052E33FDC70D /* MTLModel+NSCoding.h */; }; + 7F445E137F37282DAB5E8571 /* YapDatabaseFullTextSearchHandler.m in Sources */ = {isa = PBXBuildFile; fileRef = 8C1222BFAD408530DF43CE93 /* YapDatabaseFullTextSearchHandler.m */; }; + 7F46727943E4F2FE20E40D81 /* YapDatabaseView.m in Sources */ = {isa = PBXBuildFile; fileRef = 352DFB6A03780CD603976FCF /* YapDatabaseView.m */; }; + 8088B8B0202F8E1E9C30B8A5 /* NSValueTransformer+MTLInversionAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = B5147EFC78015B4FD83F9A64 /* NSValueTransformer+MTLInversionAdditions.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 80AA00517C1DD3C73A370372 /* YapDatabaseLogging.m in Sources */ = {isa = PBXBuildFile; fileRef = A788ADC1E50F277FB1BFEF64 /* YapDatabaseLogging.m */; }; + 80B1C9B2C6898B28A9C5EEE7 /* YapDatabaseTransaction.m in Sources */ = {isa = PBXBuildFile; fileRef = C7613C63CBEE0C0E474AF6E0 /* YapDatabaseTransaction.m */; }; + 80C928E957F52C891A9D3AC6 /* YapDatabaseFilteredViewTransaction.h in Headers */ = {isa = PBXBuildFile; fileRef = 47122A4E641865B3F459AF62 /* YapDatabaseFilteredViewTransaction.h */; }; + 80EC7509382EC78D0F38DFC8 /* YapDatabaseCloudKitPrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = 7A7FF9C82931D6BDB9D100D5 /* YapDatabaseCloudKitPrivate.h */; }; + 827C56E6150C97734E3A30FE /* YapDatabaseSearchResultsViewConnection.m in Sources */ = {isa = PBXBuildFile; fileRef = 7069286926FEEF472E209A85 /* YapDatabaseSearchResultsViewConnection.m */; }; + 82886CF9630AC1089504EE9E /* Mantle.h in Headers */ = {isa = PBXBuildFile; fileRef = 3B45EBA63E234BB38D261731 /* Mantle.h */; }; + 82D2E92F92C65EECB84C4E13 /* DDLog.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BF5F262FEB96CD07F5F3999 /* DDLog.h */; }; + 82FE11BE7DC92FC2FB89AFE5 /* YapCache.h in Headers */ = {isa = PBXBuildFile; fileRef = 23DEB41BD56023A09D2ACD97 /* YapCache.h */; }; + 831D2D2382C0AB1F72F9136B /* YapDatabaseViewTransaction.h in Headers */ = {isa = PBXBuildFile; fileRef = E9595918650E7F06225F7A3F /* YapDatabaseViewTransaction.h */; }; + 8345BF366E7557F8E05F6DC1 /* UIView+PromiseKit.m in Sources */ = {isa = PBXBuildFile; fileRef = 80B569CC06E949026E572280 /* UIView+PromiseKit.m */; }; + 83A741FFD6E1EC529F193320 /* YapDatabaseViewConnection.m in Sources */ = {isa = PBXBuildFile; fileRef = 1DFB148410C29145781FC687 /* YapDatabaseViewConnection.m */; }; + 83A9CFF8F9A884FBDDFD3526 /* YapDatabaseSearchQueue.h in Headers */ = {isa = PBXBuildFile; fileRef = F356085F1F39FDFA4F5CA37B /* YapDatabaseSearchQueue.h */; }; + 83E306D53BE724A047656AA8 /* YapDatabaseFullTextSearchConnection.h in Headers */ = {isa = PBXBuildFile; fileRef = A00C1B96110873C1AFD2F0CB /* YapDatabaseFullTextSearchConnection.h */; }; + 8403A27C9246AF1E4134B240 /* NSValueTransformer+MTLInversionAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = B5147EFC78015B4FD83F9A64 /* NSValueTransformer+MTLInversionAdditions.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 8473DB69F033FFE1BD61A2F9 /* YapDatabaseOptions.h in Headers */ = {isa = PBXBuildFile; fileRef = C18EA8F19C7A63910C2CC3D4 /* YapDatabaseOptions.h */; }; + 84A955BCE4D0ECD0ECD55A0C /* YapDatabaseFilteredViewTypes.h in Headers */ = {isa = PBXBuildFile; fileRef = 8A5A416D773F592806718C79 /* YapDatabaseFilteredViewTypes.h */; }; + 84C83DD4E085AD4F463A4D2E /* YapDatabaseConnectionState.h in Headers */ = {isa = PBXBuildFile; fileRef = 4EE4DB3EADC9FA878C4AD403 /* YapDatabaseConnectionState.h */; }; + 84F08C0E6A8A643FB2DAED61 /* Arrow@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = F8F6B9AFA030C8D0E2824825 /* Arrow@2x.png */; }; + 84FE4BB023882C4BA6D15159 /* YapCache.h in Headers */ = {isa = PBXBuildFile; fileRef = 23DEB41BD56023A09D2ACD97 /* YapCache.h */; }; + 8506ECC91995F0C425DA43C6 /* YapDatabaseViewTypes.m in Sources */ = {isa = PBXBuildFile; fileRef = 15F88EA193C178431DB484CF /* YapDatabaseViewTypes.m */; }; + 853D46F1F95D6100AA40EEA4 /* ja.lproj in Resources */ = {isa = PBXBuildFile; fileRef = 34C9996FF9709CA210D8AF16 /* ja.lproj */; }; + 8583D4EE10F2F740EE5E6FDA /* YapDatabaseCloudKitPrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = 7A7FF9C82931D6BDB9D100D5 /* YapDatabaseCloudKitPrivate.h */; }; + 85D4FD59C7DB2CB87ECCB1D5 /* Ok.png in Resources */ = {isa = PBXBuildFile; fileRef = 619FF75A6C351D8E5A76F150 /* Ok.png */; }; + 85F916C534BD8573E0F7F1FF /* CALayer+PromiseKit.h in Headers */ = {isa = PBXBuildFile; fileRef = 9BDFF8E55AE2E7785B63D958 /* CALayer+PromiseKit.h */; }; + 8613CB3545379C7FD1977D3B /* BITCrashAttachment.h in Headers */ = {isa = PBXBuildFile; fileRef = 29CBB86E0543325F5C71E3C7 /* BITCrashAttachment.h */; }; + 8622019213E0E3FC6061B855 /* hu.lproj in Resources */ = {isa = PBXBuildFile; fileRef = BA776DEBA98EB4903E84A0F8 /* hu.lproj */; }; + 862972EAC3F820ADE0AADFE4 /* YapDatabaseSearchResultsViewTransaction.m in Sources */ = {isa = PBXBuildFile; fileRef = 1F96846693844552C3879C5C /* YapDatabaseSearchResultsViewTransaction.m */; }; + 8650D67B04EC2D6E712043BE /* BITUpdateManagerPrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = 8FC31F546D407C5CA2178EEC /* BITUpdateManagerPrivate.h */; }; + 86CA29F91C4AC0969356038D /* YapMurmurHash.h in Headers */ = {isa = PBXBuildFile; fileRef = 9F44670C425F0B0B5D1DA6A8 /* YapMurmurHash.h */; }; + 871323991FE5F5FFD6D494AC /* YapDatabaseConnection.m in Sources */ = {isa = PBXBuildFile; fileRef = BFDEED53E120CF1A10841E3C /* YapDatabaseConnection.m */; }; + 8763048A0612B1FF06CC5DAB /* PMKPromise+Pause.m in Sources */ = {isa = PBXBuildFile; fileRef = CEEB9080907A1F3C429BC151 /* PMKPromise+Pause.m */; }; + 87F11CE08B023F5651F4142B /* feedbackActivity@2x~ipad.png in Resources */ = {isa = PBXBuildFile; fileRef = 83C4D9F9C462505028F391D8 /* feedbackActivity@2x~ipad.png */; }; + 8847A1B446AAC234DB925200 /* YapDatabaseCloudKit.h in Headers */ = {isa = PBXBuildFile; fileRef = 4D7B817EF8DE89D1830B62E0 /* YapDatabaseCloudKit.h */; }; + 8882459B91CC68097797D8A2 /* YapMurmurHash.h in Headers */ = {isa = PBXBuildFile; fileRef = 9F44670C425F0B0B5D1DA6A8 /* YapMurmurHash.h */; }; + 8894CDEE2FBA7750422C3B23 /* NSValueTransformer+MTLInversionAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = 9C2138252A4D097A38516BD3 /* NSValueTransformer+MTLInversionAdditions.h */; }; + 88B4B17DA97B965289E882D7 /* EXTScope.m in Sources */ = {isa = PBXBuildFile; fileRef = 20E112DDB4AE54B73DE1336C /* EXTScope.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 8934915D4D6C3D23FC95F2F3 /* YapDatabaseFullTextSearchTransaction.h in Headers */ = {isa = PBXBuildFile; fileRef = DC719BEEF38A47B7FCD2D072 /* YapDatabaseFullTextSearchTransaction.h */; }; + 89837DE07B8D50E2967E08CF /* YapCache.m in Sources */ = {isa = PBXBuildFile; fileRef = 7E0B7A5DBCFD144BC8F28DDD /* YapCache.m */; }; + 898BC7757444DDEBECA373A4 /* YapDatabaseViewTransaction.m in Sources */ = {isa = PBXBuildFile; fileRef = 3B5FF76C4D98874EF77612FC /* YapDatabaseViewTransaction.m */; }; + 89C6E7572F747013402F5A1F /* YapDebugDictionary.m in Sources */ = {isa = PBXBuildFile; fileRef = 4125CD5484E2DEAAF2B5155C /* YapDebugDictionary.m */; }; + 89DF1053D652C0B1F679B0EE /* EXTSelectorChecking.h in Headers */ = {isa = PBXBuildFile; fileRef = F274EA53A36697B1B7BAE1A8 /* EXTSelectorChecking.h */; }; + 89E8A947D1794ED8B0C8E479 /* BITFeedbackListViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 3E73A3BE5BCB9F34559E7487 /* BITFeedbackListViewCell.m */; }; + 8B6C818C7895116F3B241761 /* Pods-Blog-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 8923DA8CD8ED19BB1054776B /* Pods-Blog-dummy.m */; }; + 8B8AF19E5E5F0A59377A0892 /* YapDatabaseViewChange.h in Headers */ = {isa = PBXBuildFile; fileRef = 8974C23ED1F0A7C3B889B3F8 /* YapDatabaseViewChange.h */; }; + 8B9C4F2BF9E756BA37302392 /* YapSet.m in Sources */ = {isa = PBXBuildFile; fileRef = AC9D8A4B26B7D42DBB165638 /* YapSet.m */; }; + 8C0304B1E956A02CA1F24A3F /* BITArrowImageAnnotation.m in Sources */ = {isa = PBXBuildFile; fileRef = 370E802FEEF2460621C8F46E /* BITArrowImageAnnotation.m */; }; + 8C32F918D6D612BC41C5B6A1 /* Promise+Until.h in Headers */ = {isa = PBXBuildFile; fileRef = F15DAE4BDB915BFE7508024F /* Promise+Until.h */; }; + 8C5D36EA4BC591FDB0F5C74C /* YapDatabaseOptions.m in Sources */ = {isa = PBXBuildFile; fileRef = DEA6B5733F09C55165652C38 /* YapDatabaseOptions.m */; }; + 8C911A745C6DA439B13C6FAC /* YapDatabaseViewRangeOptionsPrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = A8262161BF27E52DDFD6120E /* YapDatabaseViewRangeOptionsPrivate.h */; }; + 8CB0F6FF3E9092A1AB0B2BE8 /* buttonRoundedRegularHighlighted@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 4769C352C1DA43D4A24C8046 /* buttonRoundedRegularHighlighted@2x.png */; }; + 8CBC883ABA6A9E3085B4661E /* IconGradient@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = B9C0C260A159F0A4EF7A808D /* IconGradient@2x.png */; }; + 8D046694D1A081870958CDB6 /* YapTouch.m in Sources */ = {isa = PBXBuildFile; fileRef = AD94996C5ACAD93E2413FFF5 /* YapTouch.m */; }; + 8D07713A62FB6E134CBFA406 /* Security.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 815314C99E35FEFB96DA5AF6 /* Security.framework */; }; + 8DD3E4B84B235A8CB16CC419 /* PMKPromise.m in Sources */ = {isa = PBXBuildFile; fileRef = FADB6D00FDFF01299D91DAA4 /* PMKPromise.m */; }; + 8DEE065E2B7CAD5E788F1694 /* YapDatabaseCloudKitConnection.m in Sources */ = {isa = PBXBuildFile; fileRef = 3FCA618023FBE51E612DA698 /* YapDatabaseCloudKitConnection.m */; }; + 8E089D738485289A17AFECD2 /* YapDatabaseExtensionConnection.m in Sources */ = {isa = PBXBuildFile; fileRef = 15D097C2D670F44F774D2ED4 /* YapDatabaseExtensionConnection.m */; }; + 8E921E61567BD1B92D638D04 /* UIViewController+PromiseKit.h in Headers */ = {isa = PBXBuildFile; fileRef = 18D675DC0E73CC8FBADB4C42 /* UIViewController+PromiseKit.h */; }; + 8EDA4199C7735C4146F437CA /* buttonRoundedDelete@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E99115FDF6C72A432292F617 /* buttonRoundedDelete@2x.png */; }; + 90041268DFE7C8F87BA91B4E /* BITHockeyHelper.h in Headers */ = {isa = PBXBuildFile; fileRef = 5BDC3DAC2F06250D696C8D6A /* BITHockeyHelper.h */; }; + 9007A7616615F565555E2BA0 /* metamacros.h in Headers */ = {isa = PBXBuildFile; fileRef = C8D0CBA0F0B7FF4B1052CB92 /* metamacros.h */; }; + 901CA4AC78AB32DF69EDFDF3 /* Promise.h in Headers */ = {isa = PBXBuildFile; fileRef = A07DB2BC98BD53CB96177A33 /* Promise.h */; }; + 90F3950E82004FBA135FA363 /* DDDispatchQueueLogFormatter.h in Headers */ = {isa = PBXBuildFile; fileRef = D6DA7E38678327A6EE630CBB /* DDDispatchQueueLogFormatter.h */; }; + 916FA8188A6AB953F2C06DAC /* BITAppStoreHeader.h in Headers */ = {isa = PBXBuildFile; fileRef = 023AB80B442AFF1AABDA0136 /* BITAppStoreHeader.h */; }; + 91EF5504E6574D52DD312CEA /* MTLModel.h in Headers */ = {isa = PBXBuildFile; fileRef = 681E61D4F1C8003DD0002889 /* MTLModel.h */; }; + 91F699CB1C420F7842DD2ABF /* SFInjectionsNotificationsCenter.h in Headers */ = {isa = PBXBuildFile; fileRef = C58F952C5F5929EC34DAD464 /* SFInjectionsNotificationsCenter.h */; }; + 91FD0C7D348ACC2E46B05E8D /* YapDatabaseRelationshipEdgePrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = 63531E051F24B64054132595 /* YapDatabaseRelationshipEdgePrivate.h */; }; + 9223213B27E53C6F69F52DA1 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A3D858279C71419EA04223FF /* Foundation.framework */; }; + 922ACAD8060EA4EC493BAA3E /* NSURLConnection+PromiseKit.h in Headers */ = {isa = PBXBuildFile; fileRef = 32E49968CE1A2501F494E2E2 /* NSURLConnection+PromiseKit.h */; }; + 9322F9A2E84D46E192713159 /* YapDatabaseFullTextSearchPrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = 4F2E399A66CFCB22E5B8F9AF /* YapDatabaseFullTextSearchPrivate.h */; }; + 93888661913AD24E3C314598 /* YapDatabase.h in Headers */ = {isa = PBXBuildFile; fileRef = 2EB9B1301FF3ED727D99E944 /* YapDatabase.h */; }; + 940ECE21F4090FAAE6BB22CA /* YapDatabaseExtensionPrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = 1C4CFB0B6D332951DF24B460 /* YapDatabaseExtensionPrivate.h */; }; + 94656B2F30C95BA0905B5154 /* BITCrashDetails.m in Sources */ = {isa = PBXBuildFile; fileRef = 17FCC42E1E89C434B27DD341 /* BITCrashDetails.m */; }; + 94BE78190C2737277185520D /* BITActivityIndicatorButton.m in Sources */ = {isa = PBXBuildFile; fileRef = 9973582A5A4A1ABA5E58F4EC /* BITActivityIndicatorButton.m */; }; + 94FA2A6F3DC028A304A21992 /* YapSet.m in Sources */ = {isa = PBXBuildFile; fileRef = AC9D8A4B26B7D42DBB165638 /* YapSet.m */; }; + 9518B22BF6A2A231D2BE822A /* Pods-Blog-Mantle-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = C3804B73F2EC0DCA400A52F7 /* Pods-Blog-Mantle-dummy.m */; }; + 9586D351FD73BEE55101F1C9 /* BITStoreButton.m in Sources */ = {isa = PBXBuildFile; fileRef = 73ADA74ED86FE7A04A2BBB09 /* BITStoreButton.m */; }; + 963A64E58652D08395E1936F /* YapDatabaseFilteredView.m in Sources */ = {isa = PBXBuildFile; fileRef = 53AC24C6C84404E125ECC04E /* YapDatabaseFilteredView.m */; }; + 96BD0DB909C007F67B126DAE /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A3D858279C71419EA04223FF /* Foundation.framework */; }; + 97B74CC70B829946B13F17E3 /* nl.lproj in Resources */ = {isa = PBXBuildFile; fileRef = C8F81CCAFE1ED63F6653D4B9 /* nl.lproj */; }; + 97DD7C404140AE8D8DED2058 /* DDASLLogCapture.m in Sources */ = {isa = PBXBuildFile; fileRef = 5D952B697E2680C68FE77644 /* DDASLLogCapture.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + 97E987F1C4F17F3D5A74C95D /* YapDatabaseRelationshipConnection.m in Sources */ = {isa = PBXBuildFile; fileRef = 0855BACE0760B100075781C5 /* YapDatabaseRelationshipConnection.m */; }; + 980635C99D0DF6BBA01D7856 /* YapMurmurHash.m in Sources */ = {isa = PBXBuildFile; fileRef = BEE885DFA7204CFFFEBD7025 /* YapMurmurHash.m */; }; + 982FA86CD51AA95CAB005FD8 /* BITCrashMetaData.m in Sources */ = {isa = PBXBuildFile; fileRef = DF177AEF85DDBF3F632E0048 /* BITCrashMetaData.m */; }; + 984D3CDA6C07C0A399389D91 /* Pods-samhuri.net-OMGHTTPURLRQ-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 99019BE2A98353593D8C2EC6 /* Pods-samhuri.net-OMGHTTPURLRQ-dummy.m */; }; + 98C56FCE7E336DDDBEB49861 /* YapDatabaseFilteredViewTypes.h in Headers */ = {isa = PBXBuildFile; fileRef = 8A5A416D773F592806718C79 /* YapDatabaseFilteredViewTypes.h */; }; + 98DAD8C91E4529FB901F5C95 /* BITStoreUpdateManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A04A7AFC6BE2AD6942FC7A0 /* BITStoreUpdateManager.h */; }; + 997034C78D6AAFCEBAD7BC41 /* YapDatabaseSecondaryIndexConnection.h in Headers */ = {isa = PBXBuildFile; fileRef = C8111B094F36B76CC8BEED1C /* YapDatabaseSecondaryIndexConnection.h */; }; + 9A5B83B6C06DC274004AB490 /* YapMemoryTable.h in Headers */ = {isa = PBXBuildFile; fileRef = 22E9DB4B26820E0AB0FBFAFD /* YapMemoryTable.h */; }; + 9A7854060F3E36645049D448 /* HockeySDKPrivate.m in Sources */ = {isa = PBXBuildFile; fileRef = 40450CB2949BAF782E845D9A /* HockeySDKPrivate.m */; }; + 9B561F93CA12F9072CB37AF9 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F8053BF6CAFD67A02BBBC2B3 /* UIKit.framework */; }; + 9B59F86BA9F768A81C49CBBC /* YapDatabaseConnectionState.m in Sources */ = {isa = PBXBuildFile; fileRef = CB9CE60E51F3C872D75ABCC3 /* YapDatabaseConnectionState.m */; }; + 9C43BD57A7426F926D045B82 /* YapDatabaseFullTextSearchTransaction.m in Sources */ = {isa = PBXBuildFile; fileRef = 8B49AB2BB16A44111D9E44FE /* YapDatabaseFullTextSearchTransaction.m */; }; + 9CF06A762903D205D94AA832 /* YapMurmurHash.m in Sources */ = {isa = PBXBuildFile; fileRef = BEE885DFA7204CFFFEBD7025 /* YapMurmurHash.m */; }; + 9D06FAD78D74C34B91F70852 /* YapCollectionKey.h in Headers */ = {isa = PBXBuildFile; fileRef = 66C92112F781616FECE24051 /* YapCollectionKey.h */; }; + 9D1618374E3D501D81B7233F /* NSArray+ObjectiveSugar.h in Headers */ = {isa = PBXBuildFile; fileRef = 9BA8961ABB0603C8F593E999 /* NSArray+ObjectiveSugar.h */; }; + 9D357C0F7073E1E9BE272EFD /* BITFeedbackActivity.m in Sources */ = {isa = PBXBuildFile; fileRef = 77D0BA74750D46E665A9B16A /* BITFeedbackActivity.m */; }; + 9DA9CFE746A849295DFB48D8 /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8146B2DACA711A176F8EC65B /* QuartzCore.framework */; }; + 9DBA31DA0CD1C09106B208BA /* YapDatabaseSearchResultsView.m in Sources */ = {isa = PBXBuildFile; fileRef = 2E75BAF1F32217CB67E61AAD /* YapDatabaseSearchResultsView.m */; }; + 9E7DD7013EB6125BD59875C2 /* BITUpdateManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 448B6C7ECD26944B3A127030 /* BITUpdateManager.h */; }; + 9E8A9AA837C273BEA3FEBAA7 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A3D858279C71419EA04223FF /* Foundation.framework */; }; + A04C371A0971E9E638C8BDE2 /* MTLModel.h in Headers */ = {isa = PBXBuildFile; fileRef = 681E61D4F1C8003DD0002889 /* MTLModel.h */; }; + A0848DE5BAAD072C4651E215 /* YapNull.h in Headers */ = {isa = PBXBuildFile; fileRef = F8FEFB0BE1417D56700D9213 /* YapNull.h */; }; + A0FE850D3229835DA9756834 /* NSMutableArray+ObjectiveSugar.h in Headers */ = {isa = PBXBuildFile; fileRef = 4544A85C176459B3C99B3204 /* NSMutableArray+ObjectiveSugar.h */; }; + A12D84242452D283C235BAE9 /* Promise+Pause.h in Headers */ = {isa = PBXBuildFile; fileRef = B278467453160CB24D460AD6 /* Promise+Pause.h */; }; + A13437D57E7A71A77FEBEB73 /* YDBCKMergeInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = 32B70BC8A0F2BDB09E539261 /* YDBCKMergeInfo.h */; }; + A13CAE22B770870B02B0B8E2 /* YapWhitelistBlacklist.m in Sources */ = {isa = PBXBuildFile; fileRef = 753BBA174B25F196ED8249FE /* YapWhitelistBlacklist.m */; }; + A14B7B87F47F19B3BF0BC680 /* YapDatabaseSecondaryIndex.m in Sources */ = {isa = PBXBuildFile; fileRef = 4F8E5DB57A211F1B11B63E35 /* YapDatabaseSecondaryIndex.m */; }; + A172DAA1DB4F2FC3EC1CEE6E /* DDTTYLogger.m in Sources */ = {isa = PBXBuildFile; fileRef = 66A8CF0B03941003744ADBD7 /* DDTTYLogger.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + A1AA7C746A3072BD08516811 /* YapDatabaseViewPrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = 7AAD0A4416E4C0A3C3B5EB7B /* YapDatabaseViewPrivate.h */; }; + A1BDF09AF65D51C554B6435F /* PromiseKit.h in Headers */ = {isa = PBXBuildFile; fileRef = D09964036F500F44D0E6439F /* PromiseKit.h */; }; + A1CC3AF0ABC198B87F8FF0D7 /* BITHockeyAttachment.h in Headers */ = {isa = PBXBuildFile; fileRef = 484906CAA5606962F78730B5 /* BITHockeyAttachment.h */; }; + A2678042952310D845833CEB /* YapDatabaseCloudKitConnection.h in Headers */ = {isa = PBXBuildFile; fileRef = 6F372C6AEA560874496EFC18 /* YapDatabaseCloudKitConnection.h */; }; + A269E128175C6F7FCFBE9733 /* YapDatabaseRelationshipOptions.m in Sources */ = {isa = PBXBuildFile; fileRef = 7BCA3D8DDF1E64072AA60C64 /* YapDatabaseRelationshipOptions.m */; }; + A2DBEB4E00810B592139F133 /* BITImageAnnotation.m in Sources */ = {isa = PBXBuildFile; fileRef = 425EC32991B418837B39D218 /* BITImageAnnotation.m */; }; + A398B0DBE5E86833CE90CD70 /* OMGFormURLEncode.h in Headers */ = {isa = PBXBuildFile; fileRef = 453E1EE596F7B0A7C9198283 /* OMGFormURLEncode.h */; }; + A3E94F8CCC95879939791BEB /* YapDatabaseSecondaryIndexSetup.h in Headers */ = {isa = PBXBuildFile; fileRef = 99521752C217B4336CB569C8 /* YapDatabaseSecondaryIndexSetup.h */; }; + A3FA4A2F448BC016D2CEC949 /* BITActivityIndicatorButton.h in Headers */ = {isa = PBXBuildFile; fileRef = C065A640C0472962CC3D0BEA /* BITActivityIndicatorButton.h */; }; + A4B9FD3521B5843A1AB2924D /* PMKPromise.m in Sources */ = {isa = PBXBuildFile; fileRef = FADB6D00FDFF01299D91DAA4 /* PMKPromise.m */; }; + A4F69FB9CE18A4661093A112 /* YDBCKRecord.h in Headers */ = {isa = PBXBuildFile; fileRef = D91554D87B0BD4AAF366D2C0 /* YDBCKRecord.h */; }; + A5747F5018A04396D1E7FEE3 /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8146B2DACA711A176F8EC65B /* QuartzCore.framework */; }; + A788B096C915DC19D42B0F70 /* BITFeedbackManagerDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = 613A94C0F28E81A4BDF2476A /* BITFeedbackManagerDelegate.h */; }; + A7938EC509B19FE98CD10386 /* BITWebTableViewCell.h in Headers */ = {isa = PBXBuildFile; fileRef = C42CFB31A20D6166365F15D3 /* BITWebTableViewCell.h */; }; + A7979F9C335EDE66E0D1C954 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A3D858279C71419EA04223FF /* Foundation.framework */; }; + A7A0E01AE163188134A979C2 /* YapDatabaseFullTextSearch.h in Headers */ = {isa = PBXBuildFile; fileRef = 1F8AAC223A0E556C92B3C4F5 /* YapDatabaseFullTextSearch.h */; }; + A821C231AC63CF86F4CDDB12 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F8053BF6CAFD67A02BBBC2B3 /* UIKit.framework */; }; + A82B9ED1F21314B3BFA84FCF /* MTLTransformerErrorHandling.m in Sources */ = {isa = PBXBuildFile; fileRef = 18962583BAA744E203BCF9E0 /* MTLTransformerErrorHandling.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + A881F12A458473DF371A8028 /* Blur@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = A47AFE0CD90EC2F611BBB170 /* Blur@3x.png */; }; + A8F640CD9D925CAD66622F5B /* YapDatabaseFullTextSearch.h in Headers */ = {isa = PBXBuildFile; fileRef = 1F8AAC223A0E556C92B3C4F5 /* YapDatabaseFullTextSearch.h */; }; + A93C678956C3752DC11B509D /* YapDatabaseOptions.m in Sources */ = {isa = PBXBuildFile; fileRef = DEA6B5733F09C55165652C38 /* YapDatabaseOptions.m */; }; + A95BF160FEBA39DAAAC7BB76 /* NSDictionary+MTLManipulationAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = FF03E67D65DA039C821AA8C3 /* NSDictionary+MTLManipulationAdditions.h */; }; + A9AAA5B9FA7DE93E709EDDC3 /* ObjectiveSugar.h in Headers */ = {isa = PBXBuildFile; fileRef = 3391BE37C10FF6570B07E29F /* ObjectiveSugar.h */; }; + AA15C0454F552086C9F1FB29 /* Promise+When.h in Headers */ = {isa = PBXBuildFile; fileRef = CD30F7532A22486925B12E4A /* Promise+When.h */; }; + AA78BC6660368041E95EF420 /* NSMutableArray+ObjectiveSugar.h in Headers */ = {isa = PBXBuildFile; fileRef = 4544A85C176459B3C99B3204 /* NSMutableArray+ObjectiveSugar.h */; }; + AA9C222864395D5FF8D0D592 /* YapDatabaseRelationshipPrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = D1955CF839D24FF2D7E4C901 /* YapDatabaseRelationshipPrivate.h */; }; + AAA9154621C4A2E8FB3B9526 /* UIView+PromiseKit.h in Headers */ = {isa = PBXBuildFile; fileRef = C316350EDAA44A020382C3D2 /* UIView+PromiseKit.h */; }; + AB574A6FE2D290A2BEA921F8 /* NSInvocation+EXT.m in Sources */ = {isa = PBXBuildFile; fileRef = 3166B01856C436331247B5BB /* NSInvocation+EXT.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + ABA5450142B1DAC6957036D7 /* YapMemoryTable.m in Sources */ = {isa = PBXBuildFile; fileRef = 67D375A5192D1EAA9A3541A9 /* YapMemoryTable.m */; }; + ABD7706A209D7EA86F6E6E2C /* BITHockeyBaseManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 6BF3191584A8BD601C23F354 /* BITHockeyBaseManager.m */; }; + ABFBD203808A4652E07EEE63 /* MTLJSONAdapter.m in Sources */ = {isa = PBXBuildFile; fileRef = 4909ED535CE51C1035640E21 /* MTLJSONAdapter.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + AC1C85229F443E5032CE7443 /* YapDatabaseStatement.m in Sources */ = {isa = PBXBuildFile; fileRef = C807DB918DC08D171C49611E /* YapDatabaseStatement.m */; }; + AD2C505211E4DF6C7AA26590 /* YapDatabaseFullTextSearchPrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = 4F2E399A66CFCB22E5B8F9AF /* YapDatabaseFullTextSearchPrivate.h */; }; + AE71429AA5039309561B5F1D /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 17C59EF9C856FDB786D8B3CA /* CoreGraphics.framework */; }; + AF0976C67DC3152D1286CB7E /* YapDatabaseViewPage.h in Headers */ = {isa = PBXBuildFile; fileRef = 9F6C220F25CE1CE86D0F0E82 /* YapDatabaseViewPage.h */; }; + AF3486C5A77741D359833389 /* OMGHTTPURLRQ.m in Sources */ = {isa = PBXBuildFile; fileRef = ACD6CDCFDCB6D2F7EB595AAB /* OMGHTTPURLRQ.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + AF579D9221ECBF19AC1B2604 /* YapDatabaseSecondaryIndex.m in Sources */ = {isa = PBXBuildFile; fileRef = 4F8E5DB57A211F1B11B63E35 /* YapDatabaseSecondaryIndex.m */; }; + AF6C6F9B878C7A58A3CE84E3 /* CALayer+PromiseKit.m in Sources */ = {isa = PBXBuildFile; fileRef = 577BD1F5A8EE64F101B8433C /* CALayer+PromiseKit.m */; }; + B014C53F2219834356EBD3F5 /* YapDatabaseFilteredViewConnection.m in Sources */ = {isa = PBXBuildFile; fileRef = F47AA7E2BABC5E6D5330EB43 /* YapDatabaseFilteredViewConnection.m */; }; + B0165E23FA6EE8302B6F7412 /* NSDictionary+MTLMappingAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = 472968D407FE49DC29FEE514 /* NSDictionary+MTLMappingAdditions.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + B0A283E04CEAB953EBB6B873 /* BITFeedbackManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E3417CE576C858FDCE23A41 /* BITFeedbackManager.m */; }; + B0A66639B169D040F0A8721A /* BITImageAnnotation.h in Headers */ = {isa = PBXBuildFile; fileRef = 8D4FA1147CF56685CEB4CD8C /* BITImageAnnotation.h */; }; + B1EF4D2D4FB5293EBCFBC361 /* YapDatabaseViewOptions.m in Sources */ = {isa = PBXBuildFile; fileRef = 611A25336B904EA7D08FF5B0 /* YapDatabaseViewOptions.m */; }; + B2923E26CE834BF21760A7CD /* DDDispatchQueueLogFormatter.m in Sources */ = {isa = PBXBuildFile; fileRef = FAAFB319976CD30D98D6FBC3 /* DDDispatchQueueLogFormatter.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + B2A1754FD9096B0C3FA42A2B /* NSMutableArray+ObjectiveSugar.m in Sources */ = {isa = PBXBuildFile; fileRef = 72FD13B9E14DC246CB80F40E /* NSMutableArray+ObjectiveSugar.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + B2C3342C6DED21C9A650E041 /* BITStoreButton.h in Headers */ = {isa = PBXBuildFile; fileRef = 20282B8F4754BE7E220FD707 /* BITStoreButton.h */; }; + B2F5837E394A77DFCBD7FDB2 /* MTLValueTransformer.m in Sources */ = {isa = PBXBuildFile; fileRef = E9D57B830F1BBDE77FC3E9B7 /* MTLValueTransformer.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + B3022824E71311EFFCB57FA0 /* YapDatabaseSecondaryIndexTransaction.m in Sources */ = {isa = PBXBuildFile; fileRef = AEA9A0D786DC0A178D05F2BE /* YapDatabaseSecondaryIndexTransaction.m */; }; + B3126AA24860874AAB14F8E1 /* BITHTTPOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = 8F89FE8BE75FF19BA29E62F3 /* BITHTTPOperation.h */; }; + B3BBA13966BB53F5D1763D39 /* NSDictionary+MTLJSONKeyPath.h in Headers */ = {isa = PBXBuildFile; fileRef = 3847DF5D69761FB3443E5979 /* NSDictionary+MTLJSONKeyPath.h */; }; + B512A8252F38FE4F5BA78F7C /* Arrow@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 5BE2F353665128803541EB57 /* Arrow@3x.png */; }; + B51CBB4674694292C35A335D /* YapDatabaseSecondaryIndexOptions.h in Headers */ = {isa = PBXBuildFile; fileRef = 51BC65067D57AD17F146909B /* YapDatabaseSecondaryIndexOptions.h */; }; + B6DEE5F88CFEAE169D08B021 /* YapDatabaseViewOptions.h in Headers */ = {isa = PBXBuildFile; fileRef = 2C6A01772C4963FBE2BC105F /* YapDatabaseViewOptions.h */; }; + B77722ED6A2D6E40FEF92E49 /* YapDatabaseCloudKitOptions.h in Headers */ = {isa = PBXBuildFile; fileRef = 9632F201B5A5081210A0C628 /* YapDatabaseCloudKitOptions.h */; }; + B7A93FC86C23255D9741BAE9 /* YapDatabaseViewMappingsPrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = ADBF36B942CC540655370C67 /* YapDatabaseViewMappingsPrivate.h */; }; + B7EE93409B9C21C2030E5819 /* YapDatabaseViewOptions.h in Headers */ = {isa = PBXBuildFile; fileRef = 2C6A01772C4963FBE2BC105F /* YapDatabaseViewOptions.h */; }; + B8134259D7BDEEFD32ADE0EA /* BITKeychainUtils.m in Sources */ = {isa = PBXBuildFile; fileRef = A353569B80DC3431CBB4045F /* BITKeychainUtils.m */; }; + B8623D92EF31A40195E01591 /* PMKPromise+When.m in Sources */ = {isa = PBXBuildFile; fileRef = ED9A8DC9D7A6D0B12D942BC1 /* PMKPromise+When.m */; }; + B8BFF08D923FFBDDF4BE4D45 /* YapDatabaseViewState.m in Sources */ = {isa = PBXBuildFile; fileRef = F4C490BAB545A2CE19706343 /* YapDatabaseViewState.m */; }; + B957E7C5BE895D082D2F3418 /* YapDatabaseViewChange.h in Headers */ = {isa = PBXBuildFile; fileRef = 8974C23ED1F0A7C3B889B3F8 /* YapDatabaseViewChange.h */; }; + B96BB4A3DF7731DFB9ADD606 /* hr.lproj in Resources */ = {isa = PBXBuildFile; fileRef = EFE57D9EBDFF786697CF0917 /* hr.lproj */; }; + B98DA984CA435F01D6FC8C96 /* DDMultiFormatter.m in Sources */ = {isa = PBXBuildFile; fileRef = 761CDF1A0221DF27876DBBB4 /* DDMultiFormatter.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + B99E1E0DA55482F0FB464C0F /* feedbackActivity@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 6001ACFCEFA9ECFF2AEBC1B4 /* feedbackActivity@2x.png */; }; + BA5A0A3C4C9B5486854E3050 /* YDBCKChangeRecord.h in Headers */ = {isa = PBXBuildFile; fileRef = A3EF2F7405C1C6EF86062764 /* YDBCKChangeRecord.h */; }; + BA92F2405732E56D9E8681C7 /* MBProgressHUD.m in Sources */ = {isa = PBXBuildFile; fileRef = B8307E4AD69BA3F0BD61CDE8 /* MBProgressHUD.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + BA9BA6C2AC5A32232432F068 /* buttonRoundedDelete.png in Resources */ = {isa = PBXBuildFile; fileRef = 8A1606CB9BC73D20903E3A29 /* buttonRoundedDelete.png */; }; + BAE7E0181F4F75AD9B36F492 /* YDBCKAttachRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = 832AFAEC6C62A621F2B71C67 /* YDBCKAttachRequest.h */; }; + BBC6870371DE9523ACE5921B /* FAImageView.m in Sources */ = {isa = PBXBuildFile; fileRef = 0DA3911803CC22752770CDC2 /* FAImageView.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + BBFA611B5899BD31E6C6A6C7 /* YDBCKChangeQueue.m in Sources */ = {isa = PBXBuildFile; fileRef = 9DF35933B404EF6610615A32 /* YDBCKChangeQueue.m */; }; + BC9E1A83A4441DD6518B68D4 /* BITAuthenticator.m in Sources */ = {isa = PBXBuildFile; fileRef = 1C869578E846D5B84E3A8910 /* BITAuthenticator.m */; }; + BCBC22418AA5B6573FDA41C0 /* YapDatabaseViewPageMetadata.m in Sources */ = {isa = PBXBuildFile; fileRef = E818CAA030FE372C2BB46D31 /* YapDatabaseViewPageMetadata.m */; }; + BD792E05FA3C20DE5E9DDE9E /* YapDatabaseViewMappings.h in Headers */ = {isa = PBXBuildFile; fileRef = D924240549C5DC08F8D6C41D /* YapDatabaseViewMappings.h */; }; + BDCCDDEB669974D1E5451394 /* YDBCKRecordTableInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = 54D210743ABD4FDDB5813112 /* YDBCKRecordTableInfo.h */; }; + BDED5A65178DD6F26EE22702 /* YapDatabaseFullTextSearchSnippetOptions.m in Sources */ = {isa = PBXBuildFile; fileRef = 001556665D4E2E8E9F833610 /* YapDatabaseFullTextSearchSnippetOptions.m */; }; + BE000D04A0CD2A046A72B76D /* YapDatabaseFullTextSearch.m in Sources */ = {isa = PBXBuildFile; fileRef = BADB20F04C6004120E6DA699 /* YapDatabaseFullTextSearch.m */; }; + BE7B4E8437E1E3BD69819816 /* UIViewController+XIBSupport.h in Headers */ = {isa = PBXBuildFile; fileRef = 4BB03AEE4E9B2CAC0B4CCCB1 /* UIViewController+XIBSupport.h */; }; + BEA8DA57F45AD22B78240250 /* NSMethodSignature+EXT.h in Headers */ = {isa = PBXBuildFile; fileRef = 5D586790F16A46B9B2DB5302 /* NSMethodSignature+EXT.h */; }; + BEC7C66A9177BDE4390FF9C2 /* NSValueTransformer+MTLPredefinedTransformerAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = 2B0920FE8638FCBA2512FDC8 /* NSValueTransformer+MTLPredefinedTransformerAdditions.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + BF3C336E70524B3495DA7FD1 /* BITFeedbackMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = 84F0375E28F18CB103E52413 /* BITFeedbackMessage.m */; }; + BF4B2AA89C162F318F0F228A /* YapDatabaseQuery.h in Headers */ = {isa = PBXBuildFile; fileRef = 45A6D1C7B82660AECBF2B462 /* YapDatabaseQuery.h */; }; + BF6318467D8559861283D70D /* PMKPromise+Until.m in Sources */ = {isa = PBXBuildFile; fileRef = 545EFEC13527422EBE0B200E /* PMKPromise+Until.m */; }; + BF705940E1642E4E74AF0FD8 /* Blur.png in Resources */ = {isa = PBXBuildFile; fileRef = 52973E9BB77DB4E7F8C497E2 /* Blur.png */; }; + BF986F9A15D38D498F720B81 /* BITCrashReportTextFormatter.h in Headers */ = {isa = PBXBuildFile; fileRef = 596E9A8AE15C9C98520E6793 /* BITCrashReportTextFormatter.h */; }; + BFC567E760BE5DA7DFC7DC18 /* YapDatabaseConnectionState.m in Sources */ = {isa = PBXBuildFile; fileRef = CB9CE60E51F3C872D75ABCC3 /* YapDatabaseConnectionState.m */; }; + BFEB1F8A16D0E9951F158D20 /* YapDatabaseViewMappings.h in Headers */ = {isa = PBXBuildFile; fileRef = D924240549C5DC08F8D6C41D /* YapDatabaseViewMappings.h */; }; + C003FF13CF64B5761E21BDE0 /* YapDatabaseCloudKitOptions.h in Headers */ = {isa = PBXBuildFile; fileRef = 9632F201B5A5081210A0C628 /* YapDatabaseCloudKitOptions.h */; }; + C0B4A6B9147CB6FA5B028316 /* MTLReflection.h in Headers */ = {isa = PBXBuildFile; fileRef = 56086D9ACE3E4202CC5ECF36 /* MTLReflection.h */; }; + C10C710998A7CC222D129869 /* Ok@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 83B614F52437F53C5C14CC23 /* Ok@3x.png */; }; + C15D2747F77D28D04B37535B /* Ok@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 126FB1A7049C4691143B6656 /* Ok@2x.png */; }; + C1684BEDF2DFCAAAA29C0576 /* DDFileLogger.m in Sources */ = {isa = PBXBuildFile; fileRef = 45606DBAD5CBEFF605BBBE0F /* DDFileLogger.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + C19503EBFD338DF290A1E989 /* YapDatabaseView.m in Sources */ = {isa = PBXBuildFile; fileRef = 352DFB6A03780CD603976FCF /* YapDatabaseView.m */; }; + C1D1B30F61DCF89923E7E1E3 /* EXTKeyPathCoding.h in Headers */ = {isa = PBXBuildFile; fileRef = 6680957F2DEF012E905E10C6 /* EXTKeyPathCoding.h */; }; + C255F60342A6B2609C1CEF30 /* YDBCKChangeSet.h in Headers */ = {isa = PBXBuildFile; fileRef = 97ECBA0283AE5FF1560FB2E1 /* YDBCKChangeSet.h */; }; + C2A1BC28E21BE77D71D087BB /* Cancel.png in Resources */ = {isa = PBXBuildFile; fileRef = 42B8A6E679CAADE1D110DD14 /* Cancel.png */; }; + C2ADB4E8E535BECBCF148362 /* YapSet.h in Headers */ = {isa = PBXBuildFile; fileRef = 03D212ED7F0BC4815B93AACF /* YapSet.h */; }; + C3313F7A2EBD21A7E104381B /* NSString+FontAwesome.m in Sources */ = {isa = PBXBuildFile; fileRef = B62156CBD83F6B9D3F790550 /* NSString+FontAwesome.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + C332AEB9E70BE6E212C33D50 /* UIView+PromiseKit.h in Headers */ = {isa = PBXBuildFile; fileRef = C316350EDAA44A020382C3D2 /* UIView+PromiseKit.h */; }; + C359F74AB9028E62A66EF35B /* BITFeedbackListViewCell.h in Headers */ = {isa = PBXBuildFile; fileRef = 1D8E6F77DD468DCC26BB35C2 /* BITFeedbackListViewCell.h */; }; + C3F947D4818229BA9F033CE2 /* YDBCKChangeRecord.h in Headers */ = {isa = PBXBuildFile; fileRef = A3EF2F7405C1C6EF86062764 /* YDBCKChangeRecord.h */; }; + C41D5A6FF08A83DDF516A174 /* YapDatabaseFullTextSearchTransaction.h in Headers */ = {isa = PBXBuildFile; fileRef = DC719BEEF38A47B7FCD2D072 /* YapDatabaseFullTextSearchTransaction.h */; }; + C42DDEA440B46D9055F13F66 /* YapDatabaseQuery.m in Sources */ = {isa = PBXBuildFile; fileRef = CB51FD7660ED1FF6F7B15E8C /* YapDatabaseQuery.m */; }; + C4DF98A27146DEDC01A53D55 /* UIFont+FontAwesome.h in Headers */ = {isa = PBXBuildFile; fileRef = AC260E95E5A65BFACD3FEE0B /* UIFont+FontAwesome.h */; }; + C5BEE63A7107EAD96DAA07F7 /* de.lproj in Resources */ = {isa = PBXBuildFile; fileRef = 6FECC3F313145297F55198B3 /* de.lproj */; }; + C634C280C4300E6A0C646E49 /* YDBCKRecordTableInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = 1654AAF78C161D58CA37DF48 /* YDBCKRecordTableInfo.m */; }; + C718C00357E2672EBD89EA63 /* OMGUserAgent.m in Sources */ = {isa = PBXBuildFile; fileRef = DB4997275289D86523E96F96 /* OMGUserAgent.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + C81133360E8D319060FBEED9 /* NSURLConnection+PromiseKit.m in Sources */ = {isa = PBXBuildFile; fileRef = 86AD898C83FEAEC66761F511 /* NSURLConnection+PromiseKit.m */; }; + C851783905ACB2F7B703B8CF /* YapDatabaseExtensionConnection.h in Headers */ = {isa = PBXBuildFile; fileRef = 721C63AE8C86BCCE68A7877A /* YapDatabaseExtensionConnection.h */; }; + C8D92AE7FEADDCA0B6B02FF2 /* EXTNil.m in Sources */ = {isa = PBXBuildFile; fileRef = 74FDA1ECA100B69FB7C20B81 /* EXTNil.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + C96644955BA8E5B39C0091D6 /* EXTScope.m in Sources */ = {isa = PBXBuildFile; fileRef = 9ADDCCAED549BF8FC0A1E62A /* EXTScope.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + C98B439DD05FFC242D9453B0 /* YapDatabaseViewPage.h in Headers */ = {isa = PBXBuildFile; fileRef = 9F6C220F25CE1CE86D0F0E82 /* YapDatabaseViewPage.h */; }; + C99A5422607A850076E62283 /* YapDatabaseFilteredViewTransaction.m in Sources */ = {isa = PBXBuildFile; fileRef = 8F7B0C6041AE7A7D4840CE10 /* YapDatabaseFilteredViewTransaction.m */; }; + C9A0BA6AFF44D8615F71C34E /* YapDatabaseStatement.h in Headers */ = {isa = PBXBuildFile; fileRef = 07B61F7D0A8AFE3AFCA1A201 /* YapDatabaseStatement.h */; }; + CA1F75DFCB6C263F5C409A62 /* YapDatabaseFilteredView.h in Headers */ = {isa = PBXBuildFile; fileRef = 0B900CA50B103AAF414C31E2 /* YapDatabaseFilteredView.h */; }; + CA44149FDA7E001D8557F476 /* MBProgressHUD.h in Headers */ = {isa = PBXBuildFile; fileRef = CDF42EFCEE2C683943A04D83 /* MBProgressHUD.h */; }; + CA54A939953D38E6875C9F42 /* YapCollectionKey.m in Sources */ = {isa = PBXBuildFile; fileRef = 5B5B9FC5946CF8F25215E267 /* YapCollectionKey.m */; }; + CA65A28CAFF5EC09FE5A96FA /* Promise+Until.h in Headers */ = {isa = PBXBuildFile; fileRef = F15DAE4BDB915BFE7508024F /* Promise+Until.h */; }; + CA7E6B9D12EB45507D57ADE7 /* YapDatabase.m in Sources */ = {isa = PBXBuildFile; fileRef = 366C30DD854276061F3DCE87 /* YapDatabase.m */; }; + CA7EB85F1C5BC4A194991562 /* Pods-samhuri.net-YapDatabase-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C53E02E13256F204530B89B /* Pods-samhuri.net-YapDatabase-dummy.m */; }; + CAECDBED2DAF84D91AB11274 /* YapDatabaseCloudKitConnection.h in Headers */ = {isa = PBXBuildFile; fileRef = 6F372C6AEA560874496EFC18 /* YapDatabaseCloudKitConnection.h */; }; + CB223926804423E49A5A5824 /* YapDatabaseSecondaryIndexHandler.m in Sources */ = {isa = PBXBuildFile; fileRef = 35B1468F88F9E2F09EF1C612 /* YapDatabaseSecondaryIndexHandler.m */; }; + CB6EB8E9AEDD34BFEEABA58D /* MTLValueTransformer.m in Sources */ = {isa = PBXBuildFile; fileRef = E9D57B830F1BBDE77FC3E9B7 /* MTLValueTransformer.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + CB741F35A014C8782AC2C09D /* Mantle.h in Headers */ = {isa = PBXBuildFile; fileRef = 3B45EBA63E234BB38D261731 /* Mantle.h */; }; + CB80BDDEBE5EDD21B081FF0D /* Pods-samhuri.net-ObjectiveSugar-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 79056AB926938D6B5C321C0A /* Pods-samhuri.net-ObjectiveSugar-dummy.m */; }; + CC94D4E62080E0E7A881E9FF /* YapDatabaseExtension.h in Headers */ = {isa = PBXBuildFile; fileRef = 8D3C51219A6CD20F719844B0 /* YapDatabaseExtension.h */; }; + CCC6FB8BC3D520BFDCC5980F /* Promise.h in Headers */ = {isa = PBXBuildFile; fileRef = A07DB2BC98BD53CB96177A33 /* Promise.h */; }; + CCECB14FCAD9E1C9AE39EBAE /* YapDatabaseLogging.h in Headers */ = {isa = PBXBuildFile; fileRef = 67BF5736CAE75627242E1A87 /* YapDatabaseLogging.h */; }; + CCFF0C75FB7C1BF8CD126172 /* YapDatabaseCloudKit.m in Sources */ = {isa = PBXBuildFile; fileRef = 7CC64E9CC065CD7F735344B7 /* YapDatabaseCloudKit.m */; }; + CD6BF96754FE8FEBDF321ED1 /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 17C59EF9C856FDB786D8B3CA /* CoreGraphics.framework */; }; + CD7F9FB609D89A8D7196C3E9 /* BITAuthenticationViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = CF579412F985B76BC693CD19 /* BITAuthenticationViewController.h */; }; + CDD92A2DF8FB0BD53B4F756A /* BITUpdateViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = E7D2A24BED558B4FB492741A /* BITUpdateViewController.h */; }; + CE0611136FB578FDE0886C25 /* BITFeedbackListViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = 14DAB6EC593F2115F38D6C39 /* BITFeedbackListViewController.h */; }; + CE1CAA8EA4FF0F486029B2A8 /* EXTConcreteProtocol.m in Sources */ = {isa = PBXBuildFile; fileRef = A0982AB6BA7EFA84AEB379FC /* EXTConcreteProtocol.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + CE58430AB89390ABBCF35F0B /* YapRowidSet.mm in Sources */ = {isa = PBXBuildFile; fileRef = E4D6ADCE5C818EA034B01E1A /* YapRowidSet.mm */; }; + CE6FFB3A0C3F65F28C85E628 /* NSNumber+ObjectiveSugar.m in Sources */ = {isa = PBXBuildFile; fileRef = B7308DE79E6B59A6BCED0E55 /* NSNumber+ObjectiveSugar.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + CEAEAB81E42E26684819274F /* NSSet+ClassesList.h in Headers */ = {isa = PBXBuildFile; fileRef = C6A184DE8B0C02C61E907BC6 /* NSSet+ClassesList.h */; }; + CEC123A0A96AAA404038A3E7 /* YapDatabaseViewRangeOptionsPrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = A8262161BF27E52DDFD6120E /* YapDatabaseViewRangeOptionsPrivate.h */; }; + CED1B21879C98CBE83335C6A /* YapDatabaseRelationship.m in Sources */ = {isa = PBXBuildFile; fileRef = E6B6A08D1E9E5F8493A740AB /* YapDatabaseRelationship.m */; }; + CEEE97BB9DF57CD8CE115A23 /* YapDatabaseRelationshipTransaction.h in Headers */ = {isa = PBXBuildFile; fileRef = A2C466CF4C38E61C56CD512C /* YapDatabaseRelationshipTransaction.h */; }; + CEF13BE513720692B3374883 /* BITHockeyBaseManager.h in Headers */ = {isa = PBXBuildFile; fileRef = D795EC99EC3251A5A86E4C5D /* BITHockeyBaseManager.h */; }; + CF31C80DC4D60D9823D67D48 /* YapDatabaseFilteredViewTransaction.m in Sources */ = {isa = PBXBuildFile; fileRef = 8F7B0C6041AE7A7D4840CE10 /* YapDatabaseFilteredViewTransaction.m */; }; + CF60BCA8ED25838E30023121 /* metamacros.h in Headers */ = {isa = PBXBuildFile; fileRef = C8D0CBA0F0B7FF4B1052CB92 /* metamacros.h */; }; + CFE4FB2A7155A6A0F4275A3C /* YDBCKRecord.m in Sources */ = {isa = PBXBuildFile; fileRef = A191A2D84AFBCF9B4962F1C5 /* YDBCKRecord.m */; }; + D04AE730F72A5FBC1C5BCA4D /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A3D858279C71419EA04223FF /* Foundation.framework */; }; + D0BDC6C49431A2AEAFF31AE8 /* YapDatabaseFullTextSearchHandler.h in Headers */ = {isa = PBXBuildFile; fileRef = 3C72DCC85D12BD3E79F49B39 /* YapDatabaseFullTextSearchHandler.h */; }; + D0DA6DA208E47E90E094CE42 /* DDASLLogCapture.m in Sources */ = {isa = PBXBuildFile; fileRef = 5D952B697E2680C68FE77644 /* DDASLLogCapture.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + D1241EBB44BFF19F6BADEA49 /* EXTADT.m in Sources */ = {isa = PBXBuildFile; fileRef = 55BF87C50521DCFA948B4BC4 /* EXTADT.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + D1E4D8171EA543C83D8C4424 /* Pods-Blog-dyci-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 06417D67F36D4F18C4276380 /* Pods-Blog-dyci-dummy.m */; }; + D21C0627F7CFE3D4EC8F382A /* YapDatabaseRelationshipEdge.h in Headers */ = {isa = PBXBuildFile; fileRef = E9F63A4CF9750547BF9F8ED2 /* YapDatabaseRelationshipEdge.h */; }; + D2443038E946268CE02AD0BA /* YapDatabaseExtensionTransaction.m in Sources */ = {isa = PBXBuildFile; fileRef = AD0492E7BCFD1A6D35ED1432 /* YapDatabaseExtensionTransaction.m */; }; + D27DD77FD9293B9642A273D5 /* BITFeedbackComposeViewControllerDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = 6628B911278079EF39964FA6 /* BITFeedbackComposeViewControllerDelegate.h */; }; + D31A9C4B2BF571D22C36414A /* HockeySDK.h in Headers */ = {isa = PBXBuildFile; fileRef = 801D1290FA2159F94FA473CE /* HockeySDK.h */; }; + D39F02FC656D57FA59879EF1 /* BITCrashDetailsPrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = 7299B776DD5F4DF44EE908A3 /* BITCrashDetailsPrivate.h */; }; + D4A513047BA2ECEBF30C8801 /* YapTouch.h in Headers */ = {isa = PBXBuildFile; fileRef = 95CF93105862D466397FF4B1 /* YapTouch.h */; }; + D4DCF83CAF0B4FBFA18FC8D1 /* MTLJSONAdapter.h in Headers */ = {isa = PBXBuildFile; fileRef = 416560387AB86E58AEACA1CF /* MTLJSONAdapter.h */; }; + D4FF339DF867ACACDEBD6DA3 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A3D858279C71419EA04223FF /* Foundation.framework */; }; + D5020E7ECCAF04DC38D5DB1A /* MobileCoreServices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = EDAAF069ED4CF79E6B14F97D /* MobileCoreServices.framework */; }; + D685A4AD682893037CEDC033 /* YapDatabaseViewPage.mm in Sources */ = {isa = PBXBuildFile; fileRef = 9D0A672919FBFFED7000A248 /* YapDatabaseViewPage.mm */; }; + D78216778E9E8942F2C61DE7 /* NSMethodSignature+EXT.m in Sources */ = {isa = PBXBuildFile; fileRef = D3A7353A88BB9BF96E8877AD /* NSMethodSignature+EXT.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + D7D60AF37F12D611B7FEE13F /* YapDatabaseSecondaryIndexPrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = 72A907C9088D4232E6FE4D80 /* YapDatabaseSecondaryIndexPrivate.h */; }; + D7D91F271089C77B03C34BC1 /* YDBCKRecordInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = BA207FCB169025B832A68973 /* YDBCKRecordInfo.m */; }; + D7F3836685955E380B72CF15 /* YapDatabaseRelationshipTransaction.m in Sources */ = {isa = PBXBuildFile; fileRef = A2CFBB2A4116F916F5E613CB /* YapDatabaseRelationshipTransaction.m */; }; + D80B06453EA858A3B621F472 /* YapDatabaseSecondaryIndex.h in Headers */ = {isa = PBXBuildFile; fileRef = D4D5E9E4EC00B726E888C956 /* YapDatabaseSecondaryIndex.h */; }; + D81761F971BFF9691A2D1AE2 /* YapDatabaseViewChange.m in Sources */ = {isa = PBXBuildFile; fileRef = B2DCBAE0AAE04BFDF3DA4C76 /* YapDatabaseViewChange.m */; }; + D87B42B1DA6746B18BE9FA5B /* YapDatabaseFilteredViewTypes.m in Sources */ = {isa = PBXBuildFile; fileRef = 0C689D8DBB917DBC8396DB72 /* YapDatabaseFilteredViewTypes.m */; }; + D8AD9418DF748B0FE90F1301 /* NSInvocation+EXT.h in Headers */ = {isa = PBXBuildFile; fileRef = D9B7386098E21747FB91F5ED /* NSInvocation+EXT.h */; }; + D9052A1F0B123A8347B408CE /* YapDatabaseFilteredViewTypes.m in Sources */ = {isa = PBXBuildFile; fileRef = 0C689D8DBB917DBC8396DB72 /* YapDatabaseFilteredViewTypes.m */; }; + D991D06118598EF884808CA8 /* BITUpdateViewControllerPrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = 389E3BE660A249DD113EC263 /* BITUpdateViewControllerPrivate.h */; }; + D9FEF2C5B7D68840E84F70EC /* BITBlurImageAnnotation.h in Headers */ = {isa = PBXBuildFile; fileRef = A6F75773276C7FC1A2618B17 /* BITBlurImageAnnotation.h */; }; + DA3EBFB7F35B0B139A169092 /* UIActionSheet+PromiseKit.h in Headers */ = {isa = PBXBuildFile; fileRef = 5F5979324BB9AF056953732E /* UIActionSheet+PromiseKit.h */; }; + DAFF879CA18F3C2D56EC8C47 /* YapDatabaseSearchQueuePrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = AC01E71C0E478E54D28AA370 /* YapDatabaseSearchQueuePrivate.h */; }; + DBA8839126A6661F16D62E95 /* DDTTYLogger.h in Headers */ = {isa = PBXBuildFile; fileRef = 8484A41F8D3FA714135DCEB2 /* DDTTYLogger.h */; }; + DC724855ECB5AB6A836F101B /* YapSet.h in Headers */ = {isa = PBXBuildFile; fileRef = 03D212ED7F0BC4815B93AACF /* YapSet.h */; }; + DC79C0BD7FDEEAD775BC259A /* YapDatabaseExtensionConnection.m in Sources */ = {isa = PBXBuildFile; fileRef = 15D097C2D670F44F774D2ED4 /* YapDatabaseExtensionConnection.m */; }; + DC8A9F87DF3E68A27379A1D6 /* YapDatabaseSecondaryIndexTransaction.m in Sources */ = {isa = PBXBuildFile; fileRef = AEA9A0D786DC0A178D05F2BE /* YapDatabaseSecondaryIndexTransaction.m */; }; + DD336455A1A189E6ECF74E72 /* MTLTransformerErrorHandling.m in Sources */ = {isa = PBXBuildFile; fileRef = 18962583BAA744E203BCF9E0 /* MTLTransformerErrorHandling.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + DD4B5AB58F9360D382B0B83D /* Arrow.png in Resources */ = {isa = PBXBuildFile; fileRef = C63C6B4830C908886C0A3DFE /* Arrow.png */; }; + DD9AD0E008DB1711174D26D8 /* BITAuthenticator.h in Headers */ = {isa = PBXBuildFile; fileRef = C056EFCA0A8D5797081D5858 /* BITAuthenticator.h */; }; + DDA21D12A0B46FC9015F5D44 /* YapDatabaseCloudKitConnection.m in Sources */ = {isa = PBXBuildFile; fileRef = 3FCA618023FBE51E612DA698 /* YapDatabaseCloudKitConnection.m */; }; + DDC7BDB224936824E3D7CA11 /* Pods-Blog-CocoaLumberjack-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = AF897353CA3A0CD779312588 /* Pods-Blog-CocoaLumberjack-dummy.m */; }; + DE59FE7DA6AFF5DF6EDF08FB /* EXTRuntimeExtensions.h in Headers */ = {isa = PBXBuildFile; fileRef = 2B31CB60E163FF7B2EDED962 /* EXTRuntimeExtensions.h */; }; + DF33978E0A200D57CE119DA4 /* YapDatabaseViewState.h in Headers */ = {isa = PBXBuildFile; fileRef = 56065D3D425D00854216D247 /* YapDatabaseViewState.h */; }; + E00F55EF439E7B61B60E1AB1 /* Pods-samhuri.net-PromiseKit-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = CB635E4DC320564EEB017618 /* Pods-samhuri.net-PromiseKit-dummy.m */; }; + E01725E9CBF7A1F36D4C460D /* YapDatabaseFullTextSearchConnection.m in Sources */ = {isa = PBXBuildFile; fileRef = 977CF34FEDCC96F3250AEB25 /* YapDatabaseFullTextSearchConnection.m */; }; + E026C8A4AC598768FE6646E6 /* BITAppVersionMetaInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = 47417B8D7E3555E138110D7F /* BITAppVersionMetaInfo.h */; }; + E05CC058D20BC6F5B9D62748 /* YapNull.m in Sources */ = {isa = PBXBuildFile; fileRef = 80C8E42F143FF516C3C9E62A /* YapNull.m */; }; + E102D296B3DBF58F3C2F8DD5 /* CoreText.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1B703A6BEDE896B8C431D62F /* CoreText.framework */; }; + E19390CC74CBB7D5D1AD6001 /* NSValueTransformer+MTLPredefinedTransformerAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = 1B2ED9DA408A61425EB201EB /* NSValueTransformer+MTLPredefinedTransformerAdditions.h */; }; + E1AAABEFAB34CCF4388D1ECE /* Pods-Blog-MBProgressHUD-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 45DA14DB2E86F09FB8B0DF07 /* Pods-Blog-MBProgressHUD-dummy.m */; }; + E23A19858A29C197C4201CE7 /* NSNotificationCenter+PromiseKit.m in Sources */ = {isa = PBXBuildFile; fileRef = 18F4F1884C30C7A824655957 /* NSNotificationCenter+PromiseKit.m */; }; + E2687EF644F9D897D01DA634 /* YapDatabasePrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = 386A83FA41D150D573E74F1E /* YapDatabasePrivate.h */; }; + E2DEB55BDD022D8EF1585105 /* UIAlertView+PromiseKit.m in Sources */ = {isa = PBXBuildFile; fileRef = F4CC610441487CB0DD277837 /* UIAlertView+PromiseKit.m */; }; + E3017334E173182B2B606B96 /* YapDatabaseViewMappingsPrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = ADBF36B942CC540655370C67 /* YapDatabaseViewMappingsPrivate.h */; }; + E324CCDEA9AE70CE5D92597C /* YDBCKChangeQueue.h in Headers */ = {isa = PBXBuildFile; fileRef = AAC5F68409702EBBD7F41EAB /* YDBCKChangeQueue.h */; }; + E377A242856FEF1278D86FD8 /* DDASLLogCapture.h in Headers */ = {isa = PBXBuildFile; fileRef = E75BDE50E6F2317995C8A437 /* DDASLLogCapture.h */; }; + E3BA482292B60E0D073C5181 /* MTLModel+NSCoding.m in Sources */ = {isa = PBXBuildFile; fileRef = 5B00B4D81CE931A6E619B059 /* MTLModel+NSCoding.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + E4B7DDDDA99DFC8D50A6C820 /* SFDynamicCodeInjection.m in Sources */ = {isa = PBXBuildFile; fileRef = 3523D1F2DB76883356A2C9AD /* SFDynamicCodeInjection.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + E4CAE5157E74CE9E11D04C23 /* BITAttributedLabel.m in Sources */ = {isa = PBXBuildFile; fileRef = 2942CF3B18BD3D3F5FDD78A7 /* BITAttributedLabel.m */; }; + E53793B47F8328B5DAE4D95C /* NSSet+ObjectiveSugar.m in Sources */ = {isa = PBXBuildFile; fileRef = CD043C86B48084EEDFD46BAE /* NSSet+ObjectiveSugar.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + E5A316E2DFDD5301C5D8357A /* YapDatabaseViewConnection.h in Headers */ = {isa = PBXBuildFile; fileRef = F24D929AC6E47465E4EE4BB7 /* YapDatabaseViewConnection.h */; }; + E619955A59DB1672D67519D8 /* NSDictionary+MTLJSONKeyPath.m in Sources */ = {isa = PBXBuildFile; fileRef = 2692040EB7CBD64C984AEDE8 /* NSDictionary+MTLJSONKeyPath.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + E6D403BFB899C113772B89E3 /* YapDatabaseExtensionTransaction.m in Sources */ = {isa = PBXBuildFile; fileRef = AD0492E7BCFD1A6D35ED1432 /* YapDatabaseExtensionTransaction.m */; }; + E72AF258DE71961AE3DD016F /* MTLValueTransformer.h in Headers */ = {isa = PBXBuildFile; fileRef = 31FF98604D391FA436B6BDC0 /* MTLValueTransformer.h */; }; + E77C60B27E7B98B039C64B53 /* YapMemoryTable.h in Headers */ = {isa = PBXBuildFile; fileRef = 22E9DB4B26820E0AB0FBFAFD /* YapMemoryTable.h */; }; + E7B7C236D37160B9631C3B40 /* buttonRoundedRegularHighlighted.png in Resources */ = {isa = PBXBuildFile; fileRef = 8A3B58037F26564DFDF14C5F /* buttonRoundedRegularHighlighted.png */; }; + E804560DB814B5D3EB6B575D /* MTLJSONAdapter.m in Sources */ = {isa = PBXBuildFile; fileRef = 4909ED535CE51C1035640E21 /* MTLJSONAdapter.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + E87CC9E89F45FC44EDC38DCE /* YapDatabaseViewTypes.m in Sources */ = {isa = PBXBuildFile; fileRef = 15F88EA193C178431DB484CF /* YapDatabaseViewTypes.m */; }; + E894908D76BD3E691C1EF8E4 /* DDAbstractDatabaseLogger.h in Headers */ = {isa = PBXBuildFile; fileRef = DE9E3163CF182F22103B1650 /* DDAbstractDatabaseLogger.h */; }; + E89B345DA7F5A8875053B2D9 /* DDAbstractDatabaseLogger.m in Sources */ = {isa = PBXBuildFile; fileRef = 274D470094D17041FF3DA1AC /* DDAbstractDatabaseLogger.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + E8D37034F6D57E4BF9E8644D /* YapDatabaseConnection.h in Headers */ = {isa = PBXBuildFile; fileRef = BE2D2CD73AFBEA265468CA73 /* YapDatabaseConnection.h */; }; + E8FF03ABFEE352DCDD126C5D /* BITUpdateManagerDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = 552E70964B08EC917723691F /* BITUpdateManagerDelegate.h */; }; + E988E94B1BFB115C47CF3544 /* YapDatabaseRelationshipConnection.h in Headers */ = {isa = PBXBuildFile; fileRef = B5B6A6CDAC99B9CA07E280F5 /* YapDatabaseRelationshipConnection.h */; }; + E9D61300A119B987410CC635 /* BITHockeyManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 37A3446FBF50420B4587F51D /* BITHockeyManager.m */; }; + E9F3588DA566EF4AC45BF937 /* feedbackActivity~ipad.png in Resources */ = {isa = PBXBuildFile; fileRef = 14E91177F2D7F0DDE1FFC8A5 /* feedbackActivity~ipad.png */; }; + EA3D19F46458DA82EA8C8997 /* BITRectangleImageAnnotation.h in Headers */ = {isa = PBXBuildFile; fileRef = 66D0D227E535211E648DCECD /* BITRectangleImageAnnotation.h */; }; + EA4B6634105544D9DB3DC7F3 /* Promise+Pause.h in Headers */ = {isa = PBXBuildFile; fileRef = B278467453160CB24D460AD6 /* Promise+Pause.h */; }; + EBC7A5F91EBC266F144248E3 /* NSDictionary+MTLMappingAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = 472968D407FE49DC29FEE514 /* NSDictionary+MTLMappingAdditions.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + EC2F93AF6B37D9CF08790017 /* YapDatabaseLogging.h in Headers */ = {isa = PBXBuildFile; fileRef = 67BF5736CAE75627242E1A87 /* YapDatabaseLogging.h */; }; + EC7888F313861EB2A3C15930 /* YapDatabaseViewConnection.m in Sources */ = {isa = PBXBuildFile; fileRef = 1DFB148410C29145781FC687 /* YapDatabaseViewConnection.m */; }; + ECB6019CF2F87810C457E0FB /* authorize_denied@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = CA5A3F80D0844B1CE68C0CEA /* authorize_denied@3x.png */; }; + ED3EE4D4C3FE7BD9EE6A6442 /* YapDatabaseManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 7AF7A347BA85C7686088C524 /* YapDatabaseManager.h */; }; + ED513D17AA917975C45E1DDE /* MBProgressHUD.h in Headers */ = {isa = PBXBuildFile; fileRef = CDF42EFCEE2C683943A04D83 /* MBProgressHUD.h */; }; + ED71612B7E5C55E67A9CD3D7 /* Pods-Blog-HockeySDK-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = B27E10EB84984DC1E2D4ADDC /* Pods-Blog-HockeySDK-dummy.m */; }; + ED9A72EB0039788CD9058FCB /* YapDatabaseSearchQueue.h in Headers */ = {isa = PBXBuildFile; fileRef = F356085F1F39FDFA4F5CA37B /* YapDatabaseSearchQueue.h */; }; + EDA79C4FDC5687095A2D5D0C /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 17C59EF9C856FDB786D8B3CA /* CoreGraphics.framework */; }; + EE02BFE1C460EFEBE6CA3BE2 /* YapDatabaseFilteredViewConnection.h in Headers */ = {isa = PBXBuildFile; fileRef = B8A33987040C1995BF0E07D4 /* YapDatabaseFilteredViewConnection.h */; }; + EE45AA7E08DBC9A4CED4079C /* YapDatabaseViewMappings.m in Sources */ = {isa = PBXBuildFile; fileRef = F5858E43FEA881D2581FAFA6 /* YapDatabaseViewMappings.m */; }; + EE65ABFA13A107278BC930DA /* BITHockeyBaseViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = A8FB3736E273551AA4283DB3 /* BITHockeyBaseViewController.h */; }; + EE9088D88A19811D9C62959D /* NSValueTransformer+MTLPredefinedTransformerAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = 2B0920FE8638FCBA2512FDC8 /* NSValueTransformer+MTLPredefinedTransformerAdditions.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + EE9DB7E03B202EDF18A7A42C /* YDBCKRecordInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = BA207FCB169025B832A68973 /* YDBCKRecordInfo.m */; }; + EEB73E1655A4EC59C8CB3553 /* buttonRoundedDeleteHighlighted.png in Resources */ = {isa = PBXBuildFile; fileRef = 7566418EF62E7F824B0049FC /* buttonRoundedDeleteHighlighted.png */; }; + EEC59969A820ED4750677479 /* BITFeedbackUserDataViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 398332A878F08996D298C000 /* BITFeedbackUserDataViewController.m */; }; + EF87829D14547703BD95F3DD /* HockeySDKPrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = A023FC3597928617A456E3AB /* HockeySDKPrivate.h */; }; + EF91452CAB580EB7873357AB /* NSValueTransformer+MTLPredefinedTransformerAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = 1B2ED9DA408A61425EB201EB /* NSValueTransformer+MTLPredefinedTransformerAdditions.h */; }; + EFBD9718309DF9AFD4DA807A /* NSNotificationCenter+PromiseKit.h in Headers */ = {isa = PBXBuildFile; fileRef = 9CD9C39CB45631556C93882F /* NSNotificationCenter+PromiseKit.h */; }; + F02543E2AEB22EC50BF27DE8 /* YapDatabaseConnectionDefaults.m in Sources */ = {isa = PBXBuildFile; fileRef = 96761BC6195A8322DCAAD104 /* YapDatabaseConnectionDefaults.m */; }; + F028B587A53814CF348686C3 /* NSSet+ObjectiveSugar.m in Sources */ = {isa = PBXBuildFile; fileRef = CD043C86B48084EEDFD46BAE /* NSSet+ObjectiveSugar.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + F061D4A9F32D5A3FF8A91431 /* YapDatabaseSecondaryIndexHandler.h in Headers */ = {isa = PBXBuildFile; fileRef = D46AF56C180F857301A4EACF /* YapDatabaseSecondaryIndexHandler.h */; }; + F09A545BFC9446E16EFE3C14 /* DDContextFilterLogFormatter.h in Headers */ = {isa = PBXBuildFile; fileRef = 6311E6BB9B1CF3246CC9E400 /* DDContextFilterLogFormatter.h */; }; + F0F8BD75ADEA165EC5C5BA4E /* YapDatabaseViewPageMetadata.m in Sources */ = {isa = PBXBuildFile; fileRef = E818CAA030FE372C2BB46D31 /* YapDatabaseViewPageMetadata.m */; }; + F12A0F2DB5D2C27F5BE35875 /* YapDatabaseManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 2ECCB5C5FB782234373426B9 /* YapDatabaseManager.m */; }; + F176870EF14BD5CB6A604EB6 /* SystemConfiguration.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9EE8246FB62470DCA426D2A8 /* SystemConfiguration.framework */; }; + F1E77F9CD684689D26275238 /* Pods-Blog-libextobjc-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = A6DF7C8CBBE04CB9BF174129 /* Pods-Blog-libextobjc-dummy.m */; }; + F25835FEC33F5B39AAE8683F /* YapDatabaseManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 2ECCB5C5FB782234373426B9 /* YapDatabaseManager.m */; }; + F43CFDA9CD6D48DD1556F35D /* YapDatabaseCloudKitTransaction.m in Sources */ = {isa = PBXBuildFile; fileRef = 998A500C8011BA755A76F99E /* YapDatabaseCloudKitTransaction.m */; }; + F50FCC6AA419D64EE2DE6324 /* NSArray+ObjectiveSugar.m in Sources */ = {isa = PBXBuildFile; fileRef = B46A0572C7606D9CC10F8089 /* NSArray+ObjectiveSugar.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + F5BF817F6ED18C282E8586D2 /* BITHockeyBaseManagerPrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = 7988815EE67718287A8BC0D7 /* BITHockeyBaseManagerPrivate.h */; }; + F5CCF21A0EE9AF0C160E25B6 /* YapDatabaseView.h in Headers */ = {isa = PBXBuildFile; fileRef = C73DF6F02141EA46FDC67A4F /* YapDatabaseView.h */; }; + F68E476BAFF734CB55FD91EF /* NSDictionary+MTLManipulationAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = B699D2EB04366EDE0133874F /* NSDictionary+MTLManipulationAdditions.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + F692961C9F213BE5DAB6091F /* YapDatabaseSecondaryIndexConnection.m in Sources */ = {isa = PBXBuildFile; fileRef = 2F427B1085094DE7CE81AC3D /* YapDatabaseSecondaryIndexConnection.m */; }; + F6AEBC821E8F7214BC4600B8 /* BITHockeyAppClient.m in Sources */ = {isa = PBXBuildFile; fileRef = 00538663735C6056DCCA4C20 /* BITHockeyAppClient.m */; }; + F6FD2FE35E0FBD0F0DCDADCC /* YapDatabaseFilteredViewConnection.h in Headers */ = {isa = PBXBuildFile; fileRef = B8A33987040C1995BF0E07D4 /* YapDatabaseFilteredViewConnection.h */; }; + F744EC8F7FAFBFE901A35FE8 /* YapDatabaseSearchQueuePrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = AC01E71C0E478E54D28AA370 /* YapDatabaseSearchQueuePrivate.h */; }; + F7707861D956A53A688A0324 /* YDBCKMappingTableInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = BDD742FFC289164ADC60BFEC /* YDBCKMappingTableInfo.h */; }; + F7744DD06EF3A1B61F182190 /* YapDatabaseCloudKitTransaction.h in Headers */ = {isa = PBXBuildFile; fileRef = A943A075B8A3EDF198FC13BF /* YapDatabaseCloudKitTransaction.h */; }; + F7875444042582062E71C77F /* YapDatabaseRelationshipOptions.m in Sources */ = {isa = PBXBuildFile; fileRef = 7BCA3D8DDF1E64072AA60C64 /* YapDatabaseRelationshipOptions.m */; }; + F79A5AE91BA6CDA685EB5437 /* NSMutableArray+ObjectiveSugar.m in Sources */ = {isa = PBXBuildFile; fileRef = 72FD13B9E14DC246CB80F40E /* NSMutableArray+ObjectiveSugar.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + F7A2B4505D30D65D46AC0935 /* OMGUserAgent.m in Sources */ = {isa = PBXBuildFile; fileRef = DB4997275289D86523E96F96 /* OMGUserAgent.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; }; + F7F38349537CD19B790CCB36 /* YDBCKChangeRecord.m in Sources */ = {isa = PBXBuildFile; fileRef = 35696F8E5828A75B31EEC22F /* YDBCKChangeRecord.m */; }; + F8462834ED0701ADCA869ABE /* YapDatabaseCloudKitOptions.m in Sources */ = {isa = PBXBuildFile; fileRef = 2FC0EACA760A4D92F849FD81 /* YapDatabaseCloudKitOptions.m */; }; + F84ABBB0D60951D7EB17C87D /* authorize_denied.png in Resources */ = {isa = PBXBuildFile; fileRef = D9611CD8143D152BA4AD4E90 /* authorize_denied.png */; }; + F85255D94410C962AD2B394C /* YDBCKRecordInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = 2FF30F64ED5B8F3D56132A30 /* YDBCKRecordInfo.h */; }; + F89D31ADC8AE7DE3B2699165 /* BITFeedbackListViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 546CD11A44855593FFC5B1AB /* BITFeedbackListViewController.m */; }; + F8BAA0756F5686504C6BCE6D /* YapDatabaseCloudKitTypes.m in Sources */ = {isa = PBXBuildFile; fileRef = AAC5621AA7FF6C4DFAE147B1 /* YapDatabaseCloudKitTypes.m */; }; + F94637285D72CDD0A26EC1FF /* YDBCKRecordInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = 2FF30F64ED5B8F3D56132A30 /* YDBCKRecordInfo.h */; }; + F9603754229CEF292F09B37A /* YDBCKMergeInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = E4BEDE1E64DAF695941F11E1 /* YDBCKMergeInfo.m */; }; + F9DD594C2C8E9F080B6718B5 /* YapDatabaseSearchResultsView.h in Headers */ = {isa = PBXBuildFile; fileRef = 539ACB046AFD27463581E5D0 /* YapDatabaseSearchResultsView.h */; }; + FA399ABB945E98BAFC788309 /* BITHockeyManager.h in Headers */ = {isa = PBXBuildFile; fileRef = FCD9FF1B07960227E6D2DE6E /* BITHockeyManager.h */; }; + FAAC642C0461EB6E3C43C411 /* Cancel@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 2C6268474EDB1A0E48E82871 /* Cancel@3x.png */; }; + FACFADCC24B5EA6164BEED1E /* it.lproj in Resources */ = {isa = PBXBuildFile; fileRef = B280C102D9EA5CD778F7B27D /* it.lproj */; }; + FB00DB9CF67C9C17A9C83F10 /* YapDatabaseCloudKitTransaction.h in Headers */ = {isa = PBXBuildFile; fileRef = A943A075B8A3EDF198FC13BF /* YapDatabaseCloudKitTransaction.h */; }; + FB26F51901F0A66030885D2A /* YapDatabaseExtensionConnection.h in Headers */ = {isa = PBXBuildFile; fileRef = 721C63AE8C86BCCE68A7877A /* YapDatabaseExtensionConnection.h */; }; + FB4CEAF4FC10A4D31A53BB58 /* NSString+ObjectiveSugar.h in Headers */ = {isa = PBXBuildFile; fileRef = 95F07D0CC3B8F4224850657A /* NSString+ObjectiveSugar.h */; }; + FBF07A65853F1C5C30DA0597 /* NSNumber+ObjectiveSugar.h in Headers */ = {isa = PBXBuildFile; fileRef = FFCA7F6D3900ECC708486304 /* NSNumber+ObjectiveSugar.h */; }; + FE19FE2695E36056439EA90D /* YapDatabaseViewTypes.h in Headers */ = {isa = PBXBuildFile; fileRef = 9BACB6D0887A9C86E8002A81 /* YapDatabaseViewTypes.h */; }; + FF36B4AC9ABF8E175ED2364C /* iconCamera.png in Resources */ = {isa = PBXBuildFile; fileRef = A948FC7FF58BAB60A6134B4B /* iconCamera.png */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ - 01D98243183C7287B492E0FA /* PBXContainerItemProxy */ = { + 0392BC935A3C45CFAE543C93 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; - containerPortal = F48EAC7D00BA4A53AF0DA9EC /* Project object */; + containerPortal = 0F1F25E390D54FDB68B253BB /* Project object */; proxyType = 1; - remoteGlobalIDString = D0112AD2A905640C097AA4E3; - remoteInfo = "Pods-Blog-libextobjc"; - }; - 09EFE2E0DE90805EC09B5C95 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = F48EAC7D00BA4A53AF0DA9EC /* Project object */; - proxyType = 1; - remoteGlobalIDString = 87CC4B149333532B97D86BA3; - remoteInfo = "Pods-samhuri.net-Mantle"; - }; - 0BF039765BAFEE31C849AA82 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = F48EAC7D00BA4A53AF0DA9EC /* Project object */; - proxyType = 1; - remoteGlobalIDString = BB24A593A5BF9C756CFF6590; - remoteInfo = "Pods-samhuri.net-OMGHTTPURLRQ"; - }; - 0FC7B8924F25D57F0F3AE01B /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = F48EAC7D00BA4A53AF0DA9EC /* Project object */; - proxyType = 1; - remoteGlobalIDString = 375D5DD5BC79FF8D84795800; + remoteGlobalIDString = 5BD2074B159E9210760E9DB5; remoteInfo = "Pods-Blog-OMGHTTPURLRQ"; }; - 2223CB4A4791FC8E04D961FF /* PBXContainerItemProxy */ = { + 0419C1FE94EE9D9B08D4EBEC /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; - containerPortal = F48EAC7D00BA4A53AF0DA9EC /* Project object */; + containerPortal = 0F1F25E390D54FDB68B253BB /* Project object */; proxyType = 1; - remoteGlobalIDString = 1B9EB6F8B470ABB0216941D5; - remoteInfo = "Pods-samhuri.net-YapDatabase"; - }; - 2C1C3FCFDBEFB6D79F4CAEDB /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = F48EAC7D00BA4A53AF0DA9EC /* Project object */; - proxyType = 1; - remoteGlobalIDString = 1915CA45DDBD337ADC988829; - remoteInfo = "Pods-samhuri.net-CocoaLumberjack"; - }; - 2C77A8228945785B7BCAED0A /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = F48EAC7D00BA4A53AF0DA9EC /* Project object */; - proxyType = 1; - remoteGlobalIDString = BB24A593A5BF9C756CFF6590; - remoteInfo = "Pods-samhuri.net-OMGHTTPURLRQ"; - }; - 2ED0692C023E26A14A843CDD /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = F48EAC7D00BA4A53AF0DA9EC /* Project object */; - proxyType = 1; - remoteGlobalIDString = DB41243B560373F63598A984; + remoteGlobalIDString = 8861BE957C1BECEC7AF91A6A; remoteInfo = "Pods-Blog-dyci"; }; - 337990945745443B90239C3C /* PBXContainerItemProxy */ = { + 0860F97A7332B7F7AB8387E8 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; - containerPortal = F48EAC7D00BA4A53AF0DA9EC /* Project object */; + containerPortal = 0F1F25E390D54FDB68B253BB /* Project object */; proxyType = 1; - remoteGlobalIDString = C6EF9B30182037AE243EC3BB; - remoteInfo = "Pods-Blog-CocoaLumberjack"; + remoteGlobalIDString = 648C49E133EBBA75C3AAFDA4; + remoteInfo = "Pods-Blog-libextobjc"; }; - 4901D4A7970A5186EFD3C950 /* PBXContainerItemProxy */ = { + 287751CB24496F7565E799F2 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; - containerPortal = F48EAC7D00BA4A53AF0DA9EC /* Project object */; + containerPortal = 0F1F25E390D54FDB68B253BB /* Project object */; proxyType = 1; - remoteGlobalIDString = BD43BE2DDB8DB99FBB37E0FE; - remoteInfo = "Pods-samhuri.net-MBProgressHUD"; + remoteGlobalIDString = A8CE6CB2212F69AE3CEB6AA5; + remoteInfo = "Pods-Blog-HockeySDK"; }; - 6001E48995780C7576AEEAE9 /* PBXContainerItemProxy */ = { + 43CC5EA2EA1056BD0A23F4B7 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; - containerPortal = F48EAC7D00BA4A53AF0DA9EC /* Project object */; + containerPortal = 0F1F25E390D54FDB68B253BB /* Project object */; proxyType = 1; - remoteGlobalIDString = 70288108F6AEBCCAA7FE93EA; - remoteInfo = "Pods-Blog-PromiseKit"; - }; - 6101A9B48BB1281B1A213626 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = F48EAC7D00BA4A53AF0DA9EC /* Project object */; - proxyType = 1; - remoteGlobalIDString = D26927D0011EA350C60FDB58; - remoteInfo = "Pods-Blog-MBProgressHUD"; - }; - 8BBCB5F0A63505A7131791D7 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = F48EAC7D00BA4A53AF0DA9EC /* Project object */; - proxyType = 1; - remoteGlobalIDString = C6EF9B30182037AE243EC3BB; - remoteInfo = "Pods-Blog-CocoaLumberjack"; - }; - 9E1A5CA0948B025B51DF380C /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = F48EAC7D00BA4A53AF0DA9EC /* Project object */; - proxyType = 1; - remoteGlobalIDString = 375D5DD5BC79FF8D84795800; + remoteGlobalIDString = 5BD2074B159E9210760E9DB5; remoteInfo = "Pods-Blog-OMGHTTPURLRQ"; }; - A0ED47D33001C6792D98036C /* PBXContainerItemProxy */ = { + 4C0062421264F0DCE06FCF15 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; - containerPortal = F48EAC7D00BA4A53AF0DA9EC /* Project object */; + containerPortal = 0F1F25E390D54FDB68B253BB /* Project object */; proxyType = 1; - remoteGlobalIDString = 53CA12EF9FC78D764CAF336C; - remoteInfo = "Pods-Blog-YapDatabase"; + remoteGlobalIDString = D2DF925ADA674F79DA5E6068; + remoteInfo = "Pods-samhuri.net-YapDatabase"; }; - BB967791199EBBF2D1DA4341 /* PBXContainerItemProxy */ = { + 5D9B9C4FD114FAFC9A004A7C /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; - containerPortal = F48EAC7D00BA4A53AF0DA9EC /* Project object */; + containerPortal = 0F1F25E390D54FDB68B253BB /* Project object */; proxyType = 1; - remoteGlobalIDString = 503854A52F3C12D1A923372C; + remoteGlobalIDString = B87AEE12D90E4DCCF1925DD2; remoteInfo = "Pods-samhuri.net-ObjectiveSugar"; }; - CA7E33DD6212E11C2AAAD112 /* PBXContainerItemProxy */ = { + 7769941031EACB297620FC9B /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; - containerPortal = F48EAC7D00BA4A53AF0DA9EC /* Project object */; + containerPortal = 0F1F25E390D54FDB68B253BB /* Project object */; proxyType = 1; - remoteGlobalIDString = 93C1504B6640077885F5785C; + remoteGlobalIDString = 6B1A3F24490A28B85D2B98C1; + remoteInfo = "Pods-samhuri.net-OMGHTTPURLRQ"; + }; + 85F75ADC437227173BD0667E /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 0F1F25E390D54FDB68B253BB /* Project object */; + proxyType = 1; + remoteGlobalIDString = 01A548EABEB19F541F1F515D; + remoteInfo = "Pods-Blog-HockeySDK-HockeySDKResources"; + }; + 8B532E7FB9AA2549525B35DB /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 0F1F25E390D54FDB68B253BB /* Project object */; + proxyType = 1; + remoteGlobalIDString = 8211A052C1AAC5E293FA96C2; + remoteInfo = "Pods-Blog-CocoaLumberjack"; + }; + 8F73AD80A1C7E4628DEE4422 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 0F1F25E390D54FDB68B253BB /* Project object */; + proxyType = 1; + remoteGlobalIDString = 67A3295FD88C690191799374; + remoteInfo = "Pods-samhuri.net-Mantle"; + }; + A1181F09A76257BCBDC14053 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 0F1F25E390D54FDB68B253BB /* Project object */; + proxyType = 1; + remoteGlobalIDString = 616C3574E0905042A0B01C50; + remoteInfo = "Pods-Blog-MBProgressHUD"; + }; + A8A084FC311102959385E5DB /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 0F1F25E390D54FDB68B253BB /* Project object */; + proxyType = 1; + remoteGlobalIDString = 3485909229C96C0CEDDEA195; remoteInfo = "Pods-Blog-FontAwesome+iOS"; }; - CD5D906F8A2EF0804289FBEA /* PBXContainerItemProxy */ = { + AE28E234790B43E99DB08DC6 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; - containerPortal = F48EAC7D00BA4A53AF0DA9EC /* Project object */; + containerPortal = 0F1F25E390D54FDB68B253BB /* Project object */; proxyType = 1; - remoteGlobalIDString = 0116563DA3B59C73A4349D5B; - remoteInfo = "Pods-samhuri.net-PromiseKit"; - }; - E19635B8560411A44FB1913A /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = F48EAC7D00BA4A53AF0DA9EC /* Project object */; - proxyType = 1; - remoteGlobalIDString = 1915CA45DDBD337ADC988829; + remoteGlobalIDString = C36C4EC3CA5B8EECA9F1955A; remoteInfo = "Pods-samhuri.net-CocoaLumberjack"; }; - E20B8BD4F8AF80785341A791 /* PBXContainerItemProxy */ = { + B0F432DAB713FB66577ACC41 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; - containerPortal = F48EAC7D00BA4A53AF0DA9EC /* Project object */; + containerPortal = 0F1F25E390D54FDB68B253BB /* Project object */; proxyType = 1; - remoteGlobalIDString = CD410B653411960151EE0A90; + remoteGlobalIDString = 1AB623BF51767BC8616138AD; + remoteInfo = "Pods-Blog-PromiseKit"; + }; + B22944CA0DE6754CA74EDC17 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 0F1F25E390D54FDB68B253BB /* Project object */; + proxyType = 1; + remoteGlobalIDString = 9DC286E133EA91C3F1E9A620; + remoteInfo = "Pods-samhuri.net-MBProgressHUD"; + }; + BBD8244BB14FD16D754293D7 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 0F1F25E390D54FDB68B253BB /* Project object */; + proxyType = 1; + remoteGlobalIDString = C36C4EC3CA5B8EECA9F1955A; + remoteInfo = "Pods-samhuri.net-CocoaLumberjack"; + }; + C008BE0034689574AA3AA3DF /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 0F1F25E390D54FDB68B253BB /* Project object */; + proxyType = 1; + remoteGlobalIDString = 6B1A3F24490A28B85D2B98C1; + remoteInfo = "Pods-samhuri.net-OMGHTTPURLRQ"; + }; + C0FF3A5FBE08C3FBA3025D23 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 0F1F25E390D54FDB68B253BB /* Project object */; + proxyType = 1; + remoteGlobalIDString = 9829AFDADE0EBCC51945CF1C; + remoteInfo = "Pods-Blog-Mantle"; + }; + DBBEBB89D5C8E33025B7D434 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 0F1F25E390D54FDB68B253BB /* Project object */; + proxyType = 1; + remoteGlobalIDString = 9280BB320B2800EA80D4AB33; + remoteInfo = "Pods-samhuri.net-PromiseKit"; + }; + E55E1FFB8D4C2AC1590EC7EA /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 0F1F25E390D54FDB68B253BB /* Project object */; + proxyType = 1; + remoteGlobalIDString = A9E6C8019CC73D066D5B7B12; remoteInfo = "Pods-Blog-ObjectiveSugar"; }; - EE54AAAD7D8E524807226452 /* PBXContainerItemProxy */ = { + F7EAE850BEC0DA840CDFD11A /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; - containerPortal = F48EAC7D00BA4A53AF0DA9EC /* Project object */; + containerPortal = 0F1F25E390D54FDB68B253BB /* Project object */; proxyType = 1; - remoteGlobalIDString = 40F387FF62867EE943ACB1FC; - remoteInfo = "Pods-Blog-Mantle"; + remoteGlobalIDString = C115EC8724564E3170B95575; + remoteInfo = "Pods-Blog-YapDatabase"; + }; + FFCA5E90EBED3AC42CF4669B /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 0F1F25E390D54FDB68B253BB /* Project object */; + proxyType = 1; + remoteGlobalIDString = 8211A052C1AAC5E293FA96C2; + remoteInfo = "Pods-Blog-CocoaLumberjack"; }; /* End PBXContainerItemProxy section */ /* Begin PBXFileReference section */ - 00294DB9529CE75E49B8279A /* UIAlertView+PromiseKit.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIAlertView+PromiseKit.m"; path = "objc/UIAlertView+PromiseKit.m"; sourceTree = ""; }; - 01069A44285D1FE6BB352013 /* EXTSafeCategory.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = EXTSafeCategory.m; path = extobjc/EXTSafeCategory.m; sourceTree = ""; }; - 0107A02DD2AA3F1BCD05C855 /* libPods-Blog-MBProgressHUD.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-Blog-MBProgressHUD.a"; sourceTree = BUILT_PRODUCTS_DIR; }; - 02CD1F29FA92CC91297FE5B3 /* Pods-Blog-dyci-Private.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-Blog-dyci-Private.xcconfig"; sourceTree = ""; }; - 033AE8F6A5FAB9F1F95AAE0D /* FontAwesome.ttf */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = file; name = FontAwesome.ttf; path = Resources/FontAwesome.ttf; sourceTree = ""; }; - 03B758E6F2BBE95619257F7E /* NSURLConnection+PromiseKit.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSURLConnection+PromiseKit.m"; path = "objc/NSURLConnection+PromiseKit.m"; sourceTree = ""; }; - 03E7AE5E5F87DE38625B7182 /* YapDatabaseManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseManager.h; path = YapDatabase/Internal/YapDatabaseManager.h; sourceTree = ""; }; - 03F716AF51842D5CACEF1B81 /* YapDatabaseSecondaryIndex.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseSecondaryIndex.h; path = YapDatabase/Extensions/SecondaryIndex/YapDatabaseSecondaryIndex.h; sourceTree = ""; }; - 04FB3FA2B889F5B537B5158E /* Pods-Blog-PromiseKit.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-Blog-PromiseKit.xcconfig"; sourceTree = ""; }; - 05A4B45E796332BB64F4DBEC /* YapDatabase.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapDatabase.m; path = YapDatabase/YapDatabase.m; sourceTree = ""; }; - 06CC2C50158075B98D39886F /* NSSet+ObjectiveSugar.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSSet+ObjectiveSugar.m"; path = "Classes/NSSet+ObjectiveSugar.m"; sourceTree = ""; }; - 0847FAE1E3F4C096BE7821EC /* Pods-Blog-Mantle-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-Blog-Mantle-prefix.pch"; sourceTree = ""; }; - 0850A1E73E8134133C72E8D6 /* Pods-Blog-environment.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-Blog-environment.h"; sourceTree = ""; }; - 08AC1CAD878E7894E245C1DB /* YapDatabaseViewOptions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseViewOptions.h; path = YapDatabase/Extensions/Views/YapDatabaseViewOptions.h; sourceTree = ""; }; - 08BF8ADC6335EBEEAA693C8B /* DDContextFilterLogFormatter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DDContextFilterLogFormatter.m; path = Lumberjack/Extensions/DDContextFilterLogFormatter.m; sourceTree = ""; }; - 08F9631220752789EFC32EDF /* YapDatabaseFullTextSearchHandler.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseFullTextSearchHandler.h; path = YapDatabase/Extensions/FullTextSearch/YapDatabaseFullTextSearchHandler.h; sourceTree = ""; }; - 0C381178C401C525B83FB29C /* YapDatabaseSecondaryIndexSetup.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapDatabaseSecondaryIndexSetup.m; path = YapDatabase/Extensions/SecondaryIndex/YapDatabaseSecondaryIndexSetup.m; sourceTree = ""; }; - 0CB02F9D6072169ACD618BA8 /* DDTTYLogger.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DDTTYLogger.h; path = Lumberjack/DDTTYLogger.h; sourceTree = ""; }; - 0CE2F7439995D0103D65BBEF /* YapDatabaseConnectionState.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseConnectionState.h; path = YapDatabase/Internal/YapDatabaseConnectionState.h; sourceTree = ""; }; - 0DBFCE6A6A9E3DBC7B444FA4 /* YapDatabaseSearchResultsView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapDatabaseSearchResultsView.m; path = YapDatabase/Extensions/SearchResults/YapDatabaseSearchResultsView.m; sourceTree = ""; }; - 0E2D7EE88C3D855404E6AF0A /* DDLog.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DDLog.h; path = Lumberjack/DDLog.h; sourceTree = ""; }; - 0E8CB36B6CCD9434DC93EDA8 /* Pods-samhuri.net-MBProgressHUD.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-samhuri.net-MBProgressHUD.xcconfig"; path = "../Pods-samhuri.net-MBProgressHUD/Pods-samhuri.net-MBProgressHUD.xcconfig"; sourceTree = ""; }; - 0EFB27F6C4879CBCFD5F931C /* YapDatabaseViewPage.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseViewPage.h; path = YapDatabase/Extensions/Views/Internal/YapDatabaseViewPage.h; sourceTree = ""; }; - 103234F27AF3A35888A43C88 /* PMKPromise+When.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "PMKPromise+When.m"; path = "objc/PMKPromise+When.m"; sourceTree = ""; }; - 105EB70EFA6E97885129527A /* EXTScope.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = EXTScope.m; path = Mantle/extobjc/EXTScope.m; sourceTree = ""; }; - 10BDA234BD3091894487BCEB /* NSInvocation+EXT.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSInvocation+EXT.h"; path = "extobjc/NSInvocation+EXT.h"; sourceTree = ""; }; - 1100C9110EBEABB79C035D6C /* YapDatabaseRelationshipPrivate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseRelationshipPrivate.h; path = YapDatabase/Extensions/Relationships/Internal/YapDatabaseRelationshipPrivate.h; sourceTree = ""; }; - 113FC1CE12C29850DA58914B /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS8.3.sdk/System/Library/Frameworks/UIKit.framework; sourceTree = DEVELOPER_DIR; }; - 12EC26A0C8A60EA31C83E978 /* Pods-Blog-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-Blog-acknowledgements.markdown"; sourceTree = ""; }; - 142AC53FEB92071B60F07F34 /* OMGFormURLEncode.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = OMGFormURLEncode.m; sourceTree = ""; }; - 1555478860271FB44E77C5AB /* YapDatabaseViewTransaction.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapDatabaseViewTransaction.m; path = YapDatabase/Extensions/Views/YapDatabaseViewTransaction.m; sourceTree = ""; }; - 16DAEEE0FC4F440060ACF984 /* NSDictionary+ObjectiveSugar.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSDictionary+ObjectiveSugar.m"; path = "Classes/NSDictionary+ObjectiveSugar.m"; sourceTree = ""; }; - 1748FB994DF36F5CFD70C388 /* libPods-samhuri.net-CocoaLumberjack.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-samhuri.net-CocoaLumberjack.a"; sourceTree = BUILT_PRODUCTS_DIR; }; - 1784AD76848A711FD14E57D8 /* YapDatabaseSearchResultsViewConnection.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseSearchResultsViewConnection.h; path = YapDatabase/Extensions/SearchResults/YapDatabaseSearchResultsViewConnection.h; sourceTree = ""; }; - 17EB70077701303036CC4A09 /* Pods-samhuri.net-environment.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-samhuri.net-environment.h"; sourceTree = ""; }; - 17F7FC03FEA3D20FB1A44BE4 /* libPods-Blog-CocoaLumberjack.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-Blog-CocoaLumberjack.a"; sourceTree = BUILT_PRODUCTS_DIR; }; - 1863159C33B07B9214745599 /* YapDatabaseRelationshipOptions.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapDatabaseRelationshipOptions.m; path = YapDatabase/Extensions/Relationships/YapDatabaseRelationshipOptions.m; sourceTree = ""; }; - 18687F1C88FFF4AA735AB49E /* YapDatabaseSearchResultsViewTransaction.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapDatabaseSearchResultsViewTransaction.m; path = YapDatabase/Extensions/SearchResults/YapDatabaseSearchResultsViewTransaction.m; sourceTree = ""; }; - 19EACECD75C592B9D8FE6035 /* Pods-samhuri.net-MBProgressHUD-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "Pods-samhuri.net-MBProgressHUD-prefix.pch"; path = "../Pods-samhuri.net-MBProgressHUD/Pods-samhuri.net-MBProgressHUD-prefix.pch"; sourceTree = ""; }; - 1A6866806A4DACB1EF227A7B /* YapDatabaseViewConnection.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseViewConnection.h; path = YapDatabase/Extensions/Views/YapDatabaseViewConnection.h; sourceTree = ""; }; - 1BF1D70C0B73C5A0D485757D /* UIFont+FontAwesome.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "UIFont+FontAwesome.h"; sourceTree = ""; }; - 1C8E98D480058DC58AA665A1 /* YDBCKRecordInfo.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YDBCKRecordInfo.m; path = YapDatabase/Extensions/CloudKit/Utilities/YDBCKRecordInfo.m; sourceTree = ""; }; - 1D157FFDB1D61A6CEF1B03C6 /* YapDebugDictionary.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapDebugDictionary.m; path = YapDatabase/Internal/YapDebugDictionary.m; sourceTree = ""; }; - 1FBEEBE56CB92A24E64CE205 /* Pods-samhuri.net-PromiseKit-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "Pods-samhuri.net-PromiseKit-prefix.pch"; path = "../Pods-samhuri.net-PromiseKit/Pods-samhuri.net-PromiseKit-prefix.pch"; sourceTree = ""; }; - 1FFF64ECFF383922B2C27C21 /* YapDatabaseSearchQueuePrivate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseSearchQueuePrivate.h; path = YapDatabase/Extensions/SearchResults/YapDatabaseSearchQueuePrivate.h; sourceTree = ""; }; - 219F916D56045D897DB374C2 /* YapDatabaseOptions.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapDatabaseOptions.m; path = YapDatabase/YapDatabaseOptions.m; sourceTree = ""; }; - 21DCA3553D9065FA5DFACC3A /* NSDictionary+ObjectiveSugar.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSDictionary+ObjectiveSugar.h"; path = "Classes/NSDictionary+ObjectiveSugar.h"; sourceTree = ""; }; - 21F299A3CC041D21E49E128A /* YapDatabaseViewMappings.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseViewMappings.h; path = YapDatabase/Extensions/Views/Utilities/YapDatabaseViewMappings.h; sourceTree = ""; }; - 2271EAA178AE46FA26875B0F /* NSString+FontAwesome.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "NSString+FontAwesome.h"; sourceTree = ""; }; - 22B196B446DA79536F4BD761 /* YapDatabaseFilteredViewTransaction.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapDatabaseFilteredViewTransaction.m; path = YapDatabase/Extensions/FilteredViews/YapDatabaseFilteredViewTransaction.m; sourceTree = ""; }; - 22E2BE721AB7902C5709752B /* YDBCKChangeQueue.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YDBCKChangeQueue.h; path = YapDatabase/Extensions/CloudKit/Internal/YDBCKChangeQueue.h; sourceTree = ""; }; - 23BD74E6F48DF4303D3DD1D3 /* YapDatabaseFullTextSearchConnection.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapDatabaseFullTextSearchConnection.m; path = YapDatabase/Extensions/FullTextSearch/YapDatabaseFullTextSearchConnection.m; sourceTree = ""; }; - 23DCCA31A5DD4723D5CDC727 /* Pods-Blog-libextobjc-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-Blog-libextobjc-prefix.pch"; sourceTree = ""; }; - 240E372D9BC934267E060F45 /* Pods-samhuri.net-CocoaLumberjack-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "Pods-samhuri.net-CocoaLumberjack-dummy.m"; path = "../Pods-samhuri.net-CocoaLumberjack/Pods-samhuri.net-CocoaLumberjack-dummy.m"; sourceTree = ""; }; - 246374EB66C3DED971BDFA98 /* YapDatabaseCloudKitOptions.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapDatabaseCloudKitOptions.m; path = YapDatabase/Extensions/CloudKit/YapDatabaseCloudKitOptions.m; sourceTree = ""; }; - 247E87DA6CAC4333E9E5EE97 /* YapDatabaseViewMappings.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapDatabaseViewMappings.m; path = YapDatabase/Extensions/Views/Utilities/YapDatabaseViewMappings.m; sourceTree = ""; }; - 24FC991C5B5EC9B91AB20554 /* DDLog.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DDLog.m; path = Lumberjack/DDLog.m; sourceTree = ""; }; - 25253F668642F34F93F33A00 /* YapDatabaseConnection.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseConnection.h; path = YapDatabase/YapDatabaseConnection.h; sourceTree = ""; }; - 2596C15D5F1AE58CEB1FE929 /* NSObject+MTLComparisonAdditions.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSObject+MTLComparisonAdditions.m"; path = "Mantle/NSObject+MTLComparisonAdditions.m"; sourceTree = ""; }; - 26896C5EA3FFCF71FEBC02B8 /* YapDatabaseViewState.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseViewState.h; path = YapDatabase/Extensions/Views/Internal/YapDatabaseViewState.h; sourceTree = ""; }; - 26A36DEBCFC1E544819F6620 /* NSError+MTLModelException.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSError+MTLModelException.h"; path = "Mantle/NSError+MTLModelException.h"; sourceTree = ""; }; - 26BAC2FC50220B883968CD82 /* YapNull.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapNull.h; path = YapDatabase/Internal/YapNull.h; sourceTree = ""; }; - 26BD73A193575E26B265F62D /* YDBCKMergeInfo.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YDBCKMergeInfo.h; path = YapDatabase/Extensions/CloudKit/Utilities/YDBCKMergeInfo.h; sourceTree = ""; }; - 26D67668333253E8C2245192 /* MBProgressHUD.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = MBProgressHUD.m; sourceTree = ""; }; - 27B7ABCDE2097188B5ACFA26 /* YapDatabaseFullTextSearchPrivate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseFullTextSearchPrivate.h; path = YapDatabase/Extensions/FullTextSearch/Internal/YapDatabaseFullTextSearchPrivate.h; sourceTree = ""; }; - 282B9211FFD2F2EA6B21538A /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS8.3.sdk/System/Library/Frameworks/Foundation.framework; sourceTree = DEVELOPER_DIR; }; - 2833440792FAAB7CDCB5B4F0 /* NSDictionary+MTLManipulationAdditions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSDictionary+MTLManipulationAdditions.h"; path = "Mantle/NSDictionary+MTLManipulationAdditions.h"; sourceTree = ""; }; - 28965EF36F91445CA1F60896 /* YapDatabaseTransaction.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseTransaction.h; path = YapDatabase/YapDatabaseTransaction.h; sourceTree = ""; }; - 28A4EE3E29192A493521DA4D /* Pods-Blog.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-Blog.debug.xcconfig"; sourceTree = ""; }; - 28E81357C4025E01BFBB9B6F /* YDBCKChangeQueue.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YDBCKChangeQueue.m; path = YapDatabase/Extensions/CloudKit/Internal/YDBCKChangeQueue.m; sourceTree = ""; }; - 292ADC73D143BB23A41C2F8E /* NSNumber+ObjectiveSugar.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSNumber+ObjectiveSugar.m"; path = "Classes/NSNumber+ObjectiveSugar.m"; sourceTree = ""; }; - 295FA13B52BF1EC408A07D30 /* YapWhitelistBlacklist.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapWhitelistBlacklist.h; path = YapDatabase/Utilities/YapWhitelistBlacklist.h; sourceTree = ""; }; - 2B676AC6FC7F0B593FF0C475 /* Mantle.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = Mantle.h; path = Mantle/Mantle.h; sourceTree = ""; }; - 2B84FAE9096DC6E821A22193 /* YapDatabaseViewOptions.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapDatabaseViewOptions.m; path = YapDatabase/Extensions/Views/YapDatabaseViewOptions.m; sourceTree = ""; }; - 2BD37CDAD70AFA9A71B8C729 /* libPods-Blog-OMGHTTPURLRQ.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-Blog-OMGHTTPURLRQ.a"; sourceTree = BUILT_PRODUCTS_DIR; }; - 2BFD39420731A8315336D476 /* MTLValueTransformer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MTLValueTransformer.h; path = Mantle/MTLValueTransformer.h; sourceTree = ""; }; - 2C058B96487AFE809BA37B48 /* SFDynamicCodeInjection.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SFDynamicCodeInjection.h; path = "Dynamic Code Injection/dyci/Classes/SFDynamicCodeInjection.h"; sourceTree = ""; }; - 2C185110F55E76571CD7FEF4 /* EXTKeyPathCoding.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = EXTKeyPathCoding.h; path = Mantle/extobjc/EXTKeyPathCoding.h; sourceTree = ""; }; - 2E1B5DB271BEA6ACAC0D7CF8 /* YDBCKAttachRequest.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YDBCKAttachRequest.m; path = YapDatabase/Extensions/CloudKit/Internal/YDBCKAttachRequest.m; sourceTree = ""; }; - 2E3487FC5A902204ABC002FE /* YapTouch.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapTouch.m; path = YapDatabase/Internal/YapTouch.m; sourceTree = ""; }; - 2EE6020150256878B361C44B /* Pods-Blog-MBProgressHUD-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-Blog-MBProgressHUD-dummy.m"; sourceTree = ""; }; - 2F67F2A03BD8CAE4FCA8864E /* Promise+Until.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "Promise+Until.h"; path = "objc/PromiseKit/Promise+Until.h"; sourceTree = ""; }; - 2F6B46C76C5923866A8E01D3 /* UIView+PromiseKit.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIView+PromiseKit.h"; path = "objc/UIView+PromiseKit.h"; sourceTree = ""; }; - 2FB47F54C6EE520019A54078 /* Pods-Blog-PromiseKit-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-Blog-PromiseKit-dummy.m"; sourceTree = ""; }; - 3096C8BF574F9EAED6EE702E /* YapDatabaseCloudKit.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapDatabaseCloudKit.m; path = YapDatabase/Extensions/CloudKit/YapDatabaseCloudKit.m; sourceTree = ""; }; - 30A67CC6BE0A0FD55C71BE1F /* UIViewController+XIBSupport.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIViewController+XIBSupport.m"; path = "Dynamic Code Injection/dyci/Classes/Injections/UIViewController+XIBSupport.m"; sourceTree = ""; }; - 322A6EDFCB536912D423794E /* YapDatabaseSearchResultsViewOptions.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapDatabaseSearchResultsViewOptions.m; path = YapDatabase/Extensions/SearchResults/YapDatabaseSearchResultsViewOptions.m; sourceTree = ""; }; - 323CA2471B47105D93E68D84 /* Pods-Blog-Mantle-Private.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-Blog-Mantle-Private.xcconfig"; sourceTree = ""; }; - 32CE7DC3A3011AFE024C1BD6 /* YapSet.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapSet.h; path = YapDatabase/Utilities/YapSet.h; sourceTree = ""; }; - 33275D7AE06D272A53F23F30 /* EXTConcreteProtocol.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = EXTConcreteProtocol.h; path = extobjc/EXTConcreteProtocol.h; sourceTree = ""; }; - 33336F4E31CF0F4C63B0FDDB /* metamacros.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = metamacros.h; path = extobjc/metamacros.h; sourceTree = ""; }; - 33744720CD09248B783228E4 /* YapDatabaseOptions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseOptions.h; path = YapDatabase/YapDatabaseOptions.h; sourceTree = ""; }; - 337995D95A64BEC9D2535623 /* QuartzCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS8.3.sdk/System/Library/Frameworks/QuartzCore.framework; sourceTree = DEVELOPER_DIR; }; - 337C6668C1832227E942F3B0 /* YapDatabaseConnectionState.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapDatabaseConnectionState.m; path = YapDatabase/Internal/YapDatabaseConnectionState.m; sourceTree = ""; }; - 349A76A262017BE01B9A86C5 /* SFFileWatcher.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SFFileWatcher.m; path = "Dynamic Code Injection/dyci/Classes/FileWatcher/SFFileWatcher.m"; sourceTree = ""; }; - 34F95094705A52D263AB17D6 /* NSArray+MTLManipulationAdditions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSArray+MTLManipulationAdditions.h"; path = "Mantle/NSArray+MTLManipulationAdditions.h"; sourceTree = ""; }; - 36694C5AC36D673C03C2B481 /* Pods-samhuri.net-PromiseKit-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "Pods-samhuri.net-PromiseKit-dummy.m"; path = "../Pods-samhuri.net-PromiseKit/Pods-samhuri.net-PromiseKit-dummy.m"; sourceTree = ""; }; - 36A385ED54EA2353AEA99BFD /* YapDatabaseSearchResultsViewPrivate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseSearchResultsViewPrivate.h; path = YapDatabase/Extensions/SearchResults/Internal/YapDatabaseSearchResultsViewPrivate.h; sourceTree = ""; }; - 37AAC9B90E9340A9139C3D48 /* Pods-Blog-OMGHTTPURLRQ.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-Blog-OMGHTTPURLRQ.xcconfig"; sourceTree = ""; }; - 37DA2003F00041209AD13BD0 /* DDTTYLogger.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DDTTYLogger.m; path = Lumberjack/DDTTYLogger.m; sourceTree = ""; }; - 37FE19233C994D0A51E15285 /* YDBCKRecordTableInfo.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YDBCKRecordTableInfo.m; path = YapDatabase/Extensions/CloudKit/Internal/YDBCKRecordTableInfo.m; sourceTree = ""; }; - 393FD5B68516CC4EE733E287 /* YapDatabaseSearchQueue.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapDatabaseSearchQueue.m; path = YapDatabase/Extensions/SearchResults/YapDatabaseSearchQueue.m; sourceTree = ""; }; - 3A9ABA5782DFC039D0AECFBA /* Podfile */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; name = Podfile; path = ../Podfile; sourceTree = SOURCE_ROOT; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; - 3AF53DEF557252716AF12062 /* Pods-samhuri.net-CocoaLumberjack-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "Pods-samhuri.net-CocoaLumberjack-prefix.pch"; path = "../Pods-samhuri.net-CocoaLumberjack/Pods-samhuri.net-CocoaLumberjack-prefix.pch"; sourceTree = ""; }; - 3CA4E2CB17BBE44F3F11AC15 /* YapDatabaseFilteredViewConnection.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapDatabaseFilteredViewConnection.m; path = YapDatabase/Extensions/FilteredViews/YapDatabaseFilteredViewConnection.m; sourceTree = ""; }; - 3CA8C04D7B74D34696706F13 /* YapDatabaseConnection.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapDatabaseConnection.m; path = YapDatabase/YapDatabaseConnection.m; sourceTree = ""; }; - 3CB1830581E0F7750B97F18F /* YapDatabaseCloudKitTransaction.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseCloudKitTransaction.h; path = YapDatabase/Extensions/CloudKit/YapDatabaseCloudKitTransaction.h; sourceTree = ""; }; - 3CB41934427A39A44B61B5B8 /* Pods-samhuri.net-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-samhuri.net-dummy.m"; sourceTree = ""; }; - 3D267AF5977A7AC5360BB7F7 /* Pods-samhuri.net-MBProgressHUD-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "Pods-samhuri.net-MBProgressHUD-dummy.m"; path = "../Pods-samhuri.net-MBProgressHUD/Pods-samhuri.net-MBProgressHUD-dummy.m"; sourceTree = ""; }; - 3D8451A16089F9E2452997B6 /* YDBCKMergeInfo.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YDBCKMergeInfo.m; path = YapDatabase/Extensions/CloudKit/Utilities/YDBCKMergeInfo.m; sourceTree = ""; }; - 3D9CCA2DFAB56D733D2B5075 /* DDFileLogger.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DDFileLogger.m; path = Lumberjack/DDFileLogger.m; sourceTree = ""; }; - 3EDB03794C1EE1D78ED16415 /* YapDatabaseLogging.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapDatabaseLogging.m; path = YapDatabase/Internal/YapDatabaseLogging.m; sourceTree = ""; }; - 3F4DA54A83A51A4C3DD5C88E /* YapDatabaseFullTextSearch.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapDatabaseFullTextSearch.m; path = YapDatabase/Extensions/FullTextSearch/YapDatabaseFullTextSearch.m; sourceTree = ""; }; - 3FAB5F9974743053DA63B943 /* NSArray+ObjectiveSugar.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSArray+ObjectiveSugar.m"; path = "Classes/NSArray+ObjectiveSugar.m"; sourceTree = ""; }; - 40668D7AD9D7B1456E623014 /* DDASLLogger.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DDASLLogger.h; path = Lumberjack/DDASLLogger.h; sourceTree = ""; }; - 412911EC4FA87AE1B39C9A43 /* Pods-samhuri.net-MBProgressHUD-Private.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-samhuri.net-MBProgressHUD-Private.xcconfig"; path = "../Pods-samhuri.net-MBProgressHUD/Pods-samhuri.net-MBProgressHUD-Private.xcconfig"; sourceTree = ""; }; - 41FA86567743B90E1C5C5B2A /* NSObject+DyCInjection.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSObject+DyCInjection.m"; path = "Dynamic Code Injection/dyci/Classes/Injections/NSObject+DyCInjection.m"; sourceTree = ""; }; - 423F148D857849770632B527 /* UIImage+FontAwesome.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "UIImage+FontAwesome.h"; sourceTree = ""; }; - 42603304AE5D753415BC0AF9 /* YapDatabaseSearchResultsViewOptions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseSearchResultsViewOptions.h; path = YapDatabase/Extensions/SearchResults/YapDatabaseSearchResultsViewOptions.h; sourceTree = ""; }; - 43124240504688FC6BF3C826 /* libPods-samhuri.net-Mantle.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-samhuri.net-Mantle.a"; sourceTree = BUILT_PRODUCTS_DIR; }; - 4375875DBF26E773E7BDD0A2 /* YapDatabaseRelationshipTransaction.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapDatabaseRelationshipTransaction.m; path = YapDatabase/Extensions/Relationships/YapDatabaseRelationshipTransaction.m; sourceTree = ""; }; - 44290497B83C652848C2AD4A /* NSArray+ObjectiveSugar.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSArray+ObjectiveSugar.h"; path = "Classes/NSArray+ObjectiveSugar.h"; sourceTree = ""; }; - 4526FE3440E12F0E226424E3 /* YapNull.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapNull.m; path = YapDatabase/Internal/YapNull.m; sourceTree = ""; }; - 456956BB07785CAB0362B287 /* Pods-samhuri.net-Mantle-Private.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-samhuri.net-Mantle-Private.xcconfig"; path = "../Pods-samhuri.net-Mantle/Pods-samhuri.net-Mantle-Private.xcconfig"; sourceTree = ""; }; - 45818D4CE2A27CADC50BC3AA /* Pods-samhuri.net-Mantle-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "Pods-samhuri.net-Mantle-prefix.pch"; path = "../Pods-samhuri.net-Mantle/Pods-samhuri.net-Mantle-prefix.pch"; sourceTree = ""; }; - 460D03ADC9278DEE1EA6F3FB /* EXTKeyPathCoding.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = EXTKeyPathCoding.h; path = extobjc/EXTKeyPathCoding.h; sourceTree = ""; }; - 46E2BF6FE7889AC307FAEDE3 /* Pods-Blog-OMGHTTPURLRQ-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-Blog-OMGHTTPURLRQ-prefix.pch"; sourceTree = ""; }; - 49B490E4F28ED008C184E20D /* MTLTransformerErrorHandling.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MTLTransformerErrorHandling.m; path = Mantle/MTLTransformerErrorHandling.m; sourceTree = ""; }; - 49E66D7F3B72C857E575D900 /* PMKPromise.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = PMKPromise.m; path = objc/PMKPromise.m; sourceTree = ""; }; - 4A7FDFC0733456C5288CC777 /* YDBCKMappingTableInfo.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YDBCKMappingTableInfo.h; path = YapDatabase/Extensions/CloudKit/Internal/YDBCKMappingTableInfo.h; sourceTree = ""; }; - 4B5E0DAB0F48615409D8356F /* YDBCKMappingTableInfo.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YDBCKMappingTableInfo.m; path = YapDatabase/Extensions/CloudKit/Internal/YDBCKMappingTableInfo.m; sourceTree = ""; }; - 4C80234048DBD71D5000659A /* YapDatabaseSecondaryIndexOptions.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapDatabaseSecondaryIndexOptions.m; path = YapDatabase/Extensions/SecondaryIndex/YapDatabaseSecondaryIndexOptions.m; sourceTree = ""; }; - 4D14F361ABE7060F438355BD /* Pods-samhuri.net-YapDatabase.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-samhuri.net-YapDatabase.xcconfig"; path = "../Pods-samhuri.net-YapDatabase/Pods-samhuri.net-YapDatabase.xcconfig"; sourceTree = ""; }; - 4DCEB5E54C2A35459ED59054 /* MTLJSONAdapter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MTLJSONAdapter.h; path = Mantle/MTLJSONAdapter.h; sourceTree = ""; }; - 4FA5B6AD9496F6B7327BEF6B /* YapCollectionKey.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapCollectionKey.h; path = YapDatabase/Utilities/YapCollectionKey.h; sourceTree = ""; }; - 4FAAF95BBB79A541624C0213 /* YapDatabaseSecondaryIndexHandler.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapDatabaseSecondaryIndexHandler.m; path = YapDatabase/Extensions/SecondaryIndex/YapDatabaseSecondaryIndexHandler.m; sourceTree = ""; }; - 4FC527BF4D6156DF3F602401 /* EXTConcreteProtocol.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = EXTConcreteProtocol.m; path = extobjc/EXTConcreteProtocol.m; sourceTree = ""; }; - 4FD8BF6204556957877719C6 /* YapDatabaseFilteredViewTypes.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapDatabaseFilteredViewTypes.m; path = YapDatabase/Extensions/FilteredViews/YapDatabaseFilteredViewTypes.m; sourceTree = ""; }; - 503C6EC9BD66C2DDD667A9A8 /* libPods-samhuri.net.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-samhuri.net.a"; sourceTree = BUILT_PRODUCTS_DIR; }; - 509D1EEBC84654B87CE5A9EC /* NSURLConnection+PromiseKit.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSURLConnection+PromiseKit.h"; path = "objc/NSURLConnection+PromiseKit.h"; sourceTree = ""; }; - 539DB9150507BC524A50B067 /* Pods-samhuri.net-CocoaLumberjack-Private.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-samhuri.net-CocoaLumberjack-Private.xcconfig"; path = "../Pods-samhuri.net-CocoaLumberjack/Pods-samhuri.net-CocoaLumberjack-Private.xcconfig"; sourceTree = ""; }; - 53EEB8D97485A543890769B0 /* Promise+Pause.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "Promise+Pause.h"; path = "objc/PromiseKit/Promise+Pause.h"; sourceTree = ""; }; - 547E0C610F134F11F17F7664 /* Pods-samhuri.net-Mantle-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "Pods-samhuri.net-Mantle-dummy.m"; path = "../Pods-samhuri.net-Mantle/Pods-samhuri.net-Mantle-dummy.m"; sourceTree = ""; }; - 56CA459B2FFE8509276AF82A /* MTLJSONAdapter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MTLJSONAdapter.m; path = Mantle/MTLJSONAdapter.m; sourceTree = ""; }; - 56D7019F69A8FACE13A8F912 /* EXTNil.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = EXTNil.h; path = extobjc/EXTNil.h; sourceTree = ""; }; - 58A8E5B9EF491E6EBEA811F4 /* NSInvocation+EXT.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSInvocation+EXT.m"; path = "extobjc/NSInvocation+EXT.m"; sourceTree = ""; }; - 5A03BCA0B53EC593875B55F0 /* YapDatabaseConnectionDefaults.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseConnectionDefaults.h; path = YapDatabase/Internal/YapDatabaseConnectionDefaults.h; sourceTree = ""; }; - 5A915C2018C7188C18AEA6BA /* YapMemoryTable.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapMemoryTable.m; path = YapDatabase/Internal/YapMemoryTable.m; sourceTree = ""; }; - 5B07E093944A1BEEE2009374 /* YDBCKChangeSet.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YDBCKChangeSet.h; path = YapDatabase/Extensions/CloudKit/Utilities/YDBCKChangeSet.h; sourceTree = ""; }; - 5B345BCAB4F6A6EEBFC889B4 /* DDAssert.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DDAssert.h; path = Lumberjack/DDAssert.h; sourceTree = ""; }; - 5BFCA205D07088177172144F /* YDBCKRecordInfo.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YDBCKRecordInfo.h; path = YapDatabase/Extensions/CloudKit/Utilities/YDBCKRecordInfo.h; sourceTree = ""; }; - 5C2F5AD1A6C07D15185D9DAA /* SFFileWatcherDelegate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SFFileWatcherDelegate.h; path = "Dynamic Code Injection/dyci/Classes/FileWatcher/SFFileWatcherDelegate.h"; sourceTree = ""; }; - 5C48852EDD96E0F750E8285D /* YapDatabaseFullTextSearchHandler.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapDatabaseFullTextSearchHandler.m; path = YapDatabase/Extensions/FullTextSearch/YapDatabaseFullTextSearchHandler.m; sourceTree = ""; }; - 5CCEC9463B85B3DB96E36B30 /* YapDatabaseExtensionTransaction.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapDatabaseExtensionTransaction.m; path = YapDatabase/Extensions/Protocol/YapDatabaseExtensionTransaction.m; sourceTree = ""; }; - 5D2AA5881FC238BBD9A2077A /* YapDatabaseFullTextSearchConnection.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseFullTextSearchConnection.h; path = YapDatabase/Extensions/FullTextSearch/YapDatabaseFullTextSearchConnection.h; sourceTree = ""; }; - 5E6272DFACEB1CAB08C65772 /* YapWhitelistBlacklist.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapWhitelistBlacklist.m; path = YapDatabase/Utilities/YapWhitelistBlacklist.m; sourceTree = ""; }; - 61576E9675A4DBF5F8B14925 /* DDASLLogCapture.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DDASLLogCapture.h; path = Lumberjack/DDASLLogCapture.h; sourceTree = ""; }; - 6188C6A5C56A8881E01E3727 /* YapDatabaseViewRangeOptions.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapDatabaseViewRangeOptions.m; path = YapDatabase/Extensions/Views/Utilities/YapDatabaseViewRangeOptions.m; sourceTree = ""; }; - 619ED2F5D65D1768FC28AEBF /* libPods-samhuri.net-ObjectiveSugar.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-samhuri.net-ObjectiveSugar.a"; sourceTree = BUILT_PRODUCTS_DIR; }; - 61A77A8988C9576F505C98DB /* YapDatabaseSearchResultsViewTransaction.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseSearchResultsViewTransaction.h; path = YapDatabase/Extensions/SearchResults/YapDatabaseSearchResultsViewTransaction.h; sourceTree = ""; }; - 61C20876098EA3BE0E318D2C /* EXTRuntimeExtensions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = EXTRuntimeExtensions.h; path = Mantle/extobjc/EXTRuntimeExtensions.h; sourceTree = ""; }; - 6330B43A962A1A8659F9D65E /* Pods-samhuri.net-PromiseKit.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-samhuri.net-PromiseKit.xcconfig"; path = "../Pods-samhuri.net-PromiseKit/Pods-samhuri.net-PromiseKit.xcconfig"; sourceTree = ""; }; - 6338CB3B9261AC5478915139 /* MTLModel+NSCoding.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "MTLModel+NSCoding.m"; path = "Mantle/MTLModel+NSCoding.m"; sourceTree = ""; }; - 634946019DCA0FC20F8A0C24 /* YapDatabaseRelationship.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseRelationship.h; path = YapDatabase/Extensions/Relationships/YapDatabaseRelationship.h; sourceTree = ""; }; - 63B74A3BDE5D2C43ED4C300F /* YapDatabaseViewPage.mm */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.cpp.objcpp; name = YapDatabaseViewPage.mm; path = YapDatabase/Extensions/Views/Internal/YapDatabaseViewPage.mm; sourceTree = ""; }; - 645D577E41F144151AF448CE /* YapDatabaseSecondaryIndexHandler.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseSecondaryIndexHandler.h; path = YapDatabase/Extensions/SecondaryIndex/YapDatabaseSecondaryIndexHandler.h; sourceTree = ""; }; - 649D6CCC882389A562CF0274 /* YapDatabaseFullTextSearch.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseFullTextSearch.h; path = YapDatabase/Extensions/FullTextSearch/YapDatabaseFullTextSearch.h; sourceTree = ""; }; - 6554430CBCF9416FB8671D97 /* YapDatabaseCloudKitConnection.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapDatabaseCloudKitConnection.m; path = YapDatabase/Extensions/CloudKit/YapDatabaseCloudKitConnection.m; sourceTree = ""; }; - 66BA5087B815C31DC755D759 /* YapSet.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapSet.m; path = YapDatabase/Utilities/YapSet.m; sourceTree = ""; }; - 681FDD2EA6F32C0C0927CAD7 /* YapDatabaseFilteredViewConnection.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseFilteredViewConnection.h; path = YapDatabase/Extensions/FilteredViews/YapDatabaseFilteredViewConnection.h; sourceTree = ""; }; - 68409D3A60AC62207CF83689 /* NSMutableArray+ObjectiveSugar.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSMutableArray+ObjectiveSugar.m"; path = "Classes/NSMutableArray+ObjectiveSugar.m"; sourceTree = ""; }; - 68C325E0F350FD04981ED74F /* NSValueTransformer+MTLPredefinedTransformerAdditions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSValueTransformer+MTLPredefinedTransformerAdditions.h"; path = "Mantle/NSValueTransformer+MTLPredefinedTransformerAdditions.h"; sourceTree = ""; }; - 69255EE076182BDFE3907A29 /* DDMultiFormatter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DDMultiFormatter.h; path = Lumberjack/Extensions/DDMultiFormatter.h; sourceTree = ""; }; - 696F6ED531D4220585C941DE /* UIImage+FontAwesome.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "UIImage+FontAwesome.m"; sourceTree = ""; }; - 69F3CB18F0BD2FB7A815570E /* UIViewController+PromiseKit.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIViewController+PromiseKit.h"; path = "objc/UIViewController+PromiseKit.h"; sourceTree = ""; }; - 6A66B23BA0714E62F554AF0C /* UIView+PromiseKit.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIView+PromiseKit.m"; path = "objc/UIView+PromiseKit.m"; sourceTree = ""; }; - 6AA1D52525F1F893E4247002 /* PromiseKit.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = PromiseKit.h; path = objc/PromiseKit.h; sourceTree = ""; }; - 6AAEFE8334EE8B1A57941755 /* YapDatabaseFilteredView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapDatabaseFilteredView.m; path = YapDatabase/Extensions/FilteredViews/YapDatabaseFilteredView.m; sourceTree = ""; }; - 6C0A693A8FF3D2628E279152 /* Pods-samhuri.net-PromiseKit-Private.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-samhuri.net-PromiseKit-Private.xcconfig"; path = "../Pods-samhuri.net-PromiseKit/Pods-samhuri.net-PromiseKit-Private.xcconfig"; sourceTree = ""; }; - 6C28107A2EB0EB19B3E3D4EE /* Pods-samhuri.net-ObjectiveSugar-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "Pods-samhuri.net-ObjectiveSugar-prefix.pch"; path = "../Pods-samhuri.net-ObjectiveSugar/Pods-samhuri.net-ObjectiveSugar-prefix.pch"; sourceTree = ""; }; - 6CBEC5B980E9F5999568CA3D /* NSArray+MTLManipulationAdditions.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSArray+MTLManipulationAdditions.m"; path = "Mantle/NSArray+MTLManipulationAdditions.m"; sourceTree = ""; }; - 6CFB1E1426BA23ADE09F279C /* YapDatabaseConnectionDefaults.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapDatabaseConnectionDefaults.m; path = YapDatabase/Internal/YapDatabaseConnectionDefaults.m; sourceTree = ""; }; - 6DD0D5C44738B16EEEAACFDD /* Pods-samhuri.net-ObjectiveSugar-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "Pods-samhuri.net-ObjectiveSugar-dummy.m"; path = "../Pods-samhuri.net-ObjectiveSugar/Pods-samhuri.net-ObjectiveSugar-dummy.m"; sourceTree = ""; }; - 6E16230D0F5D1F3D90F20556 /* YapCache.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapCache.h; path = YapDatabase/Utilities/YapCache.h; sourceTree = ""; }; - 6E2AE04DA9E8D2909FC03C17 /* YDBCKChangeRecord.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YDBCKChangeRecord.h; path = YapDatabase/Extensions/CloudKit/Internal/YDBCKChangeRecord.h; sourceTree = ""; }; - 6E3BDF9CE1C072CA9AE57367 /* YapDatabaseLogging.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseLogging.h; path = YapDatabase/Internal/YapDatabaseLogging.h; sourceTree = ""; }; - 6EFACE16A4E6A16CE18DE264 /* YapDatabaseSearchQueue.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseSearchQueue.h; path = YapDatabase/Extensions/SearchResults/YapDatabaseSearchQueue.h; sourceTree = ""; }; - 6FC571996060E71C36F9609F /* ObjectiveSugar.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = ObjectiveSugar.h; path = Classes/ObjectiveSugar.h; sourceTree = ""; }; - 713BC91C67E960567555A7E3 /* DDAbstractDatabaseLogger.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DDAbstractDatabaseLogger.m; path = Lumberjack/DDAbstractDatabaseLogger.m; sourceTree = ""; }; - 7179DB8624B6FDCCD414340B /* DDDispatchQueueLogFormatter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DDDispatchQueueLogFormatter.h; path = Lumberjack/Extensions/DDDispatchQueueLogFormatter.h; sourceTree = ""; }; - 71E6616794A5B47538DFD8D9 /* Pods-samhuri.net-OMGHTTPURLRQ-Private.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-samhuri.net-OMGHTTPURLRQ-Private.xcconfig"; path = "../Pods-samhuri.net-OMGHTTPURLRQ/Pods-samhuri.net-OMGHTTPURLRQ-Private.xcconfig"; sourceTree = ""; }; - 732A57C29CE769769AC295FB /* MBProgressHUD.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = MBProgressHUD.h; sourceTree = ""; }; - 7343C65938744C23922E7FA7 /* Pods-Blog-YapDatabase.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-Blog-YapDatabase.xcconfig"; sourceTree = ""; }; - 73A7A54ABE82D530977E185F /* YapDatabaseViewChange.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapDatabaseViewChange.m; path = YapDatabase/Extensions/Views/Utilities/YapDatabaseViewChange.m; sourceTree = ""; }; - 73CCE0F1C83C0994FFC3E48F /* Pods-Blog-ObjectiveSugar-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-Blog-ObjectiveSugar-dummy.m"; sourceTree = ""; }; - 73D91BB8A8E14B16DBB10DEE /* YapDatabaseManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapDatabaseManager.m; path = YapDatabase/Internal/YapDatabaseManager.m; sourceTree = ""; }; - 7543E7E85BED6829E62D7E5C /* YDBCKChangeSet.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YDBCKChangeSet.m; path = YapDatabase/Extensions/CloudKit/Utilities/YDBCKChangeSet.m; sourceTree = ""; }; - 76B6885BED46A34231D2AA63 /* NSDictionary+MTLJSONKeyPath.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSDictionary+MTLJSONKeyPath.m"; path = "Mantle/NSDictionary+MTLJSONKeyPath.m"; sourceTree = ""; }; - 782C66C785D5929F28960F96 /* Pods-Blog-dyci-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-Blog-dyci-prefix.pch"; sourceTree = ""; }; - 7891CFAFF566F8684D3075D5 /* UIViewController+XIBSupport.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIViewController+XIBSupport.h"; path = "Dynamic Code Injection/dyci/Classes/Injections/UIViewController+XIBSupport.h"; sourceTree = ""; }; - 798D6CA1867D886E6C782216 /* Pods-samhuri.net-Mantle.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-samhuri.net-Mantle.xcconfig"; path = "../Pods-samhuri.net-Mantle/Pods-samhuri.net-Mantle.xcconfig"; sourceTree = ""; }; - 7A289C8AFDFB082AC4C361B5 /* Pods-Blog-libextobjc-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-Blog-libextobjc-dummy.m"; sourceTree = ""; }; - 7AB034DDB3A12EFE221909D4 /* Pods-samhuri.net-OMGHTTPURLRQ-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "Pods-samhuri.net-OMGHTTPURLRQ-dummy.m"; path = "../Pods-samhuri.net-OMGHTTPURLRQ/Pods-samhuri.net-OMGHTTPURLRQ-dummy.m"; sourceTree = ""; }; - 7B1AF19C92986A056A79EA54 /* OMGUserAgent.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = OMGUserAgent.h; sourceTree = ""; }; - 7B241E60723A2C4C61918512 /* YapDatabase.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabase.h; path = YapDatabase/YapDatabase.h; sourceTree = ""; }; - 7B4EA2D9B2F2657EC6A40FBC /* NSDictionary+MTLMappingAdditions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSDictionary+MTLMappingAdditions.h"; path = "Mantle/NSDictionary+MTLMappingAdditions.h"; sourceTree = ""; }; - 7D99FA2965FE4B331BABD09B /* MTLModel.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MTLModel.h; path = Mantle/MTLModel.h; sourceTree = ""; }; - 7EC98547C8C283F24A5CC8B7 /* Pods-Blog-PromiseKit-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-Blog-PromiseKit-prefix.pch"; sourceTree = ""; }; - 7F3FC06DF8143D5BBFF9CD98 /* YapDatabaseCloudKitConnection.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseCloudKitConnection.h; path = YapDatabase/Extensions/CloudKit/YapDatabaseCloudKitConnection.h; sourceTree = ""; }; - 7FB7C5B3D6CA606E943307DD /* NSObject+DyCInjection.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSObject+DyCInjection.h"; path = "Dynamic Code Injection/dyci/Classes/Injections/NSObject+DyCInjection.h"; sourceTree = ""; }; - 7FBAF43C1D7DF390CCAAD290 /* YapDatabaseSecondaryIndexConnection.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseSecondaryIndexConnection.h; path = YapDatabase/Extensions/SecondaryIndex/YapDatabaseSecondaryIndexConnection.h; sourceTree = ""; }; - 8057CEDCDCF924E040D9D14F /* MTLTransformerErrorHandling.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MTLTransformerErrorHandling.h; path = Mantle/MTLTransformerErrorHandling.h; sourceTree = ""; }; - 8073C833C5795BD082FEA3DD /* Pods-samhuri.net-resources.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-samhuri.net-resources.sh"; sourceTree = ""; }; - 80FB9B7030A0525D7CA856F9 /* NSSet+ClassesList.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSSet+ClassesList.h"; path = "Dynamic Code Injection/dyci/Classes/Categories/NSSet+ClassesList.h"; sourceTree = ""; }; - 81273C467F3A02094344D4CC /* Promise+When.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "Promise+When.h"; path = "objc/PromiseKit/Promise+When.h"; sourceTree = ""; }; - 84E9B9B8FD1A8137EF1A152F /* Pods-Blog-CocoaLumberjack-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-Blog-CocoaLumberjack-prefix.pch"; sourceTree = ""; }; - 86112BBD72AF95226FFBCB32 /* NSNotificationCenter+PromiseKit.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSNotificationCenter+PromiseKit.m"; path = "objc/NSNotificationCenter+PromiseKit.m"; sourceTree = ""; }; - 86490A5C7E1542C913C23B91 /* YapDatabaseRelationshipTransaction.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseRelationshipTransaction.h; path = YapDatabase/Extensions/Relationships/YapDatabaseRelationshipTransaction.h; sourceTree = ""; }; - 876DD75AC3BE2EB522E680D0 /* libPods-Blog-Mantle.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-Blog-Mantle.a"; sourceTree = BUILT_PRODUCTS_DIR; }; - 877AEDBCB6C973CE784A7612 /* YapRowidSet.mm */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.cpp.objcpp; name = YapRowidSet.mm; path = YapDatabase/Internal/YapRowidSet.mm; sourceTree = ""; }; - 895404BEE45472758E516B8A /* EXTSelectorChecking.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = EXTSelectorChecking.m; path = extobjc/EXTSelectorChecking.m; sourceTree = ""; }; - 89C91FFE423BF4A4AED61E95 /* YapDatabaseExtensionPrivate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseExtensionPrivate.h; path = YapDatabase/Extensions/Protocol/Internal/YapDatabaseExtensionPrivate.h; sourceTree = ""; }; - 89CE12B46FC99669F2F30E76 /* NSSet+ClassesList.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSSet+ClassesList.m"; path = "Dynamic Code Injection/dyci/Classes/Categories/NSSet+ClassesList.m"; sourceTree = ""; }; - 8A1511F04284C2C1197C0177 /* Pods-samhuri.net-ObjectiveSugar.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-samhuri.net-ObjectiveSugar.xcconfig"; path = "../Pods-samhuri.net-ObjectiveSugar/Pods-samhuri.net-ObjectiveSugar.xcconfig"; sourceTree = ""; }; - 8A19FCF4FEDFE1A737135355 /* MTLModel.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MTLModel.m; path = Mantle/MTLModel.m; sourceTree = ""; }; - 8A3197B0CED46F8A3CC6ED35 /* EXTScope.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = EXTScope.h; path = extobjc/EXTScope.h; sourceTree = ""; }; - 8A7B3A3176BD3D4BFEC0A87E /* libPods-Blog.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-Blog.a"; sourceTree = BUILT_PRODUCTS_DIR; }; - 8AA07DBB582A55093BB80C5E /* YapDatabaseTransaction.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapDatabaseTransaction.m; path = YapDatabase/YapDatabaseTransaction.m; sourceTree = ""; }; - 8B8AF6DB438C5C6402272E73 /* libPods-Blog-libextobjc.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-Blog-libextobjc.a"; sourceTree = BUILT_PRODUCTS_DIR; }; - 8DBBA9D2D52D43F8A8752E8A /* YapDatabaseView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseView.h; path = YapDatabase/Extensions/Views/YapDatabaseView.h; sourceTree = ""; }; - 8F2CE775C0991741117C17A6 /* YapDatabaseFilteredViewPrivate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseFilteredViewPrivate.h; path = YapDatabase/Extensions/FilteredViews/Internal/YapDatabaseFilteredViewPrivate.h; sourceTree = ""; }; - 8F362095B44E9606CFF28D43 /* Pods-Blog-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-Blog-dummy.m"; sourceTree = ""; }; - 907FCD6F6166C38123FE98F8 /* Pods-samhuri.net-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-samhuri.net-acknowledgements.markdown"; sourceTree = ""; }; - 91B4C3AA04FF0180D1576B35 /* OMGHTTPURLRQ.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = OMGHTTPURLRQ.m; sourceTree = ""; }; - 926302AC32ED98504756ACFA /* PMKPromise+Until.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "PMKPromise+Until.m"; path = "objc/PMKPromise+Until.m"; sourceTree = ""; }; - 92B21B00302059E1DDD80395 /* NSDictionary+MTLJSONKeyPath.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSDictionary+MTLJSONKeyPath.h"; path = "Mantle/NSDictionary+MTLJSONKeyPath.h"; sourceTree = ""; }; - 93352111715805AB65DD416D /* libPods-Blog-dyci.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-Blog-dyci.a"; sourceTree = BUILT_PRODUCTS_DIR; }; - 93D295CC0D24F347BCBEB1A5 /* Pods-Blog-OMGHTTPURLRQ-Private.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-Blog-OMGHTTPURLRQ-Private.xcconfig"; sourceTree = ""; }; - 959D14BDE72A8AEF1BC386BB /* SFInjectionsNotificationsCenter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SFInjectionsNotificationsCenter.h; path = "Dynamic Code Injection/dyci/Classes/Notifications/SFInjectionsNotificationsCenter.h"; sourceTree = ""; }; - 96A52C89C81885BCCEDD93EE /* Pods-Blog-dyci-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-Blog-dyci-dummy.m"; sourceTree = ""; }; - 97088D634D871C989AC567F8 /* DDContextFilterLogFormatter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DDContextFilterLogFormatter.h; path = Lumberjack/Extensions/DDContextFilterLogFormatter.h; sourceTree = ""; }; - 970A41A308FA5A23713B24BA /* Pods-Blog-FontAwesome+iOS-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-Blog-FontAwesome+iOS-dummy.m"; sourceTree = ""; }; - 97892F78259C4A8DFF823F37 /* MTLValueTransformer.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MTLValueTransformer.m; path = Mantle/MTLValueTransformer.m; sourceTree = ""; }; - 97AEA4F2F91015BFEEA144EE /* YapDatabaseFullTextSearchSnippetOptions.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapDatabaseFullTextSearchSnippetOptions.m; path = YapDatabase/Extensions/FullTextSearch/YapDatabaseFullTextSearchSnippetOptions.m; sourceTree = ""; }; - 97EDC1CE12F7454A1577983F /* NSValueTransformer+MTLInversionAdditions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSValueTransformer+MTLInversionAdditions.h"; path = "Mantle/NSValueTransformer+MTLInversionAdditions.h"; sourceTree = ""; }; - 9A8A914B876D76B247DA938A /* Pods-samhuri.net-YapDatabase-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "Pods-samhuri.net-YapDatabase-prefix.pch"; path = "../Pods-samhuri.net-YapDatabase/Pods-samhuri.net-YapDatabase-prefix.pch"; sourceTree = ""; }; - 9B3EEA141DFFF8B997B64E5B /* Pods-Blog-CocoaLumberjack-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-Blog-CocoaLumberjack-dummy.m"; sourceTree = ""; }; - 9B56652957A37B420495B728 /* YapDatabaseCloudKitOptions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseCloudKitOptions.h; path = YapDatabase/Extensions/CloudKit/YapDatabaseCloudKitOptions.h; sourceTree = ""; }; - 9C32FD3A04D3DBF1F06F295A /* NSDictionary+YapDatabase.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSDictionary+YapDatabase.h"; path = "YapDatabase/Internal/NSDictionary+YapDatabase.h"; sourceTree = ""; }; - 9CD9EE6B1057B60296198587 /* YapDatabaseViewRangeOptionsPrivate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseViewRangeOptionsPrivate.h; path = YapDatabase/Extensions/Views/Internal/YapDatabaseViewRangeOptionsPrivate.h; sourceTree = ""; }; - 9DC96F512065D3A3C6DCBADF /* EXTRuntimeExtensions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = EXTRuntimeExtensions.h; path = extobjc/EXTRuntimeExtensions.h; sourceTree = ""; }; - 9E22939371B2424991C21E6E /* libPods-Blog-YapDatabase.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-Blog-YapDatabase.a"; sourceTree = BUILT_PRODUCTS_DIR; }; - 9E8129BFA6BCE82E4531713D /* YapDatabaseViewChange.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseViewChange.h; path = YapDatabase/Extensions/Views/Utilities/YapDatabaseViewChange.h; sourceTree = ""; }; - 9F2301E8E4020A0784F1E252 /* YapDatabaseExtensionTransaction.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseExtensionTransaction.h; path = YapDatabase/Extensions/Protocol/YapDatabaseExtensionTransaction.h; sourceTree = ""; }; - 9F4BF4133904EC91F6C7894C /* YapDatabaseStatement.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapDatabaseStatement.m; path = YapDatabase/Internal/YapDatabaseStatement.m; sourceTree = ""; }; - 9FDEEA988A1A70E265971234 /* Pods-Blog-ObjectiveSugar-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-Blog-ObjectiveSugar-prefix.pch"; sourceTree = ""; }; - A058329B5F27921DE5E4E7CD /* YDBCKAttachRequest.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YDBCKAttachRequest.h; path = YapDatabase/Extensions/CloudKit/Internal/YDBCKAttachRequest.h; sourceTree = ""; }; - A12CE7E0ACAAD4903151FC8A /* YapDatabaseViewTypes.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapDatabaseViewTypes.m; path = YapDatabase/Extensions/Views/YapDatabaseViewTypes.m; sourceTree = ""; }; - A17C57A06F0A48B26E09F2C7 /* YDBCKRecord.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YDBCKRecord.m; path = YapDatabase/Extensions/CloudKit/Utilities/YDBCKRecord.m; sourceTree = ""; }; - A1D186C4840E45FB6147CF06 /* Pods-samhuri.net-OMGHTTPURLRQ-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "Pods-samhuri.net-OMGHTTPURLRQ-prefix.pch"; path = "../Pods-samhuri.net-OMGHTTPURLRQ/Pods-samhuri.net-OMGHTTPURLRQ-prefix.pch"; sourceTree = ""; }; - A2622D962BE3622CC07EE90F /* YapDatabaseRelationshipOptions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseRelationshipOptions.h; path = YapDatabase/Extensions/Relationships/YapDatabaseRelationshipOptions.h; sourceTree = ""; }; - A2AFFC46474155E870F06DE4 /* NSDictionary+YapDatabase.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSDictionary+YapDatabase.m"; path = "YapDatabase/Internal/NSDictionary+YapDatabase.m"; sourceTree = ""; }; - A47A2086519EDA50DB4EE026 /* YapDatabaseExtension.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapDatabaseExtension.m; path = YapDatabase/Extensions/Protocol/YapDatabaseExtension.m; sourceTree = ""; }; - A4DD2587658B14BA1C93C95B /* YapDatabaseSecondaryIndexOptions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseSecondaryIndexOptions.h; path = YapDatabase/Extensions/SecondaryIndex/YapDatabaseSecondaryIndexOptions.h; sourceTree = ""; }; - A4E2B2B2594BC455CE033849 /* FAImageView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = FAImageView.h; sourceTree = ""; }; - A534B6AA0706AF078AECCFB3 /* YapDatabaseExtensionConnection.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseExtensionConnection.h; path = YapDatabase/Extensions/Protocol/YapDatabaseExtensionConnection.h; sourceTree = ""; }; - A546DD09B66B18871BB49F8B /* YapDatabaseViewPrivate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseViewPrivate.h; path = YapDatabase/Extensions/Views/Internal/YapDatabaseViewPrivate.h; sourceTree = ""; }; - A9096A5DE69CB535E48E5435 /* UINib+StoryBoardSupport.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UINib+StoryBoardSupport.m"; path = "Dynamic Code Injection/dyci/Classes/Injections/UINib+StoryBoardSupport.m"; sourceTree = ""; }; - A91B4F1C9D2D7D99EE8B3B3C /* extobjc.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = extobjc.h; path = extobjc/extobjc.h; sourceTree = ""; }; - A9E38DE2F43EAB0D83E65838 /* YapDatabaseQuery.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseQuery.h; path = YapDatabase/Utilities/YapDatabaseQuery.h; sourceTree = ""; }; - AA0D30FD1176F99D224FC86A /* EXTScope.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = EXTScope.h; path = Mantle/extobjc/EXTScope.h; sourceTree = ""; }; - AA80D391719E02EECF24AEC3 /* Pods-Blog-dyci.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-Blog-dyci.xcconfig"; sourceTree = ""; }; - AAD1947343ECF887A0F86AAD /* DDASLLogCapture.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DDASLLogCapture.m; path = Lumberjack/DDASLLogCapture.m; sourceTree = ""; }; - AB496579B695219E073A1228 /* YapDatabaseExtensionConnection.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapDatabaseExtensionConnection.m; path = YapDatabase/Extensions/Protocol/YapDatabaseExtensionConnection.m; sourceTree = ""; }; - AC1696FA3B0F85F5E7286B06 /* YapDatabaseViewPageMetadata.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseViewPageMetadata.h; path = YapDatabase/Extensions/Views/Internal/YapDatabaseViewPageMetadata.h; sourceTree = ""; }; - AC56C2ACCD36D03A8E5E557F /* Pods-Blog-YapDatabase-Private.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-Blog-YapDatabase-Private.xcconfig"; sourceTree = ""; }; - ACC4ADA03EC617F34275A4AD /* DDAbstractDatabaseLogger.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DDAbstractDatabaseLogger.h; path = Lumberjack/DDAbstractDatabaseLogger.h; sourceTree = ""; }; - ACDC50426BA46C319FCC7580 /* UIActionSheet+PromiseKit.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIActionSheet+PromiseKit.m"; path = "objc/UIActionSheet+PromiseKit.m"; sourceTree = ""; }; - AD57B3F5CA76A8FBA1527BEE /* SFFileWatcher.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SFFileWatcher.h; path = "Dynamic Code Injection/dyci/Classes/FileWatcher/SFFileWatcher.h"; sourceTree = ""; }; - ADD71777011B1A546664623D /* Pods-samhuri.net-ObjectiveSugar-Private.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-samhuri.net-ObjectiveSugar-Private.xcconfig"; path = "../Pods-samhuri.net-ObjectiveSugar/Pods-samhuri.net-ObjectiveSugar-Private.xcconfig"; sourceTree = ""; }; - ADE62191234188700E91A3C4 /* PMKPromise+Pause.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "PMKPromise+Pause.m"; path = "objc/PMKPromise+Pause.m"; sourceTree = ""; }; - AE0BDE620A3316B0ED12C5D6 /* FAImageView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = FAImageView.m; sourceTree = ""; }; - AE5975520DCEEF0BAF8507B5 /* YapTouch.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapTouch.h; path = YapDatabase/Internal/YapTouch.h; sourceTree = ""; }; - AE60EB5020820A9FE013D7EF /* UINib+StoryBoardSupport.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UINib+StoryBoardSupport.h"; path = "Dynamic Code Injection/dyci/Classes/Injections/UINib+StoryBoardSupport.h"; sourceTree = ""; }; - AECBD90C6B6D01CB4D3CEAB2 /* EXTRuntimeExtensions.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = EXTRuntimeExtensions.m; path = extobjc/EXTRuntimeExtensions.m; sourceTree = ""; }; - AFD8EB43C750E47E672F2A5D /* YDBCKRecordTableInfo.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YDBCKRecordTableInfo.h; path = YapDatabase/Extensions/CloudKit/Internal/YDBCKRecordTableInfo.h; sourceTree = ""; }; - B0D7BE5939DDF632A91F809A /* NSString+FontAwesome.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "NSString+FontAwesome.m"; sourceTree = ""; }; - B0F1AAC002F658078F7FFED8 /* YapDatabaseView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapDatabaseView.m; path = YapDatabase/Extensions/Views/YapDatabaseView.m; sourceTree = ""; }; - B1107E0C8A76D6F93CB161AE /* EXTSynthesize.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = EXTSynthesize.h; path = extobjc/EXTSynthesize.h; sourceTree = ""; }; - B153D6B1F96AE5F1CD5C36CC /* libPods-Blog-ObjectiveSugar.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-Blog-ObjectiveSugar.a"; sourceTree = BUILT_PRODUCTS_DIR; }; - B1B0B16301E7F3AA55ED61A9 /* NSDictionary+MTLMappingAdditions.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSDictionary+MTLMappingAdditions.m"; path = "Mantle/NSDictionary+MTLMappingAdditions.m"; sourceTree = ""; }; - B2A111142956A2B235607E94 /* YapDatabaseCloudKitTypes.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapDatabaseCloudKitTypes.m; path = YapDatabase/Extensions/CloudKit/YapDatabaseCloudKitTypes.m; sourceTree = ""; }; - B2D44252E27CC38A9668B507 /* Pods-samhuri.net-YapDatabase-Private.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-samhuri.net-YapDatabase-Private.xcconfig"; path = "../Pods-samhuri.net-YapDatabase/Pods-samhuri.net-YapDatabase-Private.xcconfig"; sourceTree = ""; }; - B3D437B9C71381C43100C0E9 /* DDMultiFormatter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DDMultiFormatter.m; path = Lumberjack/Extensions/DDMultiFormatter.m; sourceTree = ""; }; - B421CB7EC4F054DFD0135AE4 /* YapDatabaseViewConnection.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapDatabaseViewConnection.m; path = YapDatabase/Extensions/Views/YapDatabaseViewConnection.m; sourceTree = ""; }; - B4621CFB38ED1F55BD111539 /* UIViewController+PromiseKit.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIViewController+PromiseKit.m"; path = "objc/UIViewController+PromiseKit.m"; sourceTree = ""; }; - B4C49342A65F714552E3C7CB /* Pods-Blog-libextobjc.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-Blog-libextobjc.xcconfig"; sourceTree = ""; }; - B546418066836454DD3F7F48 /* Pods-Blog-resources.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-Blog-resources.sh"; sourceTree = ""; }; - B734E8E4589967249213497A /* YapDebugDictionary.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDebugDictionary.h; path = YapDatabase/Internal/YapDebugDictionary.h; sourceTree = ""; }; - B7C06E7CBC9A9B43F2AFBEC0 /* YapDatabaseRelationshipNode.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseRelationshipNode.h; path = YapDatabase/Extensions/Relationships/YapDatabaseRelationshipNode.h; sourceTree = ""; }; - B83D6397BBA0C832599715CF /* YapDatabaseViewTypes.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseViewTypes.h; path = YapDatabase/Extensions/Views/YapDatabaseViewTypes.h; sourceTree = ""; }; - B9459FA7A26B44B49E1B8DA9 /* NSObject+MTLComparisonAdditions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSObject+MTLComparisonAdditions.h"; path = "Mantle/NSObject+MTLComparisonAdditions.h"; sourceTree = ""; }; - B987983BAE99D1200135A6D5 /* YapDatabaseRelationship.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapDatabaseRelationship.m; path = YapDatabase/Extensions/Relationships/YapDatabaseRelationship.m; sourceTree = ""; }; - BCBCDCF31F28FAED010E2701 /* Pods-Blog-YapDatabase-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-Blog-YapDatabase-prefix.pch"; sourceTree = ""; }; - BD4FB434FA87131CD9546E78 /* Pods-Blog-ObjectiveSugar-Private.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-Blog-ObjectiveSugar-Private.xcconfig"; sourceTree = ""; }; - BD5003130FC9121387EE8C8B /* YapDatabaseString.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseString.h; path = YapDatabase/Internal/YapDatabaseString.h; sourceTree = ""; }; - BD94A6ABBAFEC252B2F503E2 /* YapMurmurHash.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapMurmurHash.h; path = YapDatabase/Utilities/YapMurmurHash.h; sourceTree = ""; }; - BD94BC098827CB4529B6B691 /* NSDictionary+MTLManipulationAdditions.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSDictionary+MTLManipulationAdditions.m"; path = "Mantle/NSDictionary+MTLManipulationAdditions.m"; sourceTree = ""; }; - BDE7046DB6D273BC2CCF83FD /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS8.3.sdk/System/Library/Frameworks/CoreGraphics.framework; sourceTree = DEVELOPER_DIR; }; - BDF670E3E9733857B25E9DB8 /* YapDatabaseCloudKit.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseCloudKit.h; path = YapDatabase/Extensions/CloudKit/YapDatabaseCloudKit.h; sourceTree = ""; }; - BEB425B1114D949845BDF86E /* YapMurmurHash.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapMurmurHash.m; path = YapDatabase/Utilities/YapMurmurHash.m; sourceTree = ""; }; - BEFC5A947D608500AEF8D4E5 /* Pods-Blog-CocoaLumberjack-Private.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-Blog-CocoaLumberjack-Private.xcconfig"; sourceTree = ""; }; - BF11035CE8441F3D8436BE98 /* YapDatabaseFilteredViewTypes.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseFilteredViewTypes.h; path = YapDatabase/Extensions/FilteredViews/YapDatabaseFilteredViewTypes.h; sourceTree = ""; }; - BFB316272BEAC1958B60D64C /* Pods-Blog-Mantle.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-Blog-Mantle.xcconfig"; sourceTree = ""; }; - C037BD02BB66FD15C32BBE12 /* NSMethodSignature+EXT.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSMethodSignature+EXT.h"; path = "extobjc/NSMethodSignature+EXT.h"; sourceTree = ""; }; - C119ACE003D70D14D0CC5B37 /* Pods-Blog-libextobjc-Private.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-Blog-libextobjc-Private.xcconfig"; sourceTree = ""; }; - C1635D3D454F1C8B81A673D3 /* YDBCKChangeRecord.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YDBCKChangeRecord.m; path = YapDatabase/Extensions/CloudKit/Internal/YDBCKChangeRecord.m; sourceTree = ""; }; - C259200F9856B1CED757EBC7 /* Pods-Blog-FontAwesome+iOS-Private.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-Blog-FontAwesome+iOS-Private.xcconfig"; sourceTree = ""; }; - C31DF20DFF8951BEBD0CE76D /* YapDatabaseViewMappingsPrivate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseViewMappingsPrivate.h; path = YapDatabase/Extensions/Views/Internal/YapDatabaseViewMappingsPrivate.h; sourceTree = ""; }; - C320670685CB7E660E18BFCB /* Pods-Blog-FontAwesome+iOS-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-Blog-FontAwesome+iOS-prefix.pch"; sourceTree = ""; }; - C3503A5B9E91A284655E94DF /* YapDatabaseSecondaryIndexSetup.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseSecondaryIndexSetup.h; path = YapDatabase/Extensions/SecondaryIndex/YapDatabaseSecondaryIndexSetup.h; sourceTree = ""; }; - C37519D9FDFE06C1EC83F2B2 /* Pods-Blog-YapDatabase-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-Blog-YapDatabase-dummy.m"; sourceTree = ""; }; - C3D5ED24D0D549034AFFD8C1 /* YapDatabaseSecondaryIndexTransaction.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapDatabaseSecondaryIndexTransaction.m; path = YapDatabase/Extensions/SecondaryIndex/YapDatabaseSecondaryIndexTransaction.m; sourceTree = ""; }; - C3D90F13D18C759A77F15FA0 /* YapCollectionKey.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapCollectionKey.m; path = YapDatabase/Utilities/YapCollectionKey.m; sourceTree = ""; }; - C43FA8920F4D17EE9023C769 /* YapDatabaseViewPageMetadata.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapDatabaseViewPageMetadata.m; path = YapDatabase/Extensions/Views/Internal/YapDatabaseViewPageMetadata.m; sourceTree = ""; }; - C548DB7D447C7ADC7379D0D4 /* libPods-samhuri.net-YapDatabase.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-samhuri.net-YapDatabase.a"; sourceTree = BUILT_PRODUCTS_DIR; }; - C56296B5B051B629550E3981 /* YapDatabaseFilteredViewTransaction.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseFilteredViewTransaction.h; path = YapDatabase/Extensions/FilteredViews/YapDatabaseFilteredViewTransaction.h; sourceTree = ""; }; - C7DBD38E1A6FB082A4FC248E /* YapDatabaseViewTransaction.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseViewTransaction.h; path = YapDatabase/Extensions/Views/YapDatabaseViewTransaction.h; sourceTree = ""; }; - C841A29BC816EA1D9898F6A9 /* fwd.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = fwd.h; path = objc/PromiseKit/fwd.h; sourceTree = ""; }; - C94F068735DD25B3F47447A7 /* NSString+ObjectiveSugar.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSString+ObjectiveSugar.h"; path = "Classes/NSString+ObjectiveSugar.h"; sourceTree = ""; }; - C9A1ECE57856CF96C336ECCE /* EXTScope.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = EXTScope.m; path = extobjc/EXTScope.m; sourceTree = ""; }; - C9BAD913D12B16045DF40035 /* NSMethodSignature+EXT.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSMethodSignature+EXT.m"; path = "extobjc/NSMethodSignature+EXT.m"; sourceTree = ""; }; - CA57D5967D1C64AA13F116B1 /* YapDatabaseSecondaryIndexTransaction.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseSecondaryIndexTransaction.h; path = YapDatabase/Extensions/SecondaryIndex/YapDatabaseSecondaryIndexTransaction.h; sourceTree = ""; }; - CBACA283CCCF6009B7B70F86 /* DDLog+LOGV.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "DDLog+LOGV.h"; path = "Lumberjack/DDLog+LOGV.h"; sourceTree = ""; }; - CE2AEB9857A6EB1F03C5C585 /* CALayer+PromiseKit.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "CALayer+PromiseKit.m"; path = "objc/CALayer+PromiseKit.m"; sourceTree = ""; }; - D056195F1F4A6E3E72375C02 /* YapDatabaseRelationshipConnection.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseRelationshipConnection.h; path = YapDatabase/Extensions/Relationships/YapDatabaseRelationshipConnection.h; sourceTree = ""; }; - D07ADDADCDB5439EBB97A826 /* libPods-samhuri.net-MBProgressHUD.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-samhuri.net-MBProgressHUD.a"; sourceTree = BUILT_PRODUCTS_DIR; }; - D0E95F1A3ED48F2D5CF19D98 /* EXTSelectorChecking.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = EXTSelectorChecking.h; path = extobjc/EXTSelectorChecking.h; sourceTree = ""; }; - D1402AE4B1F9DCDA28E026A3 /* YapDatabaseCloudKitTypes.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseCloudKitTypes.h; path = YapDatabase/Extensions/CloudKit/YapDatabaseCloudKitTypes.h; sourceTree = ""; }; - D14F9CAC90EDB9BBAC6B4EBD /* YDBCKRecord.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YDBCKRecord.h; path = YapDatabase/Extensions/CloudKit/Utilities/YDBCKRecord.h; sourceTree = ""; }; - D17A7DFC073846581287A51D /* UIFont+FontAwesome.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "UIFont+FontAwesome.m"; sourceTree = ""; }; - D227F98CFDC69A99159C6C15 /* YapMemoryTable.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapMemoryTable.h; path = YapDatabase/Internal/YapMemoryTable.h; sourceTree = ""; }; - D2F97F98947C1274C7DE386D /* YapDatabaseSearchResultsView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseSearchResultsView.h; path = YapDatabase/Extensions/SearchResults/YapDatabaseSearchResultsView.h; sourceTree = ""; }; - D437A835620FA49588FBF822 /* YapDatabaseRelationshipEdge.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapDatabaseRelationshipEdge.m; path = YapDatabase/Extensions/Relationships/YapDatabaseRelationshipEdge.m; sourceTree = ""; }; - D64C61EA0990CBD0BE47076B /* Pods-Blog-CocoaLumberjack.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-Blog-CocoaLumberjack.xcconfig"; sourceTree = ""; }; - D6EDDFD6C263FAC3E167F1DA /* Pods-samhuri.net-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-samhuri.net-acknowledgements.plist"; sourceTree = ""; }; - D6F649D98FF31429228DA07B /* MTLReflection.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MTLReflection.h; path = Mantle/MTLReflection.h; sourceTree = ""; }; - D8011BA9F83F8DEF158819C7 /* NSNotificationCenter+PromiseKit.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSNotificationCenter+PromiseKit.h"; path = "objc/NSNotificationCenter+PromiseKit.h"; sourceTree = ""; }; - D818A6776F5B0594762301DA /* Pods-samhuri.net.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-samhuri.net.debug.xcconfig"; sourceTree = ""; }; - D81F168E6C5567C22EB2AE16 /* NSString+ObjectiveSugar.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSString+ObjectiveSugar.m"; path = "Classes/NSString+ObjectiveSugar.m"; sourceTree = ""; }; - D8347C06DDDCDECFEEEB950D /* YapDatabaseRelationshipEdge.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseRelationshipEdge.h; path = YapDatabase/Extensions/Relationships/YapDatabaseRelationshipEdge.h; sourceTree = ""; }; - D866E345751E790C73316B8D /* Pods-samhuri.net-CocoaLumberjack.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-samhuri.net-CocoaLumberjack.xcconfig"; path = "../Pods-samhuri.net-CocoaLumberjack/Pods-samhuri.net-CocoaLumberjack.xcconfig"; sourceTree = ""; }; - D869A072D5127D760C35AEFF /* YapDatabasePrivate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabasePrivate.h; path = YapDatabase/Internal/YapDatabasePrivate.h; sourceTree = ""; }; - D94BE168D559C1557670E2CE /* Pods-Blog-FontAwesome+iOS.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-Blog-FontAwesome+iOS.xcconfig"; sourceTree = ""; }; - D9CC93DB3842FCD2686B0818 /* YapDatabaseSecondaryIndexConnection.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapDatabaseSecondaryIndexConnection.m; path = YapDatabase/Extensions/SecondaryIndex/YapDatabaseSecondaryIndexConnection.m; sourceTree = ""; }; - DA1630DEACEC1F0DBBB26B02 /* NSValueTransformer+MTLPredefinedTransformerAdditions.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSValueTransformer+MTLPredefinedTransformerAdditions.m"; path = "Mantle/NSValueTransformer+MTLPredefinedTransformerAdditions.m"; sourceTree = ""; }; - DB13F9E8BE40D9526BAF9596 /* MTLModel+NSCoding.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "MTLModel+NSCoding.h"; path = "Mantle/MTLModel+NSCoding.h"; sourceTree = ""; }; - DB7EE0A8BE1C843607A95B96 /* CALayer+PromiseKit.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "CALayer+PromiseKit.h"; path = "objc/CALayer+PromiseKit.h"; sourceTree = ""; }; - DC744A09D2B51336CD5397E3 /* Pods-samhuri.net-YapDatabase-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "Pods-samhuri.net-YapDatabase-dummy.m"; path = "../Pods-samhuri.net-YapDatabase/Pods-samhuri.net-YapDatabase-dummy.m"; sourceTree = ""; }; - DCA3F06ABFD63178DFC72DE8 /* UIActionSheet+PromiseKit.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIActionSheet+PromiseKit.h"; path = "objc/UIActionSheet+PromiseKit.h"; sourceTree = ""; }; - DD122DC87EF95AA1148BBD4B /* YapDatabaseSecondaryIndex.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapDatabaseSecondaryIndex.m; path = YapDatabase/Extensions/SecondaryIndex/YapDatabaseSecondaryIndex.m; sourceTree = ""; }; - DD22178A835D85EE476DA1E8 /* DDFileLogger.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DDFileLogger.h; path = Lumberjack/DDFileLogger.h; sourceTree = ""; }; - DD309FE540A9641A1D2460EE /* YapDatabaseFullTextSearchTransaction.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapDatabaseFullTextSearchTransaction.m; path = YapDatabase/Extensions/FullTextSearch/YapDatabaseFullTextSearchTransaction.m; sourceTree = ""; }; - DD46B99FC4F0FBEC69A8D8FF /* YapDatabaseRelationshipConnection.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapDatabaseRelationshipConnection.m; path = YapDatabase/Extensions/Relationships/YapDatabaseRelationshipConnection.m; sourceTree = ""; }; - DDE458D739C793BC51799396 /* NSError+MTLModelException.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSError+MTLModelException.m"; path = "Mantle/NSError+MTLModelException.m"; sourceTree = ""; }; - DE7DEDA3D0BE9F15715450E5 /* YapDatabaseStatement.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseStatement.h; path = YapDatabase/Internal/YapDatabaseStatement.h; sourceTree = ""; }; - DFAF920A969CF66653C464CF /* MTLReflection.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MTLReflection.m; path = Mantle/MTLReflection.m; sourceTree = ""; }; - E00F4C2CEA4AABEA497BC954 /* DDDispatchQueueLogFormatter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DDDispatchQueueLogFormatter.m; path = Lumberjack/Extensions/DDDispatchQueueLogFormatter.m; sourceTree = ""; }; - E0410AC21BBA64B5018C9D5A /* YapDatabaseViewRangeOptions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseViewRangeOptions.h; path = YapDatabase/Extensions/Views/Utilities/YapDatabaseViewRangeOptions.h; sourceTree = ""; }; - E059B319E0FD73D04BB73471 /* YapDatabaseFullTextSearchSnippetOptions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseFullTextSearchSnippetOptions.h; path = YapDatabase/Extensions/FullTextSearch/YapDatabaseFullTextSearchSnippetOptions.h; sourceTree = ""; }; - E07FA55FCC59E1BAB9A01C6A /* OMGHTTPURLRQ.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = OMGHTTPURLRQ.h; sourceTree = ""; }; - E09576D940AC91C4F475452C /* Pods-Blog-OMGHTTPURLRQ-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-Blog-OMGHTTPURLRQ-dummy.m"; sourceTree = ""; }; - E1B00040177F35188E4DF29F /* EXTADT.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = EXTADT.m; path = extobjc/EXTADT.m; sourceTree = ""; }; - E2382E432A4B1A466C6A9059 /* Pods-samhuri.net-OMGHTTPURLRQ.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-samhuri.net-OMGHTTPURLRQ.xcconfig"; path = "../Pods-samhuri.net-OMGHTTPURLRQ/Pods-samhuri.net-OMGHTTPURLRQ.xcconfig"; sourceTree = ""; }; - E265977D887E17AC61258250 /* UIAlertView+PromiseKit.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIAlertView+PromiseKit.h"; path = "objc/UIAlertView+PromiseKit.h"; sourceTree = ""; }; - E27D96C0B1EA73830C913BA5 /* libPods-Blog-FontAwesome+iOS.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-Blog-FontAwesome+iOS.a"; sourceTree = BUILT_PRODUCTS_DIR; }; - E34D52A7F5B71F969AA109A3 /* Pods-Blog-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-Blog-acknowledgements.plist"; sourceTree = ""; }; - E4157BD8F52E22C28E657B30 /* YapDatabaseFullTextSearchTransaction.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseFullTextSearchTransaction.h; path = YapDatabase/Extensions/FullTextSearch/YapDatabaseFullTextSearchTransaction.h; sourceTree = ""; }; - E551A6312A2FA76799E05477 /* YapDatabaseViewChangePrivate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseViewChangePrivate.h; path = YapDatabase/Extensions/Views/Internal/YapDatabaseViewChangePrivate.h; sourceTree = ""; }; - E5B2C1599BA4D2E41858C836 /* metamacros.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = metamacros.h; path = Mantle/extobjc/metamacros.h; sourceTree = ""; }; - E627228ACFEB88446047C673 /* YapDatabaseSecondaryIndexPrivate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseSecondaryIndexPrivate.h; path = YapDatabase/Extensions/SecondaryIndex/Internal/YapDatabaseSecondaryIndexPrivate.h; sourceTree = ""; }; - E6498F351BB43D131E3C4221 /* libPods-samhuri.net-OMGHTTPURLRQ.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-samhuri.net-OMGHTTPURLRQ.a"; sourceTree = BUILT_PRODUCTS_DIR; }; - E6AD97AD225B82A4359AF1A6 /* YapDatabaseViewState.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapDatabaseViewState.m; path = YapDatabase/Extensions/Views/Internal/YapDatabaseViewState.m; sourceTree = ""; }; - E9F3E777298E2C196C9F137D /* libPods-Blog-PromiseKit.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-Blog-PromiseKit.a"; sourceTree = BUILT_PRODUCTS_DIR; }; - EA0D8559A482F2E9D0790642 /* Pods-Blog.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-Blog.release.xcconfig"; sourceTree = ""; }; - EA8ED6BE5F0E935AEEF89179 /* Promise.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = Promise.h; path = objc/PromiseKit/Promise.h; sourceTree = ""; }; - EB10B6590D0FF76128A2727B /* OMGUserAgent.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = OMGUserAgent.m; sourceTree = ""; }; - EB221D3E7CB702A11395A64F /* Pods-Blog-ObjectiveSugar.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-Blog-ObjectiveSugar.xcconfig"; sourceTree = ""; }; - EE50E6FE438091CDBEEA8379 /* EXTSafeCategory.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = EXTSafeCategory.h; path = extobjc/EXTSafeCategory.h; sourceTree = ""; }; - EE6E1FC6E50F2EEAC22AEEA4 /* SFDynamicCodeInjection.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SFDynamicCodeInjection.m; path = "Dynamic Code Injection/dyci/Classes/SFDynamicCodeInjection.m"; sourceTree = ""; }; - EF398E993F646E7B6B07E3C1 /* Pods-Blog-MBProgressHUD-Private.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-Blog-MBProgressHUD-Private.xcconfig"; sourceTree = ""; }; - EF6FC1CC5A910AB5BBD4A60D /* YapDatabaseQuery.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapDatabaseQuery.m; path = YapDatabase/Utilities/YapDatabaseQuery.m; sourceTree = ""; }; - F0CEAFE4966D62D25D52F4CE /* DDASLLogger.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DDASLLogger.m; path = Lumberjack/DDASLLogger.m; sourceTree = ""; }; - F1AC858269432ACD0E963EED /* YapRowidSet.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapRowidSet.h; path = YapDatabase/Internal/YapRowidSet.h; sourceTree = ""; }; - F29D678FCC71858EE7D95C27 /* Pods-Blog-MBProgressHUD-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-Blog-MBProgressHUD-prefix.pch"; sourceTree = ""; }; - F307457ACA39801C012B0340 /* YapDatabaseSearchResultsViewConnection.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapDatabaseSearchResultsViewConnection.m; path = YapDatabase/Extensions/SearchResults/YapDatabaseSearchResultsViewConnection.m; sourceTree = ""; }; - F315CCFD0A27245944E3F42B /* YapCache.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapCache.m; path = YapDatabase/Utilities/YapCache.m; sourceTree = ""; }; - F33C50ACAC6196E63C7FB313 /* YapDatabaseFilteredView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseFilteredView.h; path = YapDatabase/Extensions/FilteredViews/YapDatabaseFilteredView.h; sourceTree = ""; }; - F34B15A83ECE7FD57A16725C /* YapDatabaseCloudKitPrivate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseCloudKitPrivate.h; path = YapDatabase/Extensions/CloudKit/Internal/YapDatabaseCloudKitPrivate.h; sourceTree = ""; }; - F4084EE5921F8B24A0D25AC6 /* NSNumber+ObjectiveSugar.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSNumber+ObjectiveSugar.h"; path = "Classes/NSNumber+ObjectiveSugar.h"; sourceTree = ""; }; - F5DC9F1CBEC8594767B97AA2 /* EXTRuntimeExtensions.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = EXTRuntimeExtensions.m; path = Mantle/extobjc/EXTRuntimeExtensions.m; sourceTree = ""; }; - F6DD54E3072108AD274BDC14 /* Pods-Blog-MBProgressHUD.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-Blog-MBProgressHUD.xcconfig"; sourceTree = ""; }; - F705C1486FDCE242C971DA99 /* EXTNil.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = EXTNil.m; path = extobjc/EXTNil.m; sourceTree = ""; }; - F72F2263FB89FD8EB4E6FF36 /* Pods-Blog-PromiseKit-Private.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-Blog-PromiseKit-Private.xcconfig"; sourceTree = ""; }; - F906B890EB25C26B46F1D2C7 /* NSValueTransformer+MTLInversionAdditions.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSValueTransformer+MTLInversionAdditions.m"; path = "Mantle/NSValueTransformer+MTLInversionAdditions.m"; sourceTree = ""; }; - FAB2EDC47DE1B571774A0679 /* NSSet+ObjectiveSugar.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSSet+ObjectiveSugar.h"; path = "Classes/NSSet+ObjectiveSugar.h"; sourceTree = ""; }; - FAEFFDB0E559BA6373293B65 /* YapDatabaseCloudKitTransaction.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapDatabaseCloudKitTransaction.m; path = YapDatabase/Extensions/CloudKit/YapDatabaseCloudKitTransaction.m; sourceTree = ""; }; - FB9EBAEBDC921DCE564F950E /* libPods-samhuri.net-PromiseKit.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-samhuri.net-PromiseKit.a"; sourceTree = BUILT_PRODUCTS_DIR; }; - FC07FAC5CB874A77328DF7BC /* Pods-Blog-Mantle-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-Blog-Mantle-dummy.m"; sourceTree = ""; }; - FC18FEA194A01FF1F09F4976 /* YapDatabaseExtension.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseExtension.h; path = YapDatabase/Extensions/Protocol/YapDatabaseExtension.h; sourceTree = ""; }; - FCB09E16D1B8F4E125214DF2 /* NSMutableArray+ObjectiveSugar.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSMutableArray+ObjectiveSugar.h"; path = "Classes/NSMutableArray+ObjectiveSugar.h"; sourceTree = ""; }; - FD465E5F5A152F512D1E6C97 /* OMGFormURLEncode.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = OMGFormURLEncode.h; sourceTree = ""; }; - FDE412DB6B49086569010E05 /* EXTADT.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = EXTADT.h; path = extobjc/EXTADT.h; sourceTree = ""; }; - FE63A5979137FFA0FB2ECF58 /* SFInjectionsNotificationsCenter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SFInjectionsNotificationsCenter.m; path = "Dynamic Code Injection/dyci/Classes/Notifications/SFInjectionsNotificationsCenter.m"; sourceTree = ""; }; - FF05D8A4D649AFD23AAEA2A1 /* Pods-samhuri.net.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-samhuri.net.release.xcconfig"; sourceTree = ""; }; - FFA7A32A5E1F8557243B97D7 /* YapDatabaseRelationshipEdgePrivate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseRelationshipEdgePrivate.h; path = YapDatabase/Extensions/Relationships/Internal/YapDatabaseRelationshipEdgePrivate.h; sourceTree = ""; }; + 001556665D4E2E8E9F833610 /* YapDatabaseFullTextSearchSnippetOptions.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapDatabaseFullTextSearchSnippetOptions.m; path = YapDatabase/Extensions/FullTextSearch/YapDatabaseFullTextSearchSnippetOptions.m; sourceTree = ""; }; + 0023677A545752E071C1FFDC /* Pods-Blog-FontAwesome+iOS-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-Blog-FontAwesome+iOS-dummy.m"; sourceTree = ""; }; + 00538663735C6056DCCA4C20 /* BITHockeyAppClient.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = BITHockeyAppClient.m; path = Classes/BITHockeyAppClient.m; sourceTree = ""; }; + 00D8EEEC4E976B458CE6B47B /* buttonRoundedDeleteHighlighted@2x.png */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.png; name = "buttonRoundedDeleteHighlighted@2x.png"; path = "Resources/buttonRoundedDeleteHighlighted@2x.png"; sourceTree = ""; }; + 0168F964DD215127BAB2FB25 /* Pods-Blog-FontAwesome+iOS-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-Blog-FontAwesome+iOS-prefix.pch"; sourceTree = ""; }; + 023AB80B442AFF1AABDA0136 /* BITAppStoreHeader.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = BITAppStoreHeader.h; path = Classes/BITAppStoreHeader.h; sourceTree = ""; }; + 02A409006397ACD50DC712F2 /* Pods-Blog-PromiseKit.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-Blog-PromiseKit.xcconfig"; sourceTree = ""; }; + 02E31D1B67428645190E3A61 /* NSError+MTLModelException.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSError+MTLModelException.m"; path = "Mantle/NSError+MTLModelException.m"; sourceTree = ""; }; + 037C19BCE6D1052E33FDC70D /* MTLModel+NSCoding.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "MTLModel+NSCoding.h"; path = "Mantle/MTLModel+NSCoding.h"; sourceTree = ""; }; + 03D212ED7F0BC4815B93AACF /* YapSet.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapSet.h; path = YapDatabase/Utilities/YapSet.h; sourceTree = ""; }; + 04AC09FAF6422E1AD477484B /* UIImage+FontAwesome.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "UIImage+FontAwesome.m"; sourceTree = ""; }; + 05CDEC57933F3510C7B2441E /* BITCrashManagerPrivate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = BITCrashManagerPrivate.h; path = Classes/BITCrashManagerPrivate.h; sourceTree = ""; }; + 05F762B5D7755DDC9075253F /* libPods-Blog-dyci.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-Blog-dyci.a"; sourceTree = BUILT_PRODUCTS_DIR; }; + 06417D67F36D4F18C4276380 /* Pods-Blog-dyci-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-Blog-dyci-dummy.m"; sourceTree = ""; }; + 07B61F7D0A8AFE3AFCA1A201 /* YapDatabaseStatement.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseStatement.h; path = YapDatabase/Internal/YapDatabaseStatement.h; sourceTree = ""; }; + 080BDF5F127AA4AF3BB7630D /* Podfile */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; name = Podfile; path = ../Podfile; sourceTree = SOURCE_ROOT; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; + 0855BACE0760B100075781C5 /* YapDatabaseRelationshipConnection.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapDatabaseRelationshipConnection.m; path = YapDatabase/Extensions/Relationships/YapDatabaseRelationshipConnection.m; sourceTree = ""; }; + 08E41337BE767F4DC801E701 /* BITImageAnnotationViewController.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = BITImageAnnotationViewController.h; path = Classes/BITImageAnnotationViewController.h; sourceTree = ""; }; + 092EA250C606F7540FA623F5 /* libPods-Blog-Mantle.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-Blog-Mantle.a"; sourceTree = BUILT_PRODUCTS_DIR; }; + 0B900CA50B103AAF414C31E2 /* YapDatabaseFilteredView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseFilteredView.h; path = YapDatabase/Extensions/FilteredViews/YapDatabaseFilteredView.h; sourceTree = ""; }; + 0BA48468FA647EA7740B2237 /* IconGradient.png */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.png; name = IconGradient.png; path = Resources/IconGradient.png; sourceTree = ""; }; + 0BC9F5FB29551F575CC3D1FD /* Pods-samhuri.net-YapDatabase-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "Pods-samhuri.net-YapDatabase-prefix.pch"; path = "../Pods-samhuri.net-YapDatabase/Pods-samhuri.net-YapDatabase-prefix.pch"; sourceTree = ""; }; + 0C3BFDBBB613CE4EEBD25D5A /* zh-Hans.lproj */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = folder; name = "zh-Hans.lproj"; path = "Resources/zh-Hans.lproj"; sourceTree = ""; }; + 0C689D8DBB917DBC8396DB72 /* YapDatabaseFilteredViewTypes.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapDatabaseFilteredViewTypes.m; path = YapDatabase/Extensions/FilteredViews/YapDatabaseFilteredViewTypes.m; sourceTree = ""; }; + 0D2752084F69F3909D28D926 /* Pods-Blog-FontAwesome+iOS.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-Blog-FontAwesome+iOS.xcconfig"; sourceTree = ""; }; + 0DA3911803CC22752770CDC2 /* FAImageView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = FAImageView.m; sourceTree = ""; }; + 0E9A393EFD29ADC14A40D488 /* Pods-Blog-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-Blog-acknowledgements.markdown"; sourceTree = ""; }; + 0E9CEB7A047399EA6AD0B1E6 /* Pods-samhuri.net-environment.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-samhuri.net-environment.h"; sourceTree = ""; }; + 114CA422CC947006E8843BEA /* NSSet+ClassesList.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSSet+ClassesList.m"; path = "Dynamic Code Injection/dyci/Classes/Categories/NSSet+ClassesList.m"; sourceTree = ""; }; + 126FB1A7049C4691143B6656 /* Ok@2x.png */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.png; name = "Ok@2x.png"; path = "Resources/Ok@2x.png"; sourceTree = ""; }; + 14DAB6EC593F2115F38D6C39 /* BITFeedbackListViewController.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = BITFeedbackListViewController.h; path = Classes/BITFeedbackListViewController.h; sourceTree = ""; }; + 14E91177F2D7F0DDE1FFC8A5 /* feedbackActivity~ipad.png */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.png; name = "feedbackActivity~ipad.png"; path = "Resources/feedbackActivity~ipad.png"; sourceTree = ""; }; + 15850043CD4FB75D191E205A /* Pods-Blog-libextobjc-Private.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-Blog-libextobjc-Private.xcconfig"; sourceTree = ""; }; + 15D097C2D670F44F774D2ED4 /* YapDatabaseExtensionConnection.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapDatabaseExtensionConnection.m; path = YapDatabase/Extensions/Protocol/YapDatabaseExtensionConnection.m; sourceTree = ""; }; + 15F3D78FAB157E06EABAE019 /* YapDatabaseRelationshipNode.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseRelationshipNode.h; path = YapDatabase/Extensions/Relationships/YapDatabaseRelationshipNode.h; sourceTree = ""; }; + 15F88EA193C178431DB484CF /* YapDatabaseViewTypes.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapDatabaseViewTypes.m; path = YapDatabase/Extensions/Views/YapDatabaseViewTypes.m; sourceTree = ""; }; + 1654AAF78C161D58CA37DF48 /* YDBCKRecordTableInfo.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YDBCKRecordTableInfo.m; path = YapDatabase/Extensions/CloudKit/Internal/YDBCKRecordTableInfo.m; sourceTree = ""; }; + 17C59EF9C856FDB786D8B3CA /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS8.3.sdk/System/Library/Frameworks/CoreGraphics.framework; sourceTree = DEVELOPER_DIR; }; + 17FCC42E1E89C434B27DD341 /* BITCrashDetails.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = BITCrashDetails.m; path = Classes/BITCrashDetails.m; sourceTree = ""; }; + 18962583BAA744E203BCF9E0 /* MTLTransformerErrorHandling.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MTLTransformerErrorHandling.m; path = Mantle/MTLTransformerErrorHandling.m; sourceTree = ""; }; + 18D675DC0E73CC8FBADB4C42 /* UIViewController+PromiseKit.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIViewController+PromiseKit.h"; path = "objc/UIViewController+PromiseKit.h"; sourceTree = ""; }; + 18F4F1884C30C7A824655957 /* NSNotificationCenter+PromiseKit.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSNotificationCenter+PromiseKit.m"; path = "objc/NSNotificationCenter+PromiseKit.m"; sourceTree = ""; }; + 191C50A85AAF5F220AED2574 /* YapDatabaseRelationship.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseRelationship.h; path = YapDatabase/Extensions/Relationships/YapDatabaseRelationship.h; sourceTree = ""; }; + 19F462093848F17B8CD183C9 /* iconCamera@2x.png */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.png; name = "iconCamera@2x.png"; path = "Resources/iconCamera@2x.png"; sourceTree = ""; }; + 1A16819046869E61CBED00EC /* NSArray+MTLManipulationAdditions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSArray+MTLManipulationAdditions.h"; path = "Mantle/NSArray+MTLManipulationAdditions.h"; sourceTree = ""; }; + 1AB9554218F5C9AC284F5620 /* libPods-Blog-HockeySDK.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-Blog-HockeySDK.a"; sourceTree = BUILT_PRODUCTS_DIR; }; + 1B2ED9DA408A61425EB201EB /* NSValueTransformer+MTLPredefinedTransformerAdditions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSValueTransformer+MTLPredefinedTransformerAdditions.h"; path = "Mantle/NSValueTransformer+MTLPredefinedTransformerAdditions.h"; sourceTree = ""; }; + 1B6A6462C66A44AE7521BB7D /* SFDynamicCodeInjection.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SFDynamicCodeInjection.h; path = "Dynamic Code Injection/dyci/Classes/SFDynamicCodeInjection.h"; sourceTree = ""; }; + 1B703A6BEDE896B8C431D62F /* CoreText.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreText.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS8.3.sdk/System/Library/Frameworks/CoreText.framework; sourceTree = DEVELOPER_DIR; }; + 1C1E5DF6B743BB5E23559BD5 /* DDASLLogger.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DDASLLogger.m; path = Lumberjack/DDASLLogger.m; sourceTree = ""; }; + 1C4CFB0B6D332951DF24B460 /* YapDatabaseExtensionPrivate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseExtensionPrivate.h; path = YapDatabase/Extensions/Protocol/Internal/YapDatabaseExtensionPrivate.h; sourceTree = ""; }; + 1C869578E846D5B84E3A8910 /* BITAuthenticator.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = BITAuthenticator.m; path = Classes/BITAuthenticator.m; sourceTree = ""; }; + 1D8E6F77DD468DCC26BB35C2 /* BITFeedbackListViewCell.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = BITFeedbackListViewCell.h; path = Classes/BITFeedbackListViewCell.h; sourceTree = ""; }; + 1DFB148410C29145781FC687 /* YapDatabaseViewConnection.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapDatabaseViewConnection.m; path = YapDatabase/Extensions/Views/YapDatabaseViewConnection.m; sourceTree = ""; }; + 1F29E8DAAADEE94BA4E845D1 /* HockeySDKResources.bundle */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = HockeySDKResources.bundle; sourceTree = BUILT_PRODUCTS_DIR; }; + 1F8AAC223A0E556C92B3C4F5 /* YapDatabaseFullTextSearch.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseFullTextSearch.h; path = YapDatabase/Extensions/FullTextSearch/YapDatabaseFullTextSearch.h; sourceTree = ""; }; + 1F96846693844552C3879C5C /* YapDatabaseSearchResultsViewTransaction.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapDatabaseSearchResultsViewTransaction.m; path = YapDatabase/Extensions/SearchResults/YapDatabaseSearchResultsViewTransaction.m; sourceTree = ""; }; + 1FD1DBAB2B5CED8999A0E9C1 /* Pods-Blog-HockeySDK-Private.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-Blog-HockeySDK-Private.xcconfig"; sourceTree = ""; }; + 20282B8F4754BE7E220FD707 /* BITStoreButton.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = BITStoreButton.h; path = Classes/BITStoreButton.h; sourceTree = ""; }; + 20E112DDB4AE54B73DE1336C /* EXTScope.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = EXTScope.m; path = Mantle/extobjc/EXTScope.m; sourceTree = ""; }; + 2101B8C7F794EE24F25EC4E3 /* YDBCKMappingTableInfo.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YDBCKMappingTableInfo.m; path = YapDatabase/Extensions/CloudKit/Internal/YDBCKMappingTableInfo.m; sourceTree = ""; }; + 210BD69EAE008EA754D9A9C1 /* BITAppStoreHeader.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = BITAppStoreHeader.m; path = Classes/BITAppStoreHeader.m; sourceTree = ""; }; + 22E9DB4B26820E0AB0FBFAFD /* YapMemoryTable.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapMemoryTable.h; path = YapDatabase/Internal/YapMemoryTable.h; sourceTree = ""; }; + 23DEB41BD56023A09D2ACD97 /* YapCache.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapCache.h; path = YapDatabase/Utilities/YapCache.h; sourceTree = ""; }; + 24D607AD9649AF74B29019EE /* EXTScope.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = EXTScope.h; path = Mantle/extobjc/EXTScope.h; sourceTree = ""; }; + 261E60A2F8407C25ECD19683 /* feedbackActivity.png */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.png; name = feedbackActivity.png; path = Resources/feedbackActivity.png; sourceTree = ""; }; + 2692040EB7CBD64C984AEDE8 /* NSDictionary+MTLJSONKeyPath.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSDictionary+MTLJSONKeyPath.m"; path = "Mantle/NSDictionary+MTLJSONKeyPath.m"; sourceTree = ""; }; + 2739CFE5A18784673E3C8B0F /* EXTNil.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = EXTNil.h; path = extobjc/EXTNil.h; sourceTree = ""; }; + 274D470094D17041FF3DA1AC /* DDAbstractDatabaseLogger.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DDAbstractDatabaseLogger.m; path = Lumberjack/DDAbstractDatabaseLogger.m; sourceTree = ""; }; + 2942CF3B18BD3D3F5FDD78A7 /* BITAttributedLabel.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = BITAttributedLabel.m; path = Classes/BITAttributedLabel.m; sourceTree = ""; }; + 29CBB86E0543325F5C71E3C7 /* BITCrashAttachment.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = BITCrashAttachment.h; path = Classes/BITCrashAttachment.h; sourceTree = ""; }; + 2A5922524CFC0A15389AC04C /* YapDatabaseViewRangeOptions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseViewRangeOptions.h; path = YapDatabase/Extensions/Views/Utilities/YapDatabaseViewRangeOptions.h; sourceTree = ""; }; + 2B0920FE8638FCBA2512FDC8 /* NSValueTransformer+MTLPredefinedTransformerAdditions.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSValueTransformer+MTLPredefinedTransformerAdditions.m"; path = "Mantle/NSValueTransformer+MTLPredefinedTransformerAdditions.m"; sourceTree = ""; }; + 2B31CB60E163FF7B2EDED962 /* EXTRuntimeExtensions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = EXTRuntimeExtensions.h; path = extobjc/EXTRuntimeExtensions.h; sourceTree = ""; }; + 2C3CED34A8221E061CBC3394 /* Pods-samhuri.net-OMGHTTPURLRQ-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "Pods-samhuri.net-OMGHTTPURLRQ-prefix.pch"; path = "../Pods-samhuri.net-OMGHTTPURLRQ/Pods-samhuri.net-OMGHTTPURLRQ-prefix.pch"; sourceTree = ""; }; + 2C6268474EDB1A0E48E82871 /* Cancel@3x.png */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.png; name = "Cancel@3x.png"; path = "Resources/Cancel@3x.png"; sourceTree = ""; }; + 2C6A01772C4963FBE2BC105F /* YapDatabaseViewOptions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseViewOptions.h; path = YapDatabase/Extensions/Views/YapDatabaseViewOptions.h; sourceTree = ""; }; + 2E3B6D39AAAE5CE92521A9C2 /* libPods-Blog-FontAwesome+iOS.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-Blog-FontAwesome+iOS.a"; sourceTree = BUILT_PRODUCTS_DIR; }; + 2E4469E3AFC89F79AC80E56B /* Pods-samhuri.net-MBProgressHUD-Private.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-samhuri.net-MBProgressHUD-Private.xcconfig"; path = "../Pods-samhuri.net-MBProgressHUD/Pods-samhuri.net-MBProgressHUD-Private.xcconfig"; sourceTree = ""; }; + 2E75BAF1F32217CB67E61AAD /* YapDatabaseSearchResultsView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapDatabaseSearchResultsView.m; path = YapDatabase/Extensions/SearchResults/YapDatabaseSearchResultsView.m; sourceTree = ""; }; + 2E9F884DDE5117CAEC6CB79D /* libPods-Blog-ObjectiveSugar.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-Blog-ObjectiveSugar.a"; sourceTree = BUILT_PRODUCTS_DIR; }; + 2EB9B1301FF3ED727D99E944 /* YapDatabase.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabase.h; path = YapDatabase/YapDatabase.h; sourceTree = ""; }; + 2ECCB5C5FB782234373426B9 /* YapDatabaseManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapDatabaseManager.m; path = YapDatabase/Internal/YapDatabaseManager.m; sourceTree = ""; }; + 2F427B1085094DE7CE81AC3D /* YapDatabaseSecondaryIndexConnection.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapDatabaseSecondaryIndexConnection.m; path = YapDatabase/Extensions/SecondaryIndex/YapDatabaseSecondaryIndexConnection.m; sourceTree = ""; }; + 2F4B02F7F7BB4166E9B2450B /* DDFileLogger.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DDFileLogger.h; path = Lumberjack/DDFileLogger.h; sourceTree = ""; }; + 2FC0EACA760A4D92F849FD81 /* YapDatabaseCloudKitOptions.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapDatabaseCloudKitOptions.m; path = YapDatabase/Extensions/CloudKit/YapDatabaseCloudKitOptions.m; sourceTree = ""; }; + 2FDDA96DE068D2DC19AFAAF0 /* BITFeedbackActivity.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = BITFeedbackActivity.h; path = Classes/BITFeedbackActivity.h; sourceTree = ""; }; + 2FF30F64ED5B8F3D56132A30 /* YDBCKRecordInfo.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YDBCKRecordInfo.h; path = YapDatabase/Extensions/CloudKit/Utilities/YDBCKRecordInfo.h; sourceTree = ""; }; + 3029174C0573404E331F3D7E /* libPods-Blog-CocoaLumberjack.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-Blog-CocoaLumberjack.a"; sourceTree = BUILT_PRODUCTS_DIR; }; + 30D8535CBA3362C905BC3293 /* UIImage+FontAwesome.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "UIImage+FontAwesome.h"; sourceTree = ""; }; + 30DF5DDA18287D6016B5E408 /* Pods-samhuri.net-CocoaLumberjack-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "Pods-samhuri.net-CocoaLumberjack-prefix.pch"; path = "../Pods-samhuri.net-CocoaLumberjack/Pods-samhuri.net-CocoaLumberjack-prefix.pch"; sourceTree = ""; }; + 30FCCFB779DD3B92DD26FDC7 /* EXTRuntimeExtensions.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = EXTRuntimeExtensions.m; path = extobjc/EXTRuntimeExtensions.m; sourceTree = ""; }; + 3166B01856C436331247B5BB /* NSInvocation+EXT.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSInvocation+EXT.m"; path = "extobjc/NSInvocation+EXT.m"; sourceTree = ""; }; + 31FF98604D391FA436B6BDC0 /* MTLValueTransformer.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MTLValueTransformer.h; path = Mantle/MTLValueTransformer.h; sourceTree = ""; }; + 32B70BC8A0F2BDB09E539261 /* YDBCKMergeInfo.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YDBCKMergeInfo.h; path = YapDatabase/Extensions/CloudKit/Utilities/YDBCKMergeInfo.h; sourceTree = ""; }; + 32CB0483D23683749726EF27 /* libPods-samhuri.net-ObjectiveSugar.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-samhuri.net-ObjectiveSugar.a"; sourceTree = BUILT_PRODUCTS_DIR; }; + 32E49968CE1A2501F494E2E2 /* NSURLConnection+PromiseKit.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSURLConnection+PromiseKit.h"; path = "objc/NSURLConnection+PromiseKit.h"; sourceTree = ""; }; + 3308D7BDAB66931744762B7D /* DDAssert.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DDAssert.h; path = Lumberjack/DDAssert.h; sourceTree = ""; }; + 335E63163D0E30B59353F7C8 /* BITCrashManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = BITCrashManager.m; path = Classes/BITCrashManager.m; sourceTree = ""; }; + 3391BE37C10FF6570B07E29F /* ObjectiveSugar.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = ObjectiveSugar.h; path = Classes/ObjectiveSugar.h; sourceTree = ""; }; + 33944845AD0433274A6390F4 /* Pods-Blog-YapDatabase.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-Blog-YapDatabase.xcconfig"; sourceTree = ""; }; + 33E997B4175AFC16EB235986 /* Rectangle.png */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.png; name = Rectangle.png; path = Resources/Rectangle.png; sourceTree = ""; }; + 34C1E658C17FBD703278F2B4 /* BITCrashReportTextFormatter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = BITCrashReportTextFormatter.m; path = Classes/BITCrashReportTextFormatter.m; sourceTree = ""; }; + 34C9996FF9709CA210D8AF16 /* ja.lproj */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = folder; name = ja.lproj; path = Resources/ja.lproj; sourceTree = ""; }; + 3523D1F2DB76883356A2C9AD /* SFDynamicCodeInjection.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SFDynamicCodeInjection.m; path = "Dynamic Code Injection/dyci/Classes/SFDynamicCodeInjection.m"; sourceTree = ""; }; + 352DFB6A03780CD603976FCF /* YapDatabaseView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapDatabaseView.m; path = YapDatabase/Extensions/Views/YapDatabaseView.m; sourceTree = ""; }; + 35696F8E5828A75B31EEC22F /* YDBCKChangeRecord.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YDBCKChangeRecord.m; path = YapDatabase/Extensions/CloudKit/Internal/YDBCKChangeRecord.m; sourceTree = ""; }; + 35B1468F88F9E2F09EF1C612 /* YapDatabaseSecondaryIndexHandler.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapDatabaseSecondaryIndexHandler.m; path = YapDatabase/Extensions/SecondaryIndex/YapDatabaseSecondaryIndexHandler.m; sourceTree = ""; }; + 366C30DD854276061F3DCE87 /* YapDatabase.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapDatabase.m; path = YapDatabase/YapDatabase.m; sourceTree = ""; }; + 36DC4EF50A17023C7709F5E7 /* Pods-samhuri.net-PromiseKit-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "Pods-samhuri.net-PromiseKit-prefix.pch"; path = "../Pods-samhuri.net-PromiseKit/Pods-samhuri.net-PromiseKit-prefix.pch"; sourceTree = ""; }; + 370E802FEEF2460621C8F46E /* BITArrowImageAnnotation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = BITArrowImageAnnotation.m; path = Classes/BITArrowImageAnnotation.m; sourceTree = ""; }; + 37A3446FBF50420B4587F51D /* BITHockeyManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = BITHockeyManager.m; path = Classes/BITHockeyManager.m; sourceTree = ""; }; + 37B57CAE9B3BD6B83562BCDE /* Pods-Blog-environment.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-Blog-environment.h"; sourceTree = ""; }; + 3845BA65DC2D79DCCF4DA8C7 /* BITHTTPOperation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = BITHTTPOperation.m; path = Classes/BITHTTPOperation.m; sourceTree = ""; }; + 3847DF5D69761FB3443E5979 /* NSDictionary+MTLJSONKeyPath.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSDictionary+MTLJSONKeyPath.h"; path = "Mantle/NSDictionary+MTLJSONKeyPath.h"; sourceTree = ""; }; + 386A83FA41D150D573E74F1E /* YapDatabasePrivate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabasePrivate.h; path = YapDatabase/Internal/YapDatabasePrivate.h; sourceTree = ""; }; + 389E3BE660A249DD113EC263 /* BITUpdateViewControllerPrivate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = BITUpdateViewControllerPrivate.h; path = Classes/BITUpdateViewControllerPrivate.h; sourceTree = ""; }; + 38A4A0C030E070441BF3EB86 /* Pods-samhuri.net-resources.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-samhuri.net-resources.sh"; sourceTree = ""; }; + 3900BEAD0B3DBE7476E5802A /* YapDatabaseSecondaryIndexOptions.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapDatabaseSecondaryIndexOptions.m; path = YapDatabase/Extensions/SecondaryIndex/YapDatabaseSecondaryIndexOptions.m; sourceTree = ""; }; + 398332A878F08996D298C000 /* BITFeedbackUserDataViewController.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = BITFeedbackUserDataViewController.m; path = Classes/BITFeedbackUserDataViewController.m; sourceTree = ""; }; + 3A04A7AFC6BE2AD6942FC7A0 /* BITStoreUpdateManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = BITStoreUpdateManager.h; path = Classes/BITStoreUpdateManager.h; sourceTree = ""; }; + 3AE5F335396B442F9509FE0F /* NSObject+DyCInjection.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSObject+DyCInjection.h"; path = "Dynamic Code Injection/dyci/Classes/Injections/NSObject+DyCInjection.h"; sourceTree = ""; }; + 3B45EBA63E234BB38D261731 /* Mantle.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = Mantle.h; path = Mantle/Mantle.h; sourceTree = ""; }; + 3B5FF76C4D98874EF77612FC /* YapDatabaseViewTransaction.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapDatabaseViewTransaction.m; path = YapDatabase/Extensions/Views/YapDatabaseViewTransaction.m; sourceTree = ""; }; + 3BA68376A1F3040D8C24D27A /* YapWhitelistBlacklist.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapWhitelistBlacklist.h; path = YapDatabase/Utilities/YapWhitelistBlacklist.h; sourceTree = ""; }; + 3BAE7A7DC628B2C527BC9476 /* Pods-samhuri.net-CocoaLumberjack-Private.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-samhuri.net-CocoaLumberjack-Private.xcconfig"; path = "../Pods-samhuri.net-CocoaLumberjack/Pods-samhuri.net-CocoaLumberjack-Private.xcconfig"; sourceTree = ""; }; + 3BF5F262FEB96CD07F5F3999 /* DDLog.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DDLog.h; path = Lumberjack/DDLog.h; sourceTree = ""; }; + 3C72DCC85D12BD3E79F49B39 /* YapDatabaseFullTextSearchHandler.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseFullTextSearchHandler.h; path = YapDatabase/Extensions/FullTextSearch/YapDatabaseFullTextSearchHandler.h; sourceTree = ""; }; + 3D1E78B56DEAE2A8EBFC2DD1 /* YapDatabaseSearchResultsViewOptions.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapDatabaseSearchResultsViewOptions.m; path = YapDatabase/Extensions/SearchResults/YapDatabaseSearchResultsViewOptions.m; sourceTree = ""; }; + 3E5A3CF1D0D1D9690B1CCF66 /* UIActionSheet+PromiseKit.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIActionSheet+PromiseKit.m"; path = "objc/UIActionSheet+PromiseKit.m"; sourceTree = ""; }; + 3E73A3BE5BCB9F34559E7487 /* BITFeedbackListViewCell.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = BITFeedbackListViewCell.m; path = Classes/BITFeedbackListViewCell.m; sourceTree = ""; }; + 3EE1FB9F806C2180B682F8D9 /* libPods-Blog-PromiseKit.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-Blog-PromiseKit.a"; sourceTree = BUILT_PRODUCTS_DIR; }; + 3EFEA5BEFFFE131E1360E9B1 /* Pods-samhuri.net-ObjectiveSugar-Private.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-samhuri.net-ObjectiveSugar-Private.xcconfig"; path = "../Pods-samhuri.net-ObjectiveSugar/Pods-samhuri.net-ObjectiveSugar-Private.xcconfig"; sourceTree = ""; }; + 3FCA618023FBE51E612DA698 /* YapDatabaseCloudKitConnection.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapDatabaseCloudKitConnection.m; path = YapDatabase/Extensions/CloudKit/YapDatabaseCloudKitConnection.m; sourceTree = ""; }; + 40450CB2949BAF782E845D9A /* HockeySDKPrivate.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = HockeySDKPrivate.m; path = Classes/HockeySDKPrivate.m; sourceTree = ""; }; + 4061E7AA76F19B7B8D034A9E /* YapDatabaseSecondaryIndexTransaction.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseSecondaryIndexTransaction.h; path = YapDatabase/Extensions/SecondaryIndex/YapDatabaseSecondaryIndexTransaction.h; sourceTree = ""; }; + 4125CD5484E2DEAAF2B5155C /* YapDebugDictionary.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapDebugDictionary.m; path = YapDatabase/Internal/YapDebugDictionary.m; sourceTree = ""; }; + 412CC4C8070F307CC821193A /* YapDatabaseString.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseString.h; path = YapDatabase/Internal/YapDatabaseString.h; sourceTree = ""; }; + 415C8661A54B4780F14761E6 /* UINib+StoryBoardSupport.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UINib+StoryBoardSupport.h"; path = "Dynamic Code Injection/dyci/Classes/Injections/UINib+StoryBoardSupport.h"; sourceTree = ""; }; + 416560387AB86E58AEACA1CF /* MTLJSONAdapter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MTLJSONAdapter.h; path = Mantle/MTLJSONAdapter.h; sourceTree = ""; }; + 41F934FF9D68DD208014FA0C /* BITAuthenticator_Private.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = BITAuthenticator_Private.h; path = Classes/BITAuthenticator_Private.h; sourceTree = ""; }; + 425EC32991B418837B39D218 /* BITImageAnnotation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = BITImageAnnotation.m; path = Classes/BITImageAnnotation.m; sourceTree = ""; }; + 42B8A6E679CAADE1D110DD14 /* Cancel.png */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.png; name = Cancel.png; path = Resources/Cancel.png; sourceTree = ""; }; + 435B0AFDCCA4F3A15AD58410 /* libPods-samhuri.net-Mantle.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-samhuri.net-Mantle.a"; sourceTree = BUILT_PRODUCTS_DIR; }; + 43F68042387E7D27F22F2807 /* Pods-Blog-OMGHTTPURLRQ-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-Blog-OMGHTTPURLRQ-dummy.m"; sourceTree = ""; }; + 443A2BFCCC45974DA1DE3843 /* pt.lproj */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = folder; name = pt.lproj; path = Resources/pt.lproj; sourceTree = ""; }; + 4466E9097130AE97FEF25D4C /* Rectangle@2x.png */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.png; name = "Rectangle@2x.png"; path = "Resources/Rectangle@2x.png"; sourceTree = ""; }; + 447352FCB4CBDE4B74C83AFB /* EXTRuntimeExtensions.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = EXTRuntimeExtensions.m; path = Mantle/extobjc/EXTRuntimeExtensions.m; sourceTree = ""; }; + 448B6C7ECD26944B3A127030 /* BITUpdateManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = BITUpdateManager.h; path = Classes/BITUpdateManager.h; sourceTree = ""; }; + 44EBAE26A008D2AE7831CD11 /* Pods-samhuri.net-PromiseKit.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-samhuri.net-PromiseKit.xcconfig"; path = "../Pods-samhuri.net-PromiseKit/Pods-samhuri.net-PromiseKit.xcconfig"; sourceTree = ""; }; + 453E1EE596F7B0A7C9198283 /* OMGFormURLEncode.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = OMGFormURLEncode.h; sourceTree = ""; }; + 4544A85C176459B3C99B3204 /* NSMutableArray+ObjectiveSugar.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSMutableArray+ObjectiveSugar.h"; path = "Classes/NSMutableArray+ObjectiveSugar.h"; sourceTree = ""; }; + 45606DBAD5CBEFF605BBBE0F /* DDFileLogger.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DDFileLogger.m; path = Lumberjack/DDFileLogger.m; sourceTree = ""; }; + 45A6D1C7B82660AECBF2B462 /* YapDatabaseQuery.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseQuery.h; path = YapDatabase/Utilities/YapDatabaseQuery.h; sourceTree = ""; }; + 45DA14DB2E86F09FB8B0DF07 /* Pods-Blog-MBProgressHUD-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-Blog-MBProgressHUD-dummy.m"; sourceTree = ""; }; + 46556DD804F8ADB9FAE66C96 /* libPods-samhuri.net.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-samhuri.net.a"; sourceTree = BUILT_PRODUCTS_DIR; }; + 47122A4E641865B3F459AF62 /* YapDatabaseFilteredViewTransaction.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseFilteredViewTransaction.h; path = YapDatabase/Extensions/FilteredViews/YapDatabaseFilteredViewTransaction.h; sourceTree = ""; }; + 472968D407FE49DC29FEE514 /* NSDictionary+MTLMappingAdditions.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSDictionary+MTLMappingAdditions.m"; path = "Mantle/NSDictionary+MTLMappingAdditions.m"; sourceTree = ""; }; + 47417B8D7E3555E138110D7F /* BITAppVersionMetaInfo.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = BITAppVersionMetaInfo.h; path = Classes/BITAppVersionMetaInfo.h; sourceTree = ""; }; + 4769C352C1DA43D4A24C8046 /* buttonRoundedRegularHighlighted@2x.png */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.png; name = "buttonRoundedRegularHighlighted@2x.png"; path = "Resources/buttonRoundedRegularHighlighted@2x.png"; sourceTree = ""; }; + 482A013B63DD44E516FABED5 /* BITImageAnnotationViewController.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = BITImageAnnotationViewController.m; path = Classes/BITImageAnnotationViewController.m; sourceTree = ""; }; + 48371F1898B464965F96E51C /* Pods-Blog-ObjectiveSugar-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-Blog-ObjectiveSugar-dummy.m"; sourceTree = ""; }; + 484906CAA5606962F78730B5 /* BITHockeyAttachment.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = BITHockeyAttachment.h; path = Classes/BITHockeyAttachment.h; sourceTree = ""; }; + 48E5AE8E99CCA8F8D7154C5D /* Pods-samhuri.net.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-samhuri.net.debug.xcconfig"; sourceTree = ""; }; + 4904A867238006F8F0B405A2 /* DDLog+LOGV.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "DDLog+LOGV.h"; path = "Lumberjack/DDLog+LOGV.h"; sourceTree = ""; }; + 4909ED535CE51C1035640E21 /* MTLJSONAdapter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MTLJSONAdapter.m; path = Mantle/MTLJSONAdapter.m; sourceTree = ""; }; + 49A31B1F8DB8E1B440578BD9 /* YapDatabaseViewPageMetadata.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseViewPageMetadata.h; path = YapDatabase/Extensions/Views/Internal/YapDatabaseViewPageMetadata.h; sourceTree = ""; }; + 49AE2F6AA312BA5553E794E7 /* NSObject+MTLComparisonAdditions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSObject+MTLComparisonAdditions.h"; path = "Mantle/NSObject+MTLComparisonAdditions.h"; sourceTree = ""; }; + 4AE7C3359CE7B7B47CA37885 /* BITStoreUpdateManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = BITStoreUpdateManager.m; path = Classes/BITStoreUpdateManager.m; sourceTree = ""; }; + 4B88B4102B01AB0D44046BEF /* OMGFormURLEncode.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = OMGFormURLEncode.m; sourceTree = ""; }; + 4BB03AEE4E9B2CAC0B4CCCB1 /* UIViewController+XIBSupport.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIViewController+XIBSupport.h"; path = "Dynamic Code Injection/dyci/Classes/Injections/UIViewController+XIBSupport.h"; sourceTree = ""; }; + 4C53E02E13256F204530B89B /* Pods-samhuri.net-YapDatabase-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "Pods-samhuri.net-YapDatabase-dummy.m"; path = "../Pods-samhuri.net-YapDatabase/Pods-samhuri.net-YapDatabase-dummy.m"; sourceTree = ""; }; + 4C8CF580CF90B8D37E3D1B8E /* BITWebTableViewCell.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = BITWebTableViewCell.m; path = Classes/BITWebTableViewCell.m; sourceTree = ""; }; + 4CBFF2DBC92074B91C45992D /* Pods-samhuri.net-YapDatabase-Private.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-samhuri.net-YapDatabase-Private.xcconfig"; path = "../Pods-samhuri.net-YapDatabase/Pods-samhuri.net-YapDatabase-Private.xcconfig"; sourceTree = ""; }; + 4D7B817EF8DE89D1830B62E0 /* YapDatabaseCloudKit.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseCloudKit.h; path = YapDatabase/Extensions/CloudKit/YapDatabaseCloudKit.h; sourceTree = ""; }; + 4ECC27DC52F2BDBDE089DFC8 /* EXTSynthesize.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = EXTSynthesize.h; path = extobjc/EXTSynthesize.h; sourceTree = ""; }; + 4EE4DB3EADC9FA878C4AD403 /* YapDatabaseConnectionState.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseConnectionState.h; path = YapDatabase/Internal/YapDatabaseConnectionState.h; sourceTree = ""; }; + 4F2E399A66CFCB22E5B8F9AF /* YapDatabaseFullTextSearchPrivate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseFullTextSearchPrivate.h; path = YapDatabase/Extensions/FullTextSearch/Internal/YapDatabaseFullTextSearchPrivate.h; sourceTree = ""; }; + 4F8E5DB57A211F1B11B63E35 /* YapDatabaseSecondaryIndex.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapDatabaseSecondaryIndex.m; path = YapDatabase/Extensions/SecondaryIndex/YapDatabaseSecondaryIndex.m; sourceTree = ""; }; + 4FAEC47B45230AE46729DFEA /* Pods-Blog.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-Blog.release.xcconfig"; sourceTree = ""; }; + 503A183E45FBBEA1173DFD4E /* Pods-Blog-libextobjc-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-Blog-libextobjc-prefix.pch"; sourceTree = ""; }; + 510E05D35CA23A13291F868F /* Pods-Blog-HockeySDK.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-Blog-HockeySDK.xcconfig"; sourceTree = ""; }; + 514533BEC75FAEE685837209 /* NSDictionary+ObjectiveSugar.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSDictionary+ObjectiveSugar.h"; path = "Classes/NSDictionary+ObjectiveSugar.h"; sourceTree = ""; }; + 51BC65067D57AD17F146909B /* YapDatabaseSecondaryIndexOptions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseSecondaryIndexOptions.h; path = YapDatabase/Extensions/SecondaryIndex/YapDatabaseSecondaryIndexOptions.h; sourceTree = ""; }; + 525C91DAABF989C5022B6BFE /* BITHockeyManagerDelegate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = BITHockeyManagerDelegate.h; path = Classes/BITHockeyManagerDelegate.h; sourceTree = ""; }; + 52973E9BB77DB4E7F8C497E2 /* Blur.png */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.png; name = Blur.png; path = Resources/Blur.png; sourceTree = ""; }; + 539ACB046AFD27463581E5D0 /* YapDatabaseSearchResultsView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseSearchResultsView.h; path = YapDatabase/Extensions/SearchResults/YapDatabaseSearchResultsView.h; sourceTree = ""; }; + 53AC24C6C84404E125ECC04E /* YapDatabaseFilteredView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapDatabaseFilteredView.m; path = YapDatabase/Extensions/FilteredViews/YapDatabaseFilteredView.m; sourceTree = ""; }; + 5411044706088463D1712EE7 /* Pods-Blog-FontAwesome+iOS-Private.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-Blog-FontAwesome+iOS-Private.xcconfig"; sourceTree = ""; }; + 545EFEC13527422EBE0B200E /* PMKPromise+Until.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "PMKPromise+Until.m"; path = "objc/PMKPromise+Until.m"; sourceTree = ""; }; + 546CD11A44855593FFC5B1AB /* BITFeedbackListViewController.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = BITFeedbackListViewController.m; path = Classes/BITFeedbackListViewController.m; sourceTree = ""; }; + 54D210743ABD4FDDB5813112 /* YDBCKRecordTableInfo.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YDBCKRecordTableInfo.h; path = YapDatabase/Extensions/CloudKit/Internal/YDBCKRecordTableInfo.h; sourceTree = ""; }; + 552E70964B08EC917723691F /* BITUpdateManagerDelegate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = BITUpdateManagerDelegate.h; path = Classes/BITUpdateManagerDelegate.h; sourceTree = ""; }; + 5590AEB0D60DF19D256F4950 /* YDBCKAttachRequest.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YDBCKAttachRequest.m; path = YapDatabase/Extensions/CloudKit/Internal/YDBCKAttachRequest.m; sourceTree = ""; }; + 55A4E2B60DDDE0E6E3686762 /* Pods-samhuri.net-MBProgressHUD-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "Pods-samhuri.net-MBProgressHUD-prefix.pch"; path = "../Pods-samhuri.net-MBProgressHUD/Pods-samhuri.net-MBProgressHUD-prefix.pch"; sourceTree = ""; }; + 55BF87C50521DCFA948B4BC4 /* EXTADT.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = EXTADT.m; path = extobjc/EXTADT.m; sourceTree = ""; }; + 55F8BBCDD372EBC1468EADB5 /* Pods-samhuri.net-MBProgressHUD-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "Pods-samhuri.net-MBProgressHUD-dummy.m"; path = "../Pods-samhuri.net-MBProgressHUD/Pods-samhuri.net-MBProgressHUD-dummy.m"; sourceTree = ""; }; + 56065D3D425D00854216D247 /* YapDatabaseViewState.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseViewState.h; path = YapDatabase/Extensions/Views/Internal/YapDatabaseViewState.h; sourceTree = ""; }; + 56086D9ACE3E4202CC5ECF36 /* MTLReflection.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MTLReflection.h; path = Mantle/MTLReflection.h; sourceTree = ""; }; + 57044F55FDAAE1E32649A2E5 /* BITStoreUpdateManagerDelegate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = BITStoreUpdateManagerDelegate.h; path = Classes/BITStoreUpdateManagerDelegate.h; sourceTree = ""; }; + 577BD1F5A8EE64F101B8433C /* CALayer+PromiseKit.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "CALayer+PromiseKit.m"; path = "objc/CALayer+PromiseKit.m"; sourceTree = ""; }; + 58943FAD5ED9486529E4D5EE /* buttonRoundedRegular.png */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.png; name = buttonRoundedRegular.png; path = Resources/buttonRoundedRegular.png; sourceTree = ""; }; + 58A686DC5465A91A51A4F298 /* Pods-Blog-PromiseKit-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-Blog-PromiseKit-dummy.m"; sourceTree = ""; }; + 596E9A8AE15C9C98520E6793 /* BITCrashReportTextFormatter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = BITCrashReportTextFormatter.h; path = Classes/BITCrashReportTextFormatter.h; sourceTree = ""; }; + 5B00B4D81CE931A6E619B059 /* MTLModel+NSCoding.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "MTLModel+NSCoding.m"; path = "Mantle/MTLModel+NSCoding.m"; sourceTree = ""; }; + 5B0C0416A157FF1D419A9E3C /* BITUpdateViewController.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = BITUpdateViewController.m; path = Classes/BITUpdateViewController.m; sourceTree = ""; }; + 5B5B9FC5946CF8F25215E267 /* YapCollectionKey.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapCollectionKey.m; path = YapDatabase/Utilities/YapCollectionKey.m; sourceTree = ""; }; + 5BDC3DAC2F06250D696C8D6A /* BITHockeyHelper.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = BITHockeyHelper.h; path = Classes/BITHockeyHelper.h; sourceTree = ""; }; + 5BE2F353665128803541EB57 /* Arrow@3x.png */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.png; name = "Arrow@3x.png"; path = "Resources/Arrow@3x.png"; sourceTree = ""; }; + 5C4660EB662865AAD461955E /* YapDatabaseSearchResultsViewOptions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseSearchResultsViewOptions.h; path = YapDatabase/Extensions/SearchResults/YapDatabaseSearchResultsViewOptions.h; sourceTree = ""; }; + 5CE71EFCFE9F21DAA8D8EAE9 /* BITFeedbackMessageAttachment.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = BITFeedbackMessageAttachment.m; path = Classes/BITFeedbackMessageAttachment.m; sourceTree = ""; }; + 5CF2FA58D5BE220B9B0E1AF0 /* Pods-Blog-ObjectiveSugar-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-Blog-ObjectiveSugar-prefix.pch"; sourceTree = ""; }; + 5D586790F16A46B9B2DB5302 /* NSMethodSignature+EXT.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSMethodSignature+EXT.h"; path = "extobjc/NSMethodSignature+EXT.h"; sourceTree = ""; }; + 5D952B697E2680C68FE77644 /* DDASLLogCapture.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DDASLLogCapture.m; path = Lumberjack/DDASLLogCapture.m; sourceTree = ""; }; + 5F5979324BB9AF056953732E /* UIActionSheet+PromiseKit.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIActionSheet+PromiseKit.h"; path = "objc/UIActionSheet+PromiseKit.h"; sourceTree = ""; }; + 6001ACFCEFA9ECFF2AEBC1B4 /* feedbackActivity@2x.png */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.png; name = "feedbackActivity@2x.png"; path = "Resources/feedbackActivity@2x.png"; sourceTree = ""; }; + 60E6683EC599ADFFDD043950 /* Pods-Blog-dyci-Private.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-Blog-dyci-Private.xcconfig"; sourceTree = ""; }; + 611A25336B904EA7D08FF5B0 /* YapDatabaseViewOptions.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapDatabaseViewOptions.m; path = YapDatabase/Extensions/Views/YapDatabaseViewOptions.m; sourceTree = ""; }; + 613A94C0F28E81A4BDF2476A /* BITFeedbackManagerDelegate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = BITFeedbackManagerDelegate.h; path = Classes/BITFeedbackManagerDelegate.h; sourceTree = ""; }; + 619FF75A6C351D8E5A76F150 /* Ok.png */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.png; name = Ok.png; path = Resources/Ok.png; sourceTree = ""; }; + 6311E6BB9B1CF3246CC9E400 /* DDContextFilterLogFormatter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DDContextFilterLogFormatter.h; path = Lumberjack/Extensions/DDContextFilterLogFormatter.h; sourceTree = ""; }; + 6316E863B3D956960C6EE011 /* NSObject+MTLComparisonAdditions.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSObject+MTLComparisonAdditions.m"; path = "Mantle/NSObject+MTLComparisonAdditions.m"; sourceTree = ""; }; + 633B5CB45BD5145F5BFC6281 /* Pods-Blog-dyci-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-Blog-dyci-prefix.pch"; sourceTree = ""; }; + 6352535A3B7C66C2B8436637 /* BITCrashManagerDelegate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = BITCrashManagerDelegate.h; path = Classes/BITCrashManagerDelegate.h; sourceTree = ""; }; + 63531E051F24B64054132595 /* YapDatabaseRelationshipEdgePrivate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseRelationshipEdgePrivate.h; path = YapDatabase/Extensions/Relationships/Internal/YapDatabaseRelationshipEdgePrivate.h; sourceTree = ""; }; + 63AFCE5FFB1990294B4EB79F /* Pods-Blog-OMGHTTPURLRQ-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-Blog-OMGHTTPURLRQ-prefix.pch"; sourceTree = ""; }; + 63C68CAC6E2E77059974D594 /* Pods-samhuri.net-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-samhuri.net-dummy.m"; sourceTree = ""; }; + 64BF29DC70A4D4C3D337E071 /* Pods-samhuri.net-Mantle-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "Pods-samhuri.net-Mantle-dummy.m"; path = "../Pods-samhuri.net-Mantle/Pods-samhuri.net-Mantle-dummy.m"; sourceTree = ""; }; + 655CF649A60EDB82EA45F6E9 /* Pods-Blog-Mantle-Private.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-Blog-Mantle-Private.xcconfig"; sourceTree = ""; }; + 6581603B55DBEF96247E815B /* Pods-samhuri.net-ObjectiveSugar-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "Pods-samhuri.net-ObjectiveSugar-prefix.pch"; path = "../Pods-samhuri.net-ObjectiveSugar/Pods-samhuri.net-ObjectiveSugar-prefix.pch"; sourceTree = ""; }; + 6628B911278079EF39964FA6 /* BITFeedbackComposeViewControllerDelegate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = BITFeedbackComposeViewControllerDelegate.h; path = Classes/BITFeedbackComposeViewControllerDelegate.h; sourceTree = ""; }; + 6680957F2DEF012E905E10C6 /* EXTKeyPathCoding.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = EXTKeyPathCoding.h; path = extobjc/EXTKeyPathCoding.h; sourceTree = ""; }; + 66A8CF0B03941003744ADBD7 /* DDTTYLogger.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DDTTYLogger.m; path = Lumberjack/DDTTYLogger.m; sourceTree = ""; }; + 66C92112F781616FECE24051 /* YapCollectionKey.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapCollectionKey.h; path = YapDatabase/Utilities/YapCollectionKey.h; sourceTree = ""; }; + 66D0D227E535211E648DCECD /* BITRectangleImageAnnotation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = BITRectangleImageAnnotation.h; path = Classes/BITRectangleImageAnnotation.h; sourceTree = ""; }; + 66E2AAE6B5911FAAFC70C7F2 /* Pods-Blog-YapDatabase-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-Blog-YapDatabase-prefix.pch"; sourceTree = ""; }; + 67BF5736CAE75627242E1A87 /* YapDatabaseLogging.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseLogging.h; path = YapDatabase/Internal/YapDatabaseLogging.h; sourceTree = ""; }; + 67D375A5192D1EAA9A3541A9 /* YapMemoryTable.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapMemoryTable.m; path = YapDatabase/Internal/YapMemoryTable.m; sourceTree = ""; }; + 681E61D4F1C8003DD0002889 /* MTLModel.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MTLModel.h; path = Mantle/MTLModel.h; sourceTree = ""; }; + 691CB5AAF8BA3BB5039F9A78 /* BITAttributedLabel.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = BITAttributedLabel.h; path = Classes/BITAttributedLabel.h; sourceTree = ""; }; + 691E41760AB736863060BFD1 /* EXTKeyPathCoding.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = EXTKeyPathCoding.h; path = Mantle/extobjc/EXTKeyPathCoding.h; sourceTree = ""; }; + 693A6E55BFD6258368D2CCCF /* Pods-samhuri.net-CocoaLumberjack.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-samhuri.net-CocoaLumberjack.xcconfig"; path = "../Pods-samhuri.net-CocoaLumberjack/Pods-samhuri.net-CocoaLumberjack.xcconfig"; sourceTree = ""; }; + 6954C9E2A73C06E2012F7EB0 /* UIViewController+XIBSupport.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIViewController+XIBSupport.m"; path = "Dynamic Code Injection/dyci/Classes/Injections/UIViewController+XIBSupport.m"; sourceTree = ""; }; + 69CBA72F9B4A621FD149FF4B /* Pods-samhuri.net-OMGHTTPURLRQ-Private.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-samhuri.net-OMGHTTPURLRQ-Private.xcconfig"; path = "../Pods-samhuri.net-OMGHTTPURLRQ/Pods-samhuri.net-OMGHTTPURLRQ-Private.xcconfig"; sourceTree = ""; }; + 6B8C982A031F7F2E060DDE4D /* NSString+FontAwesome.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "NSString+FontAwesome.h"; sourceTree = ""; }; + 6BF3191584A8BD601C23F354 /* BITHockeyBaseManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = BITHockeyBaseManager.m; path = Classes/BITHockeyBaseManager.m; sourceTree = ""; }; + 6C523A395E279637F7F1564D /* Pods-Blog-libextobjc.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-Blog-libextobjc.xcconfig"; sourceTree = ""; }; + 6C6329951268398B43509B8E /* Pods-Blog-CocoaLumberjack-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-Blog-CocoaLumberjack-prefix.pch"; sourceTree = ""; }; + 6D844884C2AF03CF2238630A /* libPods-Blog.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-Blog.a"; sourceTree = BUILT_PRODUCTS_DIR; }; + 6DC5B5A9B11FDC576CAF04FE /* BITFeedbackMessage.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = BITFeedbackMessage.h; path = Classes/BITFeedbackMessage.h; sourceTree = ""; }; + 6E3417CE576C858FDCE23A41 /* BITFeedbackManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = BITFeedbackManager.m; path = Classes/BITFeedbackManager.m; sourceTree = ""; }; + 6E44BD212C5DBCBC81100F48 /* Pods-samhuri.net-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-samhuri.net-acknowledgements.plist"; sourceTree = ""; }; + 6E98D2B274BF59E45E17D265 /* NSDictionary+YapDatabase.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSDictionary+YapDatabase.m"; path = "YapDatabase/Internal/NSDictionary+YapDatabase.m"; sourceTree = ""; }; + 6F372C6AEA560874496EFC18 /* YapDatabaseCloudKitConnection.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseCloudKitConnection.h; path = YapDatabase/Extensions/CloudKit/YapDatabaseCloudKitConnection.h; sourceTree = ""; }; + 6FAAC7962D183FFE47391AB9 /* fr.lproj */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = folder; name = fr.lproj; path = Resources/fr.lproj; sourceTree = ""; }; + 6FECC3F313145297F55198B3 /* de.lproj */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = folder; name = de.lproj; path = Resources/de.lproj; sourceTree = ""; }; + 7069286926FEEF472E209A85 /* YapDatabaseSearchResultsViewConnection.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapDatabaseSearchResultsViewConnection.m; path = YapDatabase/Extensions/SearchResults/YapDatabaseSearchResultsViewConnection.m; sourceTree = ""; }; + 721C63AE8C86BCCE68A7877A /* YapDatabaseExtensionConnection.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseExtensionConnection.h; path = YapDatabase/Extensions/Protocol/YapDatabaseExtensionConnection.h; sourceTree = ""; }; + 7299B776DD5F4DF44EE908A3 /* BITCrashDetailsPrivate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = BITCrashDetailsPrivate.h; path = Classes/BITCrashDetailsPrivate.h; sourceTree = ""; }; + 72A907C9088D4232E6FE4D80 /* YapDatabaseSecondaryIndexPrivate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseSecondaryIndexPrivate.h; path = YapDatabase/Extensions/SecondaryIndex/Internal/YapDatabaseSecondaryIndexPrivate.h; sourceTree = ""; }; + 72FD13B9E14DC246CB80F40E /* NSMutableArray+ObjectiveSugar.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSMutableArray+ObjectiveSugar.m"; path = "Classes/NSMutableArray+ObjectiveSugar.m"; sourceTree = ""; }; + 73ADA74ED86FE7A04A2BBB09 /* BITStoreButton.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = BITStoreButton.m; path = Classes/BITStoreButton.m; sourceTree = ""; }; + 74FDA1ECA100B69FB7C20B81 /* EXTNil.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = EXTNil.m; path = extobjc/EXTNil.m; sourceTree = ""; }; + 753BBA174B25F196ED8249FE /* YapWhitelistBlacklist.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapWhitelistBlacklist.m; path = YapDatabase/Utilities/YapWhitelistBlacklist.m; sourceTree = ""; }; + 7566418EF62E7F824B0049FC /* buttonRoundedDeleteHighlighted.png */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.png; name = buttonRoundedDeleteHighlighted.png; path = Resources/buttonRoundedDeleteHighlighted.png; sourceTree = ""; }; + 75E23EB4429317B9AB38151A /* Pods-Blog-YapDatabase-Private.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-Blog-YapDatabase-Private.xcconfig"; sourceTree = ""; }; + 761CDF1A0221DF27876DBBB4 /* DDMultiFormatter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DDMultiFormatter.m; path = Lumberjack/Extensions/DDMultiFormatter.m; sourceTree = ""; }; + 77D0BA74750D46E665A9B16A /* BITFeedbackActivity.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = BITFeedbackActivity.m; path = Classes/BITFeedbackActivity.m; sourceTree = ""; }; + 79056AB926938D6B5C321C0A /* Pods-samhuri.net-ObjectiveSugar-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "Pods-samhuri.net-ObjectiveSugar-dummy.m"; path = "../Pods-samhuri.net-ObjectiveSugar/Pods-samhuri.net-ObjectiveSugar-dummy.m"; sourceTree = ""; }; + 7988815EE67718287A8BC0D7 /* BITHockeyBaseManagerPrivate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = BITHockeyBaseManagerPrivate.h; path = Classes/BITHockeyBaseManagerPrivate.h; sourceTree = ""; }; + 7A7FF9C82931D6BDB9D100D5 /* YapDatabaseCloudKitPrivate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseCloudKitPrivate.h; path = YapDatabase/Extensions/CloudKit/Internal/YapDatabaseCloudKitPrivate.h; sourceTree = ""; }; + 7AAD0A4416E4C0A3C3B5EB7B /* YapDatabaseViewPrivate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseViewPrivate.h; path = YapDatabase/Extensions/Views/Internal/YapDatabaseViewPrivate.h; sourceTree = ""; }; + 7AF7A347BA85C7686088C524 /* YapDatabaseManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseManager.h; path = YapDatabase/Internal/YapDatabaseManager.h; sourceTree = ""; }; + 7BA9BD8D62A3CB35ECD61CA5 /* MTLTransformerErrorHandling.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = MTLTransformerErrorHandling.h; path = Mantle/MTLTransformerErrorHandling.h; sourceTree = ""; }; + 7BCA3D8DDF1E64072AA60C64 /* YapDatabaseRelationshipOptions.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapDatabaseRelationshipOptions.m; path = YapDatabase/Extensions/Relationships/YapDatabaseRelationshipOptions.m; sourceTree = ""; }; + 7CC64E9CC065CD7F735344B7 /* YapDatabaseCloudKit.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapDatabaseCloudKit.m; path = YapDatabase/Extensions/CloudKit/YapDatabaseCloudKit.m; sourceTree = ""; }; + 7D5BD4AE5569C50E63719936 /* NSDictionary+MTLMappingAdditions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSDictionary+MTLMappingAdditions.h"; path = "Mantle/NSDictionary+MTLMappingAdditions.h"; sourceTree = ""; }; + 7DEB1DA3BA9A26F9296364B6 /* Pods-Blog-PromiseKit-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-Blog-PromiseKit-prefix.pch"; sourceTree = ""; }; + 7E0B7A5DBCFD144BC8F28DDD /* YapCache.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapCache.m; path = YapDatabase/Utilities/YapCache.m; sourceTree = ""; }; + 7E9F4A37E13B3D104EF0335F /* Rectangle@3x.png */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.png; name = "Rectangle@3x.png"; path = "Resources/Rectangle@3x.png"; sourceTree = ""; }; + 7F1B5146C965858B92A60454 /* Pods-samhuri.net-Mantle.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-samhuri.net-Mantle.xcconfig"; path = "../Pods-samhuri.net-Mantle/Pods-samhuri.net-Mantle.xcconfig"; sourceTree = ""; }; + 7F70F01E4CCF1D4E1905D714 /* Pods-Blog-MBProgressHUD-Private.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-Blog-MBProgressHUD-Private.xcconfig"; sourceTree = ""; }; + 801D1290FA2159F94FA473CE /* HockeySDK.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HockeySDK.h; path = Classes/HockeySDK.h; sourceTree = ""; }; + 80B3F1DA0AAE9D640D2CFEC6 /* Pods-samhuri.net-PromiseKit-Private.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-samhuri.net-PromiseKit-Private.xcconfig"; path = "../Pods-samhuri.net-PromiseKit/Pods-samhuri.net-PromiseKit-Private.xcconfig"; sourceTree = ""; }; + 80B569CC06E949026E572280 /* UIView+PromiseKit.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIView+PromiseKit.m"; path = "objc/UIView+PromiseKit.m"; sourceTree = ""; }; + 80C8E42F143FF516C3C9E62A /* YapNull.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapNull.m; path = YapDatabase/Internal/YapNull.m; sourceTree = ""; }; + 8146B2DACA711A176F8EC65B /* QuartzCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS8.3.sdk/System/Library/Frameworks/QuartzCore.framework; sourceTree = DEVELOPER_DIR; }; + 815314C99E35FEFB96DA5AF6 /* Security.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Security.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS8.3.sdk/System/Library/Frameworks/Security.framework; sourceTree = DEVELOPER_DIR; }; + 832AFAEC6C62A621F2B71C67 /* YDBCKAttachRequest.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YDBCKAttachRequest.h; path = YapDatabase/Extensions/CloudKit/Internal/YDBCKAttachRequest.h; sourceTree = ""; }; + 83B614F52437F53C5C14CC23 /* Ok@3x.png */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.png; name = "Ok@3x.png"; path = "Resources/Ok@3x.png"; sourceTree = ""; }; + 83C4D9F9C462505028F391D8 /* feedbackActivity@2x~ipad.png */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.png; name = "feedbackActivity@2x~ipad.png"; path = "Resources/feedbackActivity@2x~ipad.png"; sourceTree = ""; }; + 843E4FAD7FFACCC6D7630FBC /* SFInjectionsNotificationsCenter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SFInjectionsNotificationsCenter.m; path = "Dynamic Code Injection/dyci/Classes/Notifications/SFInjectionsNotificationsCenter.m"; sourceTree = ""; }; + 8484A41F8D3FA714135DCEB2 /* DDTTYLogger.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DDTTYLogger.h; path = Lumberjack/DDTTYLogger.h; sourceTree = ""; }; + 84F0375E28F18CB103E52413 /* BITFeedbackMessage.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = BITFeedbackMessage.m; path = Classes/BITFeedbackMessage.m; sourceTree = ""; }; + 8658767E5AE0054B5D0B1A98 /* buttonRoundedRegular@2x.png */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.png; name = "buttonRoundedRegular@2x.png"; path = "Resources/buttonRoundedRegular@2x.png"; sourceTree = ""; }; + 86AD898C83FEAEC66761F511 /* NSURLConnection+PromiseKit.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSURLConnection+PromiseKit.m"; path = "objc/NSURLConnection+PromiseKit.m"; sourceTree = ""; }; + 88B4CF4F8E92DAF09ED05A0F /* ru.lproj */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = folder; name = ru.lproj; path = Resources/ru.lproj; sourceTree = ""; }; + 8923DA8CD8ED19BB1054776B /* Pods-Blog-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-Blog-dummy.m"; sourceTree = ""; }; + 8974C23ED1F0A7C3B889B3F8 /* YapDatabaseViewChange.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseViewChange.h; path = YapDatabase/Extensions/Views/Utilities/YapDatabaseViewChange.h; sourceTree = ""; }; + 8A1606CB9BC73D20903E3A29 /* buttonRoundedDelete.png */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.png; name = buttonRoundedDelete.png; path = Resources/buttonRoundedDelete.png; sourceTree = ""; }; + 8A3B58037F26564DFDF14C5F /* buttonRoundedRegularHighlighted.png */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.png; name = buttonRoundedRegularHighlighted.png; path = Resources/buttonRoundedRegularHighlighted.png; sourceTree = ""; }; + 8A5A416D773F592806718C79 /* YapDatabaseFilteredViewTypes.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseFilteredViewTypes.h; path = YapDatabase/Extensions/FilteredViews/YapDatabaseFilteredViewTypes.h; sourceTree = ""; }; + 8A73ACD2B5F4E4E72836B259 /* SFFileWatcherDelegate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SFFileWatcherDelegate.h; path = "Dynamic Code Injection/dyci/Classes/FileWatcher/SFFileWatcherDelegate.h"; sourceTree = ""; }; + 8AECA4DD8C3E0714B0121A40 /* YapDatabaseViewChangePrivate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseViewChangePrivate.h; path = YapDatabase/Extensions/Views/Internal/YapDatabaseViewChangePrivate.h; sourceTree = ""; }; + 8B076585AB700AE148E81F98 /* EXTRuntimeExtensions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = EXTRuntimeExtensions.h; path = Mantle/extobjc/EXTRuntimeExtensions.h; sourceTree = ""; }; + 8B49AB2BB16A44111D9E44FE /* YapDatabaseFullTextSearchTransaction.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapDatabaseFullTextSearchTransaction.m; path = YapDatabase/Extensions/FullTextSearch/YapDatabaseFullTextSearchTransaction.m; sourceTree = ""; }; + 8C1222BFAD408530DF43CE93 /* YapDatabaseFullTextSearchHandler.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapDatabaseFullTextSearchHandler.m; path = YapDatabase/Extensions/FullTextSearch/YapDatabaseFullTextSearchHandler.m; sourceTree = ""; }; + 8C75D3C67A76B2CAAB81F5A7 /* BITFeedbackComposeViewController.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = BITFeedbackComposeViewController.m; path = Classes/BITFeedbackComposeViewController.m; sourceTree = ""; }; + 8D3C51219A6CD20F719844B0 /* YapDatabaseExtension.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseExtension.h; path = YapDatabase/Extensions/Protocol/YapDatabaseExtension.h; sourceTree = ""; }; + 8D4323EE31234804931D429D /* BITKeychainUtils.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = BITKeychainUtils.h; path = Classes/BITKeychainUtils.h; sourceTree = ""; }; + 8D4FA1147CF56685CEB4CD8C /* BITImageAnnotation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = BITImageAnnotation.h; path = Classes/BITImageAnnotation.h; sourceTree = ""; }; + 8E44FCD68DFA345E0C0DDE4B /* Pods-Blog-CocoaLumberjack-Private.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-Blog-CocoaLumberjack-Private.xcconfig"; sourceTree = ""; }; + 8ED3891C4132E5F3D987DA3B /* DDContextFilterLogFormatter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DDContextFilterLogFormatter.m; path = Lumberjack/Extensions/DDContextFilterLogFormatter.m; sourceTree = ""; }; + 8F61AF671D23ECCDDCACDCCB /* YapDatabaseViewRangeOptions.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapDatabaseViewRangeOptions.m; path = YapDatabase/Extensions/Views/Utilities/YapDatabaseViewRangeOptions.m; sourceTree = ""; }; + 8F7B0C6041AE7A7D4840CE10 /* YapDatabaseFilteredViewTransaction.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapDatabaseFilteredViewTransaction.m; path = YapDatabase/Extensions/FilteredViews/YapDatabaseFilteredViewTransaction.m; sourceTree = ""; }; + 8F89FE8BE75FF19BA29E62F3 /* BITHTTPOperation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = BITHTTPOperation.h; path = Classes/BITHTTPOperation.h; sourceTree = ""; }; + 8FC31F546D407C5CA2178EEC /* BITUpdateManagerPrivate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = BITUpdateManagerPrivate.h; path = Classes/BITUpdateManagerPrivate.h; sourceTree = ""; }; + 8FC9BF63F71BAFDF28AB4597 /* BITRectangleImageAnnotation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = BITRectangleImageAnnotation.m; path = Classes/BITRectangleImageAnnotation.m; sourceTree = ""; }; + 908FD89BD83CABAE73497EB3 /* Pods-samhuri.net-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-samhuri.net-acknowledgements.markdown"; sourceTree = ""; }; + 9114C6F1CBD9B1AC3E0997C0 /* NSError+MTLModelException.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSError+MTLModelException.h"; path = "Mantle/NSError+MTLModelException.h"; sourceTree = ""; }; + 928000BEBBA061C129953EEB /* Pods-samhuri.net.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-samhuri.net.release.xcconfig"; sourceTree = ""; }; + 92C665F6305FD98E3F869913 /* CrashReporter.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CrashReporter.framework; path = Vendor/CrashReporter.framework; sourceTree = ""; }; + 92E383A8776E341CD4CAA48A /* Pods-Blog-CocoaLumberjack.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-Blog-CocoaLumberjack.xcconfig"; sourceTree = ""; }; + 933A85934CD7833C22BE6788 /* UIViewController+PromiseKit.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIViewController+PromiseKit.m"; path = "objc/UIViewController+PromiseKit.m"; sourceTree = ""; }; + 95087C4EE90196EFC714E9E3 /* Pods-Blog-dyci.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-Blog-dyci.xcconfig"; sourceTree = ""; }; + 950D8ECC84F1986A667311E6 /* Pods-Blog-YapDatabase-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-Blog-YapDatabase-dummy.m"; sourceTree = ""; }; + 95CF93105862D466397FF4B1 /* YapTouch.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapTouch.h; path = YapDatabase/Internal/YapTouch.h; sourceTree = ""; }; + 95F07D0CC3B8F4224850657A /* NSString+ObjectiveSugar.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSString+ObjectiveSugar.h"; path = "Classes/NSString+ObjectiveSugar.h"; sourceTree = ""; }; + 96267790E8271AABDE698E41 /* YapDatabaseExtension.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapDatabaseExtension.m; path = YapDatabase/Extensions/Protocol/YapDatabaseExtension.m; sourceTree = ""; }; + 9632F201B5A5081210A0C628 /* YapDatabaseCloudKitOptions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseCloudKitOptions.h; path = YapDatabase/Extensions/CloudKit/YapDatabaseCloudKitOptions.h; sourceTree = ""; }; + 96761BC6195A8322DCAAD104 /* YapDatabaseConnectionDefaults.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapDatabaseConnectionDefaults.m; path = YapDatabase/Internal/YapDatabaseConnectionDefaults.m; sourceTree = ""; }; + 977CF34FEDCC96F3250AEB25 /* YapDatabaseFullTextSearchConnection.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapDatabaseFullTextSearchConnection.m; path = YapDatabase/Extensions/FullTextSearch/YapDatabaseFullTextSearchConnection.m; sourceTree = ""; }; + 97ECBA0283AE5FF1560FB2E1 /* YDBCKChangeSet.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YDBCKChangeSet.h; path = YapDatabase/Extensions/CloudKit/Utilities/YDBCKChangeSet.h; sourceTree = ""; }; + 99019BE2A98353593D8C2EC6 /* Pods-samhuri.net-OMGHTTPURLRQ-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "Pods-samhuri.net-OMGHTTPURLRQ-dummy.m"; path = "../Pods-samhuri.net-OMGHTTPURLRQ/Pods-samhuri.net-OMGHTTPURLRQ-dummy.m"; sourceTree = ""; }; + 99521752C217B4336CB569C8 /* YapDatabaseSecondaryIndexSetup.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseSecondaryIndexSetup.h; path = YapDatabase/Extensions/SecondaryIndex/YapDatabaseSecondaryIndexSetup.h; sourceTree = ""; }; + 9973582A5A4A1ABA5E58F4EC /* BITActivityIndicatorButton.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = BITActivityIndicatorButton.m; path = Classes/BITActivityIndicatorButton.m; sourceTree = ""; }; + 998A500C8011BA755A76F99E /* YapDatabaseCloudKitTransaction.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapDatabaseCloudKitTransaction.m; path = YapDatabase/Extensions/CloudKit/YapDatabaseCloudKitTransaction.m; sourceTree = ""; }; + 9AB446BEFF53A4FBAF8114C9 /* Pods-Blog-Mantle.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-Blog-Mantle.xcconfig"; sourceTree = ""; }; + 9ADDCCAED549BF8FC0A1E62A /* EXTScope.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = EXTScope.m; path = extobjc/EXTScope.m; sourceTree = ""; }; + 9BA8961ABB0603C8F593E999 /* NSArray+ObjectiveSugar.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSArray+ObjectiveSugar.h"; path = "Classes/NSArray+ObjectiveSugar.h"; sourceTree = ""; }; + 9BACB6D0887A9C86E8002A81 /* YapDatabaseViewTypes.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseViewTypes.h; path = YapDatabase/Extensions/Views/YapDatabaseViewTypes.h; sourceTree = ""; }; + 9BDFF8E55AE2E7785B63D958 /* CALayer+PromiseKit.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "CALayer+PromiseKit.h"; path = "objc/CALayer+PromiseKit.h"; sourceTree = ""; }; + 9C2138252A4D097A38516BD3 /* NSValueTransformer+MTLInversionAdditions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSValueTransformer+MTLInversionAdditions.h"; path = "Mantle/NSValueTransformer+MTLInversionAdditions.h"; sourceTree = ""; }; + 9CBE9CD5457F95EC9CCB50E1 /* FontAwesome.ttf */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = file; name = FontAwesome.ttf; path = Resources/FontAwesome.ttf; sourceTree = ""; }; + 9CD9C39CB45631556C93882F /* NSNotificationCenter+PromiseKit.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSNotificationCenter+PromiseKit.h"; path = "objc/NSNotificationCenter+PromiseKit.h"; sourceTree = ""; }; + 9CF9D320F545EA3CC322ED59 /* Blur@2x.png */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.png; name = "Blur@2x.png"; path = "Resources/Blur@2x.png"; sourceTree = ""; }; + 9D0A672919FBFFED7000A248 /* YapDatabaseViewPage.mm */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.cpp.objcpp; name = YapDatabaseViewPage.mm; path = YapDatabase/Extensions/Views/Internal/YapDatabaseViewPage.mm; sourceTree = ""; }; + 9D3B4B82336DE8E1ECE450F8 /* BITFeedbackManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = BITFeedbackManager.h; path = Classes/BITFeedbackManager.h; sourceTree = ""; }; + 9DE1031504F24E3C0AD4A566 /* libPods-Blog-libextobjc.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-Blog-libextobjc.a"; sourceTree = BUILT_PRODUCTS_DIR; }; + 9DF35933B404EF6610615A32 /* YDBCKChangeQueue.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YDBCKChangeQueue.m; path = YapDatabase/Extensions/CloudKit/Internal/YDBCKChangeQueue.m; sourceTree = ""; }; + 9E275F2737A058EBEE1A07B6 /* pt-PT.lproj */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = folder; name = "pt-PT.lproj"; path = "Resources/pt-PT.lproj"; sourceTree = ""; }; + 9E3B403889BC6F9D19D277C6 /* MTLModel.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MTLModel.m; path = Mantle/MTLModel.m; sourceTree = ""; }; + 9E8578CF5A3F9A17E7DA4429 /* YapDatabaseSearchResultsViewTransaction.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseSearchResultsViewTransaction.h; path = YapDatabase/Extensions/SearchResults/YapDatabaseSearchResultsViewTransaction.h; sourceTree = ""; }; + 9EE8246FB62470DCA426D2A8 /* SystemConfiguration.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SystemConfiguration.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS8.3.sdk/System/Library/Frameworks/SystemConfiguration.framework; sourceTree = DEVELOPER_DIR; }; + 9F44670C425F0B0B5D1DA6A8 /* YapMurmurHash.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapMurmurHash.h; path = YapDatabase/Utilities/YapMurmurHash.h; sourceTree = ""; }; + 9F6C220F25CE1CE86D0F0E82 /* YapDatabaseViewPage.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseViewPage.h; path = YapDatabase/Extensions/Views/Internal/YapDatabaseViewPage.h; sourceTree = ""; }; + 9F9EAB7FE149708F18679F88 /* Pods-Blog-ObjectiveSugar-Private.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-Blog-ObjectiveSugar-Private.xcconfig"; sourceTree = ""; }; + A00C1B96110873C1AFD2F0CB /* YapDatabaseFullTextSearchConnection.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseFullTextSearchConnection.h; path = YapDatabase/Extensions/FullTextSearch/YapDatabaseFullTextSearchConnection.h; sourceTree = ""; }; + A023FC3597928617A456E3AB /* HockeySDKPrivate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HockeySDKPrivate.h; path = Classes/HockeySDKPrivate.h; sourceTree = ""; }; + A07DB2BC98BD53CB96177A33 /* Promise.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = Promise.h; path = objc/PromiseKit/Promise.h; sourceTree = ""; }; + A090016DDA06CAFA44418CEF /* NSString+ObjectiveSugar.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSString+ObjectiveSugar.m"; path = "Classes/NSString+ObjectiveSugar.m"; sourceTree = ""; }; + A0982AB6BA7EFA84AEB379FC /* EXTConcreteProtocol.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = EXTConcreteProtocol.m; path = extobjc/EXTConcreteProtocol.m; sourceTree = ""; }; + A14AAD669B1EAE61A312D645 /* libPods-Blog-OMGHTTPURLRQ.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-Blog-OMGHTTPURLRQ.a"; sourceTree = BUILT_PRODUCTS_DIR; }; + A191A2D84AFBCF9B4962F1C5 /* YDBCKRecord.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YDBCKRecord.m; path = YapDatabase/Extensions/CloudKit/Utilities/YDBCKRecord.m; sourceTree = ""; }; + A1D63A224DD1DDB55F3E0845 /* BITAppVersionMetaInfo.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = BITAppVersionMetaInfo.m; path = Classes/BITAppVersionMetaInfo.m; sourceTree = ""; }; + A216285800003DE12DBB5C40 /* HockeySDKFeatureConfig.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = HockeySDKFeatureConfig.h; path = Classes/HockeySDKFeatureConfig.h; sourceTree = ""; }; + A2C466CF4C38E61C56CD512C /* YapDatabaseRelationshipTransaction.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseRelationshipTransaction.h; path = YapDatabase/Extensions/Relationships/YapDatabaseRelationshipTransaction.h; sourceTree = ""; }; + A2CFBB2A4116F916F5E613CB /* YapDatabaseRelationshipTransaction.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapDatabaseRelationshipTransaction.m; path = YapDatabase/Extensions/Relationships/YapDatabaseRelationshipTransaction.m; sourceTree = ""; }; + A32A01FF0A29D45FACE89BAA /* Pods-Blog-ObjectiveSugar.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-Blog-ObjectiveSugar.xcconfig"; sourceTree = ""; }; + A353569B80DC3431CBB4045F /* BITKeychainUtils.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = BITKeychainUtils.m; path = Classes/BITKeychainUtils.m; sourceTree = ""; }; + A3D858279C71419EA04223FF /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS8.3.sdk/System/Library/Frameworks/Foundation.framework; sourceTree = DEVELOPER_DIR; }; + A3EF2F7405C1C6EF86062764 /* YDBCKChangeRecord.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YDBCKChangeRecord.h; path = YapDatabase/Extensions/CloudKit/Internal/YDBCKChangeRecord.h; sourceTree = ""; }; + A47AFE0CD90EC2F611BBB170 /* Blur@3x.png */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.png; name = "Blur@3x.png"; path = "Resources/Blur@3x.png"; sourceTree = ""; }; + A61395B78F311A97B3E1F8AE /* bg.png */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.png; name = bg.png; path = Resources/bg.png; sourceTree = ""; }; + A6CC972B2528EAAD054CE30C /* Pods-samhuri.net-Mantle-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "Pods-samhuri.net-Mantle-prefix.pch"; path = "../Pods-samhuri.net-Mantle/Pods-samhuri.net-Mantle-prefix.pch"; sourceTree = ""; }; + A6DF7C8CBBE04CB9BF174129 /* Pods-Blog-libextobjc-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-Blog-libextobjc-dummy.m"; sourceTree = ""; }; + A6F75773276C7FC1A2618B17 /* BITBlurImageAnnotation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = BITBlurImageAnnotation.h; path = Classes/BITBlurImageAnnotation.h; sourceTree = ""; }; + A788ADC1E50F277FB1BFEF64 /* YapDatabaseLogging.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapDatabaseLogging.m; path = YapDatabase/Internal/YapDatabaseLogging.m; sourceTree = ""; }; + A7BABB824F1E7F02675025B9 /* Pods-samhuri.net-Mantle-Private.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-samhuri.net-Mantle-Private.xcconfig"; path = "../Pods-samhuri.net-Mantle/Pods-samhuri.net-Mantle-Private.xcconfig"; sourceTree = ""; }; + A7CEB319B56B9E9E04D27915 /* extobjc.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = extobjc.h; path = extobjc/extobjc.h; sourceTree = ""; }; + A8262161BF27E52DDFD6120E /* YapDatabaseViewRangeOptionsPrivate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseViewRangeOptionsPrivate.h; path = YapDatabase/Extensions/Views/Internal/YapDatabaseViewRangeOptionsPrivate.h; sourceTree = ""; }; + A8FB3736E273551AA4283DB3 /* BITHockeyBaseViewController.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = BITHockeyBaseViewController.h; path = Classes/BITHockeyBaseViewController.h; sourceTree = ""; }; + A943A075B8A3EDF198FC13BF /* YapDatabaseCloudKitTransaction.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseCloudKitTransaction.h; path = YapDatabase/Extensions/CloudKit/YapDatabaseCloudKitTransaction.h; sourceTree = ""; }; + A94829669A15A21AC89295A3 /* EXTSafeCategory.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = EXTSafeCategory.h; path = extobjc/EXTSafeCategory.h; sourceTree = ""; }; + A948FC7FF58BAB60A6134B4B /* iconCamera.png */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.png; name = iconCamera.png; path = Resources/iconCamera.png; sourceTree = ""; }; + AAC5621AA7FF6C4DFAE147B1 /* YapDatabaseCloudKitTypes.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapDatabaseCloudKitTypes.m; path = YapDatabase/Extensions/CloudKit/YapDatabaseCloudKitTypes.m; sourceTree = ""; }; + AAC5F68409702EBBD7F41EAB /* YDBCKChangeQueue.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YDBCKChangeQueue.h; path = YapDatabase/Extensions/CloudKit/Internal/YDBCKChangeQueue.h; sourceTree = ""; }; + ABFFB19D5791381D1E38B388 /* BITFeedbackUserDataViewController.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = BITFeedbackUserDataViewController.h; path = Classes/BITFeedbackUserDataViewController.h; sourceTree = ""; }; + AC01E71C0E478E54D28AA370 /* YapDatabaseSearchQueuePrivate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseSearchQueuePrivate.h; path = YapDatabase/Extensions/SearchResults/YapDatabaseSearchQueuePrivate.h; sourceTree = ""; }; + AC260E95E5A65BFACD3FEE0B /* UIFont+FontAwesome.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "UIFont+FontAwesome.h"; sourceTree = ""; }; + AC9D8A4B26B7D42DBB165638 /* YapSet.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapSet.m; path = YapDatabase/Utilities/YapSet.m; sourceTree = ""; }; + ACD6CDCFDCB6D2F7EB595AAB /* OMGHTTPURLRQ.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = OMGHTTPURLRQ.m; sourceTree = ""; }; + AD0492E7BCFD1A6D35ED1432 /* YapDatabaseExtensionTransaction.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapDatabaseExtensionTransaction.m; path = YapDatabase/Extensions/Protocol/YapDatabaseExtensionTransaction.m; sourceTree = ""; }; + AD94996C5ACAD93E2413FFF5 /* YapTouch.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapTouch.m; path = YapDatabase/Internal/YapTouch.m; sourceTree = ""; }; + ADBF36B942CC540655370C67 /* YapDatabaseViewMappingsPrivate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseViewMappingsPrivate.h; path = YapDatabase/Extensions/Views/Internal/YapDatabaseViewMappingsPrivate.h; sourceTree = ""; }; + AEA9A0D786DC0A178D05F2BE /* YapDatabaseSecondaryIndexTransaction.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapDatabaseSecondaryIndexTransaction.m; path = YapDatabase/Extensions/SecondaryIndex/YapDatabaseSecondaryIndexTransaction.m; sourceTree = ""; }; + AED01E12B72132E11586734E /* YapDatabaseSecondaryIndexSetup.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapDatabaseSecondaryIndexSetup.m; path = YapDatabase/Extensions/SecondaryIndex/YapDatabaseSecondaryIndexSetup.m; sourceTree = ""; }; + AEF21CF6CF8B400C23953D19 /* Pods-samhuri.net-CocoaLumberjack-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "Pods-samhuri.net-CocoaLumberjack-dummy.m"; path = "../Pods-samhuri.net-CocoaLumberjack/Pods-samhuri.net-CocoaLumberjack-dummy.m"; sourceTree = ""; }; + AF897353CA3A0CD779312588 /* Pods-Blog-CocoaLumberjack-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-Blog-CocoaLumberjack-dummy.m"; sourceTree = ""; }; + AFDB6FB23854E1D150B8A1F0 /* Pods-Blog-PromiseKit-Private.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-Blog-PromiseKit-Private.xcconfig"; sourceTree = ""; }; + AFE481C8464A7599F22AC98E /* BITStoreUpdateManagerPrivate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = BITStoreUpdateManagerPrivate.h; path = Classes/BITStoreUpdateManagerPrivate.h; sourceTree = ""; }; + B020B116677D81960C8473B5 /* Pods-samhuri.net-ObjectiveSugar.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-samhuri.net-ObjectiveSugar.xcconfig"; path = "../Pods-samhuri.net-ObjectiveSugar/Pods-samhuri.net-ObjectiveSugar.xcconfig"; sourceTree = ""; }; + B08CC53317FA226DE7E2F027 /* Cancel@2x.png */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.png; name = "Cancel@2x.png"; path = "Resources/Cancel@2x.png"; sourceTree = ""; }; + B13C12B74424099A7F6CDA66 /* OMGHTTPURLRQ.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = OMGHTTPURLRQ.h; sourceTree = ""; }; + B1462766B4B4AC72000D7B03 /* YapDatabaseFullTextSearchSnippetOptions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseFullTextSearchSnippetOptions.h; path = YapDatabase/Extensions/FullTextSearch/YapDatabaseFullTextSearchSnippetOptions.h; sourceTree = ""; }; + B20CE3A5B5E149600152DC07 /* SFFileWatcher.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = SFFileWatcher.m; path = "Dynamic Code Injection/dyci/Classes/FileWatcher/SFFileWatcher.m"; sourceTree = ""; }; + B278467453160CB24D460AD6 /* Promise+Pause.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "Promise+Pause.h"; path = "objc/PromiseKit/Promise+Pause.h"; sourceTree = ""; }; + B27E10EB84984DC1E2D4ADDC /* Pods-Blog-HockeySDK-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-Blog-HockeySDK-dummy.m"; sourceTree = ""; }; + B280C102D9EA5CD778F7B27D /* it.lproj */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = folder; name = it.lproj; path = Resources/it.lproj; sourceTree = ""; }; + B2DCBAE0AAE04BFDF3DA4C76 /* YapDatabaseViewChange.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapDatabaseViewChange.m; path = YapDatabase/Extensions/Views/Utilities/YapDatabaseViewChange.m; sourceTree = ""; }; + B332B963262FCDB26F30025B /* BITFeedbackMessageAttachment.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = BITFeedbackMessageAttachment.h; path = Classes/BITFeedbackMessageAttachment.h; sourceTree = ""; }; + B40A12346A638AE5BB40D958 /* OMGUserAgent.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = OMGUserAgent.h; sourceTree = ""; }; + B44880E1FB59FC9E15DAA55A /* Pods-Blog-OMGHTTPURLRQ-Private.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-Blog-OMGHTTPURLRQ-Private.xcconfig"; sourceTree = ""; }; + B46A0572C7606D9CC10F8089 /* NSArray+ObjectiveSugar.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSArray+ObjectiveSugar.m"; path = "Classes/NSArray+ObjectiveSugar.m"; sourceTree = ""; }; + B47DEF53E78C1B11C9AE15AB /* UIAlertView+PromiseKit.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIAlertView+PromiseKit.h"; path = "objc/UIAlertView+PromiseKit.h"; sourceTree = ""; }; + B5145EAD52ED69ACF83CEF7F /* Pods-samhuri.net-YapDatabase.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-samhuri.net-YapDatabase.xcconfig"; path = "../Pods-samhuri.net-YapDatabase/Pods-samhuri.net-YapDatabase.xcconfig"; sourceTree = ""; }; + B5147EFC78015B4FD83F9A64 /* NSValueTransformer+MTLInversionAdditions.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSValueTransformer+MTLInversionAdditions.m"; path = "Mantle/NSValueTransformer+MTLInversionAdditions.m"; sourceTree = ""; }; + B565E1CEAC764B1FE933CC01 /* YapDatabaseSearchQueue.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapDatabaseSearchQueue.m; path = YapDatabase/Extensions/SearchResults/YapDatabaseSearchQueue.m; sourceTree = ""; }; + B5B6A6CDAC99B9CA07E280F5 /* YapDatabaseRelationshipConnection.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseRelationshipConnection.h; path = YapDatabase/Extensions/Relationships/YapDatabaseRelationshipConnection.h; sourceTree = ""; }; + B62156CBD83F6B9D3F790550 /* NSString+FontAwesome.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "NSString+FontAwesome.m"; sourceTree = ""; }; + B684D5708CAD4B3AF1CA9744 /* YapDatabaseRelationshipOptions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseRelationshipOptions.h; path = YapDatabase/Extensions/Relationships/YapDatabaseRelationshipOptions.h; sourceTree = ""; }; + B699D2EB04366EDE0133874F /* NSDictionary+MTLManipulationAdditions.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSDictionary+MTLManipulationAdditions.m"; path = "Mantle/NSDictionary+MTLManipulationAdditions.m"; sourceTree = ""; }; + B7308DE79E6B59A6BCED0E55 /* NSNumber+ObjectiveSugar.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSNumber+ObjectiveSugar.m"; path = "Classes/NSNumber+ObjectiveSugar.m"; sourceTree = ""; }; + B8307E4AD69BA3F0BD61CDE8 /* MBProgressHUD.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = MBProgressHUD.m; sourceTree = ""; }; + B8927058D6ECCD98D7E28039 /* EXTSelectorChecking.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = EXTSelectorChecking.m; path = extobjc/EXTSelectorChecking.m; sourceTree = ""; }; + B8A33987040C1995BF0E07D4 /* YapDatabaseFilteredViewConnection.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseFilteredViewConnection.h; path = YapDatabase/Extensions/FilteredViews/YapDatabaseFilteredViewConnection.h; sourceTree = ""; }; + B8D383E28B52278F1229ADB2 /* BITCrashDetails.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = BITCrashDetails.h; path = Classes/BITCrashDetails.h; sourceTree = ""; }; + B9C0C260A159F0A4EF7A808D /* IconGradient@2x.png */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.png; name = "IconGradient@2x.png"; path = "Resources/IconGradient@2x.png"; sourceTree = ""; }; + BA207FCB169025B832A68973 /* YDBCKRecordInfo.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YDBCKRecordInfo.m; path = YapDatabase/Extensions/CloudKit/Utilities/YDBCKRecordInfo.m; sourceTree = ""; }; + BA776DEBA98EB4903E84A0F8 /* hu.lproj */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = folder; name = hu.lproj; path = Resources/hu.lproj; sourceTree = ""; }; + BADB20F04C6004120E6DA699 /* YapDatabaseFullTextSearch.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapDatabaseFullTextSearch.m; path = YapDatabase/Extensions/FullTextSearch/YapDatabaseFullTextSearch.m; sourceTree = ""; }; + BBECDB2613259DCA4284788C /* DDASLLogger.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DDASLLogger.h; path = Lumberjack/DDASLLogger.h; sourceTree = ""; }; + BDD742FFC289164ADC60BFEC /* YDBCKMappingTableInfo.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YDBCKMappingTableInfo.h; path = YapDatabase/Extensions/CloudKit/Internal/YDBCKMappingTableInfo.h; sourceTree = ""; }; + BE2D2CD73AFBEA265468CA73 /* YapDatabaseConnection.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseConnection.h; path = YapDatabase/YapDatabaseConnection.h; sourceTree = ""; }; + BE58D22186EDD7783D992802 /* BITAuthenticationViewController.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = BITAuthenticationViewController.m; path = Classes/BITAuthenticationViewController.m; sourceTree = ""; }; + BEE885DFA7204CFFFEBD7025 /* YapMurmurHash.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapMurmurHash.m; path = YapDatabase/Utilities/YapMurmurHash.m; sourceTree = ""; }; + BF49CAFCBEC806E09309C380 /* libPods-Blog-MBProgressHUD.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-Blog-MBProgressHUD.a"; sourceTree = BUILT_PRODUCTS_DIR; }; + BFA1C7814DEAAEE25E98564F /* BITHockeyAttachment.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = BITHockeyAttachment.m; path = Classes/BITHockeyAttachment.m; sourceTree = ""; }; + BFDEED53E120CF1A10841E3C /* YapDatabaseConnection.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapDatabaseConnection.m; path = YapDatabase/YapDatabaseConnection.m; sourceTree = ""; }; + C056EFCA0A8D5797081D5858 /* BITAuthenticator.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = BITAuthenticator.h; path = Classes/BITAuthenticator.h; sourceTree = ""; }; + C065A640C0472962CC3D0BEA /* BITActivityIndicatorButton.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = BITActivityIndicatorButton.h; path = Classes/BITActivityIndicatorButton.h; sourceTree = ""; }; + C18EA8F19C7A63910C2CC3D4 /* YapDatabaseOptions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseOptions.h; path = YapDatabase/YapDatabaseOptions.h; sourceTree = ""; }; + C2045BE9B71B985A9944A51A /* NSDictionary+ObjectiveSugar.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSDictionary+ObjectiveSugar.m"; path = "Classes/NSDictionary+ObjectiveSugar.m"; sourceTree = ""; }; + C274E9E3E7429EAF8313E3DD /* libPods-samhuri.net-MBProgressHUD.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-samhuri.net-MBProgressHUD.a"; sourceTree = BUILT_PRODUCTS_DIR; }; + C316350EDAA44A020382C3D2 /* UIView+PromiseKit.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "UIView+PromiseKit.h"; path = "objc/UIView+PromiseKit.h"; sourceTree = ""; }; + C3804B73F2EC0DCA400A52F7 /* Pods-Blog-Mantle-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-Blog-Mantle-dummy.m"; sourceTree = ""; }; + C42CFB31A20D6166365F15D3 /* BITWebTableViewCell.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = BITWebTableViewCell.h; path = Classes/BITWebTableViewCell.h; sourceTree = ""; }; + C47DA80EBDB0164E9BAFB0B5 /* DDMultiFormatter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DDMultiFormatter.h; path = Lumberjack/Extensions/DDMultiFormatter.h; sourceTree = ""; }; + C58F952C5F5929EC34DAD464 /* SFInjectionsNotificationsCenter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SFInjectionsNotificationsCenter.h; path = "Dynamic Code Injection/dyci/Classes/Notifications/SFInjectionsNotificationsCenter.h"; sourceTree = ""; }; + C5B718F30DB4FF5860248697 /* feedbackActivity@3x.png */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.png; name = "feedbackActivity@3x.png"; path = "Resources/feedbackActivity@3x.png"; sourceTree = ""; }; + C63C6B4830C908886C0A3DFE /* Arrow.png */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.png; name = Arrow.png; path = Resources/Arrow.png; sourceTree = ""; }; + C6A184DE8B0C02C61E907BC6 /* NSSet+ClassesList.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSSet+ClassesList.h"; path = "Dynamic Code Injection/dyci/Classes/Categories/NSSet+ClassesList.h"; sourceTree = ""; }; + C73DF6F02141EA46FDC67A4F /* YapDatabaseView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseView.h; path = YapDatabase/Extensions/Views/YapDatabaseView.h; sourceTree = ""; }; + C74F0DEAF54F1DE7FCC35457 /* BITHockeyHelper.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = BITHockeyHelper.m; path = Classes/BITHockeyHelper.m; sourceTree = ""; }; + C7613C63CBEE0C0E474AF6E0 /* YapDatabaseTransaction.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapDatabaseTransaction.m; path = YapDatabase/YapDatabaseTransaction.m; sourceTree = ""; }; + C762D834D70422D3F7A56BFD /* EXTADT.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = EXTADT.h; path = extobjc/EXTADT.h; sourceTree = ""; }; + C807DB918DC08D171C49611E /* YapDatabaseStatement.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapDatabaseStatement.m; path = YapDatabase/Internal/YapDatabaseStatement.m; sourceTree = ""; }; + C8111B094F36B76CC8BEED1C /* YapDatabaseSecondaryIndexConnection.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseSecondaryIndexConnection.h; path = YapDatabase/Extensions/SecondaryIndex/YapDatabaseSecondaryIndexConnection.h; sourceTree = ""; }; + C8D0CBA0F0B7FF4B1052CB92 /* metamacros.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = metamacros.h; path = Mantle/extobjc/metamacros.h; sourceTree = ""; }; + C8F81CCAFE1ED63F6653D4B9 /* nl.lproj */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = folder; name = nl.lproj; path = Resources/nl.lproj; sourceTree = ""; }; + C90CF2A7FD494577F199A4EC /* AssetsLibrary.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AssetsLibrary.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS8.3.sdk/System/Library/Frameworks/AssetsLibrary.framework; sourceTree = DEVELOPER_DIR; }; + CA2C8071DC8343F160D1F9BE /* Pods-Blog-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-Blog-acknowledgements.plist"; sourceTree = ""; }; + CA5A3F80D0844B1CE68C0CEA /* authorize_denied@3x.png */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.png; name = "authorize_denied@3x.png"; path = "Resources/authorize_denied@3x.png"; sourceTree = ""; }; + CA617FB64E3352C20A0DC0C7 /* Pods-Blog-MBProgressHUD.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-Blog-MBProgressHUD.xcconfig"; sourceTree = ""; }; + CB51FD7660ED1FF6F7B15E8C /* YapDatabaseQuery.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapDatabaseQuery.m; path = YapDatabase/Utilities/YapDatabaseQuery.m; sourceTree = ""; }; + CB635E4DC320564EEB017618 /* Pods-samhuri.net-PromiseKit-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "Pods-samhuri.net-PromiseKit-dummy.m"; path = "../Pods-samhuri.net-PromiseKit/Pods-samhuri.net-PromiseKit-dummy.m"; sourceTree = ""; }; + CB9CE60E51F3C872D75ABCC3 /* YapDatabaseConnectionState.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapDatabaseConnectionState.m; path = YapDatabase/Internal/YapDatabaseConnectionState.m; sourceTree = ""; }; + CD043C86B48084EEDFD46BAE /* NSSet+ObjectiveSugar.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSSet+ObjectiveSugar.m"; path = "Classes/NSSet+ObjectiveSugar.m"; sourceTree = ""; }; + CD30F7532A22486925B12E4A /* Promise+When.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "Promise+When.h"; path = "objc/PromiseKit/Promise+When.h"; sourceTree = ""; }; + CD8F14FC27B9F842F9FC0F9E /* Pods-Blog-Mantle-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-Blog-Mantle-prefix.pch"; sourceTree = ""; }; + CDE6C69A5800B0A1879965FB /* YapDatabaseFilteredViewPrivate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseFilteredViewPrivate.h; path = YapDatabase/Extensions/FilteredViews/Internal/YapDatabaseFilteredViewPrivate.h; sourceTree = ""; }; + CDF42EFCEE2C683943A04D83 /* MBProgressHUD.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = MBProgressHUD.h; sourceTree = ""; }; + CEEB9080907A1F3C429BC151 /* PMKPromise+Pause.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "PMKPromise+Pause.m"; path = "objc/PMKPromise+Pause.m"; sourceTree = ""; }; + CF579412F985B76BC693CD19 /* BITAuthenticationViewController.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = BITAuthenticationViewController.h; path = Classes/BITAuthenticationViewController.h; sourceTree = ""; }; + CFEB0BFB2D727FD10003F1FC /* libPods-Blog-YapDatabase.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-Blog-YapDatabase.a"; sourceTree = BUILT_PRODUCTS_DIR; }; + D02CD2D8EE77AAE8D582FD34 /* BITHockeyBaseViewController.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = BITHockeyBaseViewController.m; path = Classes/BITHockeyBaseViewController.m; sourceTree = ""; }; + D02D49B172DB14A13C0AF052 /* BITUpdateManager.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = BITUpdateManager.m; path = Classes/BITUpdateManager.m; sourceTree = ""; }; + D0609C4BB316F6C406515655 /* metamacros.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = metamacros.h; path = extobjc/metamacros.h; sourceTree = ""; }; + D09964036F500F44D0E6439F /* PromiseKit.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = PromiseKit.h; path = objc/PromiseKit.h; sourceTree = ""; }; + D14CAE9F55AF8C3315965B96 /* UINib+StoryBoardSupport.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UINib+StoryBoardSupport.m"; path = "Dynamic Code Injection/dyci/Classes/Injections/UINib+StoryBoardSupport.m"; sourceTree = ""; }; + D1955CF839D24FF2D7E4C901 /* YapDatabaseRelationshipPrivate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseRelationshipPrivate.h; path = YapDatabase/Extensions/Relationships/Internal/YapDatabaseRelationshipPrivate.h; sourceTree = ""; }; + D1E37A53CE49826B04F4AD43 /* es.lproj */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = folder; name = es.lproj; path = Resources/es.lproj; sourceTree = ""; }; + D38CB005D50C21616F93C7CF /* Pods-samhuri.net-OMGHTTPURLRQ.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-samhuri.net-OMGHTTPURLRQ.xcconfig"; path = "../Pods-samhuri.net-OMGHTTPURLRQ/Pods-samhuri.net-OMGHTTPURLRQ.xcconfig"; sourceTree = ""; }; + D3A7353A88BB9BF96E8877AD /* NSMethodSignature+EXT.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSMethodSignature+EXT.m"; path = "extobjc/NSMethodSignature+EXT.m"; sourceTree = ""; }; + D45536A8A9292616190C0685 /* NSObject+DyCInjection.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSObject+DyCInjection.m"; path = "Dynamic Code Injection/dyci/Classes/Injections/NSObject+DyCInjection.m"; sourceTree = ""; }; + D46AF56C180F857301A4EACF /* YapDatabaseSecondaryIndexHandler.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseSecondaryIndexHandler.h; path = YapDatabase/Extensions/SecondaryIndex/YapDatabaseSecondaryIndexHandler.h; sourceTree = ""; }; + D4D5E9E4EC00B726E888C956 /* YapDatabaseSecondaryIndex.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseSecondaryIndex.h; path = YapDatabase/Extensions/SecondaryIndex/YapDatabaseSecondaryIndex.h; sourceTree = ""; }; + D52919E3E0B4582879052E43 /* Pods-Blog-HockeySDK-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-Blog-HockeySDK-prefix.pch"; sourceTree = ""; }; + D59452232BBDB6A18E87B2F1 /* FAImageView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = FAImageView.h; sourceTree = ""; }; + D6844828514EBDD81BB1276A /* YapDatabaseTransaction.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseTransaction.h; path = YapDatabase/YapDatabaseTransaction.h; sourceTree = ""; }; + D6DA7E38678327A6EE630CBB /* DDDispatchQueueLogFormatter.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DDDispatchQueueLogFormatter.h; path = Lumberjack/Extensions/DDDispatchQueueLogFormatter.h; sourceTree = ""; }; + D795EC99EC3251A5A86E4C5D /* BITHockeyBaseManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = BITHockeyBaseManager.h; path = Classes/BITHockeyBaseManager.h; sourceTree = ""; }; + D7A637CFCFDF4A02FDE6118F /* YapDatabaseCloudKitTypes.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseCloudKitTypes.h; path = YapDatabase/Extensions/CloudKit/YapDatabaseCloudKitTypes.h; sourceTree = ""; }; + D83377D5F081237EBC7B5F2A /* authorize_denied@2x.png */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.png; name = "authorize_denied@2x.png"; path = "Resources/authorize_denied@2x.png"; sourceTree = ""; }; + D91554D87B0BD4AAF366D2C0 /* YDBCKRecord.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YDBCKRecord.h; path = YapDatabase/Extensions/CloudKit/Utilities/YDBCKRecord.h; sourceTree = ""; }; + D924240549C5DC08F8D6C41D /* YapDatabaseViewMappings.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseViewMappings.h; path = YapDatabase/Extensions/Views/Utilities/YapDatabaseViewMappings.h; sourceTree = ""; }; + D9611CD8143D152BA4AD4E90 /* authorize_denied.png */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.png; name = authorize_denied.png; path = Resources/authorize_denied.png; sourceTree = ""; }; + D9B7386098E21747FB91F5ED /* NSInvocation+EXT.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSInvocation+EXT.h"; path = "extobjc/NSInvocation+EXT.h"; sourceTree = ""; }; + D9C4F49E2358FA73E60B7C56 /* BITFeedbackComposeViewController.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = BITFeedbackComposeViewController.h; path = Classes/BITFeedbackComposeViewController.h; sourceTree = ""; }; + DA09FBC9D9FF33225EF7D0E3 /* EXTConcreteProtocol.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = EXTConcreteProtocol.h; path = extobjc/EXTConcreteProtocol.h; sourceTree = ""; }; + DA1C87786DB6AA85C2961C74 /* NSDictionary+YapDatabase.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSDictionary+YapDatabase.h"; path = "YapDatabase/Internal/NSDictionary+YapDatabase.h"; sourceTree = ""; }; + DB4997275289D86523E96F96 /* OMGUserAgent.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = OMGUserAgent.m; sourceTree = ""; }; + DBB53A3B54F3EE0DFCE4CCB4 /* Pods-Blog-resources.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-Blog-resources.sh"; sourceTree = ""; }; + DC30B02B06505DAA3860C90D /* EXTSafeCategory.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = EXTSafeCategory.m; path = extobjc/EXTSafeCategory.m; sourceTree = ""; }; + DC719BEEF38A47B7FCD2D072 /* YapDatabaseFullTextSearchTransaction.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseFullTextSearchTransaction.h; path = YapDatabase/Extensions/FullTextSearch/YapDatabaseFullTextSearchTransaction.h; sourceTree = ""; }; + DE9E3163CF182F22103B1650 /* DDAbstractDatabaseLogger.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DDAbstractDatabaseLogger.h; path = Lumberjack/DDAbstractDatabaseLogger.h; sourceTree = ""; }; + DEA6B5733F09C55165652C38 /* YapDatabaseOptions.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapDatabaseOptions.m; path = YapDatabase/YapDatabaseOptions.m; sourceTree = ""; }; + DF177AEF85DDBF3F632E0048 /* BITCrashMetaData.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = BITCrashMetaData.m; path = Classes/BITCrashMetaData.m; sourceTree = ""; }; + DF857BC688A4F09603BDF1A6 /* YapDatabaseConnectionDefaults.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseConnectionDefaults.h; path = YapDatabase/Internal/YapDatabaseConnectionDefaults.h; sourceTree = ""; }; + DFFD18C948C4C64B669FDF14 /* YapDatabaseSearchResultsViewConnection.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseSearchResultsViewConnection.h; path = YapDatabase/Extensions/SearchResults/YapDatabaseSearchResultsViewConnection.h; sourceTree = ""; }; + E1C13DDA10B2FCC00D0B1733 /* BITArrowImageAnnotation.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = BITArrowImageAnnotation.h; path = Classes/BITArrowImageAnnotation.h; sourceTree = ""; }; + E239F40466333BFD07F9C413 /* libPods-samhuri.net-CocoaLumberjack.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-samhuri.net-CocoaLumberjack.a"; sourceTree = BUILT_PRODUCTS_DIR; }; + E435FFB5958C6FB4FEA0F376 /* libPods-samhuri.net-YapDatabase.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-samhuri.net-YapDatabase.a"; sourceTree = BUILT_PRODUCTS_DIR; }; + E4A081B01B0CFF54E56D3534 /* YapRowidSet.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapRowidSet.h; path = YapDatabase/Internal/YapRowidSet.h; sourceTree = ""; }; + E4BEDE1E64DAF695941F11E1 /* YDBCKMergeInfo.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YDBCKMergeInfo.m; path = YapDatabase/Extensions/CloudKit/Utilities/YDBCKMergeInfo.m; sourceTree = ""; }; + E4D6ADCE5C818EA034B01E1A /* YapRowidSet.mm */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.cpp.objcpp; name = YapRowidSet.mm; path = YapDatabase/Internal/YapRowidSet.mm; sourceTree = ""; }; + E53059491CB83D8CA77E1411 /* NSSet+ObjectiveSugar.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSSet+ObjectiveSugar.h"; path = "Classes/NSSet+ObjectiveSugar.h"; sourceTree = ""; }; + E6B6A08D1E9E5F8493A740AB /* YapDatabaseRelationship.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapDatabaseRelationship.m; path = YapDatabase/Extensions/Relationships/YapDatabaseRelationship.m; sourceTree = ""; }; + E724F9DD2709E8D9D5F680CA /* BITCrashManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = BITCrashManager.h; path = Classes/BITCrashManager.h; sourceTree = ""; }; + E75BDE50E6F2317995C8A437 /* DDASLLogCapture.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = DDASLLogCapture.h; path = Lumberjack/DDASLLogCapture.h; sourceTree = ""; }; + E7C9F2D6F3BE1DCBB8CEFA7E /* EXTScope.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = EXTScope.h; path = extobjc/EXTScope.h; sourceTree = ""; }; + E7D2A24BED558B4FB492741A /* BITUpdateViewController.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = BITUpdateViewController.h; path = Classes/BITUpdateViewController.h; sourceTree = ""; }; + E818CAA030FE372C2BB46D31 /* YapDatabaseViewPageMetadata.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapDatabaseViewPageMetadata.m; path = YapDatabase/Extensions/Views/Internal/YapDatabaseViewPageMetadata.m; sourceTree = ""; }; + E8487C0B60EDEB653E99C666 /* fwd.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = fwd.h; path = objc/PromiseKit/fwd.h; sourceTree = ""; }; + E9595918650E7F06225F7A3F /* YapDatabaseViewTransaction.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseViewTransaction.h; path = YapDatabase/Extensions/Views/YapDatabaseViewTransaction.h; sourceTree = ""; }; + E99115FDF6C72A432292F617 /* buttonRoundedDelete@2x.png */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.png; name = "buttonRoundedDelete@2x.png"; path = "Resources/buttonRoundedDelete@2x.png"; sourceTree = ""; }; + E9D57B830F1BBDE77FC3E9B7 /* MTLValueTransformer.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MTLValueTransformer.m; path = Mantle/MTLValueTransformer.m; sourceTree = ""; }; + E9F63A4CF9750547BF9F8ED2 /* YapDatabaseRelationshipEdge.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseRelationshipEdge.h; path = YapDatabase/Extensions/Relationships/YapDatabaseRelationshipEdge.h; sourceTree = ""; }; + EAE64D2FD6E6D984CD88A9FB /* BITBlurImageAnnotation.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = BITBlurImageAnnotation.m; path = Classes/BITBlurImageAnnotation.m; sourceTree = ""; }; + EB9B1F88D41CBCBC72A4A328 /* MTLReflection.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = MTLReflection.m; path = Mantle/MTLReflection.m; sourceTree = ""; }; + ECC7511E43500B2A56A62B37 /* YapDatabaseRelationshipEdge.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapDatabaseRelationshipEdge.m; path = YapDatabase/Extensions/Relationships/YapDatabaseRelationshipEdge.m; sourceTree = ""; }; + ED9A8DC9D7A6D0B12D942BC1 /* PMKPromise+When.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "PMKPromise+When.m"; path = "objc/PMKPromise+When.m"; sourceTree = ""; }; + EDAAF069ED4CF79E6B14F97D /* MobileCoreServices.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = MobileCoreServices.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS8.3.sdk/System/Library/Frameworks/MobileCoreServices.framework; sourceTree = DEVELOPER_DIR; }; + EDDEE98F8825954BC4DC86D8 /* Pods-Blog-OMGHTTPURLRQ.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-Blog-OMGHTTPURLRQ.xcconfig"; sourceTree = ""; }; + EE5B7F50E59D05A920195088 /* Pods-samhuri.net-MBProgressHUD.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-samhuri.net-MBProgressHUD.xcconfig"; path = "../Pods-samhuri.net-MBProgressHUD/Pods-samhuri.net-MBProgressHUD.xcconfig"; sourceTree = ""; }; + EE7CEFDE2BD6D14082EB9C63 /* NSArray+MTLManipulationAdditions.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "NSArray+MTLManipulationAdditions.m"; path = "Mantle/NSArray+MTLManipulationAdditions.m"; sourceTree = ""; }; + EE81F659FFBB39B939ED56D0 /* UIFont+FontAwesome.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "UIFont+FontAwesome.m"; sourceTree = ""; }; + EF4AED6747EAC52458F96C18 /* BITCrashMetaData.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = BITCrashMetaData.h; path = Classes/BITCrashMetaData.h; sourceTree = ""; }; + EF89A3837032C8E74AF768F4 /* SFFileWatcher.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = SFFileWatcher.h; path = "Dynamic Code Injection/dyci/Classes/FileWatcher/SFFileWatcher.h"; sourceTree = ""; }; + EFE57D9EBDFF786697CF0917 /* hr.lproj */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = folder; name = hr.lproj; path = Resources/hr.lproj; sourceTree = ""; }; + F00A760A0913EC89EAD483E1 /* BITHockeyAppClient.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = BITHockeyAppClient.h; path = Classes/BITHockeyAppClient.h; sourceTree = ""; }; + F0B9C4744873562D461901C5 /* Pods-Blog.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-Blog.debug.xcconfig"; sourceTree = ""; }; + F15DAE4BDB915BFE7508024F /* Promise+Until.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "Promise+Until.h"; path = "objc/PromiseKit/Promise+Until.h"; sourceTree = ""; }; + F221FECFC4C239D28B863351 /* YDBCKChangeSet.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YDBCKChangeSet.m; path = YapDatabase/Extensions/CloudKit/Utilities/YDBCKChangeSet.m; sourceTree = ""; }; + F24D929AC6E47465E4EE4BB7 /* YapDatabaseViewConnection.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseViewConnection.h; path = YapDatabase/Extensions/Views/YapDatabaseViewConnection.h; sourceTree = ""; }; + F274EA53A36697B1B7BAE1A8 /* EXTSelectorChecking.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = EXTSelectorChecking.h; path = extobjc/EXTSelectorChecking.h; sourceTree = ""; }; + F29D7E26485DC48F8F8590B8 /* libPods-samhuri.net-OMGHTTPURLRQ.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-samhuri.net-OMGHTTPURLRQ.a"; sourceTree = BUILT_PRODUCTS_DIR; }; + F33084A95DA7F1AF3F92D6A1 /* QuickLook.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuickLook.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS8.3.sdk/System/Library/Frameworks/QuickLook.framework; sourceTree = DEVELOPER_DIR; }; + F356085F1F39FDFA4F5CA37B /* YapDatabaseSearchQueue.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseSearchQueue.h; path = YapDatabase/Extensions/SearchResults/YapDatabaseSearchQueue.h; sourceTree = ""; }; + F47AA7E2BABC5E6D5330EB43 /* YapDatabaseFilteredViewConnection.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapDatabaseFilteredViewConnection.m; path = YapDatabase/Extensions/FilteredViews/YapDatabaseFilteredViewConnection.m; sourceTree = ""; }; + F4C490BAB545A2CE19706343 /* YapDatabaseViewState.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapDatabaseViewState.m; path = YapDatabase/Extensions/Views/Internal/YapDatabaseViewState.m; sourceTree = ""; }; + F4CC610441487CB0DD277837 /* UIAlertView+PromiseKit.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = "UIAlertView+PromiseKit.m"; path = "objc/UIAlertView+PromiseKit.m"; sourceTree = ""; }; + F57AD2B915236D62BFDE1A39 /* YapDebugDictionary.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDebugDictionary.h; path = YapDatabase/Internal/YapDebugDictionary.h; sourceTree = ""; }; + F5858E43FEA881D2581FAFA6 /* YapDatabaseViewMappings.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = YapDatabaseViewMappings.m; path = YapDatabase/Extensions/Views/Utilities/YapDatabaseViewMappings.m; sourceTree = ""; }; + F5E14A083793793CCBE0A329 /* en.lproj */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = folder; name = en.lproj; path = Resources/en.lproj; sourceTree = ""; }; + F64755EE1D0B3CC119D83834 /* BITFeedbackManagerPrivate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = BITFeedbackManagerPrivate.h; path = Classes/BITFeedbackManagerPrivate.h; sourceTree = ""; }; + F7845BE27C17D31150410488 /* Pods-Blog-MBProgressHUD-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-Blog-MBProgressHUD-prefix.pch"; sourceTree = ""; }; + F79B6C38D4F610135E778C0D /* libPods-samhuri.net-PromiseKit.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-samhuri.net-PromiseKit.a"; sourceTree = BUILT_PRODUCTS_DIR; }; + F8053BF6CAFD67A02BBBC2B3 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS8.3.sdk/System/Library/Frameworks/UIKit.framework; sourceTree = DEVELOPER_DIR; }; + F8410D047D5B93BAD5678990 /* BITCrashAttachment.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = BITCrashAttachment.m; path = Classes/BITCrashAttachment.m; sourceTree = ""; }; + F8F6B9AFA030C8D0E2824825 /* Arrow@2x.png */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = image.png; name = "Arrow@2x.png"; path = "Resources/Arrow@2x.png"; sourceTree = ""; }; + F8FEFB0BE1417D56700D9213 /* YapNull.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapNull.h; path = YapDatabase/Internal/YapNull.h; sourceTree = ""; }; + FAAFB319976CD30D98D6FBC3 /* DDDispatchQueueLogFormatter.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DDDispatchQueueLogFormatter.m; path = Lumberjack/Extensions/DDDispatchQueueLogFormatter.m; sourceTree = ""; }; + FADB6D00FDFF01299D91DAA4 /* PMKPromise.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = PMKPromise.m; path = objc/PMKPromise.m; sourceTree = ""; }; + FCD9FF1B07960227E6D2DE6E /* BITHockeyManager.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = BITHockeyManager.h; path = Classes/BITHockeyManager.h; sourceTree = ""; }; + FDFB2AD39FAADD99FFEEA589 /* YapDatabaseExtensionTransaction.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseExtensionTransaction.h; path = YapDatabase/Extensions/Protocol/YapDatabaseExtensionTransaction.h; sourceTree = ""; }; + FF03E67D65DA039C821AA8C3 /* NSDictionary+MTLManipulationAdditions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSDictionary+MTLManipulationAdditions.h"; path = "Mantle/NSDictionary+MTLManipulationAdditions.h"; sourceTree = ""; }; + FF4B485A40BF5685F4EE0E66 /* YapDatabaseSearchResultsViewPrivate.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = YapDatabaseSearchResultsViewPrivate.h; path = YapDatabase/Extensions/SearchResults/Internal/YapDatabaseSearchResultsViewPrivate.h; sourceTree = ""; }; + FFC39F1AD2E4583CE74D9C2B /* DDLog.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = DDLog.m; path = Lumberjack/DDLog.m; sourceTree = ""; }; + FFCA7F6D3900ECC708486304 /* NSNumber+ObjectiveSugar.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; name = "NSNumber+ObjectiveSugar.h"; path = "Classes/NSNumber+ObjectiveSugar.h"; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ - 1382E8FB3F1B5295716AB963 /* Frameworks */ = { + 017C3CFCF4C78A8C15E10E1B /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - EB0E4C962E8BB29B21A9E17A /* Foundation.framework in Frameworks */, + 3AC7A036D41EC442E21BEBD8 /* Foundation.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; - 1DACD583771835EB8CB15C12 /* Frameworks */ = { + 042CD0B4654C296714E66AC6 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 8F638899C0252CB7AA45A808 /* Foundation.framework in Frameworks */, + 4FC37FAB2CAD2CBF8E6C2C07 /* Foundation.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; - 2491EE0C6D642BDADF8049FA /* Frameworks */ = { + 0DB499050712621EF0A3D99B /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 40D1D13F68058673EA545AD9 /* Foundation.framework in Frameworks */, + CD6BF96754FE8FEBDF321ED1 /* CoreGraphics.framework in Frameworks */, + 55719051D7D02B8246FA7900 /* Foundation.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; - 392CD0E3181997A0EE1695E8 /* Frameworks */ = { + 18CBC231E81E3F25F2B29CEC /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 637C54174018EC58B63431DC /* Foundation.framework in Frameworks */, + 245B96990AEE7EB650DC2F51 /* Foundation.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; - 44AB5863F34B5ED89FE0C2B4 /* Frameworks */ = { + 212646A327A36C6E21D805ED /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - DC958149C03634092B008C38 /* Foundation.framework in Frameworks */, + 9E8A9AA837C273BEA3FEBAA7 /* Foundation.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; - 45ACC3C3A718BE745235E648 /* Frameworks */ = { + 2F201F2279A9EE0887AF626C /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 848E82F641B27A3990ABB9D7 /* Foundation.framework in Frameworks */, + A7979F9C335EDE66E0D1C954 /* Foundation.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; - 537203FCDF12CDE5F61F1B2D /* Frameworks */ = { + 640A98ED60C73829A487BB92 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - FD5FD1016B7FCDA60E15731D /* CoreGraphics.framework in Frameworks */, - E1DB1DF00C390D53E3EC5606 /* Foundation.framework in Frameworks */, + 96BD0DB909C007F67B126DAE /* Foundation.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; - 539059D18D62E12917F88DF6 /* Frameworks */ = { + 7E22B725FEA5D0B23D8978A5 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 384EBE69E65771B7C46BA6F6 /* Foundation.framework in Frameworks */, + AE71429AA5039309561B5F1D /* CoreGraphics.framework in Frameworks */, + 6358BA2C16CA8ED98E89FE38 /* Foundation.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; - 646519E08F76A0420488AF1E /* Frameworks */ = { + 86CE15570A9AFE070C73350E /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - E0CFA77829CFB696CCAEDD49 /* Foundation.framework in Frameworks */, - 33AEE597729CE5F26A8F0904 /* QuartzCore.framework in Frameworks */, - 93FCA22CB5EF8A80135C0AD0 /* UIKit.framework in Frameworks */, + 1B51A4C3E72B77BCD9D1E6CB /* Foundation.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; - 6A455019FA41AE3A8500FBCC /* Frameworks */ = { + 8EA6066ED975E46EE8916233 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 1C05F3462DA9FCE0F1422433 /* Foundation.framework in Frameworks */, + 7C721F95CC677F6F5DCA6F05 /* Foundation.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; - 6B088EDD784BCB61E50D6CD6 /* Frameworks */ = { + 902F51CB28190D4B4C62202A /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - C4150DF6A34E12A45DC11B60 /* Foundation.framework in Frameworks */, + 9223213B27E53C6F69F52DA1 /* Foundation.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; - 6EF527993C2D4F72443BB4C1 /* Frameworks */ = { + 9CC3CCB093D5340D959B1DFB /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - E37EA3CCCBCD8626411E551D /* Foundation.framework in Frameworks */, + D04AE730F72A5FBC1C5BCA4D /* Foundation.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; - A530B8A85726461A31FD9AED /* Frameworks */ = { + B0F2DBB238B5DED8F895DA2D /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - E669F9F7782409FAFCE56F63 /* CoreGraphics.framework in Frameworks */, - 9F4CB94C1FC72CA02CE0AA65 /* Foundation.framework in Frameworks */, - 6AFAC7E6B6D6D877B24B492B /* UIKit.framework in Frameworks */, + 3C6C547974CB5E15FC33305D /* Foundation.framework in Frameworks */, + 9DA9CFE746A849295DFB48D8 /* QuartzCore.framework in Frameworks */, + 56ACEF1B02320380A3CA66DC /* UIKit.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; - A7B8BAE57AA2B9E67FFBD5D6 /* Frameworks */ = { + B362CD93E9AA897FE27D50AE /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - B23A56C3A6D5528E178F2CFA /* Foundation.framework in Frameworks */, + 00498625488DDDBBC8B9AD3A /* CoreGraphics.framework in Frameworks */, + 31CC509DA2B94A9AB24EF6AE /* Foundation.framework in Frameworks */, + 9B561F93CA12F9072CB37AF9 /* UIKit.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; - BB963A448DB00691AF874DB5 /* Frameworks */ = { + BC850847C2F569C84E19CB20 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - E3702E93E5CAD2F9835E6AA8 /* Foundation.framework in Frameworks */, - B70BDB36BCB9E323C1925660 /* QuartzCore.framework in Frameworks */, - 544FF475679E921F98AE63C6 /* UIKit.framework in Frameworks */, + 00F3C0F4EF36A78C4A2FA21E /* Foundation.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; - D3844F25B02DB0BAD82C4572 /* Frameworks */ = { + BF77B42BCAFC95F7D3F388CE /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 49D22B95EB8C3423D5AA308B /* CoreGraphics.framework in Frameworks */, - E141D55100F25A5F99BAFF8C /* Foundation.framework in Frameworks */, + 11AE5E3E769018CD73B6942F /* AssetsLibrary.framework in Frameworks */, + EDA79C4FDC5687095A2D5D0C /* CoreGraphics.framework in Frameworks */, + E102D296B3DBF58F3C2F8DD5 /* CoreText.framework in Frameworks */, + 5827ED560814BA88E67AD96B /* Foundation.framework in Frameworks */, + D5020E7ECCAF04DC38D5DB1A /* MobileCoreServices.framework in Frameworks */, + 50AFD701C86ADD903692ECA1 /* QuartzCore.framework in Frameworks */, + 6F30826BD6D4457F3044F1A3 /* QuickLook.framework in Frameworks */, + 8D07713A62FB6E134CBFA406 /* Security.framework in Frameworks */, + F176870EF14BD5CB6A604EB6 /* SystemConfiguration.framework in Frameworks */, + A821C231AC63CF86F4CDDB12 /* UIKit.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; - D4FC15C59B8E696A59D0687A /* Frameworks */ = { + C2741CDB7203567CBB15DADB /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - CCD85C8216952C9EAFACB858 /* Foundation.framework in Frameworks */, + D4FF339DF867ACACDEBD6DA3 /* Foundation.framework in Frameworks */, + A5747F5018A04396D1E7FEE3 /* QuartzCore.framework in Frameworks */, + 1DE3763D1115834749720FAC /* UIKit.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; - E15AFFEB3C1C170F86ED0781 /* Frameworks */ = { + D0A3007A5E9024BAC0D4F0F1 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - B2595B2BE1CF218984F291AB /* Foundation.framework in Frameworks */, + 1605A38ADF978E1402B7E819 /* Foundation.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; - EC767DD5E5792BEE934FFEF6 /* Frameworks */ = { + D91D130B86EA34C4DE9AEA1B /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - FED93FA3367F1A0B33D80C29 /* Foundation.framework in Frameworks */, + 3353A6981718F60B7405D924 /* Foundation.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + E2482817C051914AB957CA03 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + E27E83DC91112BE1FC645AE9 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 68929EAD030DD651F793FE8B /* Foundation.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ - 02E8B167C6BD9331A5408549 /* Support Files */ = { + 03DAC8F8940B778391897613 /* Pods-Blog */ = { isa = PBXGroup; children = ( - 7343C65938744C23922E7FA7 /* Pods-Blog-YapDatabase.xcconfig */, - AC56C2ACCD36D03A8E5E557F /* Pods-Blog-YapDatabase-Private.xcconfig */, - C37519D9FDFE06C1EC83F2B2 /* Pods-Blog-YapDatabase-dummy.m */, - BCBCDCF31F28FAED010E2701 /* Pods-Blog-YapDatabase-prefix.pch */, - 4D14F361ABE7060F438355BD /* Pods-samhuri.net-YapDatabase.xcconfig */, - B2D44252E27CC38A9668B507 /* Pods-samhuri.net-YapDatabase-Private.xcconfig */, - DC744A09D2B51336CD5397E3 /* Pods-samhuri.net-YapDatabase-dummy.m */, - 9A8A914B876D76B247DA938A /* Pods-samhuri.net-YapDatabase-prefix.pch */, - ); - name = "Support Files"; - path = "../Target Support Files/Pods-Blog-YapDatabase"; - sourceTree = ""; - }; - 0A55D2100C181D3374661B0C /* UserAgent */ = { - isa = PBXGroup; - children = ( - 7B1AF19C92986A056A79EA54 /* OMGUserAgent.h */, - EB10B6590D0FF76128A2727B /* OMGUserAgent.m */, - ); - name = UserAgent; - sourceTree = ""; - }; - 0CA722BAA6C5174B64E4B661 /* UIView */ = { - isa = PBXGroup; - children = ( - 2F6B46C76C5923866A8E01D3 /* UIView+PromiseKit.h */, - 6A66B23BA0714E62F554AF0C /* UIView+PromiseKit.m */, - ); - name = UIView; - sourceTree = ""; - }; - 149C7A58BB267831F8BEE45C /* Injections */ = { - isa = PBXGroup; - children = ( - 7FB7C5B3D6CA606E943307DD /* NSObject+DyCInjection.h */, - 41FA86567743B90E1C5C5B2A /* NSObject+DyCInjection.m */, - ); - name = Injections; - sourceTree = ""; - }; - 15BDE7A6554401A9DA614F65 /* When */ = { - isa = PBXGroup; - children = ( - 103234F27AF3A35888A43C88 /* PMKPromise+When.m */, - 81273C467F3A02094344D4CC /* Promise+When.h */, - ); - name = When; - sourceTree = ""; - }; - 16C1D186D4864F7BDF8D2AA2 /* Targets Support Files */ = { - isa = PBXGroup; - children = ( - DDD0C0559AC14321A01598B8 /* Pods-Blog */, - 669C9A0E70F26B74C830C2BE /* Pods-samhuri.net */, - ); - name = "Targets Support Files"; - sourceTree = ""; - }; - 19F13E89B8D913522E86C656 /* OMGHTTPURLRQ */ = { - isa = PBXGroup; - children = ( - 7B3A83F101CF389DA1BBF6C7 /* FormURLEncode */, - E338B1492FF80E6CB1343DA9 /* RQ */, - FC1B56B90D58427672E51061 /* Support Files */, - 0A55D2100C181D3374661B0C /* UserAgent */, - ); - path = OMGHTTPURLRQ; - sourceTree = ""; - }; - 1B10205D063123ABE7298BCC /* EXTSynthesize */ = { - isa = PBXGroup; - children = ( - B1107E0C8A76D6F93CB161AE /* EXTSynthesize.h */, - ); - name = EXTSynthesize; - sourceTree = ""; - }; - 1D64D2BFF850AFD834D56EB9 /* libextobjc */ = { - isa = PBXGroup; - children = ( - 88B71CB3A361B7E9693BE144 /* EXTADT */, - C894DDD530D153F829F7C11C /* EXTConcreteProtocol */, - 3592E1E9B16E090981377551 /* EXTKeyPathCoding */, - 32D144A47FABAEC74CA47023 /* EXTNil */, - 327021C12A787C2A7A6A3304 /* EXTSafeCategory */, - 330A150A0C8C7656265EB434 /* EXTScope */, - 80479D27B8622CB8492332FD /* EXTSelectorChecking */, - 1B10205D063123ABE7298BCC /* EXTSynthesize */, - BC458258EC64042EC98D793D /* NSInvocation+EXT */, - 9CEE1B91E9B313020E59AB19 /* NSMethodSignature+EXT */, - 555A9D8A99B0C951D7E13AB9 /* RuntimeExtensions */, - D22D28A68B50AB2B1E0BBC16 /* Support Files */, - AE9AFED6D40115B8E21A5E87 /* UmbrellaHeader */, - ); - path = libextobjc; - sourceTree = ""; - }; - 2059AAF22B085879977139D9 /* iOS */ = { - isa = PBXGroup; - children = ( - BDE7046DB6D273BC2CCF83FD /* CoreGraphics.framework */, - 282B9211FFD2F2EA6B21538A /* Foundation.framework */, - 337995D95A64BEC9D2535623 /* QuartzCore.framework */, - 113FC1CE12C29850DA58914B /* UIKit.framework */, - ); - name = iOS; - sourceTree = ""; - }; - 26C5CCD36B5D71D7DE5727A7 /* FontAwesome+iOS */ = { - isa = PBXGroup; - children = ( - A4E2B2B2594BC455CE033849 /* FAImageView.h */, - AE0BDE620A3316B0ED12C5D6 /* FAImageView.m */, - 2271EAA178AE46FA26875B0F /* NSString+FontAwesome.h */, - B0D7BE5939DDF632A91F809A /* NSString+FontAwesome.m */, - 1BF1D70C0B73C5A0D485757D /* UIFont+FontAwesome.h */, - D17A7DFC073846581287A51D /* UIFont+FontAwesome.m */, - 423F148D857849770632B527 /* UIImage+FontAwesome.h */, - 696F6ED531D4220585C941DE /* UIImage+FontAwesome.m */, - A3F46759357544A9A7F29168 /* Resources */, - B3C2A3185E502D0760609CCD /* Support Files */, - ); - path = "FontAwesome+iOS"; - sourceTree = ""; - }; - 2E322959F585548A848E0D1F /* common */ = { - isa = PBXGroup; - children = ( - 9C32FD3A04D3DBF1F06F295A /* NSDictionary+YapDatabase.h */, - A2AFFC46474155E870F06DE4 /* NSDictionary+YapDatabase.m */, - A058329B5F27921DE5E4E7CD /* YDBCKAttachRequest.h */, - 2E1B5DB271BEA6ACAC0D7CF8 /* YDBCKAttachRequest.m */, - 22E2BE721AB7902C5709752B /* YDBCKChangeQueue.h */, - 28E81357C4025E01BFBB9B6F /* YDBCKChangeQueue.m */, - 6E2AE04DA9E8D2909FC03C17 /* YDBCKChangeRecord.h */, - C1635D3D454F1C8B81A673D3 /* YDBCKChangeRecord.m */, - 5B07E093944A1BEEE2009374 /* YDBCKChangeSet.h */, - 7543E7E85BED6829E62D7E5C /* YDBCKChangeSet.m */, - 4A7FDFC0733456C5288CC777 /* YDBCKMappingTableInfo.h */, - 4B5E0DAB0F48615409D8356F /* YDBCKMappingTableInfo.m */, - 26BD73A193575E26B265F62D /* YDBCKMergeInfo.h */, - 3D8451A16089F9E2452997B6 /* YDBCKMergeInfo.m */, - D14F9CAC90EDB9BBAC6B4EBD /* YDBCKRecord.h */, - A17C57A06F0A48B26E09F2C7 /* YDBCKRecord.m */, - 5BFCA205D07088177172144F /* YDBCKRecordInfo.h */, - 1C8E98D480058DC58AA665A1 /* YDBCKRecordInfo.m */, - AFD8EB43C750E47E672F2A5D /* YDBCKRecordTableInfo.h */, - 37FE19233C994D0A51E15285 /* YDBCKRecordTableInfo.m */, - 6E16230D0F5D1F3D90F20556 /* YapCache.h */, - F315CCFD0A27245944E3F42B /* YapCache.m */, - 4FA5B6AD9496F6B7327BEF6B /* YapCollectionKey.h */, - C3D90F13D18C759A77F15FA0 /* YapCollectionKey.m */, - 7B241E60723A2C4C61918512 /* YapDatabase.h */, - 05A4B45E796332BB64F4DBEC /* YapDatabase.m */, - BDF670E3E9733857B25E9DB8 /* YapDatabaseCloudKit.h */, - 3096C8BF574F9EAED6EE702E /* YapDatabaseCloudKit.m */, - 7F3FC06DF8143D5BBFF9CD98 /* YapDatabaseCloudKitConnection.h */, - 6554430CBCF9416FB8671D97 /* YapDatabaseCloudKitConnection.m */, - 9B56652957A37B420495B728 /* YapDatabaseCloudKitOptions.h */, - 246374EB66C3DED971BDFA98 /* YapDatabaseCloudKitOptions.m */, - F34B15A83ECE7FD57A16725C /* YapDatabaseCloudKitPrivate.h */, - 3CB1830581E0F7750B97F18F /* YapDatabaseCloudKitTransaction.h */, - FAEFFDB0E559BA6373293B65 /* YapDatabaseCloudKitTransaction.m */, - D1402AE4B1F9DCDA28E026A3 /* YapDatabaseCloudKitTypes.h */, - B2A111142956A2B235607E94 /* YapDatabaseCloudKitTypes.m */, - 25253F668642F34F93F33A00 /* YapDatabaseConnection.h */, - 3CA8C04D7B74D34696706F13 /* YapDatabaseConnection.m */, - 5A03BCA0B53EC593875B55F0 /* YapDatabaseConnectionDefaults.h */, - 6CFB1E1426BA23ADE09F279C /* YapDatabaseConnectionDefaults.m */, - 0CE2F7439995D0103D65BBEF /* YapDatabaseConnectionState.h */, - 337C6668C1832227E942F3B0 /* YapDatabaseConnectionState.m */, - FC18FEA194A01FF1F09F4976 /* YapDatabaseExtension.h */, - A47A2086519EDA50DB4EE026 /* YapDatabaseExtension.m */, - A534B6AA0706AF078AECCFB3 /* YapDatabaseExtensionConnection.h */, - AB496579B695219E073A1228 /* YapDatabaseExtensionConnection.m */, - 89C91FFE423BF4A4AED61E95 /* YapDatabaseExtensionPrivate.h */, - 9F2301E8E4020A0784F1E252 /* YapDatabaseExtensionTransaction.h */, - 5CCEC9463B85B3DB96E36B30 /* YapDatabaseExtensionTransaction.m */, - F33C50ACAC6196E63C7FB313 /* YapDatabaseFilteredView.h */, - 6AAEFE8334EE8B1A57941755 /* YapDatabaseFilteredView.m */, - 681FDD2EA6F32C0C0927CAD7 /* YapDatabaseFilteredViewConnection.h */, - 3CA4E2CB17BBE44F3F11AC15 /* YapDatabaseFilteredViewConnection.m */, - 8F2CE775C0991741117C17A6 /* YapDatabaseFilteredViewPrivate.h */, - C56296B5B051B629550E3981 /* YapDatabaseFilteredViewTransaction.h */, - 22B196B446DA79536F4BD761 /* YapDatabaseFilteredViewTransaction.m */, - BF11035CE8441F3D8436BE98 /* YapDatabaseFilteredViewTypes.h */, - 4FD8BF6204556957877719C6 /* YapDatabaseFilteredViewTypes.m */, - 649D6CCC882389A562CF0274 /* YapDatabaseFullTextSearch.h */, - 3F4DA54A83A51A4C3DD5C88E /* YapDatabaseFullTextSearch.m */, - 5D2AA5881FC238BBD9A2077A /* YapDatabaseFullTextSearchConnection.h */, - 23BD74E6F48DF4303D3DD1D3 /* YapDatabaseFullTextSearchConnection.m */, - 08F9631220752789EFC32EDF /* YapDatabaseFullTextSearchHandler.h */, - 5C48852EDD96E0F750E8285D /* YapDatabaseFullTextSearchHandler.m */, - 27B7ABCDE2097188B5ACFA26 /* YapDatabaseFullTextSearchPrivate.h */, - E059B319E0FD73D04BB73471 /* YapDatabaseFullTextSearchSnippetOptions.h */, - 97AEA4F2F91015BFEEA144EE /* YapDatabaseFullTextSearchSnippetOptions.m */, - E4157BD8F52E22C28E657B30 /* YapDatabaseFullTextSearchTransaction.h */, - DD309FE540A9641A1D2460EE /* YapDatabaseFullTextSearchTransaction.m */, - 6E3BDF9CE1C072CA9AE57367 /* YapDatabaseLogging.h */, - 3EDB03794C1EE1D78ED16415 /* YapDatabaseLogging.m */, - 03E7AE5E5F87DE38625B7182 /* YapDatabaseManager.h */, - 73D91BB8A8E14B16DBB10DEE /* YapDatabaseManager.m */, - 33744720CD09248B783228E4 /* YapDatabaseOptions.h */, - 219F916D56045D897DB374C2 /* YapDatabaseOptions.m */, - D869A072D5127D760C35AEFF /* YapDatabasePrivate.h */, - A9E38DE2F43EAB0D83E65838 /* YapDatabaseQuery.h */, - EF6FC1CC5A910AB5BBD4A60D /* YapDatabaseQuery.m */, - 634946019DCA0FC20F8A0C24 /* YapDatabaseRelationship.h */, - B987983BAE99D1200135A6D5 /* YapDatabaseRelationship.m */, - D056195F1F4A6E3E72375C02 /* YapDatabaseRelationshipConnection.h */, - DD46B99FC4F0FBEC69A8D8FF /* YapDatabaseRelationshipConnection.m */, - D8347C06DDDCDECFEEEB950D /* YapDatabaseRelationshipEdge.h */, - D437A835620FA49588FBF822 /* YapDatabaseRelationshipEdge.m */, - FFA7A32A5E1F8557243B97D7 /* YapDatabaseRelationshipEdgePrivate.h */, - B7C06E7CBC9A9B43F2AFBEC0 /* YapDatabaseRelationshipNode.h */, - A2622D962BE3622CC07EE90F /* YapDatabaseRelationshipOptions.h */, - 1863159C33B07B9214745599 /* YapDatabaseRelationshipOptions.m */, - 1100C9110EBEABB79C035D6C /* YapDatabaseRelationshipPrivate.h */, - 86490A5C7E1542C913C23B91 /* YapDatabaseRelationshipTransaction.h */, - 4375875DBF26E773E7BDD0A2 /* YapDatabaseRelationshipTransaction.m */, - 6EFACE16A4E6A16CE18DE264 /* YapDatabaseSearchQueue.h */, - 393FD5B68516CC4EE733E287 /* YapDatabaseSearchQueue.m */, - 1FFF64ECFF383922B2C27C21 /* YapDatabaseSearchQueuePrivate.h */, - D2F97F98947C1274C7DE386D /* YapDatabaseSearchResultsView.h */, - 0DBFCE6A6A9E3DBC7B444FA4 /* YapDatabaseSearchResultsView.m */, - 1784AD76848A711FD14E57D8 /* YapDatabaseSearchResultsViewConnection.h */, - F307457ACA39801C012B0340 /* YapDatabaseSearchResultsViewConnection.m */, - 42603304AE5D753415BC0AF9 /* YapDatabaseSearchResultsViewOptions.h */, - 322A6EDFCB536912D423794E /* YapDatabaseSearchResultsViewOptions.m */, - 36A385ED54EA2353AEA99BFD /* YapDatabaseSearchResultsViewPrivate.h */, - 61A77A8988C9576F505C98DB /* YapDatabaseSearchResultsViewTransaction.h */, - 18687F1C88FFF4AA735AB49E /* YapDatabaseSearchResultsViewTransaction.m */, - 03F716AF51842D5CACEF1B81 /* YapDatabaseSecondaryIndex.h */, - DD122DC87EF95AA1148BBD4B /* YapDatabaseSecondaryIndex.m */, - 7FBAF43C1D7DF390CCAAD290 /* YapDatabaseSecondaryIndexConnection.h */, - D9CC93DB3842FCD2686B0818 /* YapDatabaseSecondaryIndexConnection.m */, - 645D577E41F144151AF448CE /* YapDatabaseSecondaryIndexHandler.h */, - 4FAAF95BBB79A541624C0213 /* YapDatabaseSecondaryIndexHandler.m */, - A4DD2587658B14BA1C93C95B /* YapDatabaseSecondaryIndexOptions.h */, - 4C80234048DBD71D5000659A /* YapDatabaseSecondaryIndexOptions.m */, - E627228ACFEB88446047C673 /* YapDatabaseSecondaryIndexPrivate.h */, - C3503A5B9E91A284655E94DF /* YapDatabaseSecondaryIndexSetup.h */, - 0C381178C401C525B83FB29C /* YapDatabaseSecondaryIndexSetup.m */, - CA57D5967D1C64AA13F116B1 /* YapDatabaseSecondaryIndexTransaction.h */, - C3D5ED24D0D549034AFFD8C1 /* YapDatabaseSecondaryIndexTransaction.m */, - DE7DEDA3D0BE9F15715450E5 /* YapDatabaseStatement.h */, - 9F4BF4133904EC91F6C7894C /* YapDatabaseStatement.m */, - BD5003130FC9121387EE8C8B /* YapDatabaseString.h */, - 28965EF36F91445CA1F60896 /* YapDatabaseTransaction.h */, - 8AA07DBB582A55093BB80C5E /* YapDatabaseTransaction.m */, - 8DBBA9D2D52D43F8A8752E8A /* YapDatabaseView.h */, - B0F1AAC002F658078F7FFED8 /* YapDatabaseView.m */, - 9E8129BFA6BCE82E4531713D /* YapDatabaseViewChange.h */, - 73A7A54ABE82D530977E185F /* YapDatabaseViewChange.m */, - E551A6312A2FA76799E05477 /* YapDatabaseViewChangePrivate.h */, - 1A6866806A4DACB1EF227A7B /* YapDatabaseViewConnection.h */, - B421CB7EC4F054DFD0135AE4 /* YapDatabaseViewConnection.m */, - 21F299A3CC041D21E49E128A /* YapDatabaseViewMappings.h */, - 247E87DA6CAC4333E9E5EE97 /* YapDatabaseViewMappings.m */, - C31DF20DFF8951BEBD0CE76D /* YapDatabaseViewMappingsPrivate.h */, - 08AC1CAD878E7894E245C1DB /* YapDatabaseViewOptions.h */, - 2B84FAE9096DC6E821A22193 /* YapDatabaseViewOptions.m */, - 0EFB27F6C4879CBCFD5F931C /* YapDatabaseViewPage.h */, - 63B74A3BDE5D2C43ED4C300F /* YapDatabaseViewPage.mm */, - AC1696FA3B0F85F5E7286B06 /* YapDatabaseViewPageMetadata.h */, - C43FA8920F4D17EE9023C769 /* YapDatabaseViewPageMetadata.m */, - A546DD09B66B18871BB49F8B /* YapDatabaseViewPrivate.h */, - E0410AC21BBA64B5018C9D5A /* YapDatabaseViewRangeOptions.h */, - 6188C6A5C56A8881E01E3727 /* YapDatabaseViewRangeOptions.m */, - 9CD9EE6B1057B60296198587 /* YapDatabaseViewRangeOptionsPrivate.h */, - 26896C5EA3FFCF71FEBC02B8 /* YapDatabaseViewState.h */, - E6AD97AD225B82A4359AF1A6 /* YapDatabaseViewState.m */, - C7DBD38E1A6FB082A4FC248E /* YapDatabaseViewTransaction.h */, - 1555478860271FB44E77C5AB /* YapDatabaseViewTransaction.m */, - B83D6397BBA0C832599715CF /* YapDatabaseViewTypes.h */, - A12CE7E0ACAAD4903151FC8A /* YapDatabaseViewTypes.m */, - B734E8E4589967249213497A /* YapDebugDictionary.h */, - 1D157FFDB1D61A6CEF1B03C6 /* YapDebugDictionary.m */, - D227F98CFDC69A99159C6C15 /* YapMemoryTable.h */, - 5A915C2018C7188C18AEA6BA /* YapMemoryTable.m */, - BD94A6ABBAFEC252B2F503E2 /* YapMurmurHash.h */, - BEB425B1114D949845BDF86E /* YapMurmurHash.m */, - 26BAC2FC50220B883968CD82 /* YapNull.h */, - 4526FE3440E12F0E226424E3 /* YapNull.m */, - F1AC858269432ACD0E963EED /* YapRowidSet.h */, - 877AEDBCB6C973CE784A7612 /* YapRowidSet.mm */, - 32CE7DC3A3011AFE024C1BD6 /* YapSet.h */, - 66BA5087B815C31DC755D759 /* YapSet.m */, - AE5975520DCEEF0BAF8507B5 /* YapTouch.h */, - 2E3487FC5A902204ABC002FE /* YapTouch.m */, - 295FA13B52BF1EC408A07D30 /* YapWhitelistBlacklist.h */, - 5E6272DFACEB1CAB08C65772 /* YapWhitelistBlacklist.m */, - ); - name = common; - sourceTree = ""; - }; - 327021C12A787C2A7A6A3304 /* EXTSafeCategory */ = { - isa = PBXGroup; - children = ( - EE50E6FE438091CDBEEA8379 /* EXTSafeCategory.h */, - 01069A44285D1FE6BB352013 /* EXTSafeCategory.m */, - ); - name = EXTSafeCategory; - sourceTree = ""; - }; - 32D144A47FABAEC74CA47023 /* EXTNil */ = { - isa = PBXGroup; - children = ( - 56D7019F69A8FACE13A8F912 /* EXTNil.h */, - F705C1486FDCE242C971DA99 /* EXTNil.m */, - ); - name = EXTNil; - sourceTree = ""; - }; - 330A150A0C8C7656265EB434 /* EXTScope */ = { - isa = PBXGroup; - children = ( - 8A3197B0CED46F8A3CC6ED35 /* EXTScope.h */, - C9A1ECE57856CF96C336ECCE /* EXTScope.m */, - ); - name = EXTScope; - sourceTree = ""; - }; - 341944F4EB69180C984FBF42 /* Support Files */ = { - isa = PBXGroup; - children = ( - 04FB3FA2B889F5B537B5158E /* Pods-Blog-PromiseKit.xcconfig */, - F72F2263FB89FD8EB4E6FF36 /* Pods-Blog-PromiseKit-Private.xcconfig */, - 2FB47F54C6EE520019A54078 /* Pods-Blog-PromiseKit-dummy.m */, - 7EC98547C8C283F24A5CC8B7 /* Pods-Blog-PromiseKit-prefix.pch */, - 6330B43A962A1A8659F9D65E /* Pods-samhuri.net-PromiseKit.xcconfig */, - 6C0A693A8FF3D2628E279152 /* Pods-samhuri.net-PromiseKit-Private.xcconfig */, - 36694C5AC36D673C03C2B481 /* Pods-samhuri.net-PromiseKit-dummy.m */, - 1FBEEBE56CB92A24E64CE205 /* Pods-samhuri.net-PromiseKit-prefix.pch */, - ); - name = "Support Files"; - path = "../Target Support Files/Pods-Blog-PromiseKit"; - sourceTree = ""; - }; - 3483020A068079E4510F7A6C /* YapDatabase */ = { - isa = PBXGroup; - children = ( - 02E8B167C6BD9331A5408549 /* Support Files */, - 2E322959F585548A848E0D1F /* common */, - ); - path = YapDatabase; - sourceTree = ""; - }; - 3592E1E9B16E090981377551 /* EXTKeyPathCoding */ = { - isa = PBXGroup; - children = ( - 460D03ADC9278DEE1EA6F3FB /* EXTKeyPathCoding.h */, - ); - name = EXTKeyPathCoding; - sourceTree = ""; - }; - 3EE0BED3EB10397B27F2A3BE /* Support Files */ = { - isa = PBXGroup; - children = ( - AA80D391719E02EECF24AEC3 /* Pods-Blog-dyci.xcconfig */, - 02CD1F29FA92CC91297FE5B3 /* Pods-Blog-dyci-Private.xcconfig */, - 96A52C89C81885BCCEDD93EE /* Pods-Blog-dyci-dummy.m */, - 782C66C785D5929F28960F96 /* Pods-Blog-dyci-prefix.pch */, - ); - name = "Support Files"; - path = "../Target Support Files/Pods-Blog-dyci"; - sourceTree = ""; - }; - 4DFB9FA3DEB0FA6BCFC00C80 /* NSURLConnection */ = { - isa = PBXGroup; - children = ( - 509D1EEBC84654B87CE5A9EC /* NSURLConnection+PromiseKit.h */, - 03B758E6F2BBE95619257F7E /* NSURLConnection+PromiseKit.m */, - ); - name = NSURLConnection; - sourceTree = ""; - }; - 555A9D8A99B0C951D7E13AB9 /* RuntimeExtensions */ = { - isa = PBXGroup; - children = ( - 9DC96F512065D3A3C6DCBADF /* EXTRuntimeExtensions.h */, - AECBD90C6B6D01CB4D3CEAB2 /* EXTRuntimeExtensions.m */, - 33336F4E31CF0F4C63B0FDDB /* metamacros.h */, - ); - name = RuntimeExtensions; - sourceTree = ""; - }; - 57B024CAE2FF3ABE6D82D92B /* Pause */ = { - isa = PBXGroup; - children = ( - ADE62191234188700E91A3C4 /* PMKPromise+Pause.m */, - 53EEB8D97485A543890769B0 /* Promise+Pause.h */, - ); - name = Pause; - sourceTree = ""; - }; - 5E6304D71F5A217AEF56DE3E = { - isa = PBXGroup; - children = ( - 3A9ABA5782DFC039D0AECFBA /* Podfile */, - A6091DF4DAEDEB854BDE522D /* Frameworks */, - B5930583D7B9ABA75DC6A0D6 /* Pods */, - CCFEB986CF84842BEC3E75A6 /* Products */, - 16C1D186D4864F7BDF8D2AA2 /* Targets Support Files */, - ); - sourceTree = ""; - }; - 61BE5E80894E476330E9F7D8 /* extobjc */ = { - isa = PBXGroup; - children = ( - 2C185110F55E76571CD7FEF4 /* EXTKeyPathCoding.h */, - 61C20876098EA3BE0E318D2C /* EXTRuntimeExtensions.h */, - F5DC9F1CBEC8594767B97AA2 /* EXTRuntimeExtensions.m */, - AA0D30FD1176F99D224FC86A /* EXTScope.h */, - 105EB70EFA6E97885129527A /* EXTScope.m */, - E5B2C1599BA4D2E41858C836 /* metamacros.h */, - ); - name = extobjc; - sourceTree = ""; - }; - 669C9A0E70F26B74C830C2BE /* Pods-samhuri.net */ = { - isa = PBXGroup; - children = ( - 907FCD6F6166C38123FE98F8 /* Pods-samhuri.net-acknowledgements.markdown */, - D6EDDFD6C263FAC3E167F1DA /* Pods-samhuri.net-acknowledgements.plist */, - 3CB41934427A39A44B61B5B8 /* Pods-samhuri.net-dummy.m */, - 17EB70077701303036CC4A09 /* Pods-samhuri.net-environment.h */, - 8073C833C5795BD082FEA3DD /* Pods-samhuri.net-resources.sh */, - D818A6776F5B0594762301DA /* Pods-samhuri.net.debug.xcconfig */, - FF05D8A4D649AFD23AAEA2A1 /* Pods-samhuri.net.release.xcconfig */, - ); - name = "Pods-samhuri.net"; - path = "Target Support Files/Pods-samhuri.net"; - sourceTree = ""; - }; - 6875BF715528231DC8C2EB8B /* ObjectiveSugar */ = { - isa = PBXGroup; - children = ( - 44290497B83C652848C2AD4A /* NSArray+ObjectiveSugar.h */, - 3FAB5F9974743053DA63B943 /* NSArray+ObjectiveSugar.m */, - 21DCA3553D9065FA5DFACC3A /* NSDictionary+ObjectiveSugar.h */, - 16DAEEE0FC4F440060ACF984 /* NSDictionary+ObjectiveSugar.m */, - FCB09E16D1B8F4E125214DF2 /* NSMutableArray+ObjectiveSugar.h */, - 68409D3A60AC62207CF83689 /* NSMutableArray+ObjectiveSugar.m */, - F4084EE5921F8B24A0D25AC6 /* NSNumber+ObjectiveSugar.h */, - 292ADC73D143BB23A41C2F8E /* NSNumber+ObjectiveSugar.m */, - FAB2EDC47DE1B571774A0679 /* NSSet+ObjectiveSugar.h */, - 06CC2C50158075B98D39886F /* NSSet+ObjectiveSugar.m */, - C94F068735DD25B3F47447A7 /* NSString+ObjectiveSugar.h */, - D81F168E6C5567C22EB2AE16 /* NSString+ObjectiveSugar.m */, - 6FC571996060E71C36F9609F /* ObjectiveSugar.h */, - 963059CA1AA3463CC04E3548 /* Support Files */, - ); - path = ObjectiveSugar; - sourceTree = ""; - }; - 6AD78701A5BD6EAC224B1CF5 /* Core */ = { - isa = PBXGroup; - children = ( - 61576E9675A4DBF5F8B14925 /* DDASLLogCapture.h */, - AAD1947343ECF887A0F86AAD /* DDASLLogCapture.m */, - 40668D7AD9D7B1456E623014 /* DDASLLogger.h */, - F0CEAFE4966D62D25D52F4CE /* DDASLLogger.m */, - ACC4ADA03EC617F34275A4AD /* DDAbstractDatabaseLogger.h */, - 713BC91C67E960567555A7E3 /* DDAbstractDatabaseLogger.m */, - 5B345BCAB4F6A6EEBFC889B4 /* DDAssert.h */, - DD22178A835D85EE476DA1E8 /* DDFileLogger.h */, - 3D9CCA2DFAB56D733D2B5075 /* DDFileLogger.m */, - 0E2D7EE88C3D855404E6AF0A /* DDLog.h */, - 24FC991C5B5EC9B91AB20554 /* DDLog.m */, - CBACA283CCCF6009B7B70F86 /* DDLog+LOGV.h */, - 0CB02F9D6072169ACD618BA8 /* DDTTYLogger.h */, - 37DA2003F00041209AD13BD0 /* DDTTYLogger.m */, - ); - name = Core; - sourceTree = ""; - }; - 787A2029408460B111BCE037 /* CALayer */ = { - isa = PBXGroup; - children = ( - DB7EE0A8BE1C843607A95B96 /* CALayer+PromiseKit.h */, - CE2AEB9857A6EB1F03C5C585 /* CALayer+PromiseKit.m */, - ); - name = CALayer; - sourceTree = ""; - }; - 7B3A83F101CF389DA1BBF6C7 /* FormURLEncode */ = { - isa = PBXGroup; - children = ( - FD465E5F5A152F512D1E6C97 /* OMGFormURLEncode.h */, - 142AC53FEB92071B60F07F34 /* OMGFormURLEncode.m */, - ); - name = FormURLEncode; - sourceTree = ""; - }; - 80479D27B8622CB8492332FD /* EXTSelectorChecking */ = { - isa = PBXGroup; - children = ( - D0E95F1A3ED48F2D5CF19D98 /* EXTSelectorChecking.h */, - 895404BEE45472758E516B8A /* EXTSelectorChecking.m */, - ); - name = EXTSelectorChecking; - sourceTree = ""; - }; - 88B71CB3A361B7E9693BE144 /* EXTADT */ = { - isa = PBXGroup; - children = ( - FDE412DB6B49086569010E05 /* EXTADT.h */, - E1B00040177F35188E4DF29F /* EXTADT.m */, - ); - name = EXTADT; - sourceTree = ""; - }; - 8A5B83AB8A151B242C8C37AD /* CocoaLumberjack */ = { - isa = PBXGroup; - children = ( - 6AD78701A5BD6EAC224B1CF5 /* Core */, - DDCAE8393475D5E74AB1BEBC /* Extensions */, - F0EBEDCBD2796D5105AFCC20 /* Support Files */, - ); - path = CocoaLumberjack; - sourceTree = ""; - }; - 8DE6D9D3E0094F5067F3F289 /* UIViewController */ = { - isa = PBXGroup; - children = ( - 69F3CB18F0BD2FB7A815570E /* UIViewController+PromiseKit.h */, - B4621CFB38ED1F55BD111539 /* UIViewController+PromiseKit.m */, - ); - name = UIViewController; - sourceTree = ""; - }; - 963059CA1AA3463CC04E3548 /* Support Files */ = { - isa = PBXGroup; - children = ( - EB221D3E7CB702A11395A64F /* Pods-Blog-ObjectiveSugar.xcconfig */, - BD4FB434FA87131CD9546E78 /* Pods-Blog-ObjectiveSugar-Private.xcconfig */, - 73CCE0F1C83C0994FFC3E48F /* Pods-Blog-ObjectiveSugar-dummy.m */, - 9FDEEA988A1A70E265971234 /* Pods-Blog-ObjectiveSugar-prefix.pch */, - 8A1511F04284C2C1197C0177 /* Pods-samhuri.net-ObjectiveSugar.xcconfig */, - ADD71777011B1A546664623D /* Pods-samhuri.net-ObjectiveSugar-Private.xcconfig */, - 6DD0D5C44738B16EEEAACFDD /* Pods-samhuri.net-ObjectiveSugar-dummy.m */, - 6C28107A2EB0EB19B3E3D4EE /* Pods-samhuri.net-ObjectiveSugar-prefix.pch */, - ); - name = "Support Files"; - path = "../Target Support Files/Pods-Blog-ObjectiveSugar"; - sourceTree = ""; - }; - 9CEE1B91E9B313020E59AB19 /* NSMethodSignature+EXT */ = { - isa = PBXGroup; - children = ( - C037BD02BB66FD15C32BBE12 /* NSMethodSignature+EXT.h */, - C9BAD913D12B16045DF40035 /* NSMethodSignature+EXT.m */, - ); - name = "NSMethodSignature+EXT"; - sourceTree = ""; - }; - 9DC98DC3EF049820BEF5BABE /* Support Files */ = { - isa = PBXGroup; - children = ( - BFB316272BEAC1958B60D64C /* Pods-Blog-Mantle.xcconfig */, - 323CA2471B47105D93E68D84 /* Pods-Blog-Mantle-Private.xcconfig */, - FC07FAC5CB874A77328DF7BC /* Pods-Blog-Mantle-dummy.m */, - 0847FAE1E3F4C096BE7821EC /* Pods-Blog-Mantle-prefix.pch */, - 798D6CA1867D886E6C782216 /* Pods-samhuri.net-Mantle.xcconfig */, - 456956BB07785CAB0362B287 /* Pods-samhuri.net-Mantle-Private.xcconfig */, - 547E0C610F134F11F17F7664 /* Pods-samhuri.net-Mantle-dummy.m */, - 45818D4CE2A27CADC50BC3AA /* Pods-samhuri.net-Mantle-prefix.pch */, - ); - name = "Support Files"; - path = "../Target Support Files/Pods-Blog-Mantle"; - sourceTree = ""; - }; - A3F46759357544A9A7F29168 /* Resources */ = { - isa = PBXGroup; - children = ( - 033AE8F6A5FAB9F1F95AAE0D /* FontAwesome.ttf */, - ); - name = Resources; - sourceTree = ""; - }; - A6091DF4DAEDEB854BDE522D /* Frameworks */ = { - isa = PBXGroup; - children = ( - 2059AAF22B085879977139D9 /* iOS */, - ); - name = Frameworks; - sourceTree = ""; - }; - A61AC672234B0C4F5E58DEF2 /* Mantle */ = { - isa = PBXGroup; - children = ( - 4DCEB5E54C2A35459ED59054 /* MTLJSONAdapter.h */, - 56CA459B2FFE8509276AF82A /* MTLJSONAdapter.m */, - 7D99FA2965FE4B331BABD09B /* MTLModel.h */, - 8A19FCF4FEDFE1A737135355 /* MTLModel.m */, - DB13F9E8BE40D9526BAF9596 /* MTLModel+NSCoding.h */, - 6338CB3B9261AC5478915139 /* MTLModel+NSCoding.m */, - D6F649D98FF31429228DA07B /* MTLReflection.h */, - DFAF920A969CF66653C464CF /* MTLReflection.m */, - 8057CEDCDCF924E040D9D14F /* MTLTransformerErrorHandling.h */, - 49B490E4F28ED008C184E20D /* MTLTransformerErrorHandling.m */, - 2BFD39420731A8315336D476 /* MTLValueTransformer.h */, - 97892F78259C4A8DFF823F37 /* MTLValueTransformer.m */, - 2B676AC6FC7F0B593FF0C475 /* Mantle.h */, - 34F95094705A52D263AB17D6 /* NSArray+MTLManipulationAdditions.h */, - 6CBEC5B980E9F5999568CA3D /* NSArray+MTLManipulationAdditions.m */, - 92B21B00302059E1DDD80395 /* NSDictionary+MTLJSONKeyPath.h */, - 76B6885BED46A34231D2AA63 /* NSDictionary+MTLJSONKeyPath.m */, - 2833440792FAAB7CDCB5B4F0 /* NSDictionary+MTLManipulationAdditions.h */, - BD94BC098827CB4529B6B691 /* NSDictionary+MTLManipulationAdditions.m */, - 7B4EA2D9B2F2657EC6A40FBC /* NSDictionary+MTLMappingAdditions.h */, - B1B0B16301E7F3AA55ED61A9 /* NSDictionary+MTLMappingAdditions.m */, - 26A36DEBCFC1E544819F6620 /* NSError+MTLModelException.h */, - DDE458D739C793BC51799396 /* NSError+MTLModelException.m */, - B9459FA7A26B44B49E1B8DA9 /* NSObject+MTLComparisonAdditions.h */, - 2596C15D5F1AE58CEB1FE929 /* NSObject+MTLComparisonAdditions.m */, - 97EDC1CE12F7454A1577983F /* NSValueTransformer+MTLInversionAdditions.h */, - F906B890EB25C26B46F1D2C7 /* NSValueTransformer+MTLInversionAdditions.m */, - 68C325E0F350FD04981ED74F /* NSValueTransformer+MTLPredefinedTransformerAdditions.h */, - DA1630DEACEC1F0DBBB26B02 /* NSValueTransformer+MTLPredefinedTransformerAdditions.m */, - 9DC98DC3EF049820BEF5BABE /* Support Files */, - 61BE5E80894E476330E9F7D8 /* extobjc */, - ); - path = Mantle; - sourceTree = ""; - }; - A8E93CD7B1938A7635357221 /* PromiseKit */ = { - isa = PBXGroup; - children = ( - 787A2029408460B111BCE037 /* CALayer */, - AFD5B9EDB01FCD1F454A614B /* NSNotificationCenter */, - 4DFB9FA3DEB0FA6BCFC00C80 /* NSURLConnection */, - 57B024CAE2FF3ABE6D82D92B /* Pause */, - C9553E5F39B2710A90480E65 /* Promise */, - 341944F4EB69180C984FBF42 /* Support Files */, - F13369D098BC7A3FCC2D55FF /* UIActionSheet */, - CB62768F86ACA20DDDA60831 /* UIAlertView */, - 0CA722BAA6C5174B64E4B661 /* UIView */, - 8DE6D9D3E0094F5067F3F289 /* UIViewController */, - CB5A1276102F88DBC900917C /* Until */, - 15BDE7A6554401A9DA614F65 /* When */, - ); - path = PromiseKit; - sourceTree = ""; - }; - AE9AFED6D40115B8E21A5E87 /* UmbrellaHeader */ = { - isa = PBXGroup; - children = ( - A91B4F1C9D2D7D99EE8B3B3C /* extobjc.h */, - ); - name = UmbrellaHeader; - sourceTree = ""; - }; - AFD5B9EDB01FCD1F454A614B /* NSNotificationCenter */ = { - isa = PBXGroup; - children = ( - D8011BA9F83F8DEF158819C7 /* NSNotificationCenter+PromiseKit.h */, - 86112BBD72AF95226FFBCB32 /* NSNotificationCenter+PromiseKit.m */, - ); - name = NSNotificationCenter; - sourceTree = ""; - }; - B3C2A3185E502D0760609CCD /* Support Files */ = { - isa = PBXGroup; - children = ( - D94BE168D559C1557670E2CE /* Pods-Blog-FontAwesome+iOS.xcconfig */, - C259200F9856B1CED757EBC7 /* Pods-Blog-FontAwesome+iOS-Private.xcconfig */, - 970A41A308FA5A23713B24BA /* Pods-Blog-FontAwesome+iOS-dummy.m */, - C320670685CB7E660E18BFCB /* Pods-Blog-FontAwesome+iOS-prefix.pch */, - ); - name = "Support Files"; - path = "../Target Support Files/Pods-Blog-FontAwesome+iOS"; - sourceTree = ""; - }; - B5930583D7B9ABA75DC6A0D6 /* Pods */ = { - isa = PBXGroup; - children = ( - 8A5B83AB8A151B242C8C37AD /* CocoaLumberjack */, - 26C5CCD36B5D71D7DE5727A7 /* FontAwesome+iOS */, - D676E1082DB478556469A859 /* MBProgressHUD */, - A61AC672234B0C4F5E58DEF2 /* Mantle */, - 19F13E89B8D913522E86C656 /* OMGHTTPURLRQ */, - 6875BF715528231DC8C2EB8B /* ObjectiveSugar */, - A8E93CD7B1938A7635357221 /* PromiseKit */, - 3483020A068079E4510F7A6C /* YapDatabase */, - D1A5CA4A5B071B90A448272F /* dyci */, - 1D64D2BFF850AFD834D56EB9 /* libextobjc */, - ); - name = Pods; - sourceTree = ""; - }; - B8E5F764E92EEB04E0923448 /* Support Files */ = { - isa = PBXGroup; - children = ( - F6DD54E3072108AD274BDC14 /* Pods-Blog-MBProgressHUD.xcconfig */, - EF398E993F646E7B6B07E3C1 /* Pods-Blog-MBProgressHUD-Private.xcconfig */, - 2EE6020150256878B361C44B /* Pods-Blog-MBProgressHUD-dummy.m */, - F29D678FCC71858EE7D95C27 /* Pods-Blog-MBProgressHUD-prefix.pch */, - 0E8CB36B6CCD9434DC93EDA8 /* Pods-samhuri.net-MBProgressHUD.xcconfig */, - 412911EC4FA87AE1B39C9A43 /* Pods-samhuri.net-MBProgressHUD-Private.xcconfig */, - 3D267AF5977A7AC5360BB7F7 /* Pods-samhuri.net-MBProgressHUD-dummy.m */, - 19EACECD75C592B9D8FE6035 /* Pods-samhuri.net-MBProgressHUD-prefix.pch */, - ); - name = "Support Files"; - path = "../Target Support Files/Pods-Blog-MBProgressHUD"; - sourceTree = ""; - }; - BC458258EC64042EC98D793D /* NSInvocation+EXT */ = { - isa = PBXGroup; - children = ( - 10BDA234BD3091894487BCEB /* NSInvocation+EXT.h */, - 58A8E5B9EF491E6EBEA811F4 /* NSInvocation+EXT.m */, - ); - name = "NSInvocation+EXT"; - sourceTree = ""; - }; - C894DDD530D153F829F7C11C /* EXTConcreteProtocol */ = { - isa = PBXGroup; - children = ( - 33275D7AE06D272A53F23F30 /* EXTConcreteProtocol.h */, - 4FC527BF4D6156DF3F602401 /* EXTConcreteProtocol.m */, - ); - name = EXTConcreteProtocol; - sourceTree = ""; - }; - C9553E5F39B2710A90480E65 /* Promise */ = { - isa = PBXGroup; - children = ( - 49E66D7F3B72C857E575D900 /* PMKPromise.m */, - EA8ED6BE5F0E935AEEF89179 /* Promise.h */, - 6AA1D52525F1F893E4247002 /* PromiseKit.h */, - C841A29BC816EA1D9898F6A9 /* fwd.h */, - ); - name = Promise; - sourceTree = ""; - }; - CB5A1276102F88DBC900917C /* Until */ = { - isa = PBXGroup; - children = ( - 926302AC32ED98504756ACFA /* PMKPromise+Until.m */, - 2F67F2A03BD8CAE4FCA8864E /* Promise+Until.h */, - ); - name = Until; - sourceTree = ""; - }; - CB62768F86ACA20DDDA60831 /* UIAlertView */ = { - isa = PBXGroup; - children = ( - E265977D887E17AC61258250 /* UIAlertView+PromiseKit.h */, - 00294DB9529CE75E49B8279A /* UIAlertView+PromiseKit.m */, - ); - name = UIAlertView; - sourceTree = ""; - }; - CCFEB986CF84842BEC3E75A6 /* Products */ = { - isa = PBXGroup; - children = ( - 8A7B3A3176BD3D4BFEC0A87E /* libPods-Blog.a */, - 17F7FC03FEA3D20FB1A44BE4 /* libPods-Blog-CocoaLumberjack.a */, - E27D96C0B1EA73830C913BA5 /* libPods-Blog-FontAwesome+iOS.a */, - 0107A02DD2AA3F1BCD05C855 /* libPods-Blog-MBProgressHUD.a */, - 876DD75AC3BE2EB522E680D0 /* libPods-Blog-Mantle.a */, - 2BD37CDAD70AFA9A71B8C729 /* libPods-Blog-OMGHTTPURLRQ.a */, - B153D6B1F96AE5F1CD5C36CC /* libPods-Blog-ObjectiveSugar.a */, - E9F3E777298E2C196C9F137D /* libPods-Blog-PromiseKit.a */, - 9E22939371B2424991C21E6E /* libPods-Blog-YapDatabase.a */, - 93352111715805AB65DD416D /* libPods-Blog-dyci.a */, - 8B8AF6DB438C5C6402272E73 /* libPods-Blog-libextobjc.a */, - 503C6EC9BD66C2DDD667A9A8 /* libPods-samhuri.net.a */, - 1748FB994DF36F5CFD70C388 /* libPods-samhuri.net-CocoaLumberjack.a */, - D07ADDADCDB5439EBB97A826 /* libPods-samhuri.net-MBProgressHUD.a */, - 43124240504688FC6BF3C826 /* libPods-samhuri.net-Mantle.a */, - E6498F351BB43D131E3C4221 /* libPods-samhuri.net-OMGHTTPURLRQ.a */, - 619ED2F5D65D1768FC28AEBF /* libPods-samhuri.net-ObjectiveSugar.a */, - FB9EBAEBDC921DCE564F950E /* libPods-samhuri.net-PromiseKit.a */, - C548DB7D447C7ADC7379D0D4 /* libPods-samhuri.net-YapDatabase.a */, - ); - name = Products; - sourceTree = ""; - }; - D1A5CA4A5B071B90A448272F /* dyci */ = { - isa = PBXGroup; - children = ( - 80FB9B7030A0525D7CA856F9 /* NSSet+ClassesList.h */, - 89CE12B46FC99669F2F30E76 /* NSSet+ClassesList.m */, - 2C058B96487AFE809BA37B48 /* SFDynamicCodeInjection.h */, - EE6E1FC6E50F2EEAC22AEEA4 /* SFDynamicCodeInjection.m */, - AD57B3F5CA76A8FBA1527BEE /* SFFileWatcher.h */, - 349A76A262017BE01B9A86C5 /* SFFileWatcher.m */, - 5C2F5AD1A6C07D15185D9DAA /* SFFileWatcherDelegate.h */, - 959D14BDE72A8AEF1BC386BB /* SFInjectionsNotificationsCenter.h */, - FE63A5979137FFA0FB2ECF58 /* SFInjectionsNotificationsCenter.m */, - AE60EB5020820A9FE013D7EF /* UINib+StoryBoardSupport.h */, - A9096A5DE69CB535E48E5435 /* UINib+StoryBoardSupport.m */, - 7891CFAFF566F8684D3075D5 /* UIViewController+XIBSupport.h */, - 30A67CC6BE0A0FD55C71BE1F /* UIViewController+XIBSupport.m */, - 149C7A58BB267831F8BEE45C /* Injections */, - 3EE0BED3EB10397B27F2A3BE /* Support Files */, - ); - path = dyci; - sourceTree = ""; - }; - D22D28A68B50AB2B1E0BBC16 /* Support Files */ = { - isa = PBXGroup; - children = ( - B4C49342A65F714552E3C7CB /* Pods-Blog-libextobjc.xcconfig */, - C119ACE003D70D14D0CC5B37 /* Pods-Blog-libextobjc-Private.xcconfig */, - 7A289C8AFDFB082AC4C361B5 /* Pods-Blog-libextobjc-dummy.m */, - 23DCCA31A5DD4723D5CDC727 /* Pods-Blog-libextobjc-prefix.pch */, - ); - name = "Support Files"; - path = "../Target Support Files/Pods-Blog-libextobjc"; - sourceTree = ""; - }; - D676E1082DB478556469A859 /* MBProgressHUD */ = { - isa = PBXGroup; - children = ( - 732A57C29CE769769AC295FB /* MBProgressHUD.h */, - 26D67668333253E8C2245192 /* MBProgressHUD.m */, - B8E5F764E92EEB04E0923448 /* Support Files */, - ); - path = MBProgressHUD; - sourceTree = ""; - }; - DDCAE8393475D5E74AB1BEBC /* Extensions */ = { - isa = PBXGroup; - children = ( - 97088D634D871C989AC567F8 /* DDContextFilterLogFormatter.h */, - 08BF8ADC6335EBEEAA693C8B /* DDContextFilterLogFormatter.m */, - 7179DB8624B6FDCCD414340B /* DDDispatchQueueLogFormatter.h */, - E00F4C2CEA4AABEA497BC954 /* DDDispatchQueueLogFormatter.m */, - 69255EE076182BDFE3907A29 /* DDMultiFormatter.h */, - B3D437B9C71381C43100C0E9 /* DDMultiFormatter.m */, - ); - name = Extensions; - sourceTree = ""; - }; - DDD0C0559AC14321A01598B8 /* Pods-Blog */ = { - isa = PBXGroup; - children = ( - 12EC26A0C8A60EA31C83E978 /* Pods-Blog-acknowledgements.markdown */, - E34D52A7F5B71F969AA109A3 /* Pods-Blog-acknowledgements.plist */, - 8F362095B44E9606CFF28D43 /* Pods-Blog-dummy.m */, - 0850A1E73E8134133C72E8D6 /* Pods-Blog-environment.h */, - B546418066836454DD3F7F48 /* Pods-Blog-resources.sh */, - 28A4EE3E29192A493521DA4D /* Pods-Blog.debug.xcconfig */, - EA0D8559A482F2E9D0790642 /* Pods-Blog.release.xcconfig */, + 0E9A393EFD29ADC14A40D488 /* Pods-Blog-acknowledgements.markdown */, + CA2C8071DC8343F160D1F9BE /* Pods-Blog-acknowledgements.plist */, + 8923DA8CD8ED19BB1054776B /* Pods-Blog-dummy.m */, + 37B57CAE9B3BD6B83562BCDE /* Pods-Blog-environment.h */, + DBB53A3B54F3EE0DFCE4CCB4 /* Pods-Blog-resources.sh */, + F0B9C4744873562D461901C5 /* Pods-Blog.debug.xcconfig */, + 4FAEC47B45230AE46729DFEA /* Pods-Blog.release.xcconfig */, ); name = "Pods-Blog"; path = "Target Support Files/Pods-Blog"; sourceTree = ""; }; - E338B1492FF80E6CB1343DA9 /* RQ */ = { + 06C699C9D1E5D919FB73EFB5 /* Support Files */ = { isa = PBXGroup; children = ( - E07FA55FCC59E1BAB9A01C6A /* OMGHTTPURLRQ.h */, - 91B4C3AA04FF0180D1576B35 /* OMGHTTPURLRQ.m */, + 0D2752084F69F3909D28D926 /* Pods-Blog-FontAwesome+iOS.xcconfig */, + 5411044706088463D1712EE7 /* Pods-Blog-FontAwesome+iOS-Private.xcconfig */, + 0023677A545752E071C1FFDC /* Pods-Blog-FontAwesome+iOS-dummy.m */, + 0168F964DD215127BAB2FB25 /* Pods-Blog-FontAwesome+iOS-prefix.pch */, ); - name = RQ; + name = "Support Files"; + path = "../Target Support Files/Pods-Blog-FontAwesome+iOS"; sourceTree = ""; }; - F0EBEDCBD2796D5105AFCC20 /* Support Files */ = { + 0BC83F863481A98345A644AC /* UmbrellaHeader */ = { isa = PBXGroup; children = ( - D64C61EA0990CBD0BE47076B /* Pods-Blog-CocoaLumberjack.xcconfig */, - BEFC5A947D608500AEF8D4E5 /* Pods-Blog-CocoaLumberjack-Private.xcconfig */, - 9B3EEA141DFFF8B997B64E5B /* Pods-Blog-CocoaLumberjack-dummy.m */, - 84E9B9B8FD1A8137EF1A152F /* Pods-Blog-CocoaLumberjack-prefix.pch */, - D866E345751E790C73316B8D /* Pods-samhuri.net-CocoaLumberjack.xcconfig */, - 539DB9150507BC524A50B067 /* Pods-samhuri.net-CocoaLumberjack-Private.xcconfig */, - 240E372D9BC934267E060F45 /* Pods-samhuri.net-CocoaLumberjack-dummy.m */, - 3AF53DEF557252716AF12062 /* Pods-samhuri.net-CocoaLumberjack-prefix.pch */, + A7CEB319B56B9E9E04D27915 /* extobjc.h */, + ); + name = UmbrellaHeader; + sourceTree = ""; + }; + 0C4E82992C75E1413FFDC218 /* CALayer */ = { + isa = PBXGroup; + children = ( + 9BDFF8E55AE2E7785B63D958 /* CALayer+PromiseKit.h */, + 577BD1F5A8EE64F101B8433C /* CALayer+PromiseKit.m */, + ); + name = CALayer; + sourceTree = ""; + }; + 0E264491497DB2B8B13EA759 /* Mantle */ = { + isa = PBXGroup; + children = ( + 416560387AB86E58AEACA1CF /* MTLJSONAdapter.h */, + 4909ED535CE51C1035640E21 /* MTLJSONAdapter.m */, + 681E61D4F1C8003DD0002889 /* MTLModel.h */, + 9E3B403889BC6F9D19D277C6 /* MTLModel.m */, + 037C19BCE6D1052E33FDC70D /* MTLModel+NSCoding.h */, + 5B00B4D81CE931A6E619B059 /* MTLModel+NSCoding.m */, + 56086D9ACE3E4202CC5ECF36 /* MTLReflection.h */, + EB9B1F88D41CBCBC72A4A328 /* MTLReflection.m */, + 7BA9BD8D62A3CB35ECD61CA5 /* MTLTransformerErrorHandling.h */, + 18962583BAA744E203BCF9E0 /* MTLTransformerErrorHandling.m */, + 31FF98604D391FA436B6BDC0 /* MTLValueTransformer.h */, + E9D57B830F1BBDE77FC3E9B7 /* MTLValueTransformer.m */, + 3B45EBA63E234BB38D261731 /* Mantle.h */, + 1A16819046869E61CBED00EC /* NSArray+MTLManipulationAdditions.h */, + EE7CEFDE2BD6D14082EB9C63 /* NSArray+MTLManipulationAdditions.m */, + 3847DF5D69761FB3443E5979 /* NSDictionary+MTLJSONKeyPath.h */, + 2692040EB7CBD64C984AEDE8 /* NSDictionary+MTLJSONKeyPath.m */, + FF03E67D65DA039C821AA8C3 /* NSDictionary+MTLManipulationAdditions.h */, + B699D2EB04366EDE0133874F /* NSDictionary+MTLManipulationAdditions.m */, + 7D5BD4AE5569C50E63719936 /* NSDictionary+MTLMappingAdditions.h */, + 472968D407FE49DC29FEE514 /* NSDictionary+MTLMappingAdditions.m */, + 9114C6F1CBD9B1AC3E0997C0 /* NSError+MTLModelException.h */, + 02E31D1B67428645190E3A61 /* NSError+MTLModelException.m */, + 49AE2F6AA312BA5553E794E7 /* NSObject+MTLComparisonAdditions.h */, + 6316E863B3D956960C6EE011 /* NSObject+MTLComparisonAdditions.m */, + 9C2138252A4D097A38516BD3 /* NSValueTransformer+MTLInversionAdditions.h */, + B5147EFC78015B4FD83F9A64 /* NSValueTransformer+MTLInversionAdditions.m */, + 1B2ED9DA408A61425EB201EB /* NSValueTransformer+MTLPredefinedTransformerAdditions.h */, + 2B0920FE8638FCBA2512FDC8 /* NSValueTransformer+MTLPredefinedTransformerAdditions.m */, + 869D99B6082B44D49D8F63E2 /* Support Files */, + 9254B9837ABA1A282E45F20E /* extobjc */, + ); + path = Mantle; + sourceTree = ""; + }; + 1144662171E2AEDEDB146205 /* NSNotificationCenter */ = { + isa = PBXGroup; + children = ( + 9CD9C39CB45631556C93882F /* NSNotificationCenter+PromiseKit.h */, + 18F4F1884C30C7A824655957 /* NSNotificationCenter+PromiseKit.m */, + ); + name = NSNotificationCenter; + sourceTree = ""; + }; + 1415E21256108515D191198F /* Support Files */ = { + isa = PBXGroup; + children = ( + 510E05D35CA23A13291F868F /* Pods-Blog-HockeySDK.xcconfig */, + 1FD1DBAB2B5CED8999A0E9C1 /* Pods-Blog-HockeySDK-Private.xcconfig */, + B27E10EB84984DC1E2D4ADDC /* Pods-Blog-HockeySDK-dummy.m */, + D52919E3E0B4582879052E43 /* Pods-Blog-HockeySDK-prefix.pch */, + ); + name = "Support Files"; + path = "../Target Support Files/Pods-Blog-HockeySDK"; + sourceTree = ""; + }; + 19D5E8B87190963760EB1E49 /* ObjectiveSugar */ = { + isa = PBXGroup; + children = ( + 9BA8961ABB0603C8F593E999 /* NSArray+ObjectiveSugar.h */, + B46A0572C7606D9CC10F8089 /* NSArray+ObjectiveSugar.m */, + 514533BEC75FAEE685837209 /* NSDictionary+ObjectiveSugar.h */, + C2045BE9B71B985A9944A51A /* NSDictionary+ObjectiveSugar.m */, + 4544A85C176459B3C99B3204 /* NSMutableArray+ObjectiveSugar.h */, + 72FD13B9E14DC246CB80F40E /* NSMutableArray+ObjectiveSugar.m */, + FFCA7F6D3900ECC708486304 /* NSNumber+ObjectiveSugar.h */, + B7308DE79E6B59A6BCED0E55 /* NSNumber+ObjectiveSugar.m */, + E53059491CB83D8CA77E1411 /* NSSet+ObjectiveSugar.h */, + CD043C86B48084EEDFD46BAE /* NSSet+ObjectiveSugar.m */, + 95F07D0CC3B8F4224850657A /* NSString+ObjectiveSugar.h */, + A090016DDA06CAFA44418CEF /* NSString+ObjectiveSugar.m */, + 3391BE37C10FF6570B07E29F /* ObjectiveSugar.h */, + 5EE4FC32200369999AE54FA1 /* Support Files */, + ); + path = ObjectiveSugar; + sourceTree = ""; + }; + 1A16BC45C350E036B8325A0B /* EXTSelectorChecking */ = { + isa = PBXGroup; + children = ( + F274EA53A36697B1B7BAE1A8 /* EXTSelectorChecking.h */, + B8927058D6ECCD98D7E28039 /* EXTSelectorChecking.m */, + ); + name = EXTSelectorChecking; + sourceTree = ""; + }; + 1CBF91F61B86A763CA47300B /* UserAgent */ = { + isa = PBXGroup; + children = ( + B40A12346A638AE5BB40D958 /* OMGUserAgent.h */, + DB4997275289D86523E96F96 /* OMGUserAgent.m */, + ); + name = UserAgent; + sourceTree = ""; + }; + 1D770690B8B24F0BBA0DFEE4 /* Core */ = { + isa = PBXGroup; + children = ( + E75BDE50E6F2317995C8A437 /* DDASLLogCapture.h */, + 5D952B697E2680C68FE77644 /* DDASLLogCapture.m */, + BBECDB2613259DCA4284788C /* DDASLLogger.h */, + 1C1E5DF6B743BB5E23559BD5 /* DDASLLogger.m */, + DE9E3163CF182F22103B1650 /* DDAbstractDatabaseLogger.h */, + 274D470094D17041FF3DA1AC /* DDAbstractDatabaseLogger.m */, + 3308D7BDAB66931744762B7D /* DDAssert.h */, + 2F4B02F7F7BB4166E9B2450B /* DDFileLogger.h */, + 45606DBAD5CBEFF605BBBE0F /* DDFileLogger.m */, + 3BF5F262FEB96CD07F5F3999 /* DDLog.h */, + FFC39F1AD2E4583CE74D9C2B /* DDLog.m */, + 4904A867238006F8F0B405A2 /* DDLog+LOGV.h */, + 8484A41F8D3FA714135DCEB2 /* DDTTYLogger.h */, + 66A8CF0B03941003744ADBD7 /* DDTTYLogger.m */, + ); + name = Core; + sourceTree = ""; + }; + 22B8BE4A5AC0301E0705D980 /* Until */ = { + isa = PBXGroup; + children = ( + 545EFEC13527422EBE0B200E /* PMKPromise+Until.m */, + F15DAE4BDB915BFE7508024F /* Promise+Until.h */, + ); + name = Until; + sourceTree = ""; + }; + 24743C495390B7D114063BCA /* Products */ = { + isa = PBXGroup; + children = ( + 1F29E8DAAADEE94BA4E845D1 /* HockeySDKResources.bundle */, + 6D844884C2AF03CF2238630A /* libPods-Blog.a */, + 3029174C0573404E331F3D7E /* libPods-Blog-CocoaLumberjack.a */, + 2E3B6D39AAAE5CE92521A9C2 /* libPods-Blog-FontAwesome+iOS.a */, + 1AB9554218F5C9AC284F5620 /* libPods-Blog-HockeySDK.a */, + BF49CAFCBEC806E09309C380 /* libPods-Blog-MBProgressHUD.a */, + 092EA250C606F7540FA623F5 /* libPods-Blog-Mantle.a */, + A14AAD669B1EAE61A312D645 /* libPods-Blog-OMGHTTPURLRQ.a */, + 2E9F884DDE5117CAEC6CB79D /* libPods-Blog-ObjectiveSugar.a */, + 3EE1FB9F806C2180B682F8D9 /* libPods-Blog-PromiseKit.a */, + CFEB0BFB2D727FD10003F1FC /* libPods-Blog-YapDatabase.a */, + 05F762B5D7755DDC9075253F /* libPods-Blog-dyci.a */, + 9DE1031504F24E3C0AD4A566 /* libPods-Blog-libextobjc.a */, + 46556DD804F8ADB9FAE66C96 /* libPods-samhuri.net.a */, + E239F40466333BFD07F9C413 /* libPods-samhuri.net-CocoaLumberjack.a */, + C274E9E3E7429EAF8313E3DD /* libPods-samhuri.net-MBProgressHUD.a */, + 435B0AFDCCA4F3A15AD58410 /* libPods-samhuri.net-Mantle.a */, + F29D7E26485DC48F8F8590B8 /* libPods-samhuri.net-OMGHTTPURLRQ.a */, + 32CB0483D23683749726EF27 /* libPods-samhuri.net-ObjectiveSugar.a */, + F79B6C38D4F610135E778C0D /* libPods-samhuri.net-PromiseKit.a */, + E435FFB5958C6FB4FEA0F376 /* libPods-samhuri.net-YapDatabase.a */, + ); + name = Products; + sourceTree = ""; + }; + 247F469EE6B466ED8584AFDA /* Support Files */ = { + isa = PBXGroup; + children = ( + 6C523A395E279637F7F1564D /* Pods-Blog-libextobjc.xcconfig */, + 15850043CD4FB75D191E205A /* Pods-Blog-libextobjc-Private.xcconfig */, + A6DF7C8CBBE04CB9BF174129 /* Pods-Blog-libextobjc-dummy.m */, + 503A183E45FBBEA1173DFD4E /* Pods-Blog-libextobjc-prefix.pch */, + ); + name = "Support Files"; + path = "../Target Support Files/Pods-Blog-libextobjc"; + sourceTree = ""; + }; + 2EDC9E33B7F3A0BF1E523C57 /* Pause */ = { + isa = PBXGroup; + children = ( + CEEB9080907A1F3C429BC151 /* PMKPromise+Pause.m */, + B278467453160CB24D460AD6 /* Promise+Pause.h */, + ); + name = Pause; + sourceTree = ""; + }; + 334AA3358D8DC5CBA1D1E17C /* EXTNil */ = { + isa = PBXGroup; + children = ( + 2739CFE5A18784673E3C8B0F /* EXTNil.h */, + 74FDA1ECA100B69FB7C20B81 /* EXTNil.m */, + ); + name = EXTNil; + sourceTree = ""; + }; + 45557B4D91E267220AB739AC /* Extensions */ = { + isa = PBXGroup; + children = ( + 6311E6BB9B1CF3246CC9E400 /* DDContextFilterLogFormatter.h */, + 8ED3891C4132E5F3D987DA3B /* DDContextFilterLogFormatter.m */, + D6DA7E38678327A6EE630CBB /* DDDispatchQueueLogFormatter.h */, + FAAFB319976CD30D98D6FBC3 /* DDDispatchQueueLogFormatter.m */, + C47DA80EBDB0164E9BAFB0B5 /* DDMultiFormatter.h */, + 761CDF1A0221DF27876DBBB4 /* DDMultiFormatter.m */, + ); + name = Extensions; + sourceTree = ""; + }; + 465216F1893F1D7F37E6D565 /* Support Files */ = { + isa = PBXGroup; + children = ( + 33944845AD0433274A6390F4 /* Pods-Blog-YapDatabase.xcconfig */, + 75E23EB4429317B9AB38151A /* Pods-Blog-YapDatabase-Private.xcconfig */, + 950D8ECC84F1986A667311E6 /* Pods-Blog-YapDatabase-dummy.m */, + 66E2AAE6B5911FAAFC70C7F2 /* Pods-Blog-YapDatabase-prefix.pch */, + B5145EAD52ED69ACF83CEF7F /* Pods-samhuri.net-YapDatabase.xcconfig */, + 4CBFF2DBC92074B91C45992D /* Pods-samhuri.net-YapDatabase-Private.xcconfig */, + 4C53E02E13256F204530B89B /* Pods-samhuri.net-YapDatabase-dummy.m */, + 0BC9F5FB29551F575CC3D1FD /* Pods-samhuri.net-YapDatabase-prefix.pch */, + ); + name = "Support Files"; + path = "../Target Support Files/Pods-Blog-YapDatabase"; + sourceTree = ""; + }; + 4B160F74E81A3ACE21289D80 /* dyci */ = { + isa = PBXGroup; + children = ( + C6A184DE8B0C02C61E907BC6 /* NSSet+ClassesList.h */, + 114CA422CC947006E8843BEA /* NSSet+ClassesList.m */, + 1B6A6462C66A44AE7521BB7D /* SFDynamicCodeInjection.h */, + 3523D1F2DB76883356A2C9AD /* SFDynamicCodeInjection.m */, + EF89A3837032C8E74AF768F4 /* SFFileWatcher.h */, + B20CE3A5B5E149600152DC07 /* SFFileWatcher.m */, + 8A73ACD2B5F4E4E72836B259 /* SFFileWatcherDelegate.h */, + C58F952C5F5929EC34DAD464 /* SFInjectionsNotificationsCenter.h */, + 843E4FAD7FFACCC6D7630FBC /* SFInjectionsNotificationsCenter.m */, + 415C8661A54B4780F14761E6 /* UINib+StoryBoardSupport.h */, + D14CAE9F55AF8C3315965B96 /* UINib+StoryBoardSupport.m */, + 4BB03AEE4E9B2CAC0B4CCCB1 /* UIViewController+XIBSupport.h */, + 6954C9E2A73C06E2012F7EB0 /* UIViewController+XIBSupport.m */, + 73DF0A9D499C6CEFB3ED2480 /* Injections */, + 680C556E419BC129BD1D50A3 /* Support Files */, + ); + path = dyci; + sourceTree = ""; + }; + 4F975902C72CD77C26B4A229 = { + isa = PBXGroup; + children = ( + 080BDF5F127AA4AF3BB7630D /* Podfile */, + 7D909F94BC85F4407178FD70 /* Frameworks */, + D17157AA4B555829D3BC20D3 /* Pods */, + 24743C495390B7D114063BCA /* Products */, + F274494C8D06D7C5917909D5 /* Targets Support Files */, + ); + sourceTree = ""; + }; + 50D659B90BA65BD617E44AD8 /* RuntimeExtensions */ = { + isa = PBXGroup; + children = ( + 2B31CB60E163FF7B2EDED962 /* EXTRuntimeExtensions.h */, + 30FCCFB779DD3B92DD26FDC7 /* EXTRuntimeExtensions.m */, + D0609C4BB316F6C406515655 /* metamacros.h */, + ); + name = RuntimeExtensions; + sourceTree = ""; + }; + 5974F7E40F47723CC39B091B /* OMGHTTPURLRQ */ = { + isa = PBXGroup; + children = ( + 9C9706A7F65A092803310FFC /* FormURLEncode */, + EFF3004BED7175E06A337BE9 /* RQ */, + E82BDBAB557EBA7CAFEC8486 /* Support Files */, + 1CBF91F61B86A763CA47300B /* UserAgent */, + ); + path = OMGHTTPURLRQ; + sourceTree = ""; + }; + 5A17E4320F98798C85AD86F1 /* EXTADT */ = { + isa = PBXGroup; + children = ( + C762D834D70422D3F7A56BFD /* EXTADT.h */, + 55BF87C50521DCFA948B4BC4 /* EXTADT.m */, + ); + name = EXTADT; + sourceTree = ""; + }; + 5CCB68046BA7799C23C20D98 /* Resources */ = { + isa = PBXGroup; + children = ( + C63C6B4830C908886C0A3DFE /* Arrow.png */, + F8F6B9AFA030C8D0E2824825 /* Arrow@2x.png */, + 5BE2F353665128803541EB57 /* Arrow@3x.png */, + 52973E9BB77DB4E7F8C497E2 /* Blur.png */, + 9CF9D320F545EA3CC322ED59 /* Blur@2x.png */, + A47AFE0CD90EC2F611BBB170 /* Blur@3x.png */, + 42B8A6E679CAADE1D110DD14 /* Cancel.png */, + B08CC53317FA226DE7E2F027 /* Cancel@2x.png */, + 2C6268474EDB1A0E48E82871 /* Cancel@3x.png */, + 0BA48468FA647EA7740B2237 /* IconGradient.png */, + B9C0C260A159F0A4EF7A808D /* IconGradient@2x.png */, + 619FF75A6C351D8E5A76F150 /* Ok.png */, + 126FB1A7049C4691143B6656 /* Ok@2x.png */, + 83B614F52437F53C5C14CC23 /* Ok@3x.png */, + 33E997B4175AFC16EB235986 /* Rectangle.png */, + 4466E9097130AE97FEF25D4C /* Rectangle@2x.png */, + 7E9F4A37E13B3D104EF0335F /* Rectangle@3x.png */, + D9611CD8143D152BA4AD4E90 /* authorize_denied.png */, + D83377D5F081237EBC7B5F2A /* authorize_denied@2x.png */, + CA5A3F80D0844B1CE68C0CEA /* authorize_denied@3x.png */, + A61395B78F311A97B3E1F8AE /* bg.png */, + 8A1606CB9BC73D20903E3A29 /* buttonRoundedDelete.png */, + E99115FDF6C72A432292F617 /* buttonRoundedDelete@2x.png */, + 7566418EF62E7F824B0049FC /* buttonRoundedDeleteHighlighted.png */, + 00D8EEEC4E976B458CE6B47B /* buttonRoundedDeleteHighlighted@2x.png */, + 58943FAD5ED9486529E4D5EE /* buttonRoundedRegular.png */, + 8658767E5AE0054B5D0B1A98 /* buttonRoundedRegular@2x.png */, + 8A3B58037F26564DFDF14C5F /* buttonRoundedRegularHighlighted.png */, + 4769C352C1DA43D4A24C8046 /* buttonRoundedRegularHighlighted@2x.png */, + 6FECC3F313145297F55198B3 /* de.lproj */, + F5E14A083793793CCBE0A329 /* en.lproj */, + D1E37A53CE49826B04F4AD43 /* es.lproj */, + 261E60A2F8407C25ECD19683 /* feedbackActivity.png */, + 6001ACFCEFA9ECFF2AEBC1B4 /* feedbackActivity@2x.png */, + 83C4D9F9C462505028F391D8 /* feedbackActivity@2x~ipad.png */, + C5B718F30DB4FF5860248697 /* feedbackActivity@3x.png */, + 14E91177F2D7F0DDE1FFC8A5 /* feedbackActivity~ipad.png */, + 6FAAC7962D183FFE47391AB9 /* fr.lproj */, + EFE57D9EBDFF786697CF0917 /* hr.lproj */, + BA776DEBA98EB4903E84A0F8 /* hu.lproj */, + A948FC7FF58BAB60A6134B4B /* iconCamera.png */, + 19F462093848F17B8CD183C9 /* iconCamera@2x.png */, + B280C102D9EA5CD778F7B27D /* it.lproj */, + 34C9996FF9709CA210D8AF16 /* ja.lproj */, + C8F81CCAFE1ED63F6653D4B9 /* nl.lproj */, + 443A2BFCCC45974DA1DE3843 /* pt.lproj */, + 9E275F2737A058EBEE1A07B6 /* pt-PT.lproj */, + 88B4CF4F8E92DAF09ED05A0F /* ru.lproj */, + 0C3BFDBBB613CE4EEBD25D5A /* zh-Hans.lproj */, + ); + name = Resources; + sourceTree = ""; + }; + 5EE4FC32200369999AE54FA1 /* Support Files */ = { + isa = PBXGroup; + children = ( + A32A01FF0A29D45FACE89BAA /* Pods-Blog-ObjectiveSugar.xcconfig */, + 9F9EAB7FE149708F18679F88 /* Pods-Blog-ObjectiveSugar-Private.xcconfig */, + 48371F1898B464965F96E51C /* Pods-Blog-ObjectiveSugar-dummy.m */, + 5CF2FA58D5BE220B9B0E1AF0 /* Pods-Blog-ObjectiveSugar-prefix.pch */, + B020B116677D81960C8473B5 /* Pods-samhuri.net-ObjectiveSugar.xcconfig */, + 3EFEA5BEFFFE131E1360E9B1 /* Pods-samhuri.net-ObjectiveSugar-Private.xcconfig */, + 79056AB926938D6B5C321C0A /* Pods-samhuri.net-ObjectiveSugar-dummy.m */, + 6581603B55DBEF96247E815B /* Pods-samhuri.net-ObjectiveSugar-prefix.pch */, + ); + name = "Support Files"; + path = "../Target Support Files/Pods-Blog-ObjectiveSugar"; + sourceTree = ""; + }; + 5F095CF9DB45BB91A6D8F423 /* UIViewController */ = { + isa = PBXGroup; + children = ( + 18D675DC0E73CC8FBADB4C42 /* UIViewController+PromiseKit.h */, + 933A85934CD7833C22BE6788 /* UIViewController+PromiseKit.m */, + ); + name = UIViewController; + sourceTree = ""; + }; + 61791142477B3C06209F32D9 /* UIView */ = { + isa = PBXGroup; + children = ( + C316350EDAA44A020382C3D2 /* UIView+PromiseKit.h */, + 80B569CC06E949026E572280 /* UIView+PromiseKit.m */, + ); + name = UIView; + sourceTree = ""; + }; + 662AFEFB62FA3F6EF56721F1 /* Promise */ = { + isa = PBXGroup; + children = ( + FADB6D00FDFF01299D91DAA4 /* PMKPromise.m */, + A07DB2BC98BD53CB96177A33 /* Promise.h */, + D09964036F500F44D0E6439F /* PromiseKit.h */, + E8487C0B60EDEB653E99C666 /* fwd.h */, + ); + name = Promise; + sourceTree = ""; + }; + 680C556E419BC129BD1D50A3 /* Support Files */ = { + isa = PBXGroup; + children = ( + 95087C4EE90196EFC714E9E3 /* Pods-Blog-dyci.xcconfig */, + 60E6683EC599ADFFDD043950 /* Pods-Blog-dyci-Private.xcconfig */, + 06417D67F36D4F18C4276380 /* Pods-Blog-dyci-dummy.m */, + 633B5CB45BD5145F5BFC6281 /* Pods-Blog-dyci-prefix.pch */, + ); + name = "Support Files"; + path = "../Target Support Files/Pods-Blog-dyci"; + sourceTree = ""; + }; + 6C38DA294ECDF1F4F18DC098 /* UIAlertView */ = { + isa = PBXGroup; + children = ( + B47DEF53E78C1B11C9AE15AB /* UIAlertView+PromiseKit.h */, + F4CC610441487CB0DD277837 /* UIAlertView+PromiseKit.m */, + ); + name = UIAlertView; + sourceTree = ""; + }; + 73DF0A9D499C6CEFB3ED2480 /* Injections */ = { + isa = PBXGroup; + children = ( + 3AE5F335396B442F9509FE0F /* NSObject+DyCInjection.h */, + D45536A8A9292616190C0685 /* NSObject+DyCInjection.m */, + ); + name = Injections; + sourceTree = ""; + }; + 7565362C02D0F84FC0BE0F9E /* Frameworks */ = { + isa = PBXGroup; + children = ( + 92C665F6305FD98E3F869913 /* CrashReporter.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; + 778B85C9FAD42A3C2052898D /* libextobjc */ = { + isa = PBXGroup; + children = ( + 5A17E4320F98798C85AD86F1 /* EXTADT */, + F35826208EEC761BB9E953FA /* EXTConcreteProtocol */, + 7E01161CF74DE744D13971F0 /* EXTKeyPathCoding */, + 334AA3358D8DC5CBA1D1E17C /* EXTNil */, + E85C2E0A98B418118848AA9F /* EXTSafeCategory */, + 87B35084B36DACCDF796E74B /* EXTScope */, + 1A16BC45C350E036B8325A0B /* EXTSelectorChecking */, + A6108D62BF36A265326EA778 /* EXTSynthesize */, + DB75949A57946D7BD0A1E9DD /* NSInvocation+EXT */, + DF09FC7D9817B85622F33CA6 /* NSMethodSignature+EXT */, + 50D659B90BA65BD617E44AD8 /* RuntimeExtensions */, + 247F469EE6B466ED8584AFDA /* Support Files */, + 0BC83F863481A98345A644AC /* UmbrellaHeader */, + ); + path = libextobjc; + sourceTree = ""; + }; + 7C91F9925A3C6C9B7E817BEB /* CocoaLumberjack */ = { + isa = PBXGroup; + children = ( + 1D770690B8B24F0BBA0DFEE4 /* Core */, + 45557B4D91E267220AB739AC /* Extensions */, + CDBE0DA61015C64EBB7275CA /* Support Files */, + ); + path = CocoaLumberjack; + sourceTree = ""; + }; + 7D909F94BC85F4407178FD70 /* Frameworks */ = { + isa = PBXGroup; + children = ( + A4659A98A9935948CE701459 /* iOS */, + ); + name = Frameworks; + sourceTree = ""; + }; + 7E01161CF74DE744D13971F0 /* EXTKeyPathCoding */ = { + isa = PBXGroup; + children = ( + 6680957F2DEF012E905E10C6 /* EXTKeyPathCoding.h */, + ); + name = EXTKeyPathCoding; + sourceTree = ""; + }; + 869D99B6082B44D49D8F63E2 /* Support Files */ = { + isa = PBXGroup; + children = ( + 9AB446BEFF53A4FBAF8114C9 /* Pods-Blog-Mantle.xcconfig */, + 655CF649A60EDB82EA45F6E9 /* Pods-Blog-Mantle-Private.xcconfig */, + C3804B73F2EC0DCA400A52F7 /* Pods-Blog-Mantle-dummy.m */, + CD8F14FC27B9F842F9FC0F9E /* Pods-Blog-Mantle-prefix.pch */, + 7F1B5146C965858B92A60454 /* Pods-samhuri.net-Mantle.xcconfig */, + A7BABB824F1E7F02675025B9 /* Pods-samhuri.net-Mantle-Private.xcconfig */, + 64BF29DC70A4D4C3D337E071 /* Pods-samhuri.net-Mantle-dummy.m */, + A6CC972B2528EAAD054CE30C /* Pods-samhuri.net-Mantle-prefix.pch */, + ); + name = "Support Files"; + path = "../Target Support Files/Pods-Blog-Mantle"; + sourceTree = ""; + }; + 87B35084B36DACCDF796E74B /* EXTScope */ = { + isa = PBXGroup; + children = ( + E7C9F2D6F3BE1DCBB8CEFA7E /* EXTScope.h */, + 9ADDCCAED549BF8FC0A1E62A /* EXTScope.m */, + ); + name = EXTScope; + sourceTree = ""; + }; + 8F9927D3B7826EBDDFC5F9BD /* YapDatabase */ = { + isa = PBXGroup; + children = ( + 465216F1893F1D7F37E6D565 /* Support Files */, + CF936FBF92D3E19D9395FED8 /* common */, + ); + path = YapDatabase; + sourceTree = ""; + }; + 9254B9837ABA1A282E45F20E /* extobjc */ = { + isa = PBXGroup; + children = ( + 691E41760AB736863060BFD1 /* EXTKeyPathCoding.h */, + 8B076585AB700AE148E81F98 /* EXTRuntimeExtensions.h */, + 447352FCB4CBDE4B74C83AFB /* EXTRuntimeExtensions.m */, + 24D607AD9649AF74B29019EE /* EXTScope.h */, + 20E112DDB4AE54B73DE1336C /* EXTScope.m */, + C8D0CBA0F0B7FF4B1052CB92 /* metamacros.h */, + ); + name = extobjc; + sourceTree = ""; + }; + 93C0DB3C8B3C08EF96028FDD /* Support Files */ = { + isa = PBXGroup; + children = ( + 02A409006397ACD50DC712F2 /* Pods-Blog-PromiseKit.xcconfig */, + AFDB6FB23854E1D150B8A1F0 /* Pods-Blog-PromiseKit-Private.xcconfig */, + 58A686DC5465A91A51A4F298 /* Pods-Blog-PromiseKit-dummy.m */, + 7DEB1DA3BA9A26F9296364B6 /* Pods-Blog-PromiseKit-prefix.pch */, + 44EBAE26A008D2AE7831CD11 /* Pods-samhuri.net-PromiseKit.xcconfig */, + 80B3F1DA0AAE9D640D2CFEC6 /* Pods-samhuri.net-PromiseKit-Private.xcconfig */, + CB635E4DC320564EEB017618 /* Pods-samhuri.net-PromiseKit-dummy.m */, + 36DC4EF50A17023C7709F5E7 /* Pods-samhuri.net-PromiseKit-prefix.pch */, + ); + name = "Support Files"; + path = "../Target Support Files/Pods-Blog-PromiseKit"; + sourceTree = ""; + }; + 96BF513252097CAD415609E9 /* NSURLConnection */ = { + isa = PBXGroup; + children = ( + 32E49968CE1A2501F494E2E2 /* NSURLConnection+PromiseKit.h */, + 86AD898C83FEAEC66761F511 /* NSURLConnection+PromiseKit.m */, + ); + name = NSURLConnection; + sourceTree = ""; + }; + 9C9706A7F65A092803310FFC /* FormURLEncode */ = { + isa = PBXGroup; + children = ( + 453E1EE596F7B0A7C9198283 /* OMGFormURLEncode.h */, + 4B88B4102B01AB0D44046BEF /* OMGFormURLEncode.m */, + ); + name = FormURLEncode; + sourceTree = ""; + }; + A4659A98A9935948CE701459 /* iOS */ = { + isa = PBXGroup; + children = ( + C90CF2A7FD494577F199A4EC /* AssetsLibrary.framework */, + 17C59EF9C856FDB786D8B3CA /* CoreGraphics.framework */, + 1B703A6BEDE896B8C431D62F /* CoreText.framework */, + A3D858279C71419EA04223FF /* Foundation.framework */, + EDAAF069ED4CF79E6B14F97D /* MobileCoreServices.framework */, + 8146B2DACA711A176F8EC65B /* QuartzCore.framework */, + F33084A95DA7F1AF3F92D6A1 /* QuickLook.framework */, + 815314C99E35FEFB96DA5AF6 /* Security.framework */, + 9EE8246FB62470DCA426D2A8 /* SystemConfiguration.framework */, + F8053BF6CAFD67A02BBBC2B3 /* UIKit.framework */, + ); + name = iOS; + sourceTree = ""; + }; + A5F1A07AB9D4CDA88A97EC75 /* MBProgressHUD */ = { + isa = PBXGroup; + children = ( + CDF42EFCEE2C683943A04D83 /* MBProgressHUD.h */, + B8307E4AD69BA3F0BD61CDE8 /* MBProgressHUD.m */, + D774E1872460467157F00F97 /* Support Files */, + ); + path = MBProgressHUD; + sourceTree = ""; + }; + A6108D62BF36A265326EA778 /* EXTSynthesize */ = { + isa = PBXGroup; + children = ( + 4ECC27DC52F2BDBDE089DFC8 /* EXTSynthesize.h */, + ); + name = EXTSynthesize; + sourceTree = ""; + }; + B3D5BF23DDF579A3B8FE3A49 /* When */ = { + isa = PBXGroup; + children = ( + ED9A8DC9D7A6D0B12D942BC1 /* PMKPromise+When.m */, + CD30F7532A22486925B12E4A /* Promise+When.h */, + ); + name = When; + sourceTree = ""; + }; + BC1EA1AC78C8DDD903FEC1EE /* PromiseKit */ = { + isa = PBXGroup; + children = ( + 0C4E82992C75E1413FFDC218 /* CALayer */, + 1144662171E2AEDEDB146205 /* NSNotificationCenter */, + 96BF513252097CAD415609E9 /* NSURLConnection */, + 2EDC9E33B7F3A0BF1E523C57 /* Pause */, + 662AFEFB62FA3F6EF56721F1 /* Promise */, + 93C0DB3C8B3C08EF96028FDD /* Support Files */, + EC6EF1C9AFF95C9687F80EAF /* UIActionSheet */, + 6C38DA294ECDF1F4F18DC098 /* UIAlertView */, + 61791142477B3C06209F32D9 /* UIView */, + 5F095CF9DB45BB91A6D8F423 /* UIViewController */, + 22B8BE4A5AC0301E0705D980 /* Until */, + B3D5BF23DDF579A3B8FE3A49 /* When */, + ); + path = PromiseKit; + sourceTree = ""; + }; + BE3ACBCC491CBE03D5F375FE /* Resources */ = { + isa = PBXGroup; + children = ( + 9CBE9CD5457F95EC9CCB50E1 /* FontAwesome.ttf */, + ); + name = Resources; + sourceTree = ""; + }; + CD3DDD81C6C4875402FC7A81 /* HockeySDK */ = { + isa = PBXGroup; + children = ( + C065A640C0472962CC3D0BEA /* BITActivityIndicatorButton.h */, + 9973582A5A4A1ABA5E58F4EC /* BITActivityIndicatorButton.m */, + 023AB80B442AFF1AABDA0136 /* BITAppStoreHeader.h */, + 210BD69EAE008EA754D9A9C1 /* BITAppStoreHeader.m */, + 47417B8D7E3555E138110D7F /* BITAppVersionMetaInfo.h */, + A1D63A224DD1DDB55F3E0845 /* BITAppVersionMetaInfo.m */, + E1C13DDA10B2FCC00D0B1733 /* BITArrowImageAnnotation.h */, + 370E802FEEF2460621C8F46E /* BITArrowImageAnnotation.m */, + 691CB5AAF8BA3BB5039F9A78 /* BITAttributedLabel.h */, + 2942CF3B18BD3D3F5FDD78A7 /* BITAttributedLabel.m */, + CF579412F985B76BC693CD19 /* BITAuthenticationViewController.h */, + BE58D22186EDD7783D992802 /* BITAuthenticationViewController.m */, + C056EFCA0A8D5797081D5858 /* BITAuthenticator.h */, + 1C869578E846D5B84E3A8910 /* BITAuthenticator.m */, + 41F934FF9D68DD208014FA0C /* BITAuthenticator_Private.h */, + A6F75773276C7FC1A2618B17 /* BITBlurImageAnnotation.h */, + EAE64D2FD6E6D984CD88A9FB /* BITBlurImageAnnotation.m */, + 29CBB86E0543325F5C71E3C7 /* BITCrashAttachment.h */, + F8410D047D5B93BAD5678990 /* BITCrashAttachment.m */, + B8D383E28B52278F1229ADB2 /* BITCrashDetails.h */, + 17FCC42E1E89C434B27DD341 /* BITCrashDetails.m */, + 7299B776DD5F4DF44EE908A3 /* BITCrashDetailsPrivate.h */, + E724F9DD2709E8D9D5F680CA /* BITCrashManager.h */, + 335E63163D0E30B59353F7C8 /* BITCrashManager.m */, + 6352535A3B7C66C2B8436637 /* BITCrashManagerDelegate.h */, + 05CDEC57933F3510C7B2441E /* BITCrashManagerPrivate.h */, + EF4AED6747EAC52458F96C18 /* BITCrashMetaData.h */, + DF177AEF85DDBF3F632E0048 /* BITCrashMetaData.m */, + 596E9A8AE15C9C98520E6793 /* BITCrashReportTextFormatter.h */, + 34C1E658C17FBD703278F2B4 /* BITCrashReportTextFormatter.m */, + 2FDDA96DE068D2DC19AFAAF0 /* BITFeedbackActivity.h */, + 77D0BA74750D46E665A9B16A /* BITFeedbackActivity.m */, + D9C4F49E2358FA73E60B7C56 /* BITFeedbackComposeViewController.h */, + 8C75D3C67A76B2CAAB81F5A7 /* BITFeedbackComposeViewController.m */, + 6628B911278079EF39964FA6 /* BITFeedbackComposeViewControllerDelegate.h */, + 1D8E6F77DD468DCC26BB35C2 /* BITFeedbackListViewCell.h */, + 3E73A3BE5BCB9F34559E7487 /* BITFeedbackListViewCell.m */, + 14DAB6EC593F2115F38D6C39 /* BITFeedbackListViewController.h */, + 546CD11A44855593FFC5B1AB /* BITFeedbackListViewController.m */, + 9D3B4B82336DE8E1ECE450F8 /* BITFeedbackManager.h */, + 6E3417CE576C858FDCE23A41 /* BITFeedbackManager.m */, + 613A94C0F28E81A4BDF2476A /* BITFeedbackManagerDelegate.h */, + F64755EE1D0B3CC119D83834 /* BITFeedbackManagerPrivate.h */, + 6DC5B5A9B11FDC576CAF04FE /* BITFeedbackMessage.h */, + 84F0375E28F18CB103E52413 /* BITFeedbackMessage.m */, + B332B963262FCDB26F30025B /* BITFeedbackMessageAttachment.h */, + 5CE71EFCFE9F21DAA8D8EAE9 /* BITFeedbackMessageAttachment.m */, + ABFFB19D5791381D1E38B388 /* BITFeedbackUserDataViewController.h */, + 398332A878F08996D298C000 /* BITFeedbackUserDataViewController.m */, + 8F89FE8BE75FF19BA29E62F3 /* BITHTTPOperation.h */, + 3845BA65DC2D79DCCF4DA8C7 /* BITHTTPOperation.m */, + F00A760A0913EC89EAD483E1 /* BITHockeyAppClient.h */, + 00538663735C6056DCCA4C20 /* BITHockeyAppClient.m */, + 484906CAA5606962F78730B5 /* BITHockeyAttachment.h */, + BFA1C7814DEAAEE25E98564F /* BITHockeyAttachment.m */, + D795EC99EC3251A5A86E4C5D /* BITHockeyBaseManager.h */, + 6BF3191584A8BD601C23F354 /* BITHockeyBaseManager.m */, + 7988815EE67718287A8BC0D7 /* BITHockeyBaseManagerPrivate.h */, + A8FB3736E273551AA4283DB3 /* BITHockeyBaseViewController.h */, + D02CD2D8EE77AAE8D582FD34 /* BITHockeyBaseViewController.m */, + 5BDC3DAC2F06250D696C8D6A /* BITHockeyHelper.h */, + C74F0DEAF54F1DE7FCC35457 /* BITHockeyHelper.m */, + FCD9FF1B07960227E6D2DE6E /* BITHockeyManager.h */, + 37A3446FBF50420B4587F51D /* BITHockeyManager.m */, + 525C91DAABF989C5022B6BFE /* BITHockeyManagerDelegate.h */, + 8D4FA1147CF56685CEB4CD8C /* BITImageAnnotation.h */, + 425EC32991B418837B39D218 /* BITImageAnnotation.m */, + 08E41337BE767F4DC801E701 /* BITImageAnnotationViewController.h */, + 482A013B63DD44E516FABED5 /* BITImageAnnotationViewController.m */, + 8D4323EE31234804931D429D /* BITKeychainUtils.h */, + A353569B80DC3431CBB4045F /* BITKeychainUtils.m */, + 66D0D227E535211E648DCECD /* BITRectangleImageAnnotation.h */, + 8FC9BF63F71BAFDF28AB4597 /* BITRectangleImageAnnotation.m */, + 20282B8F4754BE7E220FD707 /* BITStoreButton.h */, + 73ADA74ED86FE7A04A2BBB09 /* BITStoreButton.m */, + 3A04A7AFC6BE2AD6942FC7A0 /* BITStoreUpdateManager.h */, + 4AE7C3359CE7B7B47CA37885 /* BITStoreUpdateManager.m */, + 57044F55FDAAE1E32649A2E5 /* BITStoreUpdateManagerDelegate.h */, + AFE481C8464A7599F22AC98E /* BITStoreUpdateManagerPrivate.h */, + 448B6C7ECD26944B3A127030 /* BITUpdateManager.h */, + D02D49B172DB14A13C0AF052 /* BITUpdateManager.m */, + 552E70964B08EC917723691F /* BITUpdateManagerDelegate.h */, + 8FC31F546D407C5CA2178EEC /* BITUpdateManagerPrivate.h */, + E7D2A24BED558B4FB492741A /* BITUpdateViewController.h */, + 5B0C0416A157FF1D419A9E3C /* BITUpdateViewController.m */, + 389E3BE660A249DD113EC263 /* BITUpdateViewControllerPrivate.h */, + C42CFB31A20D6166365F15D3 /* BITWebTableViewCell.h */, + 4C8CF580CF90B8D37E3D1B8E /* BITWebTableViewCell.m */, + 801D1290FA2159F94FA473CE /* HockeySDK.h */, + A216285800003DE12DBB5C40 /* HockeySDKFeatureConfig.h */, + A023FC3597928617A456E3AB /* HockeySDKPrivate.h */, + 40450CB2949BAF782E845D9A /* HockeySDKPrivate.m */, + 7565362C02D0F84FC0BE0F9E /* Frameworks */, + 5CCB68046BA7799C23C20D98 /* Resources */, + 1415E21256108515D191198F /* Support Files */, + ); + path = HockeySDK; + sourceTree = ""; + }; + CDBE0DA61015C64EBB7275CA /* Support Files */ = { + isa = PBXGroup; + children = ( + 92E383A8776E341CD4CAA48A /* Pods-Blog-CocoaLumberjack.xcconfig */, + 8E44FCD68DFA345E0C0DDE4B /* Pods-Blog-CocoaLumberjack-Private.xcconfig */, + AF897353CA3A0CD779312588 /* Pods-Blog-CocoaLumberjack-dummy.m */, + 6C6329951268398B43509B8E /* Pods-Blog-CocoaLumberjack-prefix.pch */, + 693A6E55BFD6258368D2CCCF /* Pods-samhuri.net-CocoaLumberjack.xcconfig */, + 3BAE7A7DC628B2C527BC9476 /* Pods-samhuri.net-CocoaLumberjack-Private.xcconfig */, + AEF21CF6CF8B400C23953D19 /* Pods-samhuri.net-CocoaLumberjack-dummy.m */, + 30DF5DDA18287D6016B5E408 /* Pods-samhuri.net-CocoaLumberjack-prefix.pch */, ); name = "Support Files"; path = "../Target Support Files/Pods-Blog-CocoaLumberjack"; sourceTree = ""; }; - F13369D098BC7A3FCC2D55FF /* UIActionSheet */ = { + CF936FBF92D3E19D9395FED8 /* common */ = { isa = PBXGroup; children = ( - DCA3F06ABFD63178DFC72DE8 /* UIActionSheet+PromiseKit.h */, - ACDC50426BA46C319FCC7580 /* UIActionSheet+PromiseKit.m */, + DA1C87786DB6AA85C2961C74 /* NSDictionary+YapDatabase.h */, + 6E98D2B274BF59E45E17D265 /* NSDictionary+YapDatabase.m */, + 832AFAEC6C62A621F2B71C67 /* YDBCKAttachRequest.h */, + 5590AEB0D60DF19D256F4950 /* YDBCKAttachRequest.m */, + AAC5F68409702EBBD7F41EAB /* YDBCKChangeQueue.h */, + 9DF35933B404EF6610615A32 /* YDBCKChangeQueue.m */, + A3EF2F7405C1C6EF86062764 /* YDBCKChangeRecord.h */, + 35696F8E5828A75B31EEC22F /* YDBCKChangeRecord.m */, + 97ECBA0283AE5FF1560FB2E1 /* YDBCKChangeSet.h */, + F221FECFC4C239D28B863351 /* YDBCKChangeSet.m */, + BDD742FFC289164ADC60BFEC /* YDBCKMappingTableInfo.h */, + 2101B8C7F794EE24F25EC4E3 /* YDBCKMappingTableInfo.m */, + 32B70BC8A0F2BDB09E539261 /* YDBCKMergeInfo.h */, + E4BEDE1E64DAF695941F11E1 /* YDBCKMergeInfo.m */, + D91554D87B0BD4AAF366D2C0 /* YDBCKRecord.h */, + A191A2D84AFBCF9B4962F1C5 /* YDBCKRecord.m */, + 2FF30F64ED5B8F3D56132A30 /* YDBCKRecordInfo.h */, + BA207FCB169025B832A68973 /* YDBCKRecordInfo.m */, + 54D210743ABD4FDDB5813112 /* YDBCKRecordTableInfo.h */, + 1654AAF78C161D58CA37DF48 /* YDBCKRecordTableInfo.m */, + 23DEB41BD56023A09D2ACD97 /* YapCache.h */, + 7E0B7A5DBCFD144BC8F28DDD /* YapCache.m */, + 66C92112F781616FECE24051 /* YapCollectionKey.h */, + 5B5B9FC5946CF8F25215E267 /* YapCollectionKey.m */, + 2EB9B1301FF3ED727D99E944 /* YapDatabase.h */, + 366C30DD854276061F3DCE87 /* YapDatabase.m */, + 4D7B817EF8DE89D1830B62E0 /* YapDatabaseCloudKit.h */, + 7CC64E9CC065CD7F735344B7 /* YapDatabaseCloudKit.m */, + 6F372C6AEA560874496EFC18 /* YapDatabaseCloudKitConnection.h */, + 3FCA618023FBE51E612DA698 /* YapDatabaseCloudKitConnection.m */, + 9632F201B5A5081210A0C628 /* YapDatabaseCloudKitOptions.h */, + 2FC0EACA760A4D92F849FD81 /* YapDatabaseCloudKitOptions.m */, + 7A7FF9C82931D6BDB9D100D5 /* YapDatabaseCloudKitPrivate.h */, + A943A075B8A3EDF198FC13BF /* YapDatabaseCloudKitTransaction.h */, + 998A500C8011BA755A76F99E /* YapDatabaseCloudKitTransaction.m */, + D7A637CFCFDF4A02FDE6118F /* YapDatabaseCloudKitTypes.h */, + AAC5621AA7FF6C4DFAE147B1 /* YapDatabaseCloudKitTypes.m */, + BE2D2CD73AFBEA265468CA73 /* YapDatabaseConnection.h */, + BFDEED53E120CF1A10841E3C /* YapDatabaseConnection.m */, + DF857BC688A4F09603BDF1A6 /* YapDatabaseConnectionDefaults.h */, + 96761BC6195A8322DCAAD104 /* YapDatabaseConnectionDefaults.m */, + 4EE4DB3EADC9FA878C4AD403 /* YapDatabaseConnectionState.h */, + CB9CE60E51F3C872D75ABCC3 /* YapDatabaseConnectionState.m */, + 8D3C51219A6CD20F719844B0 /* YapDatabaseExtension.h */, + 96267790E8271AABDE698E41 /* YapDatabaseExtension.m */, + 721C63AE8C86BCCE68A7877A /* YapDatabaseExtensionConnection.h */, + 15D097C2D670F44F774D2ED4 /* YapDatabaseExtensionConnection.m */, + 1C4CFB0B6D332951DF24B460 /* YapDatabaseExtensionPrivate.h */, + FDFB2AD39FAADD99FFEEA589 /* YapDatabaseExtensionTransaction.h */, + AD0492E7BCFD1A6D35ED1432 /* YapDatabaseExtensionTransaction.m */, + 0B900CA50B103AAF414C31E2 /* YapDatabaseFilteredView.h */, + 53AC24C6C84404E125ECC04E /* YapDatabaseFilteredView.m */, + B8A33987040C1995BF0E07D4 /* YapDatabaseFilteredViewConnection.h */, + F47AA7E2BABC5E6D5330EB43 /* YapDatabaseFilteredViewConnection.m */, + CDE6C69A5800B0A1879965FB /* YapDatabaseFilteredViewPrivate.h */, + 47122A4E641865B3F459AF62 /* YapDatabaseFilteredViewTransaction.h */, + 8F7B0C6041AE7A7D4840CE10 /* YapDatabaseFilteredViewTransaction.m */, + 8A5A416D773F592806718C79 /* YapDatabaseFilteredViewTypes.h */, + 0C689D8DBB917DBC8396DB72 /* YapDatabaseFilteredViewTypes.m */, + 1F8AAC223A0E556C92B3C4F5 /* YapDatabaseFullTextSearch.h */, + BADB20F04C6004120E6DA699 /* YapDatabaseFullTextSearch.m */, + A00C1B96110873C1AFD2F0CB /* YapDatabaseFullTextSearchConnection.h */, + 977CF34FEDCC96F3250AEB25 /* YapDatabaseFullTextSearchConnection.m */, + 3C72DCC85D12BD3E79F49B39 /* YapDatabaseFullTextSearchHandler.h */, + 8C1222BFAD408530DF43CE93 /* YapDatabaseFullTextSearchHandler.m */, + 4F2E399A66CFCB22E5B8F9AF /* YapDatabaseFullTextSearchPrivate.h */, + B1462766B4B4AC72000D7B03 /* YapDatabaseFullTextSearchSnippetOptions.h */, + 001556665D4E2E8E9F833610 /* YapDatabaseFullTextSearchSnippetOptions.m */, + DC719BEEF38A47B7FCD2D072 /* YapDatabaseFullTextSearchTransaction.h */, + 8B49AB2BB16A44111D9E44FE /* YapDatabaseFullTextSearchTransaction.m */, + 67BF5736CAE75627242E1A87 /* YapDatabaseLogging.h */, + A788ADC1E50F277FB1BFEF64 /* YapDatabaseLogging.m */, + 7AF7A347BA85C7686088C524 /* YapDatabaseManager.h */, + 2ECCB5C5FB782234373426B9 /* YapDatabaseManager.m */, + C18EA8F19C7A63910C2CC3D4 /* YapDatabaseOptions.h */, + DEA6B5733F09C55165652C38 /* YapDatabaseOptions.m */, + 386A83FA41D150D573E74F1E /* YapDatabasePrivate.h */, + 45A6D1C7B82660AECBF2B462 /* YapDatabaseQuery.h */, + CB51FD7660ED1FF6F7B15E8C /* YapDatabaseQuery.m */, + 191C50A85AAF5F220AED2574 /* YapDatabaseRelationship.h */, + E6B6A08D1E9E5F8493A740AB /* YapDatabaseRelationship.m */, + B5B6A6CDAC99B9CA07E280F5 /* YapDatabaseRelationshipConnection.h */, + 0855BACE0760B100075781C5 /* YapDatabaseRelationshipConnection.m */, + E9F63A4CF9750547BF9F8ED2 /* YapDatabaseRelationshipEdge.h */, + ECC7511E43500B2A56A62B37 /* YapDatabaseRelationshipEdge.m */, + 63531E051F24B64054132595 /* YapDatabaseRelationshipEdgePrivate.h */, + 15F3D78FAB157E06EABAE019 /* YapDatabaseRelationshipNode.h */, + B684D5708CAD4B3AF1CA9744 /* YapDatabaseRelationshipOptions.h */, + 7BCA3D8DDF1E64072AA60C64 /* YapDatabaseRelationshipOptions.m */, + D1955CF839D24FF2D7E4C901 /* YapDatabaseRelationshipPrivate.h */, + A2C466CF4C38E61C56CD512C /* YapDatabaseRelationshipTransaction.h */, + A2CFBB2A4116F916F5E613CB /* YapDatabaseRelationshipTransaction.m */, + F356085F1F39FDFA4F5CA37B /* YapDatabaseSearchQueue.h */, + B565E1CEAC764B1FE933CC01 /* YapDatabaseSearchQueue.m */, + AC01E71C0E478E54D28AA370 /* YapDatabaseSearchQueuePrivate.h */, + 539ACB046AFD27463581E5D0 /* YapDatabaseSearchResultsView.h */, + 2E75BAF1F32217CB67E61AAD /* YapDatabaseSearchResultsView.m */, + DFFD18C948C4C64B669FDF14 /* YapDatabaseSearchResultsViewConnection.h */, + 7069286926FEEF472E209A85 /* YapDatabaseSearchResultsViewConnection.m */, + 5C4660EB662865AAD461955E /* YapDatabaseSearchResultsViewOptions.h */, + 3D1E78B56DEAE2A8EBFC2DD1 /* YapDatabaseSearchResultsViewOptions.m */, + FF4B485A40BF5685F4EE0E66 /* YapDatabaseSearchResultsViewPrivate.h */, + 9E8578CF5A3F9A17E7DA4429 /* YapDatabaseSearchResultsViewTransaction.h */, + 1F96846693844552C3879C5C /* YapDatabaseSearchResultsViewTransaction.m */, + D4D5E9E4EC00B726E888C956 /* YapDatabaseSecondaryIndex.h */, + 4F8E5DB57A211F1B11B63E35 /* YapDatabaseSecondaryIndex.m */, + C8111B094F36B76CC8BEED1C /* YapDatabaseSecondaryIndexConnection.h */, + 2F427B1085094DE7CE81AC3D /* YapDatabaseSecondaryIndexConnection.m */, + D46AF56C180F857301A4EACF /* YapDatabaseSecondaryIndexHandler.h */, + 35B1468F88F9E2F09EF1C612 /* YapDatabaseSecondaryIndexHandler.m */, + 51BC65067D57AD17F146909B /* YapDatabaseSecondaryIndexOptions.h */, + 3900BEAD0B3DBE7476E5802A /* YapDatabaseSecondaryIndexOptions.m */, + 72A907C9088D4232E6FE4D80 /* YapDatabaseSecondaryIndexPrivate.h */, + 99521752C217B4336CB569C8 /* YapDatabaseSecondaryIndexSetup.h */, + AED01E12B72132E11586734E /* YapDatabaseSecondaryIndexSetup.m */, + 4061E7AA76F19B7B8D034A9E /* YapDatabaseSecondaryIndexTransaction.h */, + AEA9A0D786DC0A178D05F2BE /* YapDatabaseSecondaryIndexTransaction.m */, + 07B61F7D0A8AFE3AFCA1A201 /* YapDatabaseStatement.h */, + C807DB918DC08D171C49611E /* YapDatabaseStatement.m */, + 412CC4C8070F307CC821193A /* YapDatabaseString.h */, + D6844828514EBDD81BB1276A /* YapDatabaseTransaction.h */, + C7613C63CBEE0C0E474AF6E0 /* YapDatabaseTransaction.m */, + C73DF6F02141EA46FDC67A4F /* YapDatabaseView.h */, + 352DFB6A03780CD603976FCF /* YapDatabaseView.m */, + 8974C23ED1F0A7C3B889B3F8 /* YapDatabaseViewChange.h */, + B2DCBAE0AAE04BFDF3DA4C76 /* YapDatabaseViewChange.m */, + 8AECA4DD8C3E0714B0121A40 /* YapDatabaseViewChangePrivate.h */, + F24D929AC6E47465E4EE4BB7 /* YapDatabaseViewConnection.h */, + 1DFB148410C29145781FC687 /* YapDatabaseViewConnection.m */, + D924240549C5DC08F8D6C41D /* YapDatabaseViewMappings.h */, + F5858E43FEA881D2581FAFA6 /* YapDatabaseViewMappings.m */, + ADBF36B942CC540655370C67 /* YapDatabaseViewMappingsPrivate.h */, + 2C6A01772C4963FBE2BC105F /* YapDatabaseViewOptions.h */, + 611A25336B904EA7D08FF5B0 /* YapDatabaseViewOptions.m */, + 9F6C220F25CE1CE86D0F0E82 /* YapDatabaseViewPage.h */, + 9D0A672919FBFFED7000A248 /* YapDatabaseViewPage.mm */, + 49A31B1F8DB8E1B440578BD9 /* YapDatabaseViewPageMetadata.h */, + E818CAA030FE372C2BB46D31 /* YapDatabaseViewPageMetadata.m */, + 7AAD0A4416E4C0A3C3B5EB7B /* YapDatabaseViewPrivate.h */, + 2A5922524CFC0A15389AC04C /* YapDatabaseViewRangeOptions.h */, + 8F61AF671D23ECCDDCACDCCB /* YapDatabaseViewRangeOptions.m */, + A8262161BF27E52DDFD6120E /* YapDatabaseViewRangeOptionsPrivate.h */, + 56065D3D425D00854216D247 /* YapDatabaseViewState.h */, + F4C490BAB545A2CE19706343 /* YapDatabaseViewState.m */, + E9595918650E7F06225F7A3F /* YapDatabaseViewTransaction.h */, + 3B5FF76C4D98874EF77612FC /* YapDatabaseViewTransaction.m */, + 9BACB6D0887A9C86E8002A81 /* YapDatabaseViewTypes.h */, + 15F88EA193C178431DB484CF /* YapDatabaseViewTypes.m */, + F57AD2B915236D62BFDE1A39 /* YapDebugDictionary.h */, + 4125CD5484E2DEAAF2B5155C /* YapDebugDictionary.m */, + 22E9DB4B26820E0AB0FBFAFD /* YapMemoryTable.h */, + 67D375A5192D1EAA9A3541A9 /* YapMemoryTable.m */, + 9F44670C425F0B0B5D1DA6A8 /* YapMurmurHash.h */, + BEE885DFA7204CFFFEBD7025 /* YapMurmurHash.m */, + F8FEFB0BE1417D56700D9213 /* YapNull.h */, + 80C8E42F143FF516C3C9E62A /* YapNull.m */, + E4A081B01B0CFF54E56D3534 /* YapRowidSet.h */, + E4D6ADCE5C818EA034B01E1A /* YapRowidSet.mm */, + 03D212ED7F0BC4815B93AACF /* YapSet.h */, + AC9D8A4B26B7D42DBB165638 /* YapSet.m */, + 95CF93105862D466397FF4B1 /* YapTouch.h */, + AD94996C5ACAD93E2413FFF5 /* YapTouch.m */, + 3BA68376A1F3040D8C24D27A /* YapWhitelistBlacklist.h */, + 753BBA174B25F196ED8249FE /* YapWhitelistBlacklist.m */, ); - name = UIActionSheet; + name = common; sourceTree = ""; }; - FC1B56B90D58427672E51061 /* Support Files */ = { + D17157AA4B555829D3BC20D3 /* Pods */ = { isa = PBXGroup; children = ( - 37AAC9B90E9340A9139C3D48 /* Pods-Blog-OMGHTTPURLRQ.xcconfig */, - 93D295CC0D24F347BCBEB1A5 /* Pods-Blog-OMGHTTPURLRQ-Private.xcconfig */, - E09576D940AC91C4F475452C /* Pods-Blog-OMGHTTPURLRQ-dummy.m */, - 46E2BF6FE7889AC307FAEDE3 /* Pods-Blog-OMGHTTPURLRQ-prefix.pch */, - E2382E432A4B1A466C6A9059 /* Pods-samhuri.net-OMGHTTPURLRQ.xcconfig */, - 71E6616794A5B47538DFD8D9 /* Pods-samhuri.net-OMGHTTPURLRQ-Private.xcconfig */, - 7AB034DDB3A12EFE221909D4 /* Pods-samhuri.net-OMGHTTPURLRQ-dummy.m */, - A1D186C4840E45FB6147CF06 /* Pods-samhuri.net-OMGHTTPURLRQ-prefix.pch */, + 7C91F9925A3C6C9B7E817BEB /* CocoaLumberjack */, + DC06CD32346AF3CAE5BC2A6A /* FontAwesome+iOS */, + CD3DDD81C6C4875402FC7A81 /* HockeySDK */, + A5F1A07AB9D4CDA88A97EC75 /* MBProgressHUD */, + 0E264491497DB2B8B13EA759 /* Mantle */, + 5974F7E40F47723CC39B091B /* OMGHTTPURLRQ */, + 19D5E8B87190963760EB1E49 /* ObjectiveSugar */, + BC1EA1AC78C8DDD903FEC1EE /* PromiseKit */, + 8F9927D3B7826EBDDFC5F9BD /* YapDatabase */, + 4B160F74E81A3ACE21289D80 /* dyci */, + 778B85C9FAD42A3C2052898D /* libextobjc */, + ); + name = Pods; + sourceTree = ""; + }; + D774E1872460467157F00F97 /* Support Files */ = { + isa = PBXGroup; + children = ( + CA617FB64E3352C20A0DC0C7 /* Pods-Blog-MBProgressHUD.xcconfig */, + 7F70F01E4CCF1D4E1905D714 /* Pods-Blog-MBProgressHUD-Private.xcconfig */, + 45DA14DB2E86F09FB8B0DF07 /* Pods-Blog-MBProgressHUD-dummy.m */, + F7845BE27C17D31150410488 /* Pods-Blog-MBProgressHUD-prefix.pch */, + EE5B7F50E59D05A920195088 /* Pods-samhuri.net-MBProgressHUD.xcconfig */, + 2E4469E3AFC89F79AC80E56B /* Pods-samhuri.net-MBProgressHUD-Private.xcconfig */, + 55F8BBCDD372EBC1468EADB5 /* Pods-samhuri.net-MBProgressHUD-dummy.m */, + 55A4E2B60DDDE0E6E3686762 /* Pods-samhuri.net-MBProgressHUD-prefix.pch */, + ); + name = "Support Files"; + path = "../Target Support Files/Pods-Blog-MBProgressHUD"; + sourceTree = ""; + }; + DB75949A57946D7BD0A1E9DD /* NSInvocation+EXT */ = { + isa = PBXGroup; + children = ( + D9B7386098E21747FB91F5ED /* NSInvocation+EXT.h */, + 3166B01856C436331247B5BB /* NSInvocation+EXT.m */, + ); + name = "NSInvocation+EXT"; + sourceTree = ""; + }; + DC06CD32346AF3CAE5BC2A6A /* FontAwesome+iOS */ = { + isa = PBXGroup; + children = ( + D59452232BBDB6A18E87B2F1 /* FAImageView.h */, + 0DA3911803CC22752770CDC2 /* FAImageView.m */, + 6B8C982A031F7F2E060DDE4D /* NSString+FontAwesome.h */, + B62156CBD83F6B9D3F790550 /* NSString+FontAwesome.m */, + AC260E95E5A65BFACD3FEE0B /* UIFont+FontAwesome.h */, + EE81F659FFBB39B939ED56D0 /* UIFont+FontAwesome.m */, + 30D8535CBA3362C905BC3293 /* UIImage+FontAwesome.h */, + 04AC09FAF6422E1AD477484B /* UIImage+FontAwesome.m */, + BE3ACBCC491CBE03D5F375FE /* Resources */, + 06C699C9D1E5D919FB73EFB5 /* Support Files */, + ); + path = "FontAwesome+iOS"; + sourceTree = ""; + }; + DF09FC7D9817B85622F33CA6 /* NSMethodSignature+EXT */ = { + isa = PBXGroup; + children = ( + 5D586790F16A46B9B2DB5302 /* NSMethodSignature+EXT.h */, + D3A7353A88BB9BF96E8877AD /* NSMethodSignature+EXT.m */, + ); + name = "NSMethodSignature+EXT"; + sourceTree = ""; + }; + E3EA10E244F108FAE0981354 /* Pods-samhuri.net */ = { + isa = PBXGroup; + children = ( + 908FD89BD83CABAE73497EB3 /* Pods-samhuri.net-acknowledgements.markdown */, + 6E44BD212C5DBCBC81100F48 /* Pods-samhuri.net-acknowledgements.plist */, + 63C68CAC6E2E77059974D594 /* Pods-samhuri.net-dummy.m */, + 0E9CEB7A047399EA6AD0B1E6 /* Pods-samhuri.net-environment.h */, + 38A4A0C030E070441BF3EB86 /* Pods-samhuri.net-resources.sh */, + 48E5AE8E99CCA8F8D7154C5D /* Pods-samhuri.net.debug.xcconfig */, + 928000BEBBA061C129953EEB /* Pods-samhuri.net.release.xcconfig */, + ); + name = "Pods-samhuri.net"; + path = "Target Support Files/Pods-samhuri.net"; + sourceTree = ""; + }; + E82BDBAB557EBA7CAFEC8486 /* Support Files */ = { + isa = PBXGroup; + children = ( + EDDEE98F8825954BC4DC86D8 /* Pods-Blog-OMGHTTPURLRQ.xcconfig */, + B44880E1FB59FC9E15DAA55A /* Pods-Blog-OMGHTTPURLRQ-Private.xcconfig */, + 43F68042387E7D27F22F2807 /* Pods-Blog-OMGHTTPURLRQ-dummy.m */, + 63AFCE5FFB1990294B4EB79F /* Pods-Blog-OMGHTTPURLRQ-prefix.pch */, + D38CB005D50C21616F93C7CF /* Pods-samhuri.net-OMGHTTPURLRQ.xcconfig */, + 69CBA72F9B4A621FD149FF4B /* Pods-samhuri.net-OMGHTTPURLRQ-Private.xcconfig */, + 99019BE2A98353593D8C2EC6 /* Pods-samhuri.net-OMGHTTPURLRQ-dummy.m */, + 2C3CED34A8221E061CBC3394 /* Pods-samhuri.net-OMGHTTPURLRQ-prefix.pch */, ); name = "Support Files"; path = "../Target Support Files/Pods-Blog-OMGHTTPURLRQ"; sourceTree = ""; }; + E85C2E0A98B418118848AA9F /* EXTSafeCategory */ = { + isa = PBXGroup; + children = ( + A94829669A15A21AC89295A3 /* EXTSafeCategory.h */, + DC30B02B06505DAA3860C90D /* EXTSafeCategory.m */, + ); + name = EXTSafeCategory; + sourceTree = ""; + }; + EC6EF1C9AFF95C9687F80EAF /* UIActionSheet */ = { + isa = PBXGroup; + children = ( + 5F5979324BB9AF056953732E /* UIActionSheet+PromiseKit.h */, + 3E5A3CF1D0D1D9690B1CCF66 /* UIActionSheet+PromiseKit.m */, + ); + name = UIActionSheet; + sourceTree = ""; + }; + EFF3004BED7175E06A337BE9 /* RQ */ = { + isa = PBXGroup; + children = ( + B13C12B74424099A7F6CDA66 /* OMGHTTPURLRQ.h */, + ACD6CDCFDCB6D2F7EB595AAB /* OMGHTTPURLRQ.m */, + ); + name = RQ; + sourceTree = ""; + }; + F274494C8D06D7C5917909D5 /* Targets Support Files */ = { + isa = PBXGroup; + children = ( + 03DAC8F8940B778391897613 /* Pods-Blog */, + E3EA10E244F108FAE0981354 /* Pods-samhuri.net */, + ); + name = "Targets Support Files"; + sourceTree = ""; + }; + F35826208EEC761BB9E953FA /* EXTConcreteProtocol */ = { + isa = PBXGroup; + children = ( + DA09FBC9D9FF33225EF7D0E3 /* EXTConcreteProtocol.h */, + A0982AB6BA7EFA84AEB379FC /* EXTConcreteProtocol.m */, + ); + name = EXTConcreteProtocol; + sourceTree = ""; + }; /* End PBXGroup section */ /* Begin PBXHeadersBuildPhase section */ - 18B9B673F61E6B568BAE7355 /* Headers */ = { + 02219F10A1FAEA1135C07C34 /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - ABCE3F8B5F60FCD1E16762A2 /* MBProgressHUD.h in Headers */, + 4FD11552C1B4196908E81496 /* NSDictionary+YapDatabase.h in Headers */, + BAE7E0181F4F75AD9B36F492 /* YDBCKAttachRequest.h in Headers */, + 3C7DC18908F9788ADA6D55D5 /* YDBCKChangeQueue.h in Headers */, + C3F947D4818229BA9F033CE2 /* YDBCKChangeRecord.h in Headers */, + C255F60342A6B2609C1CEF30 /* YDBCKChangeSet.h in Headers */, + F7707861D956A53A688A0324 /* YDBCKMappingTableInfo.h in Headers */, + 0B3FCF695D5D413B70ED6178 /* YDBCKMergeInfo.h in Headers */, + A4F69FB9CE18A4661093A112 /* YDBCKRecord.h in Headers */, + F94637285D72CDD0A26EC1FF /* YDBCKRecordInfo.h in Headers */, + BDCCDDEB669974D1E5451394 /* YDBCKRecordTableInfo.h in Headers */, + 82FE11BE7DC92FC2FB89AFE5 /* YapCache.h in Headers */, + 9D06FAD78D74C34B91F70852 /* YapCollectionKey.h in Headers */, + 427854E66C67F65C3D1EA58C /* YapDatabase.h in Headers */, + 8847A1B446AAC234DB925200 /* YapDatabaseCloudKit.h in Headers */, + A2678042952310D845833CEB /* YapDatabaseCloudKitConnection.h in Headers */, + C003FF13CF64B5761E21BDE0 /* YapDatabaseCloudKitOptions.h in Headers */, + 80EC7509382EC78D0F38DFC8 /* YapDatabaseCloudKitPrivate.h in Headers */, + FB00DB9CF67C9C17A9C83F10 /* YapDatabaseCloudKitTransaction.h in Headers */, + 615A16B420E726DF0D0A3BAD /* YapDatabaseCloudKitTypes.h in Headers */, + E8D37034F6D57E4BF9E8644D /* YapDatabaseConnection.h in Headers */, + 6434E3693419EA71FA91FDB4 /* YapDatabaseConnectionDefaults.h in Headers */, + 84C83DD4E085AD4F463A4D2E /* YapDatabaseConnectionState.h in Headers */, + 21DBACBFCDFA2B79D658C923 /* YapDatabaseExtension.h in Headers */, + C851783905ACB2F7B703B8CF /* YapDatabaseExtensionConnection.h in Headers */, + 940ECE21F4090FAAE6BB22CA /* YapDatabaseExtensionPrivate.h in Headers */, + 2FD314275DCA95602CA02586 /* YapDatabaseExtensionTransaction.h in Headers */, + 38D2050023F32C245EEB18DB /* YapDatabaseFilteredView.h in Headers */, + EE02BFE1C460EFEBE6CA3BE2 /* YapDatabaseFilteredViewConnection.h in Headers */, + 0493177CCDC5B18BBF3A99BD /* YapDatabaseFilteredViewPrivate.h in Headers */, + 80C928E957F52C891A9D3AC6 /* YapDatabaseFilteredViewTransaction.h in Headers */, + 84A955BCE4D0ECD0ECD55A0C /* YapDatabaseFilteredViewTypes.h in Headers */, + A7A0E01AE163188134A979C2 /* YapDatabaseFullTextSearch.h in Headers */, + 4DF590756D84789350D4C3DD /* YapDatabaseFullTextSearchConnection.h in Headers */, + 065A6B165C710850A8D55726 /* YapDatabaseFullTextSearchHandler.h in Headers */, + 9322F9A2E84D46E192713159 /* YapDatabaseFullTextSearchPrivate.h in Headers */, + 40B521ABF127FC7E5593E545 /* YapDatabaseFullTextSearchSnippetOptions.h in Headers */, + 8934915D4D6C3D23FC95F2F3 /* YapDatabaseFullTextSearchTransaction.h in Headers */, + CCECB14FCAD9E1C9AE39EBAE /* YapDatabaseLogging.h in Headers */, + 2B9882226432EDE4AAD6F9F0 /* YapDatabaseManager.h in Headers */, + 5E6EDEBDB09C191FFF81DBCE /* YapDatabaseOptions.h in Headers */, + 199577487D34AFF3066F61A0 /* YapDatabasePrivate.h in Headers */, + 473D51590FA0313F20B086AF /* YapDatabaseQuery.h in Headers */, + 69DA3299B01517FF28DA3F3D /* YapDatabaseRelationship.h in Headers */, + E988E94B1BFB115C47CF3544 /* YapDatabaseRelationshipConnection.h in Headers */, + 3ADC96295CB0DAAD2965FE8C /* YapDatabaseRelationshipEdge.h in Headers */, + 91FD0C7D348ACC2E46B05E8D /* YapDatabaseRelationshipEdgePrivate.h in Headers */, + 5DA58AB026D9D71F73694972 /* YapDatabaseRelationshipNode.h in Headers */, + 4210B239CB62DBB4FB86A42F /* YapDatabaseRelationshipOptions.h in Headers */, + 62B083A2D11DC5F8F831300D /* YapDatabaseRelationshipPrivate.h in Headers */, + 2D100AA596363F640CFE3BF0 /* YapDatabaseRelationshipTransaction.h in Headers */, + 83A9CFF8F9A884FBDDFD3526 /* YapDatabaseSearchQueue.h in Headers */, + DAFF879CA18F3C2D56EC8C47 /* YapDatabaseSearchQueuePrivate.h in Headers */, + 33593568E8FDEF06F0EE4A3A /* YapDatabaseSearchResultsView.h in Headers */, + 50D332F8DC83743E5379CFF7 /* YapDatabaseSearchResultsViewConnection.h in Headers */, + 48F5731B24D708A56ACAFCE0 /* YapDatabaseSearchResultsViewOptions.h in Headers */, + 7AF3727C0E690BFB421D84BC /* YapDatabaseSearchResultsViewPrivate.h in Headers */, + 2D6EB6058B64544B06C9CD79 /* YapDatabaseSearchResultsViewTransaction.h in Headers */, + 6D8D81744C95AB10FBDEFBE3 /* YapDatabaseSecondaryIndex.h in Headers */, + 997034C78D6AAFCEBAD7BC41 /* YapDatabaseSecondaryIndexConnection.h in Headers */, + F061D4A9F32D5A3FF8A91431 /* YapDatabaseSecondaryIndexHandler.h in Headers */, + 687FA4BAB37C10816CCD5DD1 /* YapDatabaseSecondaryIndexOptions.h in Headers */, + D7D60AF37F12D611B7FEE13F /* YapDatabaseSecondaryIndexPrivate.h in Headers */, + A3E94F8CCC95879939791BEB /* YapDatabaseSecondaryIndexSetup.h in Headers */, + 1158707815AA367832634F83 /* YapDatabaseSecondaryIndexTransaction.h in Headers */, + 65BE749C5D0754968E60F01B /* YapDatabaseStatement.h in Headers */, + 2B4256CDE5E1D6B310E9C983 /* YapDatabaseString.h in Headers */, + 7BB21E6F9DF19119E80FBB26 /* YapDatabaseTransaction.h in Headers */, + F5CCF21A0EE9AF0C160E25B6 /* YapDatabaseView.h in Headers */, + 8B8AF19E5E5F0A59377A0892 /* YapDatabaseViewChange.h in Headers */, + 5A03B68F0651EE9C9A7837EE /* YapDatabaseViewChangePrivate.h in Headers */, + E5A316E2DFDD5301C5D8357A /* YapDatabaseViewConnection.h in Headers */, + BFEB1F8A16D0E9951F158D20 /* YapDatabaseViewMappings.h in Headers */, + E3017334E173182B2B606B96 /* YapDatabaseViewMappingsPrivate.h in Headers */, + B7EE93409B9C21C2030E5819 /* YapDatabaseViewOptions.h in Headers */, + AF0976C67DC3152D1286CB7E /* YapDatabaseViewPage.h in Headers */, + 427937CFB6233998DFEA854B /* YapDatabaseViewPageMetadata.h in Headers */, + 4585B286031DE9B7BD3FBEBC /* YapDatabaseViewPrivate.h in Headers */, + 03D39A60C40221C81476E791 /* YapDatabaseViewRangeOptions.h in Headers */, + CEC123A0A96AAA404038A3E7 /* YapDatabaseViewRangeOptionsPrivate.h in Headers */, + DF33978E0A200D57CE119DA4 /* YapDatabaseViewState.h in Headers */, + 7E3442F187E50E964A514244 /* YapDatabaseViewTransaction.h in Headers */, + 73B459739F3339772F6360A1 /* YapDatabaseViewTypes.h in Headers */, + 577540BC2F4F36FC7C832E16 /* YapDebugDictionary.h in Headers */, + 9A5B83B6C06DC274004AB490 /* YapMemoryTable.h in Headers */, + 8882459B91CC68097797D8A2 /* YapMurmurHash.h in Headers */, + 00357407E7E80CD89C172ADB /* YapNull.h in Headers */, + 46691DEF1A42BC5159F2DCBC /* YapRowidSet.h in Headers */, + DC724855ECB5AB6A836F101B /* YapSet.h in Headers */, + 6ED1EF78B66DF426B0CA3BF1 /* YapTouch.h in Headers */, + 4B7F3462F67EE71A4C54BD5E /* YapWhitelistBlacklist.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; - 18E36EFAEFF29A17C080F50C /* Headers */ = { + 0321509A6D53679891550309 /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - AE6EECC23C58534574989A4B /* NSObject+DyCInjection.h in Headers */, - EE421D46866DE74667E056D5 /* NSSet+ClassesList.h in Headers */, - 43DDC4E226CB3DBAA6DF440A /* SFDynamicCodeInjection.h in Headers */, - 4ED75DB13BFD2834A8D6866B /* SFFileWatcher.h in Headers */, - EAA5AC77D8319632853056AD /* SFFileWatcherDelegate.h in Headers */, - 497F2A894BF79C38B4FDC8A0 /* SFInjectionsNotificationsCenter.h in Headers */, - F249B2A8389B99653C80EAE7 /* UINib+StoryBoardSupport.h in Headers */, - 5C53FAA47582AEBE9BB4E03D /* UIViewController+XIBSupport.h in Headers */, + 579AE92578B43D89D1DC0ED6 /* NSArray+ObjectiveSugar.h in Headers */, + 1A85F8C5E8C215FE963ECEED /* NSDictionary+ObjectiveSugar.h in Headers */, + AA78BC6660368041E95EF420 /* NSMutableArray+ObjectiveSugar.h in Headers */, + 789B61DCEF5173C23691E4F8 /* NSNumber+ObjectiveSugar.h in Headers */, + 3B19A007A7F625CBC793CC29 /* NSSet+ObjectiveSugar.h in Headers */, + 110F72CA40BECDB028624B13 /* NSString+ObjectiveSugar.h in Headers */, + 261EBF8D0B18CE82E71C3FE2 /* ObjectiveSugar.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; - 2E8F592E5C75E7E8157B232D /* Headers */ = { + 19EBE4FACD915088829EE784 /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - 09603DE5164058589317574D /* OMGFormURLEncode.h in Headers */, - 3286FE5EEE23ABC1FFD7B7DC /* OMGHTTPURLRQ.h in Headers */, - CE82BE27873EE6707143CABB /* OMGUserAgent.h in Headers */, + E377A242856FEF1278D86FD8 /* DDASLLogCapture.h in Headers */, + 7DC515A3EE6AADA3E5F784F6 /* DDASLLogger.h in Headers */, + 292B7ED5EFF49A662136C262 /* DDAbstractDatabaseLogger.h in Headers */, + 6B772D664EDEE75E3BE51A15 /* DDAssert.h in Headers */, + F09A545BFC9446E16EFE3C14 /* DDContextFilterLogFormatter.h in Headers */, + 90F3950E82004FBA135FA363 /* DDDispatchQueueLogFormatter.h in Headers */, + 580D2B959BD536D3D1DE1F4A /* DDFileLogger.h in Headers */, + 2C450FD67EF5F1B5634822AE /* DDLog+LOGV.h in Headers */, + 1C7BEE18E82F3E6D0AA497BC /* DDLog.h in Headers */, + 51F60AC623006F2BDA43AB47 /* DDMultiFormatter.h in Headers */, + DBA8839126A6661F16D62E95 /* DDTTYLogger.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; - 2F6C71EE7345F113403006CF /* Headers */ = { + 1F6FD8922D387180AF8D2238 /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - 96E3E08BA20FA41FA8D3D24D /* EXTADT.h in Headers */, - 8F000BC342A96A5887157C09 /* EXTConcreteProtocol.h in Headers */, - 58761A783890DB0A1FD88FF0 /* EXTKeyPathCoding.h in Headers */, - 6EF6C4587A9E6A22341981B6 /* EXTNil.h in Headers */, - A693FAAFCD81D212BEDAF4E1 /* EXTRuntimeExtensions.h in Headers */, - 3DBCED99292ABD432F29A17B /* EXTSafeCategory.h in Headers */, - C261BC1C928FE4DDE597138E /* EXTScope.h in Headers */, - E972F3A00AA023AC4211BDED /* EXTSelectorChecking.h in Headers */, - C62046CC48BB7C7BB702F57B /* EXTSynthesize.h in Headers */, - DD960CDD917854BCDF3D63DB /* NSInvocation+EXT.h in Headers */, - 979492C148A6FEA83EDEAFEE /* NSMethodSignature+EXT.h in Headers */, - 7EF15106C430D0D4C3BAD23E /* extobjc.h in Headers */, - CDF91EFF816D8370EC7D13D5 /* metamacros.h in Headers */, + 3E8FE604ECF464D71FA66475 /* EXTKeyPathCoding.h in Headers */, + 38723DFBBE55310952E8AEB1 /* EXTRuntimeExtensions.h in Headers */, + 2EDDB0FEA81328795D9606AC /* EXTScope.h in Headers */, + 649B0B8AD6001298455DE372 /* MTLJSONAdapter.h in Headers */, + 7F30B439BDDD34145F4E5AC2 /* MTLModel+NSCoding.h in Headers */, + A04C371A0971E9E638C8BDE2 /* MTLModel.h in Headers */, + 64963BFF1B0E869CED1ED659 /* MTLReflection.h in Headers */, + 3FD1D46178BA8F6FDB797239 /* MTLTransformerErrorHandling.h in Headers */, + 7C81CFE32318324096C35F61 /* MTLValueTransformer.h in Headers */, + CB741F35A014C8782AC2C09D /* Mantle.h in Headers */, + 5E0F27B1D5036867A5A2F90A /* NSArray+MTLManipulationAdditions.h in Headers */, + 774018F361A8826FFC46914C /* NSDictionary+MTLJSONKeyPath.h in Headers */, + A95BF160FEBA39DAAAC7BB76 /* NSDictionary+MTLManipulationAdditions.h in Headers */, + 532776CA91CE5870319396F3 /* NSDictionary+MTLMappingAdditions.h in Headers */, + 1393704B16C6C2F98E0911C1 /* NSError+MTLModelException.h in Headers */, + 0A8D2767E6C1078966DCB34C /* NSObject+MTLComparisonAdditions.h in Headers */, + 8894CDEE2FBA7750422C3B23 /* NSValueTransformer+MTLInversionAdditions.h in Headers */, + E19390CC74CBB7D5D1AD6001 /* NSValueTransformer+MTLPredefinedTransformerAdditions.h in Headers */, + 9007A7616615F565555E2BA0 /* metamacros.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; - 38AD1713C1E26C5CBB856BA2 /* Headers */ = { + 2FEAC5D1B183B6923AEE41E5 /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - F68CBEAB787589A869F64AFD /* NSDictionary+YapDatabase.h in Headers */, - EF0A48E827F892B4522B98D5 /* YDBCKAttachRequest.h in Headers */, - C50868A66217D8C33B608508 /* YDBCKChangeQueue.h in Headers */, - A120EF58F09B0453186F1339 /* YDBCKChangeRecord.h in Headers */, - 0AC392DC83FB0B0B84F97C06 /* YDBCKChangeSet.h in Headers */, - 010AA1989251633577BF4784 /* YDBCKMappingTableInfo.h in Headers */, - 24F694F5F34381AA38AEB6A4 /* YDBCKMergeInfo.h in Headers */, - 39D21701EA96EA3AA29A192D /* YDBCKRecord.h in Headers */, - 0CE623A2DC83AD82A91ED1C7 /* YDBCKRecordInfo.h in Headers */, - DB9263140B8A47E3A5863A6B /* YDBCKRecordTableInfo.h in Headers */, - 374E943CE7A693722420777B /* YapCache.h in Headers */, - FDBAF07225E4AB998B2A6BE2 /* YapCollectionKey.h in Headers */, - 5528E3FC0D1F65CF00563006 /* YapDatabase.h in Headers */, - E904CD1A8F4D1FEAB64AC5A7 /* YapDatabaseCloudKit.h in Headers */, - BE4FB6E8A5051DF1167B15AD /* YapDatabaseCloudKitConnection.h in Headers */, - 6722DF77781536AE04DB079E /* YapDatabaseCloudKitOptions.h in Headers */, - 46CDC935161A17799E08A82D /* YapDatabaseCloudKitPrivate.h in Headers */, - 50071C867E89CE5AA2170C0C /* YapDatabaseCloudKitTransaction.h in Headers */, - EA4E814F03F012601385DF1F /* YapDatabaseCloudKitTypes.h in Headers */, - 3697A849E9562FDB6D67A31F /* YapDatabaseConnection.h in Headers */, - 1AAD10E1EECE1603745DB8A7 /* YapDatabaseConnectionDefaults.h in Headers */, - D5A1D2556F1112FF2CBFA7A0 /* YapDatabaseConnectionState.h in Headers */, - 58A7D8FA71AA27663FA247AE /* YapDatabaseExtension.h in Headers */, - 2F89FB79EDDE991454547481 /* YapDatabaseExtensionConnection.h in Headers */, - 9A81E9DDF37E4947C3F6558F /* YapDatabaseExtensionPrivate.h in Headers */, - 3DD21C1C79DE3E3BD35936A4 /* YapDatabaseExtensionTransaction.h in Headers */, - BCD47B541E370F1FCB08042B /* YapDatabaseFilteredView.h in Headers */, - 09DFD88547271A9888C2B9BE /* YapDatabaseFilteredViewConnection.h in Headers */, - 1FC25BCF9BC1499A5C689257 /* YapDatabaseFilteredViewPrivate.h in Headers */, - 715A8CA6BD8682575DEA51F6 /* YapDatabaseFilteredViewTransaction.h in Headers */, - 17C5D46E9D7951E2EE426AD0 /* YapDatabaseFilteredViewTypes.h in Headers */, - EC043914693F706D75264041 /* YapDatabaseFullTextSearch.h in Headers */, - 6BAF5669D91C351368D0924F /* YapDatabaseFullTextSearchConnection.h in Headers */, - D98AAA228C6C4966EB6D2614 /* YapDatabaseFullTextSearchHandler.h in Headers */, - 4DEC4A71E3626BDCA40BA4E6 /* YapDatabaseFullTextSearchPrivate.h in Headers */, - 354BE000C1C44FC3C85DB202 /* YapDatabaseFullTextSearchSnippetOptions.h in Headers */, - 9DFBB9F641E3781EB9710208 /* YapDatabaseFullTextSearchTransaction.h in Headers */, - 3890209BC4773F7414CB3D64 /* YapDatabaseLogging.h in Headers */, - 0323EC767BBE703A9D46E4AE /* YapDatabaseManager.h in Headers */, - CDF72B96E21E531EE51CAE27 /* YapDatabaseOptions.h in Headers */, - AB308FE1F625E4294D9EB141 /* YapDatabasePrivate.h in Headers */, - 9B0F047E80DA2DA45DE5D1AC /* YapDatabaseQuery.h in Headers */, - 3EC415D8CF1BAE671926C78A /* YapDatabaseRelationship.h in Headers */, - 59CDC94C083B27BA1715E444 /* YapDatabaseRelationshipConnection.h in Headers */, - 72967322EE192FFF6979CFB4 /* YapDatabaseRelationshipEdge.h in Headers */, - AA8A3E2F7CADE93AF4B9FC23 /* YapDatabaseRelationshipEdgePrivate.h in Headers */, - F0E848AC962E1A1BA15DAF3C /* YapDatabaseRelationshipNode.h in Headers */, - A38744D58F951C46F9401807 /* YapDatabaseRelationshipOptions.h in Headers */, - A01FA4FC468884A664185F14 /* YapDatabaseRelationshipPrivate.h in Headers */, - 1AFE15F07467A6CDB900CAC5 /* YapDatabaseRelationshipTransaction.h in Headers */, - A30080FA2631F9B63DCB0B63 /* YapDatabaseSearchQueue.h in Headers */, - 7992A32505715D774BE66A03 /* YapDatabaseSearchQueuePrivate.h in Headers */, - 584B810F4C366ACD8FD9FCB1 /* YapDatabaseSearchResultsView.h in Headers */, - 2A66FC5C98ABBA3B4DEE5FEF /* YapDatabaseSearchResultsViewConnection.h in Headers */, - 537506CD7A26CC1CAE5F5AF7 /* YapDatabaseSearchResultsViewOptions.h in Headers */, - 756ECE33A18CB6BF1D713112 /* YapDatabaseSearchResultsViewPrivate.h in Headers */, - 3F281064F253E9E2F0D8E0B0 /* YapDatabaseSearchResultsViewTransaction.h in Headers */, - BD74B25B0AC1F82ADB8B3A3C /* YapDatabaseSecondaryIndex.h in Headers */, - 966DC2311ADEB320D30DFCD1 /* YapDatabaseSecondaryIndexConnection.h in Headers */, - 9B83A4E216A7A0B3D7202FA7 /* YapDatabaseSecondaryIndexHandler.h in Headers */, - DFA70B59ADE103AD415E4140 /* YapDatabaseSecondaryIndexOptions.h in Headers */, - E5299DE7A90108BE94431E39 /* YapDatabaseSecondaryIndexPrivate.h in Headers */, - A59499B41ACF8ED583ECC8CD /* YapDatabaseSecondaryIndexSetup.h in Headers */, - 1172C7A33D43CDB7AFA854A6 /* YapDatabaseSecondaryIndexTransaction.h in Headers */, - 9DC02BF6713DD67147B3CF9B /* YapDatabaseStatement.h in Headers */, - 4AD1C7D9A8947566FC890853 /* YapDatabaseString.h in Headers */, - 3B207885E9C8A662288025E3 /* YapDatabaseTransaction.h in Headers */, - D198F2222FC759C4272532A4 /* YapDatabaseView.h in Headers */, - D03EDDA864E1ACEF960BAD58 /* YapDatabaseViewChange.h in Headers */, - 72044C7CDBBCBC7D602CDEBE /* YapDatabaseViewChangePrivate.h in Headers */, - 93261122F108096C94B01A4E /* YapDatabaseViewConnection.h in Headers */, - 82B39ED556B339D523636314 /* YapDatabaseViewMappings.h in Headers */, - C341B44970B3E5B7F12EF178 /* YapDatabaseViewMappingsPrivate.h in Headers */, - D2A00C4A7E67B361B2C8A7D2 /* YapDatabaseViewOptions.h in Headers */, - 3138F08E2B042ED35D2F7FB1 /* YapDatabaseViewPage.h in Headers */, - D3D9C26BA183C1C573D89790 /* YapDatabaseViewPageMetadata.h in Headers */, - B3037BE4B8D6324F04960F32 /* YapDatabaseViewPrivate.h in Headers */, - 1BF000695CCBBAF93B5DCC64 /* YapDatabaseViewRangeOptions.h in Headers */, - 6509CFAE07D3A72F21059B53 /* YapDatabaseViewRangeOptionsPrivate.h in Headers */, - AF1188FE0B8C6FA41508DBF6 /* YapDatabaseViewState.h in Headers */, - 4710CEEF69FAE68A05FC44D4 /* YapDatabaseViewTransaction.h in Headers */, - 5D17AC660FB12C5C86B9D65D /* YapDatabaseViewTypes.h in Headers */, - F5781817B34BC5450C2F729B /* YapDebugDictionary.h in Headers */, - 9ADED8DFD97153BB4156FDF4 /* YapMemoryTable.h in Headers */, - AE2BF43BC88EEEF2DFEE0BFF /* YapMurmurHash.h in Headers */, - CA9CA9BE26EFF08CE8D7254D /* YapNull.h in Headers */, - 47C4AEC4E41E99DB5164A8E3 /* YapRowidSet.h in Headers */, - 4D11171E67F0DA3594A16E7F /* YapSet.h in Headers */, - E8EA4DFAC18BEEA78CE69508 /* YapTouch.h in Headers */, - C353537B0AAFFFB9B1A325CF /* YapWhitelistBlacklist.h in Headers */, + A3FA4A2F448BC016D2CEC949 /* BITActivityIndicatorButton.h in Headers */, + 916FA8188A6AB953F2C06DAC /* BITAppStoreHeader.h in Headers */, + E026C8A4AC598768FE6646E6 /* BITAppVersionMetaInfo.h in Headers */, + 5633BFB583198AD91B57F1EE /* BITArrowImageAnnotation.h in Headers */, + 434AAE7643238722D13447FA /* BITAttributedLabel.h in Headers */, + CD7F9FB609D89A8D7196C3E9 /* BITAuthenticationViewController.h in Headers */, + DD9AD0E008DB1711174D26D8 /* BITAuthenticator.h in Headers */, + 2CF8CAF04F3CBE03E7DF0D1C /* BITAuthenticator_Private.h in Headers */, + D9FEF2C5B7D68840E84F70EC /* BITBlurImageAnnotation.h in Headers */, + 8613CB3545379C7FD1977D3B /* BITCrashAttachment.h in Headers */, + 68EF378DD150B5E04FC26E03 /* BITCrashDetails.h in Headers */, + D39F02FC656D57FA59879EF1 /* BITCrashDetailsPrivate.h in Headers */, + 1B145ADB5BE1D50E2E085976 /* BITCrashManager.h in Headers */, + 5793BDF913FCA4BF92073621 /* BITCrashManagerDelegate.h in Headers */, + 434B70DEB91169B805B19249 /* BITCrashManagerPrivate.h in Headers */, + 06A25DAC73C2E0B999C17411 /* BITCrashMetaData.h in Headers */, + BF986F9A15D38D498F720B81 /* BITCrashReportTextFormatter.h in Headers */, + 41D376E74F19FD5527C12DA8 /* BITFeedbackActivity.h in Headers */, + 64717D9CDE3304D3D6C20366 /* BITFeedbackComposeViewController.h in Headers */, + D27DD77FD9293B9642A273D5 /* BITFeedbackComposeViewControllerDelegate.h in Headers */, + C359F74AB9028E62A66EF35B /* BITFeedbackListViewCell.h in Headers */, + CE0611136FB578FDE0886C25 /* BITFeedbackListViewController.h in Headers */, + 4598CE7398E1FF82B9C7CE68 /* BITFeedbackManager.h in Headers */, + A788B096C915DC19D42B0F70 /* BITFeedbackManagerDelegate.h in Headers */, + 480694C8A95C4E79D3079EEB /* BITFeedbackManagerPrivate.h in Headers */, + 21430E4CEC9F3975CDA10ABD /* BITFeedbackMessage.h in Headers */, + 776A3F9160B23B6624BEB615 /* BITFeedbackMessageAttachment.h in Headers */, + 552DAF4220F1EA00AA650BC1 /* BITFeedbackUserDataViewController.h in Headers */, + B3126AA24860874AAB14F8E1 /* BITHTTPOperation.h in Headers */, + 0715BE8CEE93D3276F3818FB /* BITHockeyAppClient.h in Headers */, + A1CC3AF0ABC198B87F8FF0D7 /* BITHockeyAttachment.h in Headers */, + CEF13BE513720692B3374883 /* BITHockeyBaseManager.h in Headers */, + F5BF817F6ED18C282E8586D2 /* BITHockeyBaseManagerPrivate.h in Headers */, + EE65ABFA13A107278BC930DA /* BITHockeyBaseViewController.h in Headers */, + 90041268DFE7C8F87BA91B4E /* BITHockeyHelper.h in Headers */, + FA399ABB945E98BAFC788309 /* BITHockeyManager.h in Headers */, + 3A213CE1F40C1E15730D7D83 /* BITHockeyManagerDelegate.h in Headers */, + B0A66639B169D040F0A8721A /* BITImageAnnotation.h in Headers */, + 783D661B13B6D0BDEB0B16C2 /* BITImageAnnotationViewController.h in Headers */, + 50B36EF3072ABF35FBF4CF2A /* BITKeychainUtils.h in Headers */, + EA3D19F46458DA82EA8C8997 /* BITRectangleImageAnnotation.h in Headers */, + B2C3342C6DED21C9A650E041 /* BITStoreButton.h in Headers */, + 98DAD8C91E4529FB901F5C95 /* BITStoreUpdateManager.h in Headers */, + 33AC20898C1CE3354C460227 /* BITStoreUpdateManagerDelegate.h in Headers */, + 77A4B9FAE356D6E0444D4416 /* BITStoreUpdateManagerPrivate.h in Headers */, + 9E7DD7013EB6125BD59875C2 /* BITUpdateManager.h in Headers */, + E8FF03ABFEE352DCDD126C5D /* BITUpdateManagerDelegate.h in Headers */, + 8650D67B04EC2D6E712043BE /* BITUpdateManagerPrivate.h in Headers */, + CDD92A2DF8FB0BD53B4F756A /* BITUpdateViewController.h in Headers */, + D991D06118598EF884808CA8 /* BITUpdateViewControllerPrivate.h in Headers */, + A7938EC509B19FE98CD10386 /* BITWebTableViewCell.h in Headers */, + D31A9C4B2BF571D22C36414A /* HockeySDK.h in Headers */, + 006239E8AB37A87419A2748C /* HockeySDKFeatureConfig.h in Headers */, + EF87829D14547703BD95F3DD /* HockeySDKPrivate.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; - 52727959EBAEC29B8EFC1FDF /* Headers */ = { + 3617EEAF3E08B79B59841C61 /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - B6CB374BDC636D91F432F94C /* EXTKeyPathCoding.h in Headers */, - 2BDEE1C8538E09F58C077261 /* EXTRuntimeExtensions.h in Headers */, - 627D7C1E745D5157A6BB11CB /* EXTScope.h in Headers */, - B3F0DFAF852C82E72767FF71 /* MTLJSONAdapter.h in Headers */, - 62E1D8BAD93C1F2802EE3194 /* MTLModel+NSCoding.h in Headers */, - 80D6EF4201CB4FFCB958F024 /* MTLModel.h in Headers */, - 0047F00BC5487425F902DE2A /* MTLReflection.h in Headers */, - 111876AC596ADD18834DF91A /* MTLTransformerErrorHandling.h in Headers */, - 6B85B68AE11AE82F71F65BC3 /* MTLValueTransformer.h in Headers */, - 21E3C2043D128E82982AFD1E /* Mantle.h in Headers */, - 3925B47BD0C69F97332AE5BE /* NSArray+MTLManipulationAdditions.h in Headers */, - 140889D048463ED26470CA7F /* NSDictionary+MTLJSONKeyPath.h in Headers */, - EDBC93D2E4129D6F1974BA05 /* NSDictionary+MTLManipulationAdditions.h in Headers */, - 52787E0E24FDE7F9F70FB36C /* NSDictionary+MTLMappingAdditions.h in Headers */, - CB411CB6D1DE7CB6BED3AE01 /* NSError+MTLModelException.h in Headers */, - BF343A3D5ACEEBC822F911FB /* NSObject+MTLComparisonAdditions.h in Headers */, - CC8694732E6D577459CC396F /* NSValueTransformer+MTLInversionAdditions.h in Headers */, - 5A86DC168DE3B006FDA91247 /* NSValueTransformer+MTLPredefinedTransformerAdditions.h in Headers */, - 70B297DFD2AF33D6A9460743 /* metamacros.h in Headers */, + 9D1618374E3D501D81B7233F /* NSArray+ObjectiveSugar.h in Headers */, + 540FB4623D9CC3EAD5AD7509 /* NSDictionary+ObjectiveSugar.h in Headers */, + A0FE850D3229835DA9756834 /* NSMutableArray+ObjectiveSugar.h in Headers */, + FBF07A65853F1C5C30DA0597 /* NSNumber+ObjectiveSugar.h in Headers */, + 37D6F17F83F29FCDD74A14A4 /* NSSet+ObjectiveSugar.h in Headers */, + FB4CEAF4FC10A4D31A53BB58 /* NSString+ObjectiveSugar.h in Headers */, + A9AAA5B9FA7DE93E709EDDC3 /* ObjectiveSugar.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; - 563D506861BDB75F53667910 /* Headers */ = { + 4D495846D0F8FEB49BDA4A97 /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - 2E2A27BFFFD01AA6DFCF8A88 /* FAImageView.h in Headers */, - 421CE780AC3B652433D5EF3D /* NSString+FontAwesome.h in Headers */, - E85E9E303EE8793978009AAB /* UIFont+FontAwesome.h in Headers */, - 3072A5F0C8625B6A2DFB67D3 /* UIImage+FontAwesome.h in Headers */, + 361BAE6AF1C562D0A3563FEF /* OMGFormURLEncode.h in Headers */, + 44ADB4A5E87F3D1730BA3522 /* OMGHTTPURLRQ.h in Headers */, + 6DE4FCF743A42CD08C706A51 /* OMGUserAgent.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; - 6B0CB5D0A78038B3E8CD4A2E /* Headers */ = { + 4E335CBC4C35B5036DAC3FEC /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - 2B2F17D0D4C8CF93CDD737C7 /* NSDictionary+YapDatabase.h in Headers */, - C150DFD9AF9CA6919AC519F4 /* YDBCKAttachRequest.h in Headers */, - 56810E3C760B148DA91247B5 /* YDBCKChangeQueue.h in Headers */, - 89326DA6FBC5A7BF6F733DC6 /* YDBCKChangeRecord.h in Headers */, - EACDF28A3F06D0002131EA60 /* YDBCKChangeSet.h in Headers */, - B0F211CFACC81094E05BBA17 /* YDBCKMappingTableInfo.h in Headers */, - EF50F9676A4F9AC0A3E24A7A /* YDBCKMergeInfo.h in Headers */, - FE2D38834DA7B527D513F5BE /* YDBCKRecord.h in Headers */, - E5B81DE23B99ADD18A25C3FD /* YDBCKRecordInfo.h in Headers */, - 2F1C9ECF9C258E3C27045813 /* YDBCKRecordTableInfo.h in Headers */, - 6A8D2E3E20419404444C65D2 /* YapCache.h in Headers */, - AC45733BEC1BF8886444AC0E /* YapCollectionKey.h in Headers */, - 86780755B6F86DDE290DE41A /* YapDatabase.h in Headers */, - 252A7F5502F186A5A53A6822 /* YapDatabaseCloudKit.h in Headers */, - 94089A4E19FF7F219233F202 /* YapDatabaseCloudKitConnection.h in Headers */, - 23ABD2ADE971C605D2425E47 /* YapDatabaseCloudKitOptions.h in Headers */, - EF13530CE8F400825695B943 /* YapDatabaseCloudKitPrivate.h in Headers */, - 1ECEF831A6A93F173E12DA32 /* YapDatabaseCloudKitTransaction.h in Headers */, - AAA383773CEC7D1116A467F3 /* YapDatabaseCloudKitTypes.h in Headers */, - 883D4D35F71AE3B778988EA5 /* YapDatabaseConnection.h in Headers */, - B89FF7D2AA530280FB17D3D5 /* YapDatabaseConnectionDefaults.h in Headers */, - 1BEBEE9C9C9FAFF34430FD48 /* YapDatabaseConnectionState.h in Headers */, - 0782BBA6AA03F1BE4602038D /* YapDatabaseExtension.h in Headers */, - 202A2A4170FBDB56D33CCA56 /* YapDatabaseExtensionConnection.h in Headers */, - 518A05DB486C2D5234197E99 /* YapDatabaseExtensionPrivate.h in Headers */, - 8B925EE4ED3B0D33A9FB8F01 /* YapDatabaseExtensionTransaction.h in Headers */, - 35720865AA135100C1875E02 /* YapDatabaseFilteredView.h in Headers */, - 20CF4F5D69E12267C92E9688 /* YapDatabaseFilteredViewConnection.h in Headers */, - 78F61C9447CD24893149C986 /* YapDatabaseFilteredViewPrivate.h in Headers */, - 1D2CFA9A9A83A02152EA0BA2 /* YapDatabaseFilteredViewTransaction.h in Headers */, - A72B0FEA2C76B44A54DEA984 /* YapDatabaseFilteredViewTypes.h in Headers */, - 04FF51B70CCCC9E71BC49106 /* YapDatabaseFullTextSearch.h in Headers */, - 70DEE267D47FC4F5541A289C /* YapDatabaseFullTextSearchConnection.h in Headers */, - 42A781CF0960033B4C75F190 /* YapDatabaseFullTextSearchHandler.h in Headers */, - 6DEA03AA16894415A172E984 /* YapDatabaseFullTextSearchPrivate.h in Headers */, - C13F8527602CA23ED5CE9B30 /* YapDatabaseFullTextSearchSnippetOptions.h in Headers */, - 0DD13EC26765BE01D110837A /* YapDatabaseFullTextSearchTransaction.h in Headers */, - 48D8FD2E9CFF49BEF3F5A78C /* YapDatabaseLogging.h in Headers */, - 7F4DD96B05B6D579C6D690FF /* YapDatabaseManager.h in Headers */, - CA0BE5C77063A8DE59016953 /* YapDatabaseOptions.h in Headers */, - C31BF272BD09BE84522F92D0 /* YapDatabasePrivate.h in Headers */, - 1FE46598ADEE728EE54C681D /* YapDatabaseQuery.h in Headers */, - F82EB88918E70AB4AFC0478A /* YapDatabaseRelationship.h in Headers */, - 278136F387E138EA2D1C3124 /* YapDatabaseRelationshipConnection.h in Headers */, - 50B10246D96213A8958248E1 /* YapDatabaseRelationshipEdge.h in Headers */, - C8F8291037C79FD01F4DD1E0 /* YapDatabaseRelationshipEdgePrivate.h in Headers */, - A4CDD6B49B351DD03DF070D2 /* YapDatabaseRelationshipNode.h in Headers */, - C311E3D244155D68BB1062BC /* YapDatabaseRelationshipOptions.h in Headers */, - 885CB96C8312C6C7AAF8C62D /* YapDatabaseRelationshipPrivate.h in Headers */, - 8390EB4900CD55F417A1BFDF /* YapDatabaseRelationshipTransaction.h in Headers */, - D0F8B5F24A468640A2DC5469 /* YapDatabaseSearchQueue.h in Headers */, - 5DA5FD41E1E4A08FC32BF212 /* YapDatabaseSearchQueuePrivate.h in Headers */, - 98F3373368491871E9839EE6 /* YapDatabaseSearchResultsView.h in Headers */, - E2DEDC4F5FE250E3F5732493 /* YapDatabaseSearchResultsViewConnection.h in Headers */, - 686E16572DD5A8D90F3F8F0A /* YapDatabaseSearchResultsViewOptions.h in Headers */, - F02C24B5B91CEBA0962DA7E4 /* YapDatabaseSearchResultsViewPrivate.h in Headers */, - 2141A96D18A8694C94878ABA /* YapDatabaseSearchResultsViewTransaction.h in Headers */, - 8180E03DD1E4F382B2A57455 /* YapDatabaseSecondaryIndex.h in Headers */, - B4A289963271B5271FC0FEA5 /* YapDatabaseSecondaryIndexConnection.h in Headers */, - 6F2616F27720A72FC18D19BA /* YapDatabaseSecondaryIndexHandler.h in Headers */, - CB99A26AE8465EDF34FDF10A /* YapDatabaseSecondaryIndexOptions.h in Headers */, - 29EC765F52ADEF060B316CEC /* YapDatabaseSecondaryIndexPrivate.h in Headers */, - 7F8C19A2012A00C8A18E3400 /* YapDatabaseSecondaryIndexSetup.h in Headers */, - 1546EF14B923E49E2F7D7521 /* YapDatabaseSecondaryIndexTransaction.h in Headers */, - 512C4BF447EDA603FAA3CA4D /* YapDatabaseStatement.h in Headers */, - DA117FD449B0E3D55C3CA8C9 /* YapDatabaseString.h in Headers */, - DB448C4943DD880B16F93190 /* YapDatabaseTransaction.h in Headers */, - 60FF75B66C5357D6DE4BF850 /* YapDatabaseView.h in Headers */, - 7090DABFC728D90033EB3204 /* YapDatabaseViewChange.h in Headers */, - 17FD72E1BD8F1E92DC5C4286 /* YapDatabaseViewChangePrivate.h in Headers */, - 2E07634F3AC35BE2BEA98C4F /* YapDatabaseViewConnection.h in Headers */, - BB5985231BB3F9D8C5AEE273 /* YapDatabaseViewMappings.h in Headers */, - 75D9FFEEEAF302FE0605A6C7 /* YapDatabaseViewMappingsPrivate.h in Headers */, - CE0F9827E2BEB8A32FE5F7DB /* YapDatabaseViewOptions.h in Headers */, - 8B70FC820477332D6033D453 /* YapDatabaseViewPage.h in Headers */, - E354822275447B940A93A7AD /* YapDatabaseViewPageMetadata.h in Headers */, - 938B3026ECA98540048D2247 /* YapDatabaseViewPrivate.h in Headers */, - 4B2735621138369A716C0CBF /* YapDatabaseViewRangeOptions.h in Headers */, - 48636383586DE5319CFF03CB /* YapDatabaseViewRangeOptionsPrivate.h in Headers */, - 81981C51895C5DCE801F13A6 /* YapDatabaseViewState.h in Headers */, - 51527E79DBBADAD6CC1F4381 /* YapDatabaseViewTransaction.h in Headers */, - BE1BE5BFA6C6188776CE3DD6 /* YapDatabaseViewTypes.h in Headers */, - BFA0D8C5684344CA3D351CFF /* YapDebugDictionary.h in Headers */, - 7ABF98AB72A56026B9C53EB1 /* YapMemoryTable.h in Headers */, - ED09711501FEC44F3BB595B7 /* YapMurmurHash.h in Headers */, - D6FE84BF4CF6E37B2A7687BB /* YapNull.h in Headers */, - E64E97349F949002E88F2FA8 /* YapRowidSet.h in Headers */, - FDB21F16458EF45140DB7AF3 /* YapSet.h in Headers */, - 67CC384A132D9F07630CEDE2 /* YapTouch.h in Headers */, - 13BEA5FB2AE23B723E73E50F /* YapWhitelistBlacklist.h in Headers */, + 4D527467D70C3490B4FC3A11 /* CALayer+PromiseKit.h in Headers */, + 288CC222D3713C4A05440D85 /* NSNotificationCenter+PromiseKit.h in Headers */, + 2D241C21A7B49C3A0502E6FE /* NSURLConnection+PromiseKit.h in Headers */, + EA4B6634105544D9DB3DC7F3 /* Promise+Pause.h in Headers */, + 8C32F918D6D612BC41C5B6A1 /* Promise+Until.h in Headers */, + 644DA495CEBBC4AFC765F670 /* Promise+When.h in Headers */, + 901CA4AC78AB32DF69EDFDF3 /* Promise.h in Headers */, + A1BDF09AF65D51C554B6435F /* PromiseKit.h in Headers */, + DA3EBFB7F35B0B139A169092 /* UIActionSheet+PromiseKit.h in Headers */, + 11F4C4C7950318CA15892432 /* UIAlertView+PromiseKit.h in Headers */, + C332AEB9E70BE6E212C33D50 /* UIView+PromiseKit.h in Headers */, + 8E921E61567BD1B92D638D04 /* UIViewController+PromiseKit.h in Headers */, + 4AB45D0E7A0D8DEF9AF5D009 /* fwd.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; - 70032CCF497763902682F23B /* Headers */ = { + 5AEA01D8896E8D45163C4CD6 /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - D89F24B29804905EC5B09056 /* DDASLLogCapture.h in Headers */, - D3A94C1EF91BB20A729F0B2D /* DDASLLogger.h in Headers */, - 86AF5AFD28097B1B4A7AB51F /* DDAbstractDatabaseLogger.h in Headers */, - A843B68D19D50F2DCC59B0BA /* DDAssert.h in Headers */, - 06272D3A42FEFA98CEBEB36C /* DDContextFilterLogFormatter.h in Headers */, - 0AD445D775F3B3FC0117F600 /* DDDispatchQueueLogFormatter.h in Headers */, - 0428E069E2E16D9177897352 /* DDFileLogger.h in Headers */, - 0D6B7755C64921321D9DAA2C /* DDLog+LOGV.h in Headers */, - 61B7DE14D404EE15716EDDB2 /* DDLog.h in Headers */, - 2DFE40865FED47236212E098 /* DDMultiFormatter.h in Headers */, - C5CA51A7A083BCDA38B4E618 /* DDTTYLogger.h in Headers */, + A398B0DBE5E86833CE90CD70 /* OMGFormURLEncode.h in Headers */, + 4D03BDD4D156EDD5D2697F30 /* OMGHTTPURLRQ.h in Headers */, + 5EDB1B6E6F9B3CAEA6CD8315 /* OMGUserAgent.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; - 852EAB28CFCFC33485DACAA8 /* Headers */ = { + 63F1700305E3C39B19C7E875 /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - 4954A0444441EAFB954A4814 /* CALayer+PromiseKit.h in Headers */, - 83789D2462DCE19B30F51BFD /* NSNotificationCenter+PromiseKit.h in Headers */, - 785DAE28BAF26D3A32E5F1BF /* NSURLConnection+PromiseKit.h in Headers */, - C199AC6A1951FC0438F0FBC4 /* Promise+Pause.h in Headers */, - E70BA536E210F10654599DAA /* Promise+Until.h in Headers */, - A03616869FB51CC082F29602 /* Promise+When.h in Headers */, - 1579C54E551620F6A55B0C2C /* Promise.h in Headers */, - 7AFB20FAD65C310074D81E74 /* PromiseKit.h in Headers */, - 8259979D8468532A5D45BBC7 /* UIActionSheet+PromiseKit.h in Headers */, - B31C7124339DBF1A0F1563E6 /* UIAlertView+PromiseKit.h in Headers */, - AB8A8D47655681C8525C6AA7 /* UIView+PromiseKit.h in Headers */, - 0FFA8BECAB52B9008511F9AB /* UIViewController+PromiseKit.h in Headers */, - D1539B2543291BFC71714405 /* fwd.h in Headers */, + 14DD4FEB056E3683E7FAA171 /* NSDictionary+YapDatabase.h in Headers */, + 30A060B1E5479BC8D53810E0 /* YDBCKAttachRequest.h in Headers */, + E324CCDEA9AE70CE5D92597C /* YDBCKChangeQueue.h in Headers */, + BA5A0A3C4C9B5486854E3050 /* YDBCKChangeRecord.h in Headers */, + 7583066203DD70C7EAA9D5F4 /* YDBCKChangeSet.h in Headers */, + 64E0D3506B7F24C1B3A3AE8C /* YDBCKMappingTableInfo.h in Headers */, + A13437D57E7A71A77FEBEB73 /* YDBCKMergeInfo.h in Headers */, + 018BA01A81E14C8A35CA2440 /* YDBCKRecord.h in Headers */, + F85255D94410C962AD2B394C /* YDBCKRecordInfo.h in Headers */, + 3ED7969A67DBB1D88E8D0930 /* YDBCKRecordTableInfo.h in Headers */, + 84FE4BB023882C4BA6D15159 /* YapCache.h in Headers */, + 1268E69AB127998241200F3C /* YapCollectionKey.h in Headers */, + 93888661913AD24E3C314598 /* YapDatabase.h in Headers */, + 44E3A069FB42F5C2B0D3E882 /* YapDatabaseCloudKit.h in Headers */, + CAECDBED2DAF84D91AB11274 /* YapDatabaseCloudKitConnection.h in Headers */, + B77722ED6A2D6E40FEF92E49 /* YapDatabaseCloudKitOptions.h in Headers */, + 8583D4EE10F2F740EE5E6FDA /* YapDatabaseCloudKitPrivate.h in Headers */, + F7744DD06EF3A1B61F182190 /* YapDatabaseCloudKitTransaction.h in Headers */, + 7D80F20F4EB4FB34E9FA2750 /* YapDatabaseCloudKitTypes.h in Headers */, + 5E211EADC2486224298B17B8 /* YapDatabaseConnection.h in Headers */, + 6A3BDEB85CDCD8627D29FDED /* YapDatabaseConnectionDefaults.h in Headers */, + 751DE155A8B203327ECB5412 /* YapDatabaseConnectionState.h in Headers */, + CC94D4E62080E0E7A881E9FF /* YapDatabaseExtension.h in Headers */, + FB26F51901F0A66030885D2A /* YapDatabaseExtensionConnection.h in Headers */, + 402DAECFE97E5C8EFA6945D9 /* YapDatabaseExtensionPrivate.h in Headers */, + 58BABC4B369A9DE271D55FCF /* YapDatabaseExtensionTransaction.h in Headers */, + CA1F75DFCB6C263F5C409A62 /* YapDatabaseFilteredView.h in Headers */, + F6FD2FE35E0FBD0F0DCDADCC /* YapDatabaseFilteredViewConnection.h in Headers */, + 6250B782B7B1253D304D3C43 /* YapDatabaseFilteredViewPrivate.h in Headers */, + 6882153A3E548486987B6684 /* YapDatabaseFilteredViewTransaction.h in Headers */, + 98C56FCE7E336DDDBEB49861 /* YapDatabaseFilteredViewTypes.h in Headers */, + A8F640CD9D925CAD66622F5B /* YapDatabaseFullTextSearch.h in Headers */, + 83E306D53BE724A047656AA8 /* YapDatabaseFullTextSearchConnection.h in Headers */, + D0BDC6C49431A2AEAFF31AE8 /* YapDatabaseFullTextSearchHandler.h in Headers */, + AD2C505211E4DF6C7AA26590 /* YapDatabaseFullTextSearchPrivate.h in Headers */, + 23F91B9F7692CB33CD2E5A55 /* YapDatabaseFullTextSearchSnippetOptions.h in Headers */, + C41D5A6FF08A83DDF516A174 /* YapDatabaseFullTextSearchTransaction.h in Headers */, + EC2F93AF6B37D9CF08790017 /* YapDatabaseLogging.h in Headers */, + ED3EE4D4C3FE7BD9EE6A6442 /* YapDatabaseManager.h in Headers */, + 8473DB69F033FFE1BD61A2F9 /* YapDatabaseOptions.h in Headers */, + E2687EF644F9D897D01DA634 /* YapDatabasePrivate.h in Headers */, + BF4B2AA89C162F318F0F228A /* YapDatabaseQuery.h in Headers */, + 381AA6E9C668B337B315BB41 /* YapDatabaseRelationship.h in Headers */, + 11023D424D27EEACC6A7010C /* YapDatabaseRelationshipConnection.h in Headers */, + D21C0627F7CFE3D4EC8F382A /* YapDatabaseRelationshipEdge.h in Headers */, + 71255373AD200D568D958BFE /* YapDatabaseRelationshipEdgePrivate.h in Headers */, + 21145BB5A5458AACE3E5F80F /* YapDatabaseRelationshipNode.h in Headers */, + 7A2E84C78A05AC35C7B2BF2D /* YapDatabaseRelationshipOptions.h in Headers */, + AA9C222864395D5FF8D0D592 /* YapDatabaseRelationshipPrivate.h in Headers */, + CEEE97BB9DF57CD8CE115A23 /* YapDatabaseRelationshipTransaction.h in Headers */, + ED9A72EB0039788CD9058FCB /* YapDatabaseSearchQueue.h in Headers */, + F744EC8F7FAFBFE901A35FE8 /* YapDatabaseSearchQueuePrivate.h in Headers */, + F9DD594C2C8E9F080B6718B5 /* YapDatabaseSearchResultsView.h in Headers */, + 653387A73FF2930AF73AA02C /* YapDatabaseSearchResultsViewConnection.h in Headers */, + 25F476FB0AB40481D6C6A101 /* YapDatabaseSearchResultsViewOptions.h in Headers */, + 51A009701BDA90D322D7405C /* YapDatabaseSearchResultsViewPrivate.h in Headers */, + 0A46B049564B293F7ADC6DBA /* YapDatabaseSearchResultsViewTransaction.h in Headers */, + D80B06453EA858A3B621F472 /* YapDatabaseSecondaryIndex.h in Headers */, + 797EFA533450C1A24D6962BB /* YapDatabaseSecondaryIndexConnection.h in Headers */, + 517164C704513EC46F5C4976 /* YapDatabaseSecondaryIndexHandler.h in Headers */, + B51CBB4674694292C35A335D /* YapDatabaseSecondaryIndexOptions.h in Headers */, + 7B0C3912E1436873C3C44F18 /* YapDatabaseSecondaryIndexPrivate.h in Headers */, + 671889E6917F6D29DB501F29 /* YapDatabaseSecondaryIndexSetup.h in Headers */, + 36B43E7F12DE5316B678B0D5 /* YapDatabaseSecondaryIndexTransaction.h in Headers */, + C9A0BA6AFF44D8615F71C34E /* YapDatabaseStatement.h in Headers */, + 0E90A6CB92646ADE18C880DB /* YapDatabaseString.h in Headers */, + 04AE49F7649E6D1749B19148 /* YapDatabaseTransaction.h in Headers */, + 0B1FCFCDFD11C211B210A83B /* YapDatabaseView.h in Headers */, + B957E7C5BE895D082D2F3418 /* YapDatabaseViewChange.h in Headers */, + 2861CCFA65B2364D05AADC98 /* YapDatabaseViewChangePrivate.h in Headers */, + 416FC5318D61C6A173F56100 /* YapDatabaseViewConnection.h in Headers */, + BD792E05FA3C20DE5E9DDE9E /* YapDatabaseViewMappings.h in Headers */, + B7A93FC86C23255D9741BAE9 /* YapDatabaseViewMappingsPrivate.h in Headers */, + B6DEE5F88CFEAE169D08B021 /* YapDatabaseViewOptions.h in Headers */, + C98B439DD05FFC242D9453B0 /* YapDatabaseViewPage.h in Headers */, + 63CDDD3C015EDF2A5EC4AF61 /* YapDatabaseViewPageMetadata.h in Headers */, + A1AA7C746A3072BD08516811 /* YapDatabaseViewPrivate.h in Headers */, + 631839B9B1D0246B828D86F6 /* YapDatabaseViewRangeOptions.h in Headers */, + 8C911A745C6DA439B13C6FAC /* YapDatabaseViewRangeOptionsPrivate.h in Headers */, + 733031B3E26DC1A8FB2E9EA9 /* YapDatabaseViewState.h in Headers */, + 831D2D2382C0AB1F72F9136B /* YapDatabaseViewTransaction.h in Headers */, + FE19FE2695E36056439EA90D /* YapDatabaseViewTypes.h in Headers */, + 505BC5D0E337D45624051A39 /* YapDebugDictionary.h in Headers */, + E77C60B27E7B98B039C64B53 /* YapMemoryTable.h in Headers */, + 86CA29F91C4AC0969356038D /* YapMurmurHash.h in Headers */, + A0848DE5BAAD072C4651E215 /* YapNull.h in Headers */, + 7DFF0727A308D78BC8736757 /* YapRowidSet.h in Headers */, + C2ADB4E8E535BECBCF148362 /* YapSet.h in Headers */, + D4A513047BA2ECEBF30C8801 /* YapTouch.h in Headers */, + 23FB52544E2C5EE3D635F748 /* YapWhitelistBlacklist.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; - 8D536E67E097188B414D539D /* Headers */ = { + 7B4C8551CD0E88049821C3D1 /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - 0C5F568EB39C41F83BDD4EA8 /* CALayer+PromiseKit.h in Headers */, - A2433C26E00B7105F5E7E399 /* NSNotificationCenter+PromiseKit.h in Headers */, - 1A0BD3516E4C120655880CA0 /* NSURLConnection+PromiseKit.h in Headers */, - A5F52D941F651DE95E29E9B4 /* Promise+Pause.h in Headers */, - 27AFF141066A7DE0E5939948 /* Promise+Until.h in Headers */, - CD8D56CA564807104DBABFDB /* Promise+When.h in Headers */, - 0E92521F70C751D47F3B9FFE /* Promise.h in Headers */, - 59396BF394A074D5F213CAAD /* PromiseKit.h in Headers */, - A0C1FBB6011BD3CAA3357D8A /* UIActionSheet+PromiseKit.h in Headers */, - 7944D09CB2AF7DC4B702BEDF /* UIAlertView+PromiseKit.h in Headers */, - E93F73DB5F3C481C4055E543 /* UIView+PromiseKit.h in Headers */, - 31B6C08F3DDBC2603411A3F3 /* UIViewController+PromiseKit.h in Headers */, - 7C90CE28B7C731E7AAD079F4 /* fwd.h in Headers */, + 85F916C534BD8573E0F7F1FF /* CALayer+PromiseKit.h in Headers */, + EFBD9718309DF9AFD4DA807A /* NSNotificationCenter+PromiseKit.h in Headers */, + 922ACAD8060EA4EC493BAA3E /* NSURLConnection+PromiseKit.h in Headers */, + A12D84242452D283C235BAE9 /* Promise+Pause.h in Headers */, + CA65A28CAFF5EC09FE5A96FA /* Promise+Until.h in Headers */, + AA15C0454F552086C9F1FB29 /* Promise+When.h in Headers */, + CCC6FB8BC3D520BFDCC5980F /* Promise.h in Headers */, + 6F8FCF9CA86259577B0DA06E /* PromiseKit.h in Headers */, + 43A65070852461DFA4DA0197 /* UIActionSheet+PromiseKit.h in Headers */, + 583BBB9166B3F30C0EF9E5DF /* UIAlertView+PromiseKit.h in Headers */, + AAA9154621C4A2E8FB3B9526 /* UIView+PromiseKit.h in Headers */, + 082F530DE3DF7D319B500262 /* UIViewController+PromiseKit.h in Headers */, + 285BBD7615D84E9D03BD129C /* fwd.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; - 9107CC4A44FDCDDD92955B5F /* Headers */ = { + 9EC15598BCF6DDBC2265D39F /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - 79894A61C5A0FCC6F2832A4C /* MBProgressHUD.h in Headers */, + 5E2AD951CAED3666F1E0E552 /* EXTKeyPathCoding.h in Headers */, + 55D4CACB09C4547053C91EDA /* EXTRuntimeExtensions.h in Headers */, + 38178C845D54C64115F572DC /* EXTScope.h in Headers */, + D4DCF83CAF0B4FBFA18FC8D1 /* MTLJSONAdapter.h in Headers */, + 6544C3CEEC6D4AECD76DE69E /* MTLModel+NSCoding.h in Headers */, + 91EF5504E6574D52DD312CEA /* MTLModel.h in Headers */, + C0B4A6B9147CB6FA5B028316 /* MTLReflection.h in Headers */, + 3DC787265ABCF0140C76F59E /* MTLTransformerErrorHandling.h in Headers */, + E72AF258DE71961AE3DD016F /* MTLValueTransformer.h in Headers */, + 82886CF9630AC1089504EE9E /* Mantle.h in Headers */, + 6A854667DEDB6FE8C287536D /* NSArray+MTLManipulationAdditions.h in Headers */, + B3BBA13966BB53F5D1763D39 /* NSDictionary+MTLJSONKeyPath.h in Headers */, + 2CE7893C33C84CA1E1203614 /* NSDictionary+MTLManipulationAdditions.h in Headers */, + 61C6E2661145FCE200C552B1 /* NSDictionary+MTLMappingAdditions.h in Headers */, + 373961A175C4802E0671D3A0 /* NSError+MTLModelException.h in Headers */, + 3EA1CE7224EB298F5AFBC5AA /* NSObject+MTLComparisonAdditions.h in Headers */, + 799BFCD0F7659885C6FC80FD /* NSValueTransformer+MTLInversionAdditions.h in Headers */, + EF91452CAB580EB7873357AB /* NSValueTransformer+MTLPredefinedTransformerAdditions.h in Headers */, + CF60BCA8ED25838E30023121 /* metamacros.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; - 951C860C70A1D72A04157E1B /* Headers */ = { + B1196D876F8899E12B7CFA4D /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - 7A9B0CF4E630E922DA133597 /* DDASLLogCapture.h in Headers */, - 5F987A7A5900403D83899F69 /* DDASLLogger.h in Headers */, - 1A557CCEF12FF2E7A3C40B93 /* DDAbstractDatabaseLogger.h in Headers */, - 8AABB86FCF853319FC735145 /* DDAssert.h in Headers */, - 2B79290F4B6E8DEBB38256FF /* DDContextFilterLogFormatter.h in Headers */, - 39F10802E3C1328B3A800D4F /* DDDispatchQueueLogFormatter.h in Headers */, - 587BBD5C63BAE018AA6D7A22 /* DDFileLogger.h in Headers */, - 1103F32340C80DA7F612279B /* DDLog+LOGV.h in Headers */, - F1598F715D5C94102101DF22 /* DDLog.h in Headers */, - F3F4AFDC609A448768AE4247 /* DDMultiFormatter.h in Headers */, - 0D3F2F61493966E74DB414C5 /* DDTTYLogger.h in Headers */, + 366920F898A46F3636CEC345 /* DDASLLogCapture.h in Headers */, + 6395569F97880C12FA3D0BDD /* DDASLLogger.h in Headers */, + E894908D76BD3E691C1EF8E4 /* DDAbstractDatabaseLogger.h in Headers */, + 030D75880C907B9471A12A8C /* DDAssert.h in Headers */, + 3CB8598031796B218308589A /* DDContextFilterLogFormatter.h in Headers */, + 0B5CC4004358FE43BEB19BC4 /* DDDispatchQueueLogFormatter.h in Headers */, + 74B0D181BC3C5825D0B62D35 /* DDFileLogger.h in Headers */, + 5A189CEEEC7BB376FAD14908 /* DDLog+LOGV.h in Headers */, + 82D2E92F92C65EECB84C4E13 /* DDLog.h in Headers */, + 6F9DD9938002B65CA8FEAD77 /* DDMultiFormatter.h in Headers */, + 56D80D9E9CB69B60A1DCE653 /* DDTTYLogger.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; - AE3A2AEAD0A4864E781A4459 /* Headers */ = { + B195BFFF058F9BD2913DE6DD /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - BCF459CA484E99C40FFAB90F /* OMGFormURLEncode.h in Headers */, - 4890D134C0665E5CAA406A28 /* OMGHTTPURLRQ.h in Headers */, - 0686BF0F10062801E72580DF /* OMGUserAgent.h in Headers */, + 4573E55737897CA4A8B39206 /* NSObject+DyCInjection.h in Headers */, + CEAEAB81E42E26684819274F /* NSSet+ClassesList.h in Headers */, + 067F19DFAA83A04CD4F0AD12 /* SFDynamicCodeInjection.h in Headers */, + 5ECF79443E1FA2546A5AA388 /* SFFileWatcher.h in Headers */, + 66A53DDB931FB14CE1FB4798 /* SFFileWatcherDelegate.h in Headers */, + 91F699CB1C420F7842DD2ABF /* SFInjectionsNotificationsCenter.h in Headers */, + 28F03C931C207959E591B425 /* UINib+StoryBoardSupport.h in Headers */, + BE7B4E8437E1E3BD69819816 /* UIViewController+XIBSupport.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; - D56C2D8EF9525B9605852C0C /* Headers */ = { + D12B4575416664E20FFC8014 /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - FF910F4A912229591A889F4B /* NSArray+ObjectiveSugar.h in Headers */, - 1C877CB9D82B6CC6A30E35FF /* NSDictionary+ObjectiveSugar.h in Headers */, - C62A8BEC8D7F9EEA3E0366C4 /* NSMutableArray+ObjectiveSugar.h in Headers */, - 4A106DD36DD71F79A79B91E7 /* NSNumber+ObjectiveSugar.h in Headers */, - A3A040CBCEBDF5DFD2D2221E /* NSSet+ObjectiveSugar.h in Headers */, - 459AA756788A80D5F96761E5 /* NSString+ObjectiveSugar.h in Headers */, - D31ADEDB4B6476B3A9EB7BF9 /* ObjectiveSugar.h in Headers */, + ED513D17AA917975C45E1DDE /* MBProgressHUD.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; - D7C939EC392A3075D73075D6 /* Headers */ = { + DAB14464EED069D138047C60 /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - 670A7640494791E6D2E51B8A /* NSArray+ObjectiveSugar.h in Headers */, - 8109D9793D3606DA42AFCE32 /* NSDictionary+ObjectiveSugar.h in Headers */, - 8EEE8157D80E93124F3700A1 /* NSMutableArray+ObjectiveSugar.h in Headers */, - 8362479704A676B3E41F59BD /* NSNumber+ObjectiveSugar.h in Headers */, - F6F1FAC465342FBD47008226 /* NSSet+ObjectiveSugar.h in Headers */, - D0C48E2293F6961CD3BC6BAD /* NSString+ObjectiveSugar.h in Headers */, - 629F834049FEC9A37031CC88 /* ObjectiveSugar.h in Headers */, + CA44149FDA7E001D8557F476 /* MBProgressHUD.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; - E52DA89E8E927E2C99C024CD /* Headers */ = { + DFF040F9BF18F1C3091D5332 /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - 1176446286C9FAE132A9AA27 /* EXTKeyPathCoding.h in Headers */, - F3F6E1B8396A9A23919B76A0 /* EXTRuntimeExtensions.h in Headers */, - 1079D8AE0E8E1D7D4413D268 /* EXTScope.h in Headers */, - 545C0F3BECE9F7221B8BA0E3 /* MTLJSONAdapter.h in Headers */, - DA974CF3BB3EFAED215A7D6F /* MTLModel+NSCoding.h in Headers */, - C764FD5A9BE913AD874C989B /* MTLModel.h in Headers */, - 7A1B0B983A5ECB3DC65A77F0 /* MTLReflection.h in Headers */, - 8BEB340F3AA086B27312762B /* MTLTransformerErrorHandling.h in Headers */, - D681ECACBAE3BE3E564784D5 /* MTLValueTransformer.h in Headers */, - 38001D94B3D69FEE99C468B0 /* Mantle.h in Headers */, - 4DFDB7BF9D8FAC19064586B9 /* NSArray+MTLManipulationAdditions.h in Headers */, - 3AD932611B867767C1C6FC56 /* NSDictionary+MTLJSONKeyPath.h in Headers */, - CDECD6005FC0BF5533389347 /* NSDictionary+MTLManipulationAdditions.h in Headers */, - 2CC6CD5032F35D05D99086BE /* NSDictionary+MTLMappingAdditions.h in Headers */, - 110A9124F148460364497812 /* NSError+MTLModelException.h in Headers */, - 17961A2FED4FF9FA0DD79D36 /* NSObject+MTLComparisonAdditions.h in Headers */, - 73C0368FF6BCDCE40AE6301B /* NSValueTransformer+MTLInversionAdditions.h in Headers */, - 4D00B24DBBF71E9F1A5860FB /* NSValueTransformer+MTLPredefinedTransformerAdditions.h in Headers */, - 2399BA981BCE1F918610BA15 /* metamacros.h in Headers */, + 79A02A260804A3D90359F47E /* EXTADT.h in Headers */, + 0F96F43BB182086FC34BB63E /* EXTConcreteProtocol.h in Headers */, + C1D1B30F61DCF89923E7E1E3 /* EXTKeyPathCoding.h in Headers */, + 5A1BCB6C4EC6515869A89FC6 /* EXTNil.h in Headers */, + DE59FE7DA6AFF5DF6EDF08FB /* EXTRuntimeExtensions.h in Headers */, + 7143169542FD9DFA4C964994 /* EXTSafeCategory.h in Headers */, + 12DDD965846CEB2E30C4DFDF /* EXTScope.h in Headers */, + 89DF1053D652C0B1F679B0EE /* EXTSelectorChecking.h in Headers */, + 51BFA2EF003121D2E7FE1EC4 /* EXTSynthesize.h in Headers */, + D8AD9418DF748B0FE90F1301 /* NSInvocation+EXT.h in Headers */, + BEA8DA57F45AD22B78240250 /* NSMethodSignature+EXT.h in Headers */, + 395820EA4FAB28B3F7BC6CB6 /* extobjc.h in Headers */, + 1AEE436CB3B043B5DF38077E /* metamacros.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + E8F679D0ECC243673A5E01F1 /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + 66CB7AAE17ADE5F9DD0A415B /* FAImageView.h in Headers */, + 48F03942A12F6A3F62D63520 /* NSString+FontAwesome.h in Headers */, + C4DF98A27146DEDC01A53D55 /* UIFont+FontAwesome.h in Headers */, + 76A02CC857D744FD48EB75DE /* UIImage+FontAwesome.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXHeadersBuildPhase section */ /* Begin PBXNativeTarget section */ - 0116563DA3B59C73A4349D5B /* Pods-samhuri.net-PromiseKit */ = { + 01A548EABEB19F541F1F515D /* Pods-Blog-HockeySDK-HockeySDKResources */ = { isa = PBXNativeTarget; - buildConfigurationList = EA78A9B0C73FE27B74EBD569 /* Build configuration list for PBXNativeTarget "Pods-samhuri.net-PromiseKit" */; + buildConfigurationList = D873DB9A461ED64BB9ADFC6C /* Build configuration list for PBXNativeTarget "Pods-Blog-HockeySDK-HockeySDKResources" */; buildPhases = ( - F5B122D4AB8C083509858359 /* Sources */, - BB963A448DB00691AF874DB5 /* Frameworks */, - 852EAB28CFCFC33485DACAA8 /* Headers */, + 1A1BA910EF2AAB1557F5143B /* Sources */, + E2482817C051914AB957CA03 /* Frameworks */, + 5BFA11D013D55C01C6F74B70 /* Resources */, ); buildRules = ( ); dependencies = ( - B767230F84A7A1494169ED1F /* PBXTargetDependency */, ); - name = "Pods-samhuri.net-PromiseKit"; - productName = "Pods-samhuri.net-PromiseKit"; - productReference = FB9EBAEBDC921DCE564F950E /* libPods-samhuri.net-PromiseKit.a */; - productType = "com.apple.product-type.library.static"; + name = "Pods-Blog-HockeySDK-HockeySDKResources"; + productName = "Pods-Blog-HockeySDK-HockeySDKResources"; + productReference = 1F29E8DAAADEE94BA4E845D1 /* HockeySDKResources.bundle */; + productType = "com.apple.product-type.bundle"; }; - 1915CA45DDBD337ADC988829 /* Pods-samhuri.net-CocoaLumberjack */ = { + 1AB623BF51767BC8616138AD /* Pods-Blog-PromiseKit */ = { isa = PBXNativeTarget; - buildConfigurationList = CDCCF93963E8CAD941AD6ACB /* Build configuration list for PBXNativeTarget "Pods-samhuri.net-CocoaLumberjack" */; + buildConfigurationList = 8A30BAD25CD9D6ACF3691A14 /* Build configuration list for PBXNativeTarget "Pods-Blog-PromiseKit" */; buildPhases = ( - ACEE958CD540F02C0ACB7F0B /* Sources */, - 44AB5863F34B5ED89FE0C2B4 /* Frameworks */, - 70032CCF497763902682F23B /* Headers */, + DFB26C863C52A0807C5C37FE /* Sources */, + B0F2DBB238B5DED8F895DA2D /* Frameworks */, + 7B4C8551CD0E88049821C3D1 /* Headers */, ); buildRules = ( ); dependencies = ( - ); - name = "Pods-samhuri.net-CocoaLumberjack"; - productName = "Pods-samhuri.net-CocoaLumberjack"; - productReference = 1748FB994DF36F5CFD70C388 /* libPods-samhuri.net-CocoaLumberjack.a */; - productType = "com.apple.product-type.library.static"; - }; - 1B9EB6F8B470ABB0216941D5 /* Pods-samhuri.net-YapDatabase */ = { - isa = PBXNativeTarget; - buildConfigurationList = 4A412637AAB76F5CBE4EA879 /* Build configuration list for PBXNativeTarget "Pods-samhuri.net-YapDatabase" */; - buildPhases = ( - 29BA326AF8D0421B3D541BC7 /* Sources */, - 6A455019FA41AE3A8500FBCC /* Frameworks */, - 6B0CB5D0A78038B3E8CD4A2E /* Headers */, - ); - buildRules = ( - ); - dependencies = ( - BA203D239DB1A75563B290CD /* PBXTargetDependency */, - ); - name = "Pods-samhuri.net-YapDatabase"; - productName = "Pods-samhuri.net-YapDatabase"; - productReference = C548DB7D447C7ADC7379D0D4 /* libPods-samhuri.net-YapDatabase.a */; - productType = "com.apple.product-type.library.static"; - }; - 375D5DD5BC79FF8D84795800 /* Pods-Blog-OMGHTTPURLRQ */ = { - isa = PBXNativeTarget; - buildConfigurationList = A00C0F5AEE4F93EA74E931D9 /* Build configuration list for PBXNativeTarget "Pods-Blog-OMGHTTPURLRQ" */; - buildPhases = ( - 4DD06B563D264982C8483032 /* Sources */, - 539059D18D62E12917F88DF6 /* Frameworks */, - 2E8F592E5C75E7E8157B232D /* Headers */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = "Pods-Blog-OMGHTTPURLRQ"; - productName = "Pods-Blog-OMGHTTPURLRQ"; - productReference = 2BD37CDAD70AFA9A71B8C729 /* libPods-Blog-OMGHTTPURLRQ.a */; - productType = "com.apple.product-type.library.static"; - }; - 40F387FF62867EE943ACB1FC /* Pods-Blog-Mantle */ = { - isa = PBXNativeTarget; - buildConfigurationList = 52C613B78299A642DA84F900 /* Build configuration list for PBXNativeTarget "Pods-Blog-Mantle" */; - buildPhases = ( - E9B775A7D96DB582FB16F73E /* Sources */, - D4FC15C59B8E696A59D0687A /* Frameworks */, - 52727959EBAEC29B8EFC1FDF /* Headers */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = "Pods-Blog-Mantle"; - productName = "Pods-Blog-Mantle"; - productReference = 876DD75AC3BE2EB522E680D0 /* libPods-Blog-Mantle.a */; - productType = "com.apple.product-type.library.static"; - }; - 503854A52F3C12D1A923372C /* Pods-samhuri.net-ObjectiveSugar */ = { - isa = PBXNativeTarget; - buildConfigurationList = 5E28E1F2D420577545A9FA4E /* Build configuration list for PBXNativeTarget "Pods-samhuri.net-ObjectiveSugar" */; - buildPhases = ( - ABC69BB957C6B4AE34EFA03B /* Sources */, - 1382E8FB3F1B5295716AB963 /* Frameworks */, - D56C2D8EF9525B9605852C0C /* Headers */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = "Pods-samhuri.net-ObjectiveSugar"; - productName = "Pods-samhuri.net-ObjectiveSugar"; - productReference = 619ED2F5D65D1768FC28AEBF /* libPods-samhuri.net-ObjectiveSugar.a */; - productType = "com.apple.product-type.library.static"; - }; - 53CA12EF9FC78D764CAF336C /* Pods-Blog-YapDatabase */ = { - isa = PBXNativeTarget; - buildConfigurationList = CAC4770AC10A76585FD9B415 /* Build configuration list for PBXNativeTarget "Pods-Blog-YapDatabase" */; - buildPhases = ( - AB63011E1160E4CB3B3D7077 /* Sources */, - 2491EE0C6D642BDADF8049FA /* Frameworks */, - 38AD1713C1E26C5CBB856BA2 /* Headers */, - ); - buildRules = ( - ); - dependencies = ( - F34A923AFFB554118CD90BC2 /* PBXTargetDependency */, - ); - name = "Pods-Blog-YapDatabase"; - productName = "Pods-Blog-YapDatabase"; - productReference = 9E22939371B2424991C21E6E /* libPods-Blog-YapDatabase.a */; - productType = "com.apple.product-type.library.static"; - }; - 70288108F6AEBCCAA7FE93EA /* Pods-Blog-PromiseKit */ = { - isa = PBXNativeTarget; - buildConfigurationList = DDCB4975909340406701ACB9 /* Build configuration list for PBXNativeTarget "Pods-Blog-PromiseKit" */; - buildPhases = ( - 03047E7AAFEC5C7DDE820F75 /* Sources */, - 646519E08F76A0420488AF1E /* Frameworks */, - 8D536E67E097188B414D539D /* Headers */, - ); - buildRules = ( - ); - dependencies = ( - 18B2264CBB03C6EA5691D716 /* PBXTargetDependency */, + 7A830AE645E1C250611459D4 /* PBXTargetDependency */, ); name = "Pods-Blog-PromiseKit"; productName = "Pods-Blog-PromiseKit"; - productReference = E9F3E777298E2C196C9F137D /* libPods-Blog-PromiseKit.a */; + productReference = 3EE1FB9F806C2180B682F8D9 /* libPods-Blog-PromiseKit.a */; productType = "com.apple.product-type.library.static"; }; - 7E1653710485F8C5360679DD /* Pods-samhuri.net */ = { + 3485909229C96C0CEDDEA195 /* Pods-Blog-FontAwesome+iOS */ = { isa = PBXNativeTarget; - buildConfigurationList = A51BD2E1FF08BDEA468650E6 /* Build configuration list for PBXNativeTarget "Pods-samhuri.net" */; + buildConfigurationList = E615E6F99D120BF3DE46E253 /* Build configuration list for PBXNativeTarget "Pods-Blog-FontAwesome+iOS" */; buildPhases = ( - 9C91F0E052264114B0C6D76C /* Sources */, - 1DACD583771835EB8CB15C12 /* Frameworks */, - ); - buildRules = ( - ); - dependencies = ( - EFE3CC7A9FAA447277C5333B /* PBXTargetDependency */, - D460F8C02DE3FADDE1E25D23 /* PBXTargetDependency */, - 75E0BA18D0E7E930D9CD7CC2 /* PBXTargetDependency */, - F65969C752B035FBFBF0F712 /* PBXTargetDependency */, - C16BB90DD3AD18158BA6CDE9 /* PBXTargetDependency */, - 1EF49CA50F878F20905EC7E1 /* PBXTargetDependency */, - 067DE0E8AF4284B21C3BFA99 /* PBXTargetDependency */, - ); - name = "Pods-samhuri.net"; - productName = "Pods-samhuri.net"; - productReference = 503C6EC9BD66C2DDD667A9A8 /* libPods-samhuri.net.a */; - productType = "com.apple.product-type.library.static"; - }; - 87CC4B149333532B97D86BA3 /* Pods-samhuri.net-Mantle */ = { - isa = PBXNativeTarget; - buildConfigurationList = AEFAAFF858B0A12530A0E43F /* Build configuration list for PBXNativeTarget "Pods-samhuri.net-Mantle" */; - buildPhases = ( - D8BFC3976D831AB9AC270BA4 /* Sources */, - EC767DD5E5792BEE934FFEF6 /* Frameworks */, - E52DA89E8E927E2C99C024CD /* Headers */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = "Pods-samhuri.net-Mantle"; - productName = "Pods-samhuri.net-Mantle"; - productReference = 43124240504688FC6BF3C826 /* libPods-samhuri.net-Mantle.a */; - productType = "com.apple.product-type.library.static"; - }; - 93C1504B6640077885F5785C /* Pods-Blog-FontAwesome+iOS */ = { - isa = PBXNativeTarget; - buildConfigurationList = 6058D413CA97B93DE2E858D5 /* Build configuration list for PBXNativeTarget "Pods-Blog-FontAwesome+iOS" */; - buildPhases = ( - F41EDEB22EA3699AC13BDDB4 /* Sources */, - A530B8A85726461A31FD9AED /* Frameworks */, - 563D506861BDB75F53667910 /* Headers */, + 41D88FE4B0CD302C248A6397 /* Sources */, + B362CD93E9AA897FE27D50AE /* Frameworks */, + E8F679D0ECC243673A5E01F1 /* Headers */, ); buildRules = ( ); @@ -2899,101 +3346,56 @@ ); name = "Pods-Blog-FontAwesome+iOS"; productName = "Pods-Blog-FontAwesome+iOS"; - productReference = E27D96C0B1EA73830C913BA5 /* libPods-Blog-FontAwesome+iOS.a */; + productReference = 2E3B6D39AAAE5CE92521A9C2 /* libPods-Blog-FontAwesome+iOS.a */; productType = "com.apple.product-type.library.static"; }; - BB24A593A5BF9C756CFF6590 /* Pods-samhuri.net-OMGHTTPURLRQ */ = { + 53B1FF7A5BCD1BFBDB74CF8C /* Pods-samhuri.net */ = { isa = PBXNativeTarget; - buildConfigurationList = AA3C714921D2D1EAD286C45F /* Build configuration list for PBXNativeTarget "Pods-samhuri.net-OMGHTTPURLRQ" */; + buildConfigurationList = 70BBF7D3729BA8616D8B2FD5 /* Build configuration list for PBXNativeTarget "Pods-samhuri.net" */; buildPhases = ( - 7EBD0D31AFE4FE1EE710CF31 /* Sources */, - 6B088EDD784BCB61E50D6CD6 /* Frameworks */, - AE3A2AEAD0A4864E781A4459 /* Headers */, + 19AC6EAC3239740D1A87482B /* Sources */, + D91D130B86EA34C4DE9AEA1B /* Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + 5AE608B6853AA8B8F589E0CD /* PBXTargetDependency */, + DAC53E7E3AB310A0A725B345 /* PBXTargetDependency */, + 588C00CD34936F81A25F3F40 /* PBXTargetDependency */, + 48CF909B715582226213F1E7 /* PBXTargetDependency */, + 2B1D68B75B1D29229859F938 /* PBXTargetDependency */, + CE58FA2541D5BB902AD15B98 /* PBXTargetDependency */, + CD35780C724C2BDBC4756E11 /* PBXTargetDependency */, + ); + name = "Pods-samhuri.net"; + productName = "Pods-samhuri.net"; + productReference = 46556DD804F8ADB9FAE66C96 /* libPods-samhuri.net.a */; + productType = "com.apple.product-type.library.static"; + }; + 5BD2074B159E9210760E9DB5 /* Pods-Blog-OMGHTTPURLRQ */ = { + isa = PBXNativeTarget; + buildConfigurationList = D19E9045784D2E224D2D8179 /* Build configuration list for PBXNativeTarget "Pods-Blog-OMGHTTPURLRQ" */; + buildPhases = ( + 4341FDB4458751FEC9C0AA7F /* Sources */, + 9CC3CCB093D5340D959B1DFB /* Frameworks */, + 4D495846D0F8FEB49BDA4A97 /* Headers */, ); buildRules = ( ); dependencies = ( ); - name = "Pods-samhuri.net-OMGHTTPURLRQ"; - productName = "Pods-samhuri.net-OMGHTTPURLRQ"; - productReference = E6498F351BB43D131E3C4221 /* libPods-samhuri.net-OMGHTTPURLRQ.a */; + name = "Pods-Blog-OMGHTTPURLRQ"; + productName = "Pods-Blog-OMGHTTPURLRQ"; + productReference = A14AAD669B1EAE61A312D645 /* libPods-Blog-OMGHTTPURLRQ.a */; productType = "com.apple.product-type.library.static"; }; - BD43BE2DDB8DB99FBB37E0FE /* Pods-samhuri.net-MBProgressHUD */ = { + 616C3574E0905042A0B01C50 /* Pods-Blog-MBProgressHUD */ = { isa = PBXNativeTarget; - buildConfigurationList = B0438ECC7C054C84E486C2D5 /* Build configuration list for PBXNativeTarget "Pods-samhuri.net-MBProgressHUD" */; + buildConfigurationList = 79F0341A2504B1F86B005E20 /* Build configuration list for PBXNativeTarget "Pods-Blog-MBProgressHUD" */; buildPhases = ( - A6905A7B10C142A0E5E691A7 /* Sources */, - 537203FCDF12CDE5F61F1B2D /* Frameworks */, - 18B9B673F61E6B568BAE7355 /* Headers */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = "Pods-samhuri.net-MBProgressHUD"; - productName = "Pods-samhuri.net-MBProgressHUD"; - productReference = D07ADDADCDB5439EBB97A826 /* libPods-samhuri.net-MBProgressHUD.a */; - productType = "com.apple.product-type.library.static"; - }; - C6EF9B30182037AE243EC3BB /* Pods-Blog-CocoaLumberjack */ = { - isa = PBXNativeTarget; - buildConfigurationList = E681C78800F48859D569B38B /* Build configuration list for PBXNativeTarget "Pods-Blog-CocoaLumberjack" */; - buildPhases = ( - E543707E92D12D9F6D681916 /* Sources */, - 45ACC3C3A718BE745235E648 /* Frameworks */, - 951C860C70A1D72A04157E1B /* Headers */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = "Pods-Blog-CocoaLumberjack"; - productName = "Pods-Blog-CocoaLumberjack"; - productReference = 17F7FC03FEA3D20FB1A44BE4 /* libPods-Blog-CocoaLumberjack.a */; - productType = "com.apple.product-type.library.static"; - }; - CD410B653411960151EE0A90 /* Pods-Blog-ObjectiveSugar */ = { - isa = PBXNativeTarget; - buildConfigurationList = 52A711C4F58A736A523A7052 /* Build configuration list for PBXNativeTarget "Pods-Blog-ObjectiveSugar" */; - buildPhases = ( - 706415FB2F17D5CE98C0883F /* Sources */, - A7B8BAE57AA2B9E67FFBD5D6 /* Frameworks */, - D7C939EC392A3075D73075D6 /* Headers */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = "Pods-Blog-ObjectiveSugar"; - productName = "Pods-Blog-ObjectiveSugar"; - productReference = B153D6B1F96AE5F1CD5C36CC /* libPods-Blog-ObjectiveSugar.a */; - productType = "com.apple.product-type.library.static"; - }; - D0112AD2A905640C097AA4E3 /* Pods-Blog-libextobjc */ = { - isa = PBXNativeTarget; - buildConfigurationList = EECD8A7F06A03367385E9225 /* Build configuration list for PBXNativeTarget "Pods-Blog-libextobjc" */; - buildPhases = ( - 40C39D1AF9EA877A1D2BBA5B /* Sources */, - 6EF527993C2D4F72443BB4C1 /* Frameworks */, - 2F6C71EE7345F113403006CF /* Headers */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = "Pods-Blog-libextobjc"; - productName = "Pods-Blog-libextobjc"; - productReference = 8B8AF6DB438C5C6402272E73 /* libPods-Blog-libextobjc.a */; - productType = "com.apple.product-type.library.static"; - }; - D26927D0011EA350C60FDB58 /* Pods-Blog-MBProgressHUD */ = { - isa = PBXNativeTarget; - buildConfigurationList = B72526DC157D53DCC9EBEC02 /* Build configuration list for PBXNativeTarget "Pods-Blog-MBProgressHUD" */; - buildPhases = ( - CE7795D006A7258CD4246A38 /* Sources */, - D3844F25B02DB0BAD82C4572 /* Frameworks */, - 9107CC4A44FDCDDD92955B5F /* Headers */, + 2D153056967B062859515B36 /* Sources */, + 0DB499050712621EF0A3D99B /* Frameworks */, + D12B4575416664E20FFC8014 /* Headers */, ); buildRules = ( ); @@ -3001,16 +3403,84 @@ ); name = "Pods-Blog-MBProgressHUD"; productName = "Pods-Blog-MBProgressHUD"; - productReference = 0107A02DD2AA3F1BCD05C855 /* libPods-Blog-MBProgressHUD.a */; + productReference = BF49CAFCBEC806E09309C380 /* libPods-Blog-MBProgressHUD.a */; productType = "com.apple.product-type.library.static"; }; - DB41243B560373F63598A984 /* Pods-Blog-dyci */ = { + 648C49E133EBBA75C3AAFDA4 /* Pods-Blog-libextobjc */ = { isa = PBXNativeTarget; - buildConfigurationList = 0C9EAE989ACA7027512CF269 /* Build configuration list for PBXNativeTarget "Pods-Blog-dyci" */; + buildConfigurationList = 554A9FC9599AFACC0C49F7BF /* Build configuration list for PBXNativeTarget "Pods-Blog-libextobjc" */; buildPhases = ( - 4F87372B729FC1A5D681292F /* Sources */, - E15AFFEB3C1C170F86ED0781 /* Frameworks */, - 18E36EFAEFF29A17C080F50C /* Headers */, + 94AAE7F864FE62440AA1AFDC /* Sources */, + 042CD0B4654C296714E66AC6 /* Frameworks */, + DFF040F9BF18F1C3091D5332 /* Headers */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = "Pods-Blog-libextobjc"; + productName = "Pods-Blog-libextobjc"; + productReference = 9DE1031504F24E3C0AD4A566 /* libPods-Blog-libextobjc.a */; + productType = "com.apple.product-type.library.static"; + }; + 67A3295FD88C690191799374 /* Pods-samhuri.net-Mantle */ = { + isa = PBXNativeTarget; + buildConfigurationList = 97A7AC948FCA53B8F0FF1A7C /* Build configuration list for PBXNativeTarget "Pods-samhuri.net-Mantle" */; + buildPhases = ( + 9365FE868990E97DC4B2BC25 /* Sources */, + E27E83DC91112BE1FC645AE9 /* Frameworks */, + 9EC15598BCF6DDBC2265D39F /* Headers */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = "Pods-samhuri.net-Mantle"; + productName = "Pods-samhuri.net-Mantle"; + productReference = 435B0AFDCCA4F3A15AD58410 /* libPods-samhuri.net-Mantle.a */; + productType = "com.apple.product-type.library.static"; + }; + 6B1A3F24490A28B85D2B98C1 /* Pods-samhuri.net-OMGHTTPURLRQ */ = { + isa = PBXNativeTarget; + buildConfigurationList = FB5B643E8C2A2281C57B5244 /* Build configuration list for PBXNativeTarget "Pods-samhuri.net-OMGHTTPURLRQ" */; + buildPhases = ( + 45FD6272A5ACDBE4ED3FA39E /* Sources */, + 2F201F2279A9EE0887AF626C /* Frameworks */, + 5AEA01D8896E8D45163C4CD6 /* Headers */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = "Pods-samhuri.net-OMGHTTPURLRQ"; + productName = "Pods-samhuri.net-OMGHTTPURLRQ"; + productReference = F29D7E26485DC48F8F8590B8 /* libPods-samhuri.net-OMGHTTPURLRQ.a */; + productType = "com.apple.product-type.library.static"; + }; + 8211A052C1AAC5E293FA96C2 /* Pods-Blog-CocoaLumberjack */ = { + isa = PBXNativeTarget; + buildConfigurationList = 3004B9A5B57431A9E9BD9F6F /* Build configuration list for PBXNativeTarget "Pods-Blog-CocoaLumberjack" */; + buildPhases = ( + D8962C2AF4BB86CE05A22DE9 /* Sources */, + BC850847C2F569C84E19CB20 /* Frameworks */, + B1196D876F8899E12B7CFA4D /* Headers */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = "Pods-Blog-CocoaLumberjack"; + productName = "Pods-Blog-CocoaLumberjack"; + productReference = 3029174C0573404E331F3D7E /* libPods-Blog-CocoaLumberjack.a */; + productType = "com.apple.product-type.library.static"; + }; + 8861BE957C1BECEC7AF91A6A /* Pods-Blog-dyci */ = { + isa = PBXNativeTarget; + buildConfigurationList = CBB13C5EE7C728683DDCE3EE /* Build configuration list for PBXNativeTarget "Pods-Blog-dyci" */; + buildPhases = ( + 068168745DAA472272A25E12 /* Sources */, + 902F51CB28190D4B4C62202A /* Frameworks */, + B195BFFF058F9BD2913DE6DD /* Headers */, ); buildRules = ( ); @@ -3018,646 +3488,914 @@ ); name = "Pods-Blog-dyci"; productName = "Pods-Blog-dyci"; - productReference = 93352111715805AB65DD416D /* libPods-Blog-dyci.a */; + productReference = 05F762B5D7755DDC9075253F /* libPods-Blog-dyci.a */; productType = "com.apple.product-type.library.static"; }; - E2C133E163DAD5C25B6E99E4 /* Pods-Blog */ = { + 9280BB320B2800EA80D4AB33 /* Pods-samhuri.net-PromiseKit */ = { isa = PBXNativeTarget; - buildConfigurationList = DFF063EC28FE2A0E7BDFEEBF /* Build configuration list for PBXNativeTarget "Pods-Blog" */; + buildConfigurationList = E479DA08961544109E5191EF /* Build configuration list for PBXNativeTarget "Pods-samhuri.net-PromiseKit" */; buildPhases = ( - E582EC2A9813AB28F62B14E2 /* Sources */, - 392CD0E3181997A0EE1695E8 /* Frameworks */, + 7227691E7645F5DA6EC6E46B /* Sources */, + C2741CDB7203567CBB15DADB /* Frameworks */, + 4E335CBC4C35B5036DAC3FEC /* Headers */, ); buildRules = ( ); dependencies = ( - 251FFA6CC1E23AD8A870F9EF /* PBXTargetDependency */, - B93F574A4BC3FF45D7961128 /* PBXTargetDependency */, - 936C860368EAA7073D766CD0 /* PBXTargetDependency */, - E6AED7534CF0471AF19DB4E8 /* PBXTargetDependency */, - 03DE2A1CF8DD2E70030E8150 /* PBXTargetDependency */, - FF32A5AF347634505DD21663 /* PBXTargetDependency */, - B5675BEF320E0F9696758E4E /* PBXTargetDependency */, - E06DF7CF1B5DFAEE261CBB73 /* PBXTargetDependency */, - 0D595393C40809D2AAD4C3FE /* PBXTargetDependency */, - 26B64D69D38431DC972EE5C0 /* PBXTargetDependency */, + DA5F5107A51FB5CC062CFC86 /* PBXTargetDependency */, + ); + name = "Pods-samhuri.net-PromiseKit"; + productName = "Pods-samhuri.net-PromiseKit"; + productReference = F79B6C38D4F610135E778C0D /* libPods-samhuri.net-PromiseKit.a */; + productType = "com.apple.product-type.library.static"; + }; + 9829AFDADE0EBCC51945CF1C /* Pods-Blog-Mantle */ = { + isa = PBXNativeTarget; + buildConfigurationList = 4DFDE482EC5A464FD7C21688 /* Build configuration list for PBXNativeTarget "Pods-Blog-Mantle" */; + buildPhases = ( + B177E72F2B39EE1471D4B105 /* Sources */, + 212646A327A36C6E21D805ED /* Frameworks */, + 1F6FD8922D387180AF8D2238 /* Headers */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = "Pods-Blog-Mantle"; + productName = "Pods-Blog-Mantle"; + productReference = 092EA250C606F7540FA623F5 /* libPods-Blog-Mantle.a */; + productType = "com.apple.product-type.library.static"; + }; + 9DC286E133EA91C3F1E9A620 /* Pods-samhuri.net-MBProgressHUD */ = { + isa = PBXNativeTarget; + buildConfigurationList = B699A82D9D86CF9B9B7B861B /* Build configuration list for PBXNativeTarget "Pods-samhuri.net-MBProgressHUD" */; + buildPhases = ( + 03B1113910FCC7AF99D3DF50 /* Sources */, + 7E22B725FEA5D0B23D8978A5 /* Frameworks */, + DAB14464EED069D138047C60 /* Headers */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = "Pods-samhuri.net-MBProgressHUD"; + productName = "Pods-samhuri.net-MBProgressHUD"; + productReference = C274E9E3E7429EAF8313E3DD /* libPods-samhuri.net-MBProgressHUD.a */; + productType = "com.apple.product-type.library.static"; + }; + A8CE6CB2212F69AE3CEB6AA5 /* Pods-Blog-HockeySDK */ = { + isa = PBXNativeTarget; + buildConfigurationList = E4E6D06ED821910D5ED29DC3 /* Build configuration list for PBXNativeTarget "Pods-Blog-HockeySDK" */; + buildPhases = ( + 860229C1A8DBE758825C4227 /* Sources */, + BF77B42BCAFC95F7D3F388CE /* Frameworks */, + 2FEAC5D1B183B6923AEE41E5 /* Headers */, + ); + buildRules = ( + ); + dependencies = ( + 46DFAA83C87508B348F76552 /* PBXTargetDependency */, + ); + name = "Pods-Blog-HockeySDK"; + productName = "Pods-Blog-HockeySDK"; + productReference = 1AB9554218F5C9AC284F5620 /* libPods-Blog-HockeySDK.a */; + productType = "com.apple.product-type.library.static"; + }; + A9E6C8019CC73D066D5B7B12 /* Pods-Blog-ObjectiveSugar */ = { + isa = PBXNativeTarget; + buildConfigurationList = C7D9DBA985F63FC589B5384A /* Build configuration list for PBXNativeTarget "Pods-Blog-ObjectiveSugar" */; + buildPhases = ( + 2EAB26F032E23844D4CF0B1E /* Sources */, + 18CBC231E81E3F25F2B29CEC /* Frameworks */, + 0321509A6D53679891550309 /* Headers */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = "Pods-Blog-ObjectiveSugar"; + productName = "Pods-Blog-ObjectiveSugar"; + productReference = 2E9F884DDE5117CAEC6CB79D /* libPods-Blog-ObjectiveSugar.a */; + productType = "com.apple.product-type.library.static"; + }; + B87AEE12D90E4DCCF1925DD2 /* Pods-samhuri.net-ObjectiveSugar */ = { + isa = PBXNativeTarget; + buildConfigurationList = F2ED7DC722C611BD763BC578 /* Build configuration list for PBXNativeTarget "Pods-samhuri.net-ObjectiveSugar" */; + buildPhases = ( + EFBB71CCD21D59AED7CE399A /* Sources */, + 017C3CFCF4C78A8C15E10E1B /* Frameworks */, + 3617EEAF3E08B79B59841C61 /* Headers */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = "Pods-samhuri.net-ObjectiveSugar"; + productName = "Pods-samhuri.net-ObjectiveSugar"; + productReference = 32CB0483D23683749726EF27 /* libPods-samhuri.net-ObjectiveSugar.a */; + productType = "com.apple.product-type.library.static"; + }; + C115EC8724564E3170B95575 /* Pods-Blog-YapDatabase */ = { + isa = PBXNativeTarget; + buildConfigurationList = CA73833601EBC26F94CD9ED5 /* Build configuration list for PBXNativeTarget "Pods-Blog-YapDatabase" */; + buildPhases = ( + 1A95EAD7D7D5DE4ABCB1E793 /* Sources */, + 8EA6066ED975E46EE8916233 /* Frameworks */, + 63F1700305E3C39B19C7E875 /* Headers */, + ); + buildRules = ( + ); + dependencies = ( + C8710D1D5EEDA9E6BA4DF091 /* PBXTargetDependency */, + ); + name = "Pods-Blog-YapDatabase"; + productName = "Pods-Blog-YapDatabase"; + productReference = CFEB0BFB2D727FD10003F1FC /* libPods-Blog-YapDatabase.a */; + productType = "com.apple.product-type.library.static"; + }; + C36C4EC3CA5B8EECA9F1955A /* Pods-samhuri.net-CocoaLumberjack */ = { + isa = PBXNativeTarget; + buildConfigurationList = 28353535BEB1BB5E45A1931B /* Build configuration list for PBXNativeTarget "Pods-samhuri.net-CocoaLumberjack" */; + buildPhases = ( + D7C5282172CD34F6491DB706 /* Sources */, + 86CE15570A9AFE070C73350E /* Frameworks */, + 19EBE4FACD915088829EE784 /* Headers */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = "Pods-samhuri.net-CocoaLumberjack"; + productName = "Pods-samhuri.net-CocoaLumberjack"; + productReference = E239F40466333BFD07F9C413 /* libPods-samhuri.net-CocoaLumberjack.a */; + productType = "com.apple.product-type.library.static"; + }; + C9EB5C0B5F4617117D7E8FE4 /* Pods-Blog */ = { + isa = PBXNativeTarget; + buildConfigurationList = 7C25E69DFD815A6C89871A60 /* Build configuration list for PBXNativeTarget "Pods-Blog" */; + buildPhases = ( + E7C646419CCEAD3F6FA6ACCC /* Sources */, + 640A98ED60C73829A487BB92 /* Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + 1A576BEA2E5DB45941A53734 /* PBXTargetDependency */, + FF73D9724CC2D810CA454ED1 /* PBXTargetDependency */, + 4E97394341B85C08FE51E3EF /* PBXTargetDependency */, + 34FA15F06FBF20B1A9A9B21B /* PBXTargetDependency */, + E59F7239014870160B97D8F2 /* PBXTargetDependency */, + D66F233A1C88D9FBA6762511 /* PBXTargetDependency */, + B78DBB1A923E52B2BE4F13F5 /* PBXTargetDependency */, + FDF7254B921C2079AC3E76F7 /* PBXTargetDependency */, + 371E87FF4BDE4A436EAFA843 /* PBXTargetDependency */, + BE5548A573A06FBD22803108 /* PBXTargetDependency */, + B1A09E5891D240AE81E687F3 /* PBXTargetDependency */, ); name = "Pods-Blog"; productName = "Pods-Blog"; - productReference = 8A7B3A3176BD3D4BFEC0A87E /* libPods-Blog.a */; + productReference = 6D844884C2AF03CF2238630A /* libPods-Blog.a */; + productType = "com.apple.product-type.library.static"; + }; + D2DF925ADA674F79DA5E6068 /* Pods-samhuri.net-YapDatabase */ = { + isa = PBXNativeTarget; + buildConfigurationList = 9A3789981911518AD8EE497F /* Build configuration list for PBXNativeTarget "Pods-samhuri.net-YapDatabase" */; + buildPhases = ( + 16E23CAC6D4B092656274490 /* Sources */, + D0A3007A5E9024BAC0D4F0F1 /* Frameworks */, + 02219F10A1FAEA1135C07C34 /* Headers */, + ); + buildRules = ( + ); + dependencies = ( + D5879B9CB16E36E167AFB638 /* PBXTargetDependency */, + ); + name = "Pods-samhuri.net-YapDatabase"; + productName = "Pods-samhuri.net-YapDatabase"; + productReference = E435FFB5958C6FB4FEA0F376 /* libPods-samhuri.net-YapDatabase.a */; productType = "com.apple.product-type.library.static"; }; /* End PBXNativeTarget section */ /* Begin PBXProject section */ - F48EAC7D00BA4A53AF0DA9EC /* Project object */ = { + 0F1F25E390D54FDB68B253BB /* Project object */ = { isa = PBXProject; attributes = { LastUpgradeCheck = 0640; }; - buildConfigurationList = 2873103480377AD12B35BBF1 /* Build configuration list for PBXProject "Pods" */; + buildConfigurationList = D049D6491BD63896D9A1D2F7 /* Build configuration list for PBXProject "Pods" */; compatibilityVersion = "Xcode 3.2"; developmentRegion = English; hasScannedForEncodings = 0; knownRegions = ( en, ); - mainGroup = 5E6304D71F5A217AEF56DE3E; - productRefGroup = CCFEB986CF84842BEC3E75A6 /* Products */; + mainGroup = 4F975902C72CD77C26B4A229; + productRefGroup = 24743C495390B7D114063BCA /* Products */; projectDirPath = ""; projectRoot = ""; targets = ( - E2C133E163DAD5C25B6E99E4 /* Pods-Blog */, - C6EF9B30182037AE243EC3BB /* Pods-Blog-CocoaLumberjack */, - 93C1504B6640077885F5785C /* Pods-Blog-FontAwesome+iOS */, - D26927D0011EA350C60FDB58 /* Pods-Blog-MBProgressHUD */, - 40F387FF62867EE943ACB1FC /* Pods-Blog-Mantle */, - 375D5DD5BC79FF8D84795800 /* Pods-Blog-OMGHTTPURLRQ */, - CD410B653411960151EE0A90 /* Pods-Blog-ObjectiveSugar */, - 70288108F6AEBCCAA7FE93EA /* Pods-Blog-PromiseKit */, - 53CA12EF9FC78D764CAF336C /* Pods-Blog-YapDatabase */, - DB41243B560373F63598A984 /* Pods-Blog-dyci */, - D0112AD2A905640C097AA4E3 /* Pods-Blog-libextobjc */, - 7E1653710485F8C5360679DD /* Pods-samhuri.net */, - 1915CA45DDBD337ADC988829 /* Pods-samhuri.net-CocoaLumberjack */, - BD43BE2DDB8DB99FBB37E0FE /* Pods-samhuri.net-MBProgressHUD */, - 87CC4B149333532B97D86BA3 /* Pods-samhuri.net-Mantle */, - BB24A593A5BF9C756CFF6590 /* Pods-samhuri.net-OMGHTTPURLRQ */, - 503854A52F3C12D1A923372C /* Pods-samhuri.net-ObjectiveSugar */, - 0116563DA3B59C73A4349D5B /* Pods-samhuri.net-PromiseKit */, - 1B9EB6F8B470ABB0216941D5 /* Pods-samhuri.net-YapDatabase */, + C9EB5C0B5F4617117D7E8FE4 /* Pods-Blog */, + 8211A052C1AAC5E293FA96C2 /* Pods-Blog-CocoaLumberjack */, + 3485909229C96C0CEDDEA195 /* Pods-Blog-FontAwesome+iOS */, + A8CE6CB2212F69AE3CEB6AA5 /* Pods-Blog-HockeySDK */, + 01A548EABEB19F541F1F515D /* Pods-Blog-HockeySDK-HockeySDKResources */, + 616C3574E0905042A0B01C50 /* Pods-Blog-MBProgressHUD */, + 9829AFDADE0EBCC51945CF1C /* Pods-Blog-Mantle */, + 5BD2074B159E9210760E9DB5 /* Pods-Blog-OMGHTTPURLRQ */, + A9E6C8019CC73D066D5B7B12 /* Pods-Blog-ObjectiveSugar */, + 1AB623BF51767BC8616138AD /* Pods-Blog-PromiseKit */, + C115EC8724564E3170B95575 /* Pods-Blog-YapDatabase */, + 8861BE957C1BECEC7AF91A6A /* Pods-Blog-dyci */, + 648C49E133EBBA75C3AAFDA4 /* Pods-Blog-libextobjc */, + 53B1FF7A5BCD1BFBDB74CF8C /* Pods-samhuri.net */, + C36C4EC3CA5B8EECA9F1955A /* Pods-samhuri.net-CocoaLumberjack */, + 9DC286E133EA91C3F1E9A620 /* Pods-samhuri.net-MBProgressHUD */, + 67A3295FD88C690191799374 /* Pods-samhuri.net-Mantle */, + 6B1A3F24490A28B85D2B98C1 /* Pods-samhuri.net-OMGHTTPURLRQ */, + B87AEE12D90E4DCCF1925DD2 /* Pods-samhuri.net-ObjectiveSugar */, + 9280BB320B2800EA80D4AB33 /* Pods-samhuri.net-PromiseKit */, + D2DF925ADA674F79DA5E6068 /* Pods-samhuri.net-YapDatabase */, ); }; /* End PBXProject section */ +/* Begin PBXResourcesBuildPhase section */ + 5BFA11D013D55C01C6F74B70 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + DD4B5AB58F9360D382B0B83D /* Arrow.png in Resources */, + 84F08C0E6A8A643FB2DAED61 /* Arrow@2x.png in Resources */, + B512A8252F38FE4F5BA78F7C /* Arrow@3x.png in Resources */, + BF705940E1642E4E74AF0FD8 /* Blur.png in Resources */, + 1A8D8CC127563D53D1C0609A /* Blur@2x.png in Resources */, + A881F12A458473DF371A8028 /* Blur@3x.png in Resources */, + C2A1BC28E21BE77D71D087BB /* Cancel.png in Resources */, + 42986754DD3DC2809C5D4F6A /* Cancel@2x.png in Resources */, + FAAC642C0461EB6E3C43C411 /* Cancel@3x.png in Resources */, + 6AA1896240A62E06D48D2A49 /* IconGradient.png in Resources */, + 8CBC883ABA6A9E3085B4661E /* IconGradient@2x.png in Resources */, + 85D4FD59C7DB2CB87ECCB1D5 /* Ok.png in Resources */, + C15D2747F77D28D04B37535B /* Ok@2x.png in Resources */, + C10C710998A7CC222D129869 /* Ok@3x.png in Resources */, + 3622839617440565AF702F22 /* Rectangle.png in Resources */, + 4687823C8703CA1976B569A7 /* Rectangle@2x.png in Resources */, + 1C6F66A698AF6DF763DBEC34 /* Rectangle@3x.png in Resources */, + F84ABBB0D60951D7EB17C87D /* authorize_denied.png in Resources */, + 764F5587FE34D7F5B6065AD0 /* authorize_denied@2x.png in Resources */, + ECB6019CF2F87810C457E0FB /* authorize_denied@3x.png in Resources */, + 2350DE4E6598E2F17470A721 /* bg.png in Resources */, + BA9BA6C2AC5A32232432F068 /* buttonRoundedDelete.png in Resources */, + 8EDA4199C7735C4146F437CA /* buttonRoundedDelete@2x.png in Resources */, + EEB73E1655A4EC59C8CB3553 /* buttonRoundedDeleteHighlighted.png in Resources */, + 5C74003B882E9EE86D060404 /* buttonRoundedDeleteHighlighted@2x.png in Resources */, + 5B0E6B80ED57B5AF089A14D1 /* buttonRoundedRegular.png in Resources */, + 7DC6588CE9B1E092EBDA1426 /* buttonRoundedRegular@2x.png in Resources */, + E7B7C236D37160B9631C3B40 /* buttonRoundedRegularHighlighted.png in Resources */, + 8CB0F6FF3E9092A1AB0B2BE8 /* buttonRoundedRegularHighlighted@2x.png in Resources */, + C5BEE63A7107EAD96DAA07F7 /* de.lproj in Resources */, + 7CCDD448F5931992C95CCF69 /* en.lproj in Resources */, + 0B1357623F7E72A768B42865 /* es.lproj in Resources */, + 086DD290ABF4CE621B32B702 /* feedbackActivity.png in Resources */, + B99E1E0DA55482F0FB464C0F /* feedbackActivity@2x.png in Resources */, + 87F11CE08B023F5651F4142B /* feedbackActivity@2x~ipad.png in Resources */, + 2FF65FDD87B8BB6EA51DD36D /* feedbackActivity@3x.png in Resources */, + E9F3588DA566EF4AC45BF937 /* feedbackActivity~ipad.png in Resources */, + 2A643653ADC7A58DE971BC9F /* fr.lproj in Resources */, + B96BB4A3DF7731DFB9ADD606 /* hr.lproj in Resources */, + 8622019213E0E3FC6061B855 /* hu.lproj in Resources */, + FF36B4AC9ABF8E175ED2364C /* iconCamera.png in Resources */, + 44094B30260168D12A1B078B /* iconCamera@2x.png in Resources */, + FACFADCC24B5EA6164BEED1E /* it.lproj in Resources */, + 853D46F1F95D6100AA40EEA4 /* ja.lproj in Resources */, + 97B74CC70B829946B13F17E3 /* nl.lproj in Resources */, + 7658344A7414E0854413251C /* pt-PT.lproj in Resources */, + 44FA51EB9454715BB46D82C6 /* pt.lproj in Resources */, + 4F609941BBD237787817E8D4 /* ru.lproj in Resources */, + 3F0714F61A82801D3B8346D8 /* zh-Hans.lproj in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + /* Begin PBXSourcesBuildPhase section */ - 03047E7AAFEC5C7DDE820F75 /* Sources */ = { + 03B1113910FCC7AF99D3DF50 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 90F7B71628080E4C3B0134B2 /* CALayer+PromiseKit.m in Sources */, - D85446BED508DD5ECE768453 /* NSNotificationCenter+PromiseKit.m in Sources */, - 7CAA842ED5165F4B3D447001 /* NSURLConnection+PromiseKit.m in Sources */, - C915902D17CB150737BBCF51 /* PMKPromise+Pause.m in Sources */, - 0FA5E3257F71596096F22F41 /* PMKPromise+Until.m in Sources */, - 0780C5F35909937A57DC552D /* PMKPromise+When.m in Sources */, - 88001D83C5A2B64A5E93FF83 /* PMKPromise.m in Sources */, - 86714B5F0F9B60853D54ABED /* Pods-Blog-PromiseKit-dummy.m in Sources */, - 770C60D86FA0760EBE50BA11 /* UIActionSheet+PromiseKit.m in Sources */, - C56EBB06C710C15436FD35DB /* UIAlertView+PromiseKit.m in Sources */, - 871DDCBC2D63183F45FB4FDD /* UIView+PromiseKit.m in Sources */, - 119580849D63F0569FB153D6 /* UIViewController+PromiseKit.m in Sources */, + BA92F2405732E56D9E8681C7 /* MBProgressHUD.m in Sources */, + 31BB9492AFDA8C9999559AAB /* Pods-samhuri.net-MBProgressHUD-dummy.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; - 29BA326AF8D0421B3D541BC7 /* Sources */ = { + 068168745DAA472272A25E12 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - F5491DE21FB45F0D89E8C30D /* NSDictionary+YapDatabase.m in Sources */, - E217C0C47DD1D0721488F932 /* Pods-samhuri.net-YapDatabase-dummy.m in Sources */, - CF695950D026255C3FAF08A8 /* YDBCKAttachRequest.m in Sources */, - 968B46A4311E8CA251FE43F2 /* YDBCKChangeQueue.m in Sources */, - A33E3021650D12AF9D36CAEC /* YDBCKChangeRecord.m in Sources */, - C018405869EA56D12028D7C8 /* YDBCKChangeSet.m in Sources */, - 67B74B7D876412E21F14FAC7 /* YDBCKMappingTableInfo.m in Sources */, - 59D6D1DD3E06C9A0E6A35654 /* YDBCKMergeInfo.m in Sources */, - E96A0E27A3C6B4AEA78D21F1 /* YDBCKRecord.m in Sources */, - 0182DA4FE29F11894D890153 /* YDBCKRecordInfo.m in Sources */, - 9697CF3C854D6D97C9F57AD6 /* YDBCKRecordTableInfo.m in Sources */, - BF61F988A71EA087D65AC5DE /* YapCache.m in Sources */, - C9177B265B0A76BEDBC08008 /* YapCollectionKey.m in Sources */, - 31B01C9266B14CCD8C7EA2BE /* YapDatabase.m in Sources */, - 0D93281DC60ECF5680EE5F5B /* YapDatabaseCloudKit.m in Sources */, - CDE25EF93DAB24331455D67F /* YapDatabaseCloudKitConnection.m in Sources */, - 6C0856F08A9BDC137A3F0ED3 /* YapDatabaseCloudKitOptions.m in Sources */, - DF9EDBA1809549A91B1F59E5 /* YapDatabaseCloudKitTransaction.m in Sources */, - 1CEECFB9F83765B4AAEF79E7 /* YapDatabaseCloudKitTypes.m in Sources */, - 27FF1695BDFB7E7291CF558D /* YapDatabaseConnection.m in Sources */, - 452730B214FC6FCA0D971A90 /* YapDatabaseConnectionDefaults.m in Sources */, - 8F7AE8C1854848F30EA960F6 /* YapDatabaseConnectionState.m in Sources */, - EB98C667A5C8E58E2F76FEF2 /* YapDatabaseExtension.m in Sources */, - 1704101AB5EC08BBA1148769 /* YapDatabaseExtensionConnection.m in Sources */, - BF1257725BDC97C7F424152B /* YapDatabaseExtensionTransaction.m in Sources */, - 17BF9625E83E90AAADC1D5A1 /* YapDatabaseFilteredView.m in Sources */, - 9BBBBE16081D2B19FA6A575C /* YapDatabaseFilteredViewConnection.m in Sources */, - A1060DA8DB9F29FF5FC89DA7 /* YapDatabaseFilteredViewTransaction.m in Sources */, - 89A9C806FD2DDBDD1140795F /* YapDatabaseFilteredViewTypes.m in Sources */, - 6B19B512D86BFE72E8C00C7A /* YapDatabaseFullTextSearch.m in Sources */, - 00EBCCE65DEEB8A78749892B /* YapDatabaseFullTextSearchConnection.m in Sources */, - BFFB46E2FCBA26F014EF1746 /* YapDatabaseFullTextSearchHandler.m in Sources */, - 9DA540D16A88D3D5B1A942DE /* YapDatabaseFullTextSearchSnippetOptions.m in Sources */, - AB813A5EEB895B2416165860 /* YapDatabaseFullTextSearchTransaction.m in Sources */, - 129C5B44E0E41F93D6323A5B /* YapDatabaseLogging.m in Sources */, - 28F4983E0B511A0299216B1F /* YapDatabaseManager.m in Sources */, - 917383AAD3131BCAA5D1D353 /* YapDatabaseOptions.m in Sources */, - D096262D7CACC17E9B160F0B /* YapDatabaseQuery.m in Sources */, - 575759749E7A4C5227BF98C8 /* YapDatabaseRelationship.m in Sources */, - 506035626E4085061787A9E6 /* YapDatabaseRelationshipConnection.m in Sources */, - 358220CCEF74A50E11FE7690 /* YapDatabaseRelationshipEdge.m in Sources */, - 1EF721D2146DE7FC6D1FA19B /* YapDatabaseRelationshipOptions.m in Sources */, - 657ACB9F07A569478D242DE4 /* YapDatabaseRelationshipTransaction.m in Sources */, - B08AE889A3A44ED99F89F8C8 /* YapDatabaseSearchQueue.m in Sources */, - 9C82BE9EB4BB12A3F0633927 /* YapDatabaseSearchResultsView.m in Sources */, - F1D854CF8109E45A410DD9A7 /* YapDatabaseSearchResultsViewConnection.m in Sources */, - E89837A85D49504E36CB3B47 /* YapDatabaseSearchResultsViewOptions.m in Sources */, - 52430495A4D41CEBC72253E5 /* YapDatabaseSearchResultsViewTransaction.m in Sources */, - 02C8180BE97803C6E2E75CF1 /* YapDatabaseSecondaryIndex.m in Sources */, - 515DC9169987004125A36FDA /* YapDatabaseSecondaryIndexConnection.m in Sources */, - D19DC4639C2B153A364CF990 /* YapDatabaseSecondaryIndexHandler.m in Sources */, - 43ED0D8400202BEAE5B6F032 /* YapDatabaseSecondaryIndexOptions.m in Sources */, - 2165C42E6A3C0F9A52EA176E /* YapDatabaseSecondaryIndexSetup.m in Sources */, - C3031E523DAFA48304440DD9 /* YapDatabaseSecondaryIndexTransaction.m in Sources */, - 30B8C9C68568D5265DCF4D96 /* YapDatabaseStatement.m in Sources */, - E9BCE6D7C2CD54995897B823 /* YapDatabaseTransaction.m in Sources */, - 3345BA4A2C633022C52C6AA4 /* YapDatabaseView.m in Sources */, - 9F629F7F1008ADFF970AC1C8 /* YapDatabaseViewChange.m in Sources */, - E2A66B5C245D0A84D34F4F3D /* YapDatabaseViewConnection.m in Sources */, - A87C165FACCBBE6E1EE2FDE3 /* YapDatabaseViewMappings.m in Sources */, - 307111B60C42287C35E33F17 /* YapDatabaseViewOptions.m in Sources */, - 1091A7674195424BDA2225FE /* YapDatabaseViewPage.mm in Sources */, - 5A221B8046120ACD1D6E5CB5 /* YapDatabaseViewPageMetadata.m in Sources */, - 29644FE8297FB6208735A6D6 /* YapDatabaseViewRangeOptions.m in Sources */, - 9F24450ED2DCD5153C1A8CCD /* YapDatabaseViewState.m in Sources */, - 9B2A71776DCACA9406D59824 /* YapDatabaseViewTransaction.m in Sources */, - 28C43F8DBD564FDD08C43283 /* YapDatabaseViewTypes.m in Sources */, - 7591056B2CB9E11889585B90 /* YapDebugDictionary.m in Sources */, - 3BBF3C85A560C7DDCD22AA50 /* YapMemoryTable.m in Sources */, - 3F07750D3F291635B5A32FA2 /* YapMurmurHash.m in Sources */, - 5D5F904142DA1E679B22B39A /* YapNull.m in Sources */, - 670BB2C89C5E0CA8E48AD995 /* YapRowidSet.mm in Sources */, - 73C3A62207D794820FF67493 /* YapSet.m in Sources */, - 415CC871BEF61F0571C2903C /* YapTouch.m in Sources */, - 7439E0C912A7EFB38F43A461 /* YapWhitelistBlacklist.m in Sources */, + 4C181A8F8BAEB87A2996FE4E /* NSObject+DyCInjection.m in Sources */, + 7332304751F927485FF1FD59 /* NSSet+ClassesList.m in Sources */, + D1E4D8171EA543C83D8C4424 /* Pods-Blog-dyci-dummy.m in Sources */, + E4B7DDDDA99DFC8D50A6C820 /* SFDynamicCodeInjection.m in Sources */, + 3F3B102105C9F3051E716C32 /* SFFileWatcher.m in Sources */, + 0F6CAA25A3F4F17AD757108B /* SFInjectionsNotificationsCenter.m in Sources */, + 26F083E64ADEDC7CC839D698 /* UINib+StoryBoardSupport.m in Sources */, + 0B6C0CCA434D51078E039DAC /* UIViewController+XIBSupport.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; - 40C39D1AF9EA877A1D2BBA5B /* Sources */ = { + 16E23CAC6D4B092656274490 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 8D419D6969FF23FF5BEC3B0F /* EXTADT.m in Sources */, - 39787575B6BE7CB5471054E9 /* EXTConcreteProtocol.m in Sources */, - 1CC1ACFEEFC394298F16AEE4 /* EXTNil.m in Sources */, - 92D4570C159D6CB39AA99DF7 /* EXTRuntimeExtensions.m in Sources */, - 6FF2381091928DAC2B1478C4 /* EXTSafeCategory.m in Sources */, - C1E23919B9517F1091F60008 /* EXTScope.m in Sources */, - 410450C8872122B209B5A1AF /* EXTSelectorChecking.m in Sources */, - 7388EB18A537BD973559A546 /* NSInvocation+EXT.m in Sources */, - A64938BEE09D0CF68FA33A08 /* NSMethodSignature+EXT.m in Sources */, - 760BBC129A934F7A0CA8BD1B /* Pods-Blog-libextobjc-dummy.m in Sources */, + 2078B49093768B0674C1B482 /* NSDictionary+YapDatabase.m in Sources */, + CA7EB85F1C5BC4A194991562 /* Pods-samhuri.net-YapDatabase-dummy.m in Sources */, + 5D075462E1BA7190B488486C /* YDBCKAttachRequest.m in Sources */, + BBFA611B5899BD31E6C6A6C7 /* YDBCKChangeQueue.m in Sources */, + F7F38349537CD19B790CCB36 /* YDBCKChangeRecord.m in Sources */, + 1AADB49BA9D1B7CB4ABF6F20 /* YDBCKChangeSet.m in Sources */, + 6368742B1BD0BB139888A4BE /* YDBCKMappingTableInfo.m in Sources */, + 1D74412FA608B2E105AF99AE /* YDBCKMergeInfo.m in Sources */, + CFE4FB2A7155A6A0F4275A3C /* YDBCKRecord.m in Sources */, + EE9DB7E03B202EDF18A7A42C /* YDBCKRecordInfo.m in Sources */, + C634C280C4300E6A0C646E49 /* YDBCKRecordTableInfo.m in Sources */, + 89837DE07B8D50E2967E08CF /* YapCache.m in Sources */, + CA54A939953D38E6875C9F42 /* YapCollectionKey.m in Sources */, + 28FE9672F83F5BB97074B2DB /* YapDatabase.m in Sources */, + 0A9DBEC8B5D7241CA7C019EF /* YapDatabaseCloudKit.m in Sources */, + DDA21D12A0B46FC9015F5D44 /* YapDatabaseCloudKitConnection.m in Sources */, + F8462834ED0701ADCA869ABE /* YapDatabaseCloudKitOptions.m in Sources */, + F43CFDA9CD6D48DD1556F35D /* YapDatabaseCloudKitTransaction.m in Sources */, + 66BBA89A9E0E00981CCEAD15 /* YapDatabaseCloudKitTypes.m in Sources */, + 2E9D875E8CB2A76737F34920 /* YapDatabaseConnection.m in Sources */, + F02543E2AEB22EC50BF27DE8 /* YapDatabaseConnectionDefaults.m in Sources */, + BFC567E760BE5DA7DFC7DC18 /* YapDatabaseConnectionState.m in Sources */, + 6F98BB58497A4B9F1DEE3BD9 /* YapDatabaseExtension.m in Sources */, + DC79C0BD7FDEEAD775BC259A /* YapDatabaseExtensionConnection.m in Sources */, + E6D403BFB899C113772B89E3 /* YapDatabaseExtensionTransaction.m in Sources */, + 601AEBC0CC26A06CE5054A92 /* YapDatabaseFilteredView.m in Sources */, + 78629269CC95AF75A98BA19C /* YapDatabaseFilteredViewConnection.m in Sources */, + CF31C80DC4D60D9823D67D48 /* YapDatabaseFilteredViewTransaction.m in Sources */, + D87B42B1DA6746B18BE9FA5B /* YapDatabaseFilteredViewTypes.m in Sources */, + 740DAD7997A499D732640C6C /* YapDatabaseFullTextSearch.m in Sources */, + 4283E4F6A0F1CAEEDBBCD4BF /* YapDatabaseFullTextSearchConnection.m in Sources */, + 7307B08E5844A9C280225D90 /* YapDatabaseFullTextSearchHandler.m in Sources */, + BDED5A65178DD6F26EE22702 /* YapDatabaseFullTextSearchSnippetOptions.m in Sources */, + 317CFEEDB2848A8FD409A50F /* YapDatabaseFullTextSearchTransaction.m in Sources */, + 6A3688BB94FB4F874B59FC53 /* YapDatabaseLogging.m in Sources */, + F12A0F2DB5D2C27F5BE35875 /* YapDatabaseManager.m in Sources */, + 8C5D36EA4BC591FDB0F5C74C /* YapDatabaseOptions.m in Sources */, + 700BB04BD818F0D75FEA716E /* YapDatabaseQuery.m in Sources */, + CED1B21879C98CBE83335C6A /* YapDatabaseRelationship.m in Sources */, + 97E987F1C4F17F3D5A74C95D /* YapDatabaseRelationshipConnection.m in Sources */, + 54BC32B7D3DA95EE77EF1B0A /* YapDatabaseRelationshipEdge.m in Sources */, + A269E128175C6F7FCFBE9733 /* YapDatabaseRelationshipOptions.m in Sources */, + D7F3836685955E380B72CF15 /* YapDatabaseRelationshipTransaction.m in Sources */, + 696386EA4448035DB15647DF /* YapDatabaseSearchQueue.m in Sources */, + 06B4A6A1D18FB459C9D42814 /* YapDatabaseSearchResultsView.m in Sources */, + 1400D058565D714ED4F6FAE3 /* YapDatabaseSearchResultsViewConnection.m in Sources */, + 598C9EC39DF87BFB5D3C98BB /* YapDatabaseSearchResultsViewOptions.m in Sources */, + 862972EAC3F820ADE0AADFE4 /* YapDatabaseSearchResultsViewTransaction.m in Sources */, + AF579D9221ECBF19AC1B2604 /* YapDatabaseSecondaryIndex.m in Sources */, + F692961C9F213BE5DAB6091F /* YapDatabaseSecondaryIndexConnection.m in Sources */, + 3AE3672685E458AFCD2F44FB /* YapDatabaseSecondaryIndexHandler.m in Sources */, + 630BAF3F26F7AD6EDB919BD9 /* YapDatabaseSecondaryIndexOptions.m in Sources */, + 4CC7582DFA3FF4C144AF95E7 /* YapDatabaseSecondaryIndexSetup.m in Sources */, + B3022824E71311EFFCB57FA0 /* YapDatabaseSecondaryIndexTransaction.m in Sources */, + AC1C85229F443E5032CE7443 /* YapDatabaseStatement.m in Sources */, + 2E6FA1D18CC45EF8167197DA /* YapDatabaseTransaction.m in Sources */, + 7F46727943E4F2FE20E40D81 /* YapDatabaseView.m in Sources */, + 5A31C5CAEC23C52D2E3D22B9 /* YapDatabaseViewChange.m in Sources */, + 83A741FFD6E1EC529F193320 /* YapDatabaseViewConnection.m in Sources */, + EE45AA7E08DBC9A4CED4079C /* YapDatabaseViewMappings.m in Sources */, + B1EF4D2D4FB5293EBCFBC361 /* YapDatabaseViewOptions.m in Sources */, + D685A4AD682893037CEDC033 /* YapDatabaseViewPage.mm in Sources */, + F0F8BD75ADEA165EC5C5BA4E /* YapDatabaseViewPageMetadata.m in Sources */, + 0C61B768EA3C5845588195D5 /* YapDatabaseViewRangeOptions.m in Sources */, + B8BFF08D923FFBDDF4BE4D45 /* YapDatabaseViewState.m in Sources */, + 898BC7757444DDEBECA373A4 /* YapDatabaseViewTransaction.m in Sources */, + E87CC9E89F45FC44EDC38DCE /* YapDatabaseViewTypes.m in Sources */, + 89C6E7572F747013402F5A1F /* YapDebugDictionary.m in Sources */, + 38959F59DBB16864888169B2 /* YapMemoryTable.m in Sources */, + 9CF06A762903D205D94AA832 /* YapMurmurHash.m in Sources */, + E05CC058D20BC6F5B9D62748 /* YapNull.m in Sources */, + 02A3F1626976266045E1CAE9 /* YapRowidSet.mm in Sources */, + 94FA2A6F3DC028A304A21992 /* YapSet.m in Sources */, + 8D046694D1A081870958CDB6 /* YapTouch.m in Sources */, + A13CAE22B770870B02B0B8E2 /* YapWhitelistBlacklist.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; - 4DD06B563D264982C8483032 /* Sources */ = { + 19AC6EAC3239740D1A87482B /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - F0B47C2F14A8235591C3997A /* OMGFormURLEncode.m in Sources */, - 46CAAF699C6461DB10535CC2 /* OMGHTTPURLRQ.m in Sources */, - DE512CA347014B34FF774CBE /* OMGUserAgent.m in Sources */, - 477ADD56A9471A891355C031 /* Pods-Blog-OMGHTTPURLRQ-dummy.m in Sources */, + 1F75360C0928A1A733F002E3 /* Pods-samhuri.net-dummy.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; - 4F87372B729FC1A5D681292F /* Sources */ = { + 1A1BA910EF2AAB1557F5143B /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 25738E74528C5828BDC30743 /* NSObject+DyCInjection.m in Sources */, - 0B13C34931F01E7E663941EE /* NSSet+ClassesList.m in Sources */, - FF6C1FB7DC95CA416A917F6F /* Pods-Blog-dyci-dummy.m in Sources */, - 9DAE969040006A81569421DC /* SFDynamicCodeInjection.m in Sources */, - 4A4DAA9C7812E9A45D3632B9 /* SFFileWatcher.m in Sources */, - 17F2709276679D04C922FA06 /* SFInjectionsNotificationsCenter.m in Sources */, - 3421B1D559CA8859E8E395F5 /* UINib+StoryBoardSupport.m in Sources */, - A12622D09B1C51BB89C80543 /* UIViewController+XIBSupport.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; - 706415FB2F17D5CE98C0883F /* Sources */ = { + 1A95EAD7D7D5DE4ABCB1E793 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - DD248DAD9FCD4B7CBC38F5F9 /* NSArray+ObjectiveSugar.m in Sources */, - 6095D46360CCC9D88B6BAD8A /* NSDictionary+ObjectiveSugar.m in Sources */, - 179DA93ABEE7EDA88B364703 /* NSMutableArray+ObjectiveSugar.m in Sources */, - A678D5695CB8CA27BF8741C6 /* NSNumber+ObjectiveSugar.m in Sources */, - 006E12B21ADB086382B7B389 /* NSSet+ObjectiveSugar.m in Sources */, - E16227AF8D20367C23BB5CDC /* NSString+ObjectiveSugar.m in Sources */, - 753052C0BDF5978ADBE66F0C /* Pods-Blog-ObjectiveSugar-dummy.m in Sources */, + 09A76763A2E0359A0EAF4743 /* NSDictionary+YapDatabase.m in Sources */, + 389CC7C595810690AC4F9477 /* Pods-Blog-YapDatabase-dummy.m in Sources */, + 02547D51A2C2F8C01EBBA59A /* YDBCKAttachRequest.m in Sources */, + 7BBE1FEBD8510E03E485BA86 /* YDBCKChangeQueue.m in Sources */, + 7A07FEE90A4AAAEDF08B08F3 /* YDBCKChangeRecord.m in Sources */, + 4596C8F591570BFEA8B0AA48 /* YDBCKChangeSet.m in Sources */, + 4A0E4BE6BA3CAB01172A7160 /* YDBCKMappingTableInfo.m in Sources */, + F9603754229CEF292F09B37A /* YDBCKMergeInfo.m in Sources */, + 3D4F37D9F38D9118298EB8F2 /* YDBCKRecord.m in Sources */, + D7D91F271089C77B03C34BC1 /* YDBCKRecordInfo.m in Sources */, + 64931B16F0AE64840E50776E /* YDBCKRecordTableInfo.m in Sources */, + 62B04923FFF40CE24F3EB8D9 /* YapCache.m in Sources */, + 3FF5F8E65F95BDCDDDB1F156 /* YapCollectionKey.m in Sources */, + CA7E6B9D12EB45507D57ADE7 /* YapDatabase.m in Sources */, + CCFF0C75FB7C1BF8CD126172 /* YapDatabaseCloudKit.m in Sources */, + 8DEE065E2B7CAD5E788F1694 /* YapDatabaseCloudKitConnection.m in Sources */, + 78ACEE0A20CEDD3F8F40601B /* YapDatabaseCloudKitOptions.m in Sources */, + 2EC7BD423507DFCBE95D8E89 /* YapDatabaseCloudKitTransaction.m in Sources */, + F8BAA0756F5686504C6BCE6D /* YapDatabaseCloudKitTypes.m in Sources */, + 871323991FE5F5FFD6D494AC /* YapDatabaseConnection.m in Sources */, + 0D455A540F1208658E387BF3 /* YapDatabaseConnectionDefaults.m in Sources */, + 9B59F86BA9F768A81C49CBBC /* YapDatabaseConnectionState.m in Sources */, + 4D32179BE8B1D2ADE6B47FC5 /* YapDatabaseExtension.m in Sources */, + 8E089D738485289A17AFECD2 /* YapDatabaseExtensionConnection.m in Sources */, + D2443038E946268CE02AD0BA /* YapDatabaseExtensionTransaction.m in Sources */, + 963A64E58652D08395E1936F /* YapDatabaseFilteredView.m in Sources */, + B014C53F2219834356EBD3F5 /* YapDatabaseFilteredViewConnection.m in Sources */, + C99A5422607A850076E62283 /* YapDatabaseFilteredViewTransaction.m in Sources */, + D9052A1F0B123A8347B408CE /* YapDatabaseFilteredViewTypes.m in Sources */, + BE000D04A0CD2A046A72B76D /* YapDatabaseFullTextSearch.m in Sources */, + E01725E9CBF7A1F36D4C460D /* YapDatabaseFullTextSearchConnection.m in Sources */, + 7F445E137F37282DAB5E8571 /* YapDatabaseFullTextSearchHandler.m in Sources */, + 4A90171444F708245C5035D0 /* YapDatabaseFullTextSearchSnippetOptions.m in Sources */, + 9C43BD57A7426F926D045B82 /* YapDatabaseFullTextSearchTransaction.m in Sources */, + 80AA00517C1DD3C73A370372 /* YapDatabaseLogging.m in Sources */, + F25835FEC33F5B39AAE8683F /* YapDatabaseManager.m in Sources */, + A93C678956C3752DC11B509D /* YapDatabaseOptions.m in Sources */, + C42DDEA440B46D9055F13F66 /* YapDatabaseQuery.m in Sources */, + 2322D7F800EF87EBEDA25406 /* YapDatabaseRelationship.m in Sources */, + 008C3E74C1C12AAA19CE4164 /* YapDatabaseRelationshipConnection.m in Sources */, + 162BCC6B284F1D323D6C178F /* YapDatabaseRelationshipEdge.m in Sources */, + F7875444042582062E71C77F /* YapDatabaseRelationshipOptions.m in Sources */, + 4984E149B7D43CFE121BC83C /* YapDatabaseRelationshipTransaction.m in Sources */, + 6752FC9B469170B390D1E75E /* YapDatabaseSearchQueue.m in Sources */, + 9DBA31DA0CD1C09106B208BA /* YapDatabaseSearchResultsView.m in Sources */, + 827C56E6150C97734E3A30FE /* YapDatabaseSearchResultsViewConnection.m in Sources */, + 0D9FE163730BFC28AF2A8571 /* YapDatabaseSearchResultsViewOptions.m in Sources */, + 06323A17E8CC7E5D9335C111 /* YapDatabaseSearchResultsViewTransaction.m in Sources */, + A14B7B87F47F19B3BF0BC680 /* YapDatabaseSecondaryIndex.m in Sources */, + 56FE7756F243B63EA920C1A9 /* YapDatabaseSecondaryIndexConnection.m in Sources */, + CB223926804423E49A5A5824 /* YapDatabaseSecondaryIndexHandler.m in Sources */, + 1BC63E22FF3860025424C1AC /* YapDatabaseSecondaryIndexOptions.m in Sources */, + 7ECC9886787400EC4BFB86DF /* YapDatabaseSecondaryIndexSetup.m in Sources */, + DC8A9F87DF3E68A27379A1D6 /* YapDatabaseSecondaryIndexTransaction.m in Sources */, + 7E225C559075D23FBB7A9300 /* YapDatabaseStatement.m in Sources */, + 80B1C9B2C6898B28A9C5EEE7 /* YapDatabaseTransaction.m in Sources */, + C19503EBFD338DF290A1E989 /* YapDatabaseView.m in Sources */, + D81761F971BFF9691A2D1AE2 /* YapDatabaseViewChange.m in Sources */, + EC7888F313861EB2A3C15930 /* YapDatabaseViewConnection.m in Sources */, + 0A3ACD02E348E28E61AA4E45 /* YapDatabaseViewMappings.m in Sources */, + 62A2B20FCBB09CBD1A4D466E /* YapDatabaseViewOptions.m in Sources */, + 2D8A04FCC3E235ED7FC51448 /* YapDatabaseViewPage.mm in Sources */, + BCBC22418AA5B6573FDA41C0 /* YapDatabaseViewPageMetadata.m in Sources */, + 269EA710A2E2BA29BD12A2F9 /* YapDatabaseViewRangeOptions.m in Sources */, + 668D70CF2C0E7D460A2A1986 /* YapDatabaseViewState.m in Sources */, + 7F2BC936C8B67D9EF6C931A1 /* YapDatabaseViewTransaction.m in Sources */, + 8506ECC91995F0C425DA43C6 /* YapDatabaseViewTypes.m in Sources */, + 69EAAFE5FA014AEA185B79F0 /* YapDebugDictionary.m in Sources */, + ABA5450142B1DAC6957036D7 /* YapMemoryTable.m in Sources */, + 980635C99D0DF6BBA01D7856 /* YapMurmurHash.m in Sources */, + 6D89A1B0E087B0812CBA75EC /* YapNull.m in Sources */, + CE58430AB89390ABBCF35F0B /* YapRowidSet.mm in Sources */, + 8B9C4F2BF9E756BA37302392 /* YapSet.m in Sources */, + 23F5A1C57238EE889C5D7F7B /* YapTouch.m in Sources */, + 29EEA30B90CC88EAD902908E /* YapWhitelistBlacklist.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; - 7EBD0D31AFE4FE1EE710CF31 /* Sources */ = { + 2D153056967B062859515B36 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 6EAFCD8B5E4B1B0E70CE2123 /* OMGFormURLEncode.m in Sources */, - 2986E5110ADBAFD19FD5AD6B /* OMGHTTPURLRQ.m in Sources */, - 3D713D147BB77582578E7A46 /* OMGUserAgent.m in Sources */, - B3BA4B4E1B7D94B53AEDBAAB /* Pods-samhuri.net-OMGHTTPURLRQ-dummy.m in Sources */, + 3A2ADA8C9FEA07027C8A59B1 /* MBProgressHUD.m in Sources */, + E1AAABEFAB34CCF4388D1ECE /* Pods-Blog-MBProgressHUD-dummy.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; - 9C91F0E052264114B0C6D76C /* Sources */ = { + 2EAB26F032E23844D4CF0B1E /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 40CE9F2F979FE53276D94D70 /* Pods-samhuri.net-dummy.m in Sources */, + 5FB4A07C3A86CFB75FFB5B0A /* NSArray+ObjectiveSugar.m in Sources */, + 6CA18F5BC87264BADBB06DBE /* NSDictionary+ObjectiveSugar.m in Sources */, + B2A1754FD9096B0C3FA42A2B /* NSMutableArray+ObjectiveSugar.m in Sources */, + CE6FFB3A0C3F65F28C85E628 /* NSNumber+ObjectiveSugar.m in Sources */, + F028B587A53814CF348686C3 /* NSSet+ObjectiveSugar.m in Sources */, + 57E08F67C686B24405B3446E /* NSString+ObjectiveSugar.m in Sources */, + 0CF1CC6E91822905E427C234 /* Pods-Blog-ObjectiveSugar-dummy.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; - A6905A7B10C142A0E5E691A7 /* Sources */ = { + 41D88FE4B0CD302C248A6397 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 59F02357F46162F43B0C1DAC /* MBProgressHUD.m in Sources */, - 3920E77EE9548079230BBE52 /* Pods-samhuri.net-MBProgressHUD-dummy.m in Sources */, + BBC6870371DE9523ACE5921B /* FAImageView.m in Sources */, + C3313F7A2EBD21A7E104381B /* NSString+FontAwesome.m in Sources */, + 7308F09D2787A811C5AFAFE6 /* Pods-Blog-FontAwesome+iOS-dummy.m in Sources */, + 55028B4D13C905DCDE26377E /* UIFont+FontAwesome.m in Sources */, + 0ECCB7050A52DC2425D6A7B6 /* UIImage+FontAwesome.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; - AB63011E1160E4CB3B3D7077 /* Sources */ = { + 4341FDB4458751FEC9C0AA7F /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - D835B850B4AE3A010FFC1F80 /* NSDictionary+YapDatabase.m in Sources */, - 7580E07B13D9647AC69E0C80 /* Pods-Blog-YapDatabase-dummy.m in Sources */, - 6BFF889018D748F49AB84CBE /* YDBCKAttachRequest.m in Sources */, - F53F28F5834010BFE83DCFBA /* YDBCKChangeQueue.m in Sources */, - 97350DD4ABB016720EBF2A8A /* YDBCKChangeRecord.m in Sources */, - 8B06BD3A7818CA50566888F9 /* YDBCKChangeSet.m in Sources */, - C69B6653657DF7897F751861 /* YDBCKMappingTableInfo.m in Sources */, - 1FD3333D0A07AB7A4757C015 /* YDBCKMergeInfo.m in Sources */, - 2A31AD05C1D1A7D43DD439E2 /* YDBCKRecord.m in Sources */, - CEACAB0894E00A847B6DEAEC /* YDBCKRecordInfo.m in Sources */, - 5026248FC0B00F3614295F22 /* YDBCKRecordTableInfo.m in Sources */, - 34C77EF91099115EE4638AFC /* YapCache.m in Sources */, - 98E0C376953AF9F802EA6C3A /* YapCollectionKey.m in Sources */, - EF888733AA3946C44292C501 /* YapDatabase.m in Sources */, - E9A4483FFA32511CEAB7DFD2 /* YapDatabaseCloudKit.m in Sources */, - 7C821F8F4C7D05C164221224 /* YapDatabaseCloudKitConnection.m in Sources */, - 54BC16BDB881424710ECAD9D /* YapDatabaseCloudKitOptions.m in Sources */, - 05084687910E135323E525C2 /* YapDatabaseCloudKitTransaction.m in Sources */, - 34E901EE661FD81B509F0A16 /* YapDatabaseCloudKitTypes.m in Sources */, - 91FBB4CD13A18160D8575669 /* YapDatabaseConnection.m in Sources */, - 75FEF8C3FE748AF456CEECBA /* YapDatabaseConnectionDefaults.m in Sources */, - 01902FAF8DCD68D42FFC4871 /* YapDatabaseConnectionState.m in Sources */, - 007DF36FA1373F06ECEC4D69 /* YapDatabaseExtension.m in Sources */, - 25B460D711D4EBE411E2E88C /* YapDatabaseExtensionConnection.m in Sources */, - F1A931E6460F68D42B909518 /* YapDatabaseExtensionTransaction.m in Sources */, - ABA95B0BDE3610DF662E0040 /* YapDatabaseFilteredView.m in Sources */, - 29BA0EF70A9E40DFC5DDFF24 /* YapDatabaseFilteredViewConnection.m in Sources */, - CB78EF7E505A7C9C99B4DA0B /* YapDatabaseFilteredViewTransaction.m in Sources */, - 252B8A117584ABA1353188C6 /* YapDatabaseFilteredViewTypes.m in Sources */, - 66A2F55FA6A0B38F6F51902C /* YapDatabaseFullTextSearch.m in Sources */, - CC560935ED81176772FA24B7 /* YapDatabaseFullTextSearchConnection.m in Sources */, - C815F974EE0B306B9FB300BB /* YapDatabaseFullTextSearchHandler.m in Sources */, - 91E16F3B8E408C7407E3226B /* YapDatabaseFullTextSearchSnippetOptions.m in Sources */, - 8E5E6F3CB4738D82E08B9528 /* YapDatabaseFullTextSearchTransaction.m in Sources */, - F4304AB013BFE6FBFA4FA960 /* YapDatabaseLogging.m in Sources */, - 4C91165095D369C91AFC55B3 /* YapDatabaseManager.m in Sources */, - B4E9D96084FE62628AAD8B60 /* YapDatabaseOptions.m in Sources */, - 3D10468D8752DAA32EE07781 /* YapDatabaseQuery.m in Sources */, - E4C52D14F7DFAE2A364545F6 /* YapDatabaseRelationship.m in Sources */, - 8620E10467A7DB22F3387332 /* YapDatabaseRelationshipConnection.m in Sources */, - 6C46AA1321E390658103EA81 /* YapDatabaseRelationshipEdge.m in Sources */, - 8C1D79E1EC2DBA0BB68E7886 /* YapDatabaseRelationshipOptions.m in Sources */, - F7072C0F54F419EE1A796AFF /* YapDatabaseRelationshipTransaction.m in Sources */, - 8FDB19A8053857D55A60BEF5 /* YapDatabaseSearchQueue.m in Sources */, - 9AC48F912FB15AA606C26A97 /* YapDatabaseSearchResultsView.m in Sources */, - 864EE40604B0969CF24C701E /* YapDatabaseSearchResultsViewConnection.m in Sources */, - 4FD5964E08C1F9302ACD7DFB /* YapDatabaseSearchResultsViewOptions.m in Sources */, - 7F8C74FF0C080E973FE2137C /* YapDatabaseSearchResultsViewTransaction.m in Sources */, - 1CA461887F4A46ED7333C2D8 /* YapDatabaseSecondaryIndex.m in Sources */, - F4CB672000C65110BA57E58B /* YapDatabaseSecondaryIndexConnection.m in Sources */, - 1EEFAAB00A47E160EFF45F33 /* YapDatabaseSecondaryIndexHandler.m in Sources */, - 353BA85FDE8E3C5537377F71 /* YapDatabaseSecondaryIndexOptions.m in Sources */, - 1014EEA273EC7CCCD2CD22BD /* YapDatabaseSecondaryIndexSetup.m in Sources */, - 62B64AA28286D99009CF6B6C /* YapDatabaseSecondaryIndexTransaction.m in Sources */, - 91557E0A0AA5A17F72C289E1 /* YapDatabaseStatement.m in Sources */, - DFD45687B9C8B3A7F7FBF0FF /* YapDatabaseTransaction.m in Sources */, - 8A91499BC49CCB451A37988D /* YapDatabaseView.m in Sources */, - BCA27D5FD72221C09429F9D1 /* YapDatabaseViewChange.m in Sources */, - 9373ABADF54FAC71DD582149 /* YapDatabaseViewConnection.m in Sources */, - 8D639B8E375128722436CD5D /* YapDatabaseViewMappings.m in Sources */, - 6880E7BC14AE25750621F72A /* YapDatabaseViewOptions.m in Sources */, - 5CBD8AF797EF56FF8A4C0EC5 /* YapDatabaseViewPage.mm in Sources */, - DFC1086B4489BE1927D44090 /* YapDatabaseViewPageMetadata.m in Sources */, - B5BD01612462AF0A1F7C1770 /* YapDatabaseViewRangeOptions.m in Sources */, - 2A4A6007B2473CCFDDF3A3B5 /* YapDatabaseViewState.m in Sources */, - F5218215B330652216D147AA /* YapDatabaseViewTransaction.m in Sources */, - 43310C7852933F81B689FD80 /* YapDatabaseViewTypes.m in Sources */, - F9C70B293EA89BE5B1DEFD06 /* YapDebugDictionary.m in Sources */, - 969C2CA13A5D83964194B800 /* YapMemoryTable.m in Sources */, - 06CDFA862CED2A2C876DF800 /* YapMurmurHash.m in Sources */, - 30048B3E4EB9E41BD36DADD0 /* YapNull.m in Sources */, - F3E8312B7135BAE4F9FA57FB /* YapRowidSet.mm in Sources */, - 97BC0E2D1E565BBB7EF309C0 /* YapSet.m in Sources */, - DBA1E1B98D63553386D395D5 /* YapTouch.m in Sources */, - C6B210779AEEC6EB85307679 /* YapWhitelistBlacklist.m in Sources */, + 2D8AAF6B235B594A2C69994E /* OMGFormURLEncode.m in Sources */, + AF3486C5A77741D359833389 /* OMGHTTPURLRQ.m in Sources */, + F7A2B4505D30D65D46AC0935 /* OMGUserAgent.m in Sources */, + 5BFA0CEA175DA99F05710845 /* Pods-Blog-OMGHTTPURLRQ-dummy.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; - ABC69BB957C6B4AE34EFA03B /* Sources */ = { + 45FD6272A5ACDBE4ED3FA39E /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - D61739BD54CB16191811E7D6 /* NSArray+ObjectiveSugar.m in Sources */, - 72E316936606D1044E77894B /* NSDictionary+ObjectiveSugar.m in Sources */, - EC1EED97F30A61342F36F6A9 /* NSMutableArray+ObjectiveSugar.m in Sources */, - 62CE36F5E6E8C78D94E82086 /* NSNumber+ObjectiveSugar.m in Sources */, - 8D3F13CDDD9338CF41CAA209 /* NSSet+ObjectiveSugar.m in Sources */, - FA8ABD32BD371C877AC612C7 /* NSString+ObjectiveSugar.m in Sources */, - 48B276494586442613ACAF0C /* Pods-samhuri.net-ObjectiveSugar-dummy.m in Sources */, + 00EF80D2EB0E9EB28081410F /* OMGFormURLEncode.m in Sources */, + 5CBAC22A405697FC159750FE /* OMGHTTPURLRQ.m in Sources */, + C718C00357E2672EBD89EA63 /* OMGUserAgent.m in Sources */, + 984D3CDA6C07C0A399389D91 /* Pods-samhuri.net-OMGHTTPURLRQ-dummy.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; - ACEE958CD540F02C0ACB7F0B /* Sources */ = { + 7227691E7645F5DA6EC6E46B /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 68DEA58764C4282F9525D49E /* DDASLLogCapture.m in Sources */, - C2184B6834D7845392CFA135 /* DDASLLogger.m in Sources */, - 17028C6F4337E567E4AF04E4 /* DDAbstractDatabaseLogger.m in Sources */, - EF646B68EAA8700876E8F80D /* DDContextFilterLogFormatter.m in Sources */, - 127B9B948E8C3C238EB53C70 /* DDDispatchQueueLogFormatter.m in Sources */, - B802E490A34953268DB07ED9 /* DDFileLogger.m in Sources */, - B9AE5859978DD71268EEB0D4 /* DDLog.m in Sources */, - EDB91895ED9B73654D5117B1 /* DDMultiFormatter.m in Sources */, - 313EB501EF3CBA5FCC0F7EBB /* DDTTYLogger.m in Sources */, - 72682EE21FA484D4349E2D41 /* Pods-samhuri.net-CocoaLumberjack-dummy.m in Sources */, + AF6C6F9B878C7A58A3CE84E3 /* CALayer+PromiseKit.m in Sources */, + 4E6FF07590E89FD6811DFCE2 /* NSNotificationCenter+PromiseKit.m in Sources */, + C81133360E8D319060FBEED9 /* NSURLConnection+PromiseKit.m in Sources */, + 45413FDBC6FA0D484BEBD67B /* PMKPromise+Pause.m in Sources */, + BF6318467D8559861283D70D /* PMKPromise+Until.m in Sources */, + 5B91A7001ABDB0B159A6A605 /* PMKPromise+When.m in Sources */, + A4B9FD3521B5843A1AB2924D /* PMKPromise.m in Sources */, + E00F55EF439E7B61B60E1AB1 /* Pods-samhuri.net-PromiseKit-dummy.m in Sources */, + 01A4F724F2B0EEBE6DD04A30 /* UIActionSheet+PromiseKit.m in Sources */, + 6C8A56EB97A83A0ED61F75AC /* UIAlertView+PromiseKit.m in Sources */, + 555D9FF0F7CB80379897CBB5 /* UIView+PromiseKit.m in Sources */, + 681315E8411ACB2BA91AC807 /* UIViewController+PromiseKit.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; - CE7795D006A7258CD4246A38 /* Sources */ = { + 860229C1A8DBE758825C4227 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 5804BFDF831D16C929B43FCB /* MBProgressHUD.m in Sources */, - 9A123515F3B6B344C6ED61EF /* Pods-Blog-MBProgressHUD-dummy.m in Sources */, + 94BE78190C2737277185520D /* BITActivityIndicatorButton.m in Sources */, + 6F1D542369F35F9B8D9D640B /* BITAppStoreHeader.m in Sources */, + 758EFA378869E03BA1331D3B /* BITAppVersionMetaInfo.m in Sources */, + 8C0304B1E956A02CA1F24A3F /* BITArrowImageAnnotation.m in Sources */, + E4CAE5157E74CE9E11D04C23 /* BITAttributedLabel.m in Sources */, + 5BF63B7234D4618E25B3A5A6 /* BITAuthenticationViewController.m in Sources */, + BC9E1A83A4441DD6518B68D4 /* BITAuthenticator.m in Sources */, + 5DE003EB8D2EABDF00EDBB1C /* BITBlurImageAnnotation.m in Sources */, + 3B4B26C28AE1D73FEA28E2C7 /* BITCrashAttachment.m in Sources */, + 94656B2F30C95BA0905B5154 /* BITCrashDetails.m in Sources */, + 51DC872B4ED8A579377C6106 /* BITCrashManager.m in Sources */, + 982FA86CD51AA95CAB005FD8 /* BITCrashMetaData.m in Sources */, + 11A68B2D1F0DD651E71F8290 /* BITCrashReportTextFormatter.m in Sources */, + 9D357C0F7073E1E9BE272EFD /* BITFeedbackActivity.m in Sources */, + 0097FD1F383B8AAD531EDA30 /* BITFeedbackComposeViewController.m in Sources */, + 89E8A947D1794ED8B0C8E479 /* BITFeedbackListViewCell.m in Sources */, + F89D31ADC8AE7DE3B2699165 /* BITFeedbackListViewController.m in Sources */, + B0A283E04CEAB953EBB6B873 /* BITFeedbackManager.m in Sources */, + BF3C336E70524B3495DA7FD1 /* BITFeedbackMessage.m in Sources */, + 0E3226F3116EC6833859B7FD /* BITFeedbackMessageAttachment.m in Sources */, + EEC59969A820ED4750677479 /* BITFeedbackUserDataViewController.m in Sources */, + 3656C525B641AE4813545424 /* BITHTTPOperation.m in Sources */, + F6AEBC821E8F7214BC4600B8 /* BITHockeyAppClient.m in Sources */, + 53E1BFADA5A8C0CE6F0857DD /* BITHockeyAttachment.m in Sources */, + ABD7706A209D7EA86F6E6E2C /* BITHockeyBaseManager.m in Sources */, + 06C9E68113FF9274BE5797AA /* BITHockeyBaseViewController.m in Sources */, + 145885C42ED68E062A79E894 /* BITHockeyHelper.m in Sources */, + E9D61300A119B987410CC635 /* BITHockeyManager.m in Sources */, + A2DBEB4E00810B592139F133 /* BITImageAnnotation.m in Sources */, + 365115926027C6DB435E30D1 /* BITImageAnnotationViewController.m in Sources */, + B8134259D7BDEEFD32ADE0EA /* BITKeychainUtils.m in Sources */, + 3362D47005F3E9BEA358352B /* BITRectangleImageAnnotation.m in Sources */, + 9586D351FD73BEE55101F1C9 /* BITStoreButton.m in Sources */, + 5E165EAB71BAD19770E9C68E /* BITStoreUpdateManager.m in Sources */, + 6888425F03EFAF28A0CDF167 /* BITUpdateManager.m in Sources */, + 66EEBA507EE8CF4E0EDEC037 /* BITUpdateViewController.m in Sources */, + 6BF3BE2FDFEA4673488DB5AF /* BITWebTableViewCell.m in Sources */, + 9A7854060F3E36645049D448 /* HockeySDKPrivate.m in Sources */, + ED71612B7E5C55E67A9CD3D7 /* Pods-Blog-HockeySDK-dummy.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; - D8BFC3976D831AB9AC270BA4 /* Sources */ = { + 9365FE868990E97DC4B2BC25 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 878177CC682F13692B96B30D /* EXTRuntimeExtensions.m in Sources */, - B70DD87C148D12AD00F32766 /* EXTScope.m in Sources */, - 5180F38E63218E74882FE3B2 /* MTLJSONAdapter.m in Sources */, - 8D4ED978E6A96200CFF886B1 /* MTLModel+NSCoding.m in Sources */, - 2E86C40174240972E1D21824 /* MTLModel.m in Sources */, - 5FF0555AF8A7D412653110C1 /* MTLReflection.m in Sources */, - C9B3D8657AA861D764E21BA7 /* MTLTransformerErrorHandling.m in Sources */, - F941304C5EB2555FA1D86E40 /* MTLValueTransformer.m in Sources */, - EACDBCE18E90D0D320588F4B /* NSArray+MTLManipulationAdditions.m in Sources */, - 3B006A267CA59F3D78F7BDC4 /* NSDictionary+MTLJSONKeyPath.m in Sources */, - 208A7366E8216FEF47D630F5 /* NSDictionary+MTLManipulationAdditions.m in Sources */, - 62FB3BC1EBD87AB0C43255B4 /* NSDictionary+MTLMappingAdditions.m in Sources */, - C7EC781D95DAA34EBDE9C511 /* NSError+MTLModelException.m in Sources */, - 25C2E98CA88B16C91B382DF8 /* NSObject+MTLComparisonAdditions.m in Sources */, - D528C8CB87F13CDA2A39F389 /* NSValueTransformer+MTLInversionAdditions.m in Sources */, - 087CCD524F442E6AADB1FA83 /* NSValueTransformer+MTLPredefinedTransformerAdditions.m in Sources */, - 56F943ACBF3B079304259FF2 /* Pods-samhuri.net-Mantle-dummy.m in Sources */, + 5C93875B4BC69E96444A77E7 /* EXTRuntimeExtensions.m in Sources */, + 88B4B17DA97B965289E882D7 /* EXTScope.m in Sources */, + E804560DB814B5D3EB6B575D /* MTLJSONAdapter.m in Sources */, + E3BA482292B60E0D073C5181 /* MTLModel+NSCoding.m in Sources */, + 583F572EEB82DFD4ECB485B3 /* MTLModel.m in Sources */, + 5D32CBDAEBF6DFF7CF6FDFB2 /* MTLReflection.m in Sources */, + DD336455A1A189E6ECF74E72 /* MTLTransformerErrorHandling.m in Sources */, + CB6EB8E9AEDD34BFEEABA58D /* MTLValueTransformer.m in Sources */, + 7A273F90EDE8BA62DAE5BD14 /* NSArray+MTLManipulationAdditions.m in Sources */, + E619955A59DB1672D67519D8 /* NSDictionary+MTLJSONKeyPath.m in Sources */, + F68E476BAFF734CB55FD91EF /* NSDictionary+MTLManipulationAdditions.m in Sources */, + B0165E23FA6EE8302B6F7412 /* NSDictionary+MTLMappingAdditions.m in Sources */, + 0547E26936EECA293D929914 /* NSError+MTLModelException.m in Sources */, + 5EC3E64180520C60B09D7F3E /* NSObject+MTLComparisonAdditions.m in Sources */, + 8088B8B0202F8E1E9C30B8A5 /* NSValueTransformer+MTLInversionAdditions.m in Sources */, + EE9088D88A19811D9C62959D /* NSValueTransformer+MTLPredefinedTransformerAdditions.m in Sources */, + 2CBAC348FD758DD87B318E35 /* Pods-samhuri.net-Mantle-dummy.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; - E543707E92D12D9F6D681916 /* Sources */ = { + 94AAE7F864FE62440AA1AFDC /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 55F912F459CAB0C7C23DAC5B /* DDASLLogCapture.m in Sources */, - 4FFB6714A63209102AC9612D /* DDASLLogger.m in Sources */, - 2D4AC1524D25A5233FF66C93 /* DDAbstractDatabaseLogger.m in Sources */, - 16866C684664F217C1EE8F44 /* DDContextFilterLogFormatter.m in Sources */, - 4DD3F6A89DB14BB58F97F4CF /* DDDispatchQueueLogFormatter.m in Sources */, - 5FBEEA8FD4BB655F51769DA9 /* DDFileLogger.m in Sources */, - E5568D431658BE2486C299DC /* DDLog.m in Sources */, - B9D79E406B6BB5DB6E022699 /* DDMultiFormatter.m in Sources */, - EE31380ADFE23211CC5CB34B /* DDTTYLogger.m in Sources */, - 04C30ED7A8D161101E6C8410 /* Pods-Blog-CocoaLumberjack-dummy.m in Sources */, + D1241EBB44BFF19F6BADEA49 /* EXTADT.m in Sources */, + CE1CAA8EA4FF0F486029B2A8 /* EXTConcreteProtocol.m in Sources */, + C8D92AE7FEADDCA0B6B02FF2 /* EXTNil.m in Sources */, + 13A6A92C6511061D772EFCFE /* EXTRuntimeExtensions.m in Sources */, + 40467043D018E30FB01BFC84 /* EXTSafeCategory.m in Sources */, + C96644955BA8E5B39C0091D6 /* EXTScope.m in Sources */, + 1FB65F9D59C8024201DF562C /* EXTSelectorChecking.m in Sources */, + AB574A6FE2D290A2BEA921F8 /* NSInvocation+EXT.m in Sources */, + D78216778E9E8942F2C61DE7 /* NSMethodSignature+EXT.m in Sources */, + F1E77F9CD684689D26275238 /* Pods-Blog-libextobjc-dummy.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; - E582EC2A9813AB28F62B14E2 /* Sources */ = { + B177E72F2B39EE1471D4B105 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 5790776E50FDB121E500047A /* Pods-Blog-dummy.m in Sources */, + 284F2E5F437DB6893837516D /* EXTRuntimeExtensions.m in Sources */, + 0C02DA37DC23E889BC399B0B /* EXTScope.m in Sources */, + ABFBD203808A4652E07EEE63 /* MTLJSONAdapter.m in Sources */, + 6AF53E7EE87CBB5EEFCCE4DA /* MTLModel+NSCoding.m in Sources */, + 475599A3407596E54E462F7D /* MTLModel.m in Sources */, + 488579FF3BCD2FC028766EFA /* MTLReflection.m in Sources */, + A82B9ED1F21314B3BFA84FCF /* MTLTransformerErrorHandling.m in Sources */, + B2F5837E394A77DFCBD7FDB2 /* MTLValueTransformer.m in Sources */, + 73BB30FA324B7E16D8DBB62C /* NSArray+MTLManipulationAdditions.m in Sources */, + 7CB861D5F9CA795431CFDD6F /* NSDictionary+MTLJSONKeyPath.m in Sources */, + 75F431ABDB92F622987D93F6 /* NSDictionary+MTLManipulationAdditions.m in Sources */, + EBC7A5F91EBC266F144248E3 /* NSDictionary+MTLMappingAdditions.m in Sources */, + 39AC0785B92DEED377498D5C /* NSError+MTLModelException.m in Sources */, + 165DE26398DCBFF6CDD32F60 /* NSObject+MTLComparisonAdditions.m in Sources */, + 8403A27C9246AF1E4134B240 /* NSValueTransformer+MTLInversionAdditions.m in Sources */, + BEC7C66A9177BDE4390FF9C2 /* NSValueTransformer+MTLPredefinedTransformerAdditions.m in Sources */, + 9518B22BF6A2A231D2BE822A /* Pods-Blog-Mantle-dummy.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; - E9B775A7D96DB582FB16F73E /* Sources */ = { + D7C5282172CD34F6491DB706 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 8E9A31C0DA6F79BEFFE916CE /* EXTRuntimeExtensions.m in Sources */, - 1FA6BC142D6AB9C6B35FAC3D /* EXTScope.m in Sources */, - BEC4E5CB41693360B05F2009 /* MTLJSONAdapter.m in Sources */, - A4F69B99DF84F2CC97D2965A /* MTLModel+NSCoding.m in Sources */, - 0AEFE94890E0EDA3A1B820C9 /* MTLModel.m in Sources */, - BB28CE3AC79D4944D7374872 /* MTLReflection.m in Sources */, - 8E3FB52F24CE614DD5605A86 /* MTLTransformerErrorHandling.m in Sources */, - 1DFEA471D50CAED32581BD2E /* MTLValueTransformer.m in Sources */, - 4F9BF90F1E5F1BE97B50AF2B /* NSArray+MTLManipulationAdditions.m in Sources */, - FAC5BC47E032C273AE001F13 /* NSDictionary+MTLJSONKeyPath.m in Sources */, - 4F0A4A2B8D5F7CA9D4374DEF /* NSDictionary+MTLManipulationAdditions.m in Sources */, - 1E1AB4C7E95FCD054E2E2AD5 /* NSDictionary+MTLMappingAdditions.m in Sources */, - 8A84769F3C236C521ADCBDA4 /* NSError+MTLModelException.m in Sources */, - 22C469447122BDB606CE3394 /* NSObject+MTLComparisonAdditions.m in Sources */, - D3F016DADC6B0EE69960147C /* NSValueTransformer+MTLInversionAdditions.m in Sources */, - 19DA0F3D46397B9F1A21C5B6 /* NSValueTransformer+MTLPredefinedTransformerAdditions.m in Sources */, - 9C17D91A9A5448002A2C550F /* Pods-Blog-Mantle-dummy.m in Sources */, + 97DD7C404140AE8D8DED2058 /* DDASLLogCapture.m in Sources */, + 19130D1EB925B80E2DA82E2A /* DDASLLogger.m in Sources */, + 425330D5F700D3B3705D88FC /* DDAbstractDatabaseLogger.m in Sources */, + 6FFF8EB8788895272CB3BEA8 /* DDContextFilterLogFormatter.m in Sources */, + 4B4FF55EDF5F646C1E1F9E9B /* DDDispatchQueueLogFormatter.m in Sources */, + 008DE6052787417F2DF2F262 /* DDFileLogger.m in Sources */, + 0FA120DD932050587D67E8B2 /* DDLog.m in Sources */, + B98DA984CA435F01D6FC8C96 /* DDMultiFormatter.m in Sources */, + A172DAA1DB4F2FC3EC1CEE6E /* DDTTYLogger.m in Sources */, + 40F24D23BFA2093652EEA35E /* Pods-samhuri.net-CocoaLumberjack-dummy.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; - F41EDEB22EA3699AC13BDDB4 /* Sources */ = { + D8962C2AF4BB86CE05A22DE9 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 216B2BBF00259861C3672EAA /* FAImageView.m in Sources */, - 3FD4F9A6D1E0D92E392E677B /* NSString+FontAwesome.m in Sources */, - DC6358E82E5745F031C0B986 /* Pods-Blog-FontAwesome+iOS-dummy.m in Sources */, - 7F9A584DE412377854B723FA /* UIFont+FontAwesome.m in Sources */, - 31F1810B3ECB3B7E35D13013 /* UIImage+FontAwesome.m in Sources */, + D0DA6DA208E47E90E094CE42 /* DDASLLogCapture.m in Sources */, + 289EBDC6156336AC042865AC /* DDASLLogger.m in Sources */, + E89B345DA7F5A8875053B2D9 /* DDAbstractDatabaseLogger.m in Sources */, + 3AA768A534536F1DE32EA739 /* DDContextFilterLogFormatter.m in Sources */, + B2923E26CE834BF21760A7CD /* DDDispatchQueueLogFormatter.m in Sources */, + C1684BEDF2DFCAAAA29C0576 /* DDFileLogger.m in Sources */, + 359A4D8615A1BA471317CFFD /* DDLog.m in Sources */, + 4EC73B2A231CE6AECE4DDFA0 /* DDMultiFormatter.m in Sources */, + 0890DB2288BBC937B5588EAF /* DDTTYLogger.m in Sources */, + DDC7BDB224936824E3D7CA11 /* Pods-Blog-CocoaLumberjack-dummy.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; - F5B122D4AB8C083509858359 /* Sources */ = { + DFB26C863C52A0807C5C37FE /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - D616B9E8521A2D06A84D13B8 /* CALayer+PromiseKit.m in Sources */, - 30972DF4610250BA686EEB9F /* NSNotificationCenter+PromiseKit.m in Sources */, - 9530CEDD91483CED84568CCC /* NSURLConnection+PromiseKit.m in Sources */, - 1A57924FE25D4C3755871480 /* PMKPromise+Pause.m in Sources */, - E4230C5349B8124FE4535B6C /* PMKPromise+Until.m in Sources */, - B3BDA4A79A89923D2B486FE8 /* PMKPromise+When.m in Sources */, - 1FFCE0601A53D98F62827B6F /* PMKPromise.m in Sources */, - E65535EA5F14606888F443E4 /* Pods-samhuri.net-PromiseKit-dummy.m in Sources */, - 2870099DD66B6E0A471C93BB /* UIActionSheet+PromiseKit.m in Sources */, - B6DBB13507A5ACF0F2247970 /* UIAlertView+PromiseKit.m in Sources */, - A94C81F3082E3ECCA9F19C26 /* UIView+PromiseKit.m in Sources */, - 42D61D1A305D7F3BFDED6D77 /* UIViewController+PromiseKit.m in Sources */, + 4FA6084DE8490CF2F57523B3 /* CALayer+PromiseKit.m in Sources */, + E23A19858A29C197C4201CE7 /* NSNotificationCenter+PromiseKit.m in Sources */, + 27CDF919EC3FD849DFD6DD2C /* NSURLConnection+PromiseKit.m in Sources */, + 8763048A0612B1FF06CC5DAB /* PMKPromise+Pause.m in Sources */, + 34C8574A0944D9217BC56184 /* PMKPromise+Until.m in Sources */, + B8623D92EF31A40195E01591 /* PMKPromise+When.m in Sources */, + 8DD3E4B84B235A8CB16CC419 /* PMKPromise.m in Sources */, + 623453C33714A3647C1AD783 /* Pods-Blog-PromiseKit-dummy.m in Sources */, + 49012F1B75A8BD5D37C1A2E5 /* UIActionSheet+PromiseKit.m in Sources */, + E2DEB55BDD022D8EF1585105 /* UIAlertView+PromiseKit.m in Sources */, + 8345BF366E7557F8E05F6DC1 /* UIView+PromiseKit.m in Sources */, + 0D1A373DC590235F813C6CDD /* UIViewController+PromiseKit.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + E7C646419CCEAD3F6FA6ACCC /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 8B6C818C7895116F3B241761 /* Pods-Blog-dummy.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + EFBB71CCD21D59AED7CE399A /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + F50FCC6AA419D64EE2DE6324 /* NSArray+ObjectiveSugar.m in Sources */, + 6906E61AD645DFC3BB5ED3D4 /* NSDictionary+ObjectiveSugar.m in Sources */, + F79A5AE91BA6CDA685EB5437 /* NSMutableArray+ObjectiveSugar.m in Sources */, + 1EE0D8DBDD5632F652DFD0A0 /* NSNumber+ObjectiveSugar.m in Sources */, + E53793B47F8328B5DAE4D95C /* NSSet+ObjectiveSugar.m in Sources */, + 450E107E389350939CF7B087 /* NSString+ObjectiveSugar.m in Sources */, + CB80BDDEBE5EDD21B081FF0D /* Pods-samhuri.net-ObjectiveSugar-dummy.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXSourcesBuildPhase section */ /* Begin PBXTargetDependency section */ - 03DE2A1CF8DD2E70030E8150 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = "Pods-Blog-OMGHTTPURLRQ"; - target = 375D5DD5BC79FF8D84795800 /* Pods-Blog-OMGHTTPURLRQ */; - targetProxy = 9E1A5CA0948B025B51DF380C /* PBXContainerItemProxy */; - }; - 067DE0E8AF4284B21C3BFA99 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = "Pods-samhuri.net-YapDatabase"; - target = 1B9EB6F8B470ABB0216941D5 /* Pods-samhuri.net-YapDatabase */; - targetProxy = 2223CB4A4791FC8E04D961FF /* PBXContainerItemProxy */; - }; - 0D595393C40809D2AAD4C3FE /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = "Pods-Blog-dyci"; - target = DB41243B560373F63598A984 /* Pods-Blog-dyci */; - targetProxy = 2ED0692C023E26A14A843CDD /* PBXContainerItemProxy */; - }; - 18B2264CBB03C6EA5691D716 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = "Pods-Blog-OMGHTTPURLRQ"; - target = 375D5DD5BC79FF8D84795800 /* Pods-Blog-OMGHTTPURLRQ */; - targetProxy = 0FC7B8924F25D57F0F3AE01B /* PBXContainerItemProxy */; - }; - 1EF49CA50F878F20905EC7E1 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = "Pods-samhuri.net-PromiseKit"; - target = 0116563DA3B59C73A4349D5B /* Pods-samhuri.net-PromiseKit */; - targetProxy = CD5D906F8A2EF0804289FBEA /* PBXContainerItemProxy */; - }; - 251FFA6CC1E23AD8A870F9EF /* PBXTargetDependency */ = { + 1A576BEA2E5DB45941A53734 /* PBXTargetDependency */ = { isa = PBXTargetDependency; name = "Pods-Blog-CocoaLumberjack"; - target = C6EF9B30182037AE243EC3BB /* Pods-Blog-CocoaLumberjack */; - targetProxy = 337990945745443B90239C3C /* PBXContainerItemProxy */; + target = 8211A052C1AAC5E293FA96C2 /* Pods-Blog-CocoaLumberjack */; + targetProxy = FFCA5E90EBED3AC42CF4669B /* PBXContainerItemProxy */; }; - 26B64D69D38431DC972EE5C0 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = "Pods-Blog-libextobjc"; - target = D0112AD2A905640C097AA4E3 /* Pods-Blog-libextobjc */; - targetProxy = 01D98243183C7287B492E0FA /* PBXContainerItemProxy */; - }; - 75E0BA18D0E7E930D9CD7CC2 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = "Pods-samhuri.net-Mantle"; - target = 87CC4B149333532B97D86BA3 /* Pods-samhuri.net-Mantle */; - targetProxy = 09EFE2E0DE90805EC09B5C95 /* PBXContainerItemProxy */; - }; - 936C860368EAA7073D766CD0 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = "Pods-Blog-MBProgressHUD"; - target = D26927D0011EA350C60FDB58 /* Pods-Blog-MBProgressHUD */; - targetProxy = 6101A9B48BB1281B1A213626 /* PBXContainerItemProxy */; - }; - B5675BEF320E0F9696758E4E /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = "Pods-Blog-PromiseKit"; - target = 70288108F6AEBCCAA7FE93EA /* Pods-Blog-PromiseKit */; - targetProxy = 6001E48995780C7576AEEAE9 /* PBXContainerItemProxy */; - }; - B767230F84A7A1494169ED1F /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = "Pods-samhuri.net-OMGHTTPURLRQ"; - target = BB24A593A5BF9C756CFF6590 /* Pods-samhuri.net-OMGHTTPURLRQ */; - targetProxy = 2C77A8228945785B7BCAED0A /* PBXContainerItemProxy */; - }; - B93F574A4BC3FF45D7961128 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = "Pods-Blog-FontAwesome+iOS"; - target = 93C1504B6640077885F5785C /* Pods-Blog-FontAwesome+iOS */; - targetProxy = CA7E33DD6212E11C2AAAD112 /* PBXContainerItemProxy */; - }; - BA203D239DB1A75563B290CD /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = "Pods-samhuri.net-CocoaLumberjack"; - target = 1915CA45DDBD337ADC988829 /* Pods-samhuri.net-CocoaLumberjack */; - targetProxy = E19635B8560411A44FB1913A /* PBXContainerItemProxy */; - }; - C16BB90DD3AD18158BA6CDE9 /* PBXTargetDependency */ = { + 2B1D68B75B1D29229859F938 /* PBXTargetDependency */ = { isa = PBXTargetDependency; name = "Pods-samhuri.net-ObjectiveSugar"; - target = 503854A52F3C12D1A923372C /* Pods-samhuri.net-ObjectiveSugar */; - targetProxy = BB967791199EBBF2D1DA4341 /* PBXContainerItemProxy */; + target = B87AEE12D90E4DCCF1925DD2 /* Pods-samhuri.net-ObjectiveSugar */; + targetProxy = 5D9B9C4FD114FAFC9A004A7C /* PBXContainerItemProxy */; }; - D460F8C02DE3FADDE1E25D23 /* PBXTargetDependency */ = { + 34FA15F06FBF20B1A9A9B21B /* PBXTargetDependency */ = { isa = PBXTargetDependency; - name = "Pods-samhuri.net-MBProgressHUD"; - target = BD43BE2DDB8DB99FBB37E0FE /* Pods-samhuri.net-MBProgressHUD */; - targetProxy = 4901D4A7970A5186EFD3C950 /* PBXContainerItemProxy */; + name = "Pods-Blog-MBProgressHUD"; + target = 616C3574E0905042A0B01C50 /* Pods-Blog-MBProgressHUD */; + targetProxy = A1181F09A76257BCBDC14053 /* PBXContainerItemProxy */; }; - E06DF7CF1B5DFAEE261CBB73 /* PBXTargetDependency */ = { + 371E87FF4BDE4A436EAFA843 /* PBXTargetDependency */ = { isa = PBXTargetDependency; name = "Pods-Blog-YapDatabase"; - target = 53CA12EF9FC78D764CAF336C /* Pods-Blog-YapDatabase */; - targetProxy = A0ED47D33001C6792D98036C /* PBXContainerItemProxy */; + target = C115EC8724564E3170B95575 /* Pods-Blog-YapDatabase */; + targetProxy = F7EAE850BEC0DA840CDFD11A /* PBXContainerItemProxy */; }; - E6AED7534CF0471AF19DB4E8 /* PBXTargetDependency */ = { + 46DFAA83C87508B348F76552 /* PBXTargetDependency */ = { isa = PBXTargetDependency; - name = "Pods-Blog-Mantle"; - target = 40F387FF62867EE943ACB1FC /* Pods-Blog-Mantle */; - targetProxy = EE54AAAD7D8E524807226452 /* PBXContainerItemProxy */; + name = "Pods-Blog-HockeySDK-HockeySDKResources"; + target = 01A548EABEB19F541F1F515D /* Pods-Blog-HockeySDK-HockeySDKResources */; + targetProxy = 85F75ADC437227173BD0667E /* PBXContainerItemProxy */; }; - EFE3CC7A9FAA447277C5333B /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = "Pods-samhuri.net-CocoaLumberjack"; - target = 1915CA45DDBD337ADC988829 /* Pods-samhuri.net-CocoaLumberjack */; - targetProxy = 2C1C3FCFDBEFB6D79F4CAEDB /* PBXContainerItemProxy */; - }; - F34A923AFFB554118CD90BC2 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = "Pods-Blog-CocoaLumberjack"; - target = C6EF9B30182037AE243EC3BB /* Pods-Blog-CocoaLumberjack */; - targetProxy = 8BBCB5F0A63505A7131791D7 /* PBXContainerItemProxy */; - }; - F65969C752B035FBFBF0F712 /* PBXTargetDependency */ = { + 48CF909B715582226213F1E7 /* PBXTargetDependency */ = { isa = PBXTargetDependency; name = "Pods-samhuri.net-OMGHTTPURLRQ"; - target = BB24A593A5BF9C756CFF6590 /* Pods-samhuri.net-OMGHTTPURLRQ */; - targetProxy = 0BF039765BAFEE31C849AA82 /* PBXContainerItemProxy */; + target = 6B1A3F24490A28B85D2B98C1 /* Pods-samhuri.net-OMGHTTPURLRQ */; + targetProxy = 7769941031EACB297620FC9B /* PBXContainerItemProxy */; }; - FF32A5AF347634505DD21663 /* PBXTargetDependency */ = { + 4E97394341B85C08FE51E3EF /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "Pods-Blog-HockeySDK"; + target = A8CE6CB2212F69AE3CEB6AA5 /* Pods-Blog-HockeySDK */; + targetProxy = 287751CB24496F7565E799F2 /* PBXContainerItemProxy */; + }; + 588C00CD34936F81A25F3F40 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "Pods-samhuri.net-Mantle"; + target = 67A3295FD88C690191799374 /* Pods-samhuri.net-Mantle */; + targetProxy = 8F73AD80A1C7E4628DEE4422 /* PBXContainerItemProxy */; + }; + 5AE608B6853AA8B8F589E0CD /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "Pods-samhuri.net-CocoaLumberjack"; + target = C36C4EC3CA5B8EECA9F1955A /* Pods-samhuri.net-CocoaLumberjack */; + targetProxy = AE28E234790B43E99DB08DC6 /* PBXContainerItemProxy */; + }; + 7A830AE645E1C250611459D4 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "Pods-Blog-OMGHTTPURLRQ"; + target = 5BD2074B159E9210760E9DB5 /* Pods-Blog-OMGHTTPURLRQ */; + targetProxy = 0392BC935A3C45CFAE543C93 /* PBXContainerItemProxy */; + }; + B1A09E5891D240AE81E687F3 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "Pods-Blog-libextobjc"; + target = 648C49E133EBBA75C3AAFDA4 /* Pods-Blog-libextobjc */; + targetProxy = 0860F97A7332B7F7AB8387E8 /* PBXContainerItemProxy */; + }; + B78DBB1A923E52B2BE4F13F5 /* PBXTargetDependency */ = { isa = PBXTargetDependency; name = "Pods-Blog-ObjectiveSugar"; - target = CD410B653411960151EE0A90 /* Pods-Blog-ObjectiveSugar */; - targetProxy = E20B8BD4F8AF80785341A791 /* PBXContainerItemProxy */; + target = A9E6C8019CC73D066D5B7B12 /* Pods-Blog-ObjectiveSugar */; + targetProxy = E55E1FFB8D4C2AC1590EC7EA /* PBXContainerItemProxy */; + }; + BE5548A573A06FBD22803108 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "Pods-Blog-dyci"; + target = 8861BE957C1BECEC7AF91A6A /* Pods-Blog-dyci */; + targetProxy = 0419C1FE94EE9D9B08D4EBEC /* PBXContainerItemProxy */; + }; + C8710D1D5EEDA9E6BA4DF091 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "Pods-Blog-CocoaLumberjack"; + target = 8211A052C1AAC5E293FA96C2 /* Pods-Blog-CocoaLumberjack */; + targetProxy = 8B532E7FB9AA2549525B35DB /* PBXContainerItemProxy */; + }; + CD35780C724C2BDBC4756E11 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "Pods-samhuri.net-YapDatabase"; + target = D2DF925ADA674F79DA5E6068 /* Pods-samhuri.net-YapDatabase */; + targetProxy = 4C0062421264F0DCE06FCF15 /* PBXContainerItemProxy */; + }; + CE58FA2541D5BB902AD15B98 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "Pods-samhuri.net-PromiseKit"; + target = 9280BB320B2800EA80D4AB33 /* Pods-samhuri.net-PromiseKit */; + targetProxy = DBBEBB89D5C8E33025B7D434 /* PBXContainerItemProxy */; + }; + D5879B9CB16E36E167AFB638 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "Pods-samhuri.net-CocoaLumberjack"; + target = C36C4EC3CA5B8EECA9F1955A /* Pods-samhuri.net-CocoaLumberjack */; + targetProxy = BBD8244BB14FD16D754293D7 /* PBXContainerItemProxy */; + }; + D66F233A1C88D9FBA6762511 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "Pods-Blog-OMGHTTPURLRQ"; + target = 5BD2074B159E9210760E9DB5 /* Pods-Blog-OMGHTTPURLRQ */; + targetProxy = 43CC5EA2EA1056BD0A23F4B7 /* PBXContainerItemProxy */; + }; + DA5F5107A51FB5CC062CFC86 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "Pods-samhuri.net-OMGHTTPURLRQ"; + target = 6B1A3F24490A28B85D2B98C1 /* Pods-samhuri.net-OMGHTTPURLRQ */; + targetProxy = C008BE0034689574AA3AA3DF /* PBXContainerItemProxy */; + }; + DAC53E7E3AB310A0A725B345 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "Pods-samhuri.net-MBProgressHUD"; + target = 9DC286E133EA91C3F1E9A620 /* Pods-samhuri.net-MBProgressHUD */; + targetProxy = B22944CA0DE6754CA74EDC17 /* PBXContainerItemProxy */; + }; + E59F7239014870160B97D8F2 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "Pods-Blog-Mantle"; + target = 9829AFDADE0EBCC51945CF1C /* Pods-Blog-Mantle */; + targetProxy = C0FF3A5FBE08C3FBA3025D23 /* PBXContainerItemProxy */; + }; + FDF7254B921C2079AC3E76F7 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "Pods-Blog-PromiseKit"; + target = 1AB623BF51767BC8616138AD /* Pods-Blog-PromiseKit */; + targetProxy = B0F432DAB713FB66577ACC41 /* PBXContainerItemProxy */; + }; + FF73D9724CC2D810CA454ED1 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "Pods-Blog-FontAwesome+iOS"; + target = 3485909229C96C0CEDDEA195 /* Pods-Blog-FontAwesome+iOS */; + targetProxy = A8A084FC311102959385E5DB /* PBXContainerItemProxy */; }; /* End PBXTargetDependency section */ /* Begin XCBuildConfiguration section */ - 042BE819E2C5664553CFDA21 /* Release */ = { + 1861E6EBE10E3EE5D150C0F1 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = AC56C2ACCD36D03A8E5E557F /* Pods-Blog-YapDatabase-Private.xcconfig */; - buildSettings = { - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_PREFIX_HEADER = "Target Support Files/Pods-Blog-YapDatabase/Pods-Blog-YapDatabase-prefix.pch"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - MTL_ENABLE_DEBUG_INFO = NO; - OTHER_LDFLAGS = ""; - OTHER_LIBTOOLFLAGS = ""; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - }; - name = Release; - }; - 0D60E69A264730B65CC065E4 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 456956BB07785CAB0362B287 /* Pods-samhuri.net-Mantle-Private.xcconfig */; + baseConfigurationReference = 69CBA72F9B4A621FD149FF4B /* Pods-samhuri.net-OMGHTTPURLRQ-Private.xcconfig */; buildSettings = { APPLICATION_EXTENSION_API_ONLY = YES; ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_PREFIX_HEADER = "Target Support Files/Pods-samhuri.net-Mantle/Pods-samhuri.net-Mantle-prefix.pch"; + GCC_PREFIX_HEADER = "Target Support Files/Pods-samhuri.net-OMGHTTPURLRQ/Pods-samhuri.net-OMGHTTPURLRQ-prefix.pch"; IPHONEOS_DEPLOYMENT_TARGET = 8.0; MTL_ENABLE_DEBUG_INFO = YES; OTHER_LDFLAGS = ""; @@ -3668,13 +4406,12 @@ }; name = Debug; }; - 0FD8C1875CC97E302346B514 /* Release */ = { + 2DABB3AC5C001A52AE7BA074 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 6C0A693A8FF3D2628E279152 /* Pods-samhuri.net-PromiseKit-Private.xcconfig */; + baseConfigurationReference = 60E6683EC599ADFFDD043950 /* Pods-Blog-dyci-Private.xcconfig */; buildSettings = { - APPLICATION_EXTENSION_API_ONLY = YES; ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_PREFIX_HEADER = "Target Support Files/Pods-samhuri.net-PromiseKit/Pods-samhuri.net-PromiseKit-prefix.pch"; + GCC_PREFIX_HEADER = "Target Support Files/Pods-Blog-dyci/Pods-Blog-dyci-prefix.pch"; IPHONEOS_DEPLOYMENT_TARGET = 8.0; MTL_ENABLE_DEBUG_INFO = NO; OTHER_LDFLAGS = ""; @@ -3685,12 +4422,12 @@ }; name = Release; }; - 11C1D66ED9FDC7D599C7509A /* Debug */ = { + 2DDD10E59156773D9CAD8B6C /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = BEFC5A947D608500AEF8D4E5 /* Pods-Blog-CocoaLumberjack-Private.xcconfig */; + baseConfigurationReference = 15850043CD4FB75D191E205A /* Pods-Blog-libextobjc-Private.xcconfig */; buildSettings = { ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_PREFIX_HEADER = "Target Support Files/Pods-Blog-CocoaLumberjack/Pods-Blog-CocoaLumberjack-prefix.pch"; + GCC_PREFIX_HEADER = "Target Support Files/Pods-Blog-libextobjc/Pods-Blog-libextobjc-prefix.pch"; IPHONEOS_DEPLOYMENT_TARGET = 8.0; MTL_ENABLE_DEBUG_INFO = YES; OTHER_LDFLAGS = ""; @@ -3701,7 +4438,39 @@ }; name = Debug; }; - 1C60EA13ADAD99EFE0BC8D1E /* Debug */ = { + 36425B03E024CEB52E4239B0 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 7F70F01E4CCF1D4E1905D714 /* Pods-Blog-MBProgressHUD-Private.xcconfig */; + buildSettings = { + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_PREFIX_HEADER = "Target Support Files/Pods-Blog-MBProgressHUD/Pods-Blog-MBProgressHUD-prefix.pch"; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + MTL_ENABLE_DEBUG_INFO = YES; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + }; + name = Debug; + }; + 37CB2076604AF115F25701FC /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 4FAEC47B45230AE46729DFEA /* Pods-Blog.release.xcconfig */; + buildSettings = { + ENABLE_STRICT_OBJC_MSGSEND = YES; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + MTL_ENABLE_DEBUG_INFO = NO; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PODS_ROOT = "$(SRCROOT)"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + }; + name = Release; + }; + 3A849FFC2BB1037E8CDF6852 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; @@ -3740,31 +4509,26 @@ }; name = Debug; }; - 22AF40ACE47E737511F923C3 /* Release */ = { + 3F954D7F9525E453A3568D82 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 412911EC4FA87AE1B39C9A43 /* Pods-samhuri.net-MBProgressHUD-Private.xcconfig */; + baseConfigurationReference = 1FD1DBAB2B5CED8999A0E9C1 /* Pods-Blog-HockeySDK-Private.xcconfig */; buildSettings = { - APPLICATION_EXTENSION_API_ONLY = YES; ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_PREFIX_HEADER = "Target Support Files/Pods-samhuri.net-MBProgressHUD/Pods-samhuri.net-MBProgressHUD-prefix.pch"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - MTL_ENABLE_DEBUG_INFO = NO; - OTHER_LDFLAGS = ""; - OTHER_LIBTOOLFLAGS = ""; - PRODUCT_NAME = "$(TARGET_NAME)"; + PRODUCT_NAME = HockeySDKResources; SDKROOT = iphoneos; SKIP_INSTALL = YES; + WRAPPER_EXTENSION = bundle; }; - name = Release; + name = Debug; }; - 2895A788E5015389F61AEE36 /* Debug */ = { + 5032B394B9678066E35818F7 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = D818A6776F5B0594762301DA /* Pods-samhuri.net.debug.xcconfig */; + baseConfigurationReference = 928000BEBBA061C129953EEB /* Pods-samhuri.net.release.xcconfig */; buildSettings = { APPLICATION_EXTENSION_API_ONLY = YES; ENABLE_STRICT_OBJC_MSGSEND = YES; IPHONEOS_DEPLOYMENT_TARGET = 8.0; - MTL_ENABLE_DEBUG_INFO = YES; + MTL_ENABLE_DEBUG_INFO = NO; OTHER_LDFLAGS = ""; OTHER_LIBTOOLFLAGS = ""; PODS_ROOT = "$(SRCROOT)"; @@ -3772,76 +4536,11 @@ SDKROOT = iphoneos; SKIP_INSTALL = YES; }; - name = Debug; - }; - 3164A9BC33FBEBFF32BB17D3 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = C119ACE003D70D14D0CC5B37 /* Pods-Blog-libextobjc-Private.xcconfig */; - buildSettings = { - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_PREFIX_HEADER = "Target Support Files/Pods-Blog-libextobjc/Pods-Blog-libextobjc-prefix.pch"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - MTL_ENABLE_DEBUG_INFO = NO; - OTHER_LDFLAGS = ""; - OTHER_LIBTOOLFLAGS = ""; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - }; name = Release; }; - 3181B61BE4C382F253005760 /* Release */ = { + 542B3C13756B16F539577E00 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = F72F2263FB89FD8EB4E6FF36 /* Pods-Blog-PromiseKit-Private.xcconfig */; - buildSettings = { - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_PREFIX_HEADER = "Target Support Files/Pods-Blog-PromiseKit/Pods-Blog-PromiseKit-prefix.pch"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - MTL_ENABLE_DEBUG_INFO = NO; - OTHER_LDFLAGS = ""; - OTHER_LIBTOOLFLAGS = ""; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - }; - name = Release; - }; - 3E440EF3EA8F69FCB359F115 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = EF398E993F646E7B6B07E3C1 /* Pods-Blog-MBProgressHUD-Private.xcconfig */; - buildSettings = { - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_PREFIX_HEADER = "Target Support Files/Pods-Blog-MBProgressHUD/Pods-Blog-MBProgressHUD-prefix.pch"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - MTL_ENABLE_DEBUG_INFO = NO; - OTHER_LDFLAGS = ""; - OTHER_LIBTOOLFLAGS = ""; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - }; - name = Release; - }; - 40F853E20BF23F87D22FB569 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = B2D44252E27CC38A9668B507 /* Pods-samhuri.net-YapDatabase-Private.xcconfig */; - buildSettings = { - APPLICATION_EXTENSION_API_ONLY = YES; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_PREFIX_HEADER = "Target Support Files/Pods-samhuri.net-YapDatabase/Pods-samhuri.net-YapDatabase-prefix.pch"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - MTL_ENABLE_DEBUG_INFO = YES; - OTHER_LDFLAGS = ""; - OTHER_LIBTOOLFLAGS = ""; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - }; - name = Debug; - }; - 420F50AB06EF4B6D6500E5BC /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = C259200F9856B1CED757EBC7 /* Pods-Blog-FontAwesome+iOS-Private.xcconfig */; + baseConfigurationReference = 5411044706088463D1712EE7 /* Pods-Blog-FontAwesome+iOS-Private.xcconfig */; buildSettings = { ENABLE_STRICT_OBJC_MSGSEND = YES; GCC_PREFIX_HEADER = "Target Support Files/Pods-Blog-FontAwesome+iOS/Pods-Blog-FontAwesome+iOS-prefix.pch"; @@ -3855,304 +4554,9 @@ }; name = Debug; }; - 4438937B6571D9160166DB11 /* Release */ = { + 551CE701C85745BAE1BC02D5 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = C259200F9856B1CED757EBC7 /* Pods-Blog-FontAwesome+iOS-Private.xcconfig */; - buildSettings = { - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_PREFIX_HEADER = "Target Support Files/Pods-Blog-FontAwesome+iOS/Pods-Blog-FontAwesome+iOS-prefix.pch"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - MTL_ENABLE_DEBUG_INFO = NO; - OTHER_LDFLAGS = ""; - OTHER_LIBTOOLFLAGS = ""; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - }; - name = Release; - }; - 49B75DA8C6783836DE6F8647 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = C119ACE003D70D14D0CC5B37 /* Pods-Blog-libextobjc-Private.xcconfig */; - buildSettings = { - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_PREFIX_HEADER = "Target Support Files/Pods-Blog-libextobjc/Pods-Blog-libextobjc-prefix.pch"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - MTL_ENABLE_DEBUG_INFO = YES; - OTHER_LDFLAGS = ""; - OTHER_LIBTOOLFLAGS = ""; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - }; - name = Debug; - }; - 4BFF36A9A1B444A1E1DA7213 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 93D295CC0D24F347BCBEB1A5 /* Pods-Blog-OMGHTTPURLRQ-Private.xcconfig */; - buildSettings = { - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_PREFIX_HEADER = "Target Support Files/Pods-Blog-OMGHTTPURLRQ/Pods-Blog-OMGHTTPURLRQ-prefix.pch"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - MTL_ENABLE_DEBUG_INFO = YES; - OTHER_LDFLAGS = ""; - OTHER_LIBTOOLFLAGS = ""; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - }; - name = Debug; - }; - 54BD02D5F83271A83FD3472F /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = EA0D8559A482F2E9D0790642 /* Pods-Blog.release.xcconfig */; - buildSettings = { - ENABLE_STRICT_OBJC_MSGSEND = YES; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - MTL_ENABLE_DEBUG_INFO = NO; - OTHER_LDFLAGS = ""; - OTHER_LIBTOOLFLAGS = ""; - PODS_ROOT = "$(SRCROOT)"; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - }; - name = Release; - }; - 5F1077F3B831021D37253215 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 28A4EE3E29192A493521DA4D /* Pods-Blog.debug.xcconfig */; - buildSettings = { - ENABLE_STRICT_OBJC_MSGSEND = YES; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - MTL_ENABLE_DEBUG_INFO = YES; - OTHER_LDFLAGS = ""; - OTHER_LIBTOOLFLAGS = ""; - PODS_ROOT = "$(SRCROOT)"; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - }; - name = Debug; - }; - 63D51B4E5108480BBD4024C8 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 539DB9150507BC524A50B067 /* Pods-samhuri.net-CocoaLumberjack-Private.xcconfig */; - buildSettings = { - APPLICATION_EXTENSION_API_ONLY = YES; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_PREFIX_HEADER = "Target Support Files/Pods-samhuri.net-CocoaLumberjack/Pods-samhuri.net-CocoaLumberjack-prefix.pch"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - MTL_ENABLE_DEBUG_INFO = YES; - OTHER_LDFLAGS = ""; - OTHER_LIBTOOLFLAGS = ""; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - }; - name = Debug; - }; - 75DD6E66127058DF0456EBB8 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 539DB9150507BC524A50B067 /* Pods-samhuri.net-CocoaLumberjack-Private.xcconfig */; - buildSettings = { - APPLICATION_EXTENSION_API_ONLY = YES; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_PREFIX_HEADER = "Target Support Files/Pods-samhuri.net-CocoaLumberjack/Pods-samhuri.net-CocoaLumberjack-prefix.pch"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - MTL_ENABLE_DEBUG_INFO = NO; - OTHER_LDFLAGS = ""; - OTHER_LIBTOOLFLAGS = ""; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - }; - name = Release; - }; - 7B2C4C7E1B3C0490A1F355B8 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = BD4FB434FA87131CD9546E78 /* Pods-Blog-ObjectiveSugar-Private.xcconfig */; - buildSettings = { - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_PREFIX_HEADER = "Target Support Files/Pods-Blog-ObjectiveSugar/Pods-Blog-ObjectiveSugar-prefix.pch"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - MTL_ENABLE_DEBUG_INFO = NO; - OTHER_LDFLAGS = ""; - OTHER_LIBTOOLFLAGS = ""; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - }; - name = Release; - }; - 817483E2CA469A7729D7EB89 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 71E6616794A5B47538DFD8D9 /* Pods-samhuri.net-OMGHTTPURLRQ-Private.xcconfig */; - buildSettings = { - APPLICATION_EXTENSION_API_ONLY = YES; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_PREFIX_HEADER = "Target Support Files/Pods-samhuri.net-OMGHTTPURLRQ/Pods-samhuri.net-OMGHTTPURLRQ-prefix.pch"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - MTL_ENABLE_DEBUG_INFO = NO; - OTHER_LDFLAGS = ""; - OTHER_LIBTOOLFLAGS = ""; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - }; - name = Release; - }; - 81E55FB4A8841BD2DDFBFE38 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = B2D44252E27CC38A9668B507 /* Pods-samhuri.net-YapDatabase-Private.xcconfig */; - buildSettings = { - APPLICATION_EXTENSION_API_ONLY = YES; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_PREFIX_HEADER = "Target Support Files/Pods-samhuri.net-YapDatabase/Pods-samhuri.net-YapDatabase-prefix.pch"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - MTL_ENABLE_DEBUG_INFO = NO; - OTHER_LDFLAGS = ""; - OTHER_LIBTOOLFLAGS = ""; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - }; - name = Release; - }; - 8491944B8E3F8BEFD0366BE8 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = ADD71777011B1A546664623D /* Pods-samhuri.net-ObjectiveSugar-Private.xcconfig */; - buildSettings = { - APPLICATION_EXTENSION_API_ONLY = YES; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_PREFIX_HEADER = "Target Support Files/Pods-samhuri.net-ObjectiveSugar/Pods-samhuri.net-ObjectiveSugar-prefix.pch"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - MTL_ENABLE_DEBUG_INFO = NO; - OTHER_LDFLAGS = ""; - OTHER_LIBTOOLFLAGS = ""; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - }; - name = Release; - }; - 8CB745E429CCA7190C8B46DE /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 323CA2471B47105D93E68D84 /* Pods-Blog-Mantle-Private.xcconfig */; - buildSettings = { - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_PREFIX_HEADER = "Target Support Files/Pods-Blog-Mantle/Pods-Blog-Mantle-prefix.pch"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - MTL_ENABLE_DEBUG_INFO = YES; - OTHER_LDFLAGS = ""; - OTHER_LIBTOOLFLAGS = ""; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - }; - name = Debug; - }; - 8E6C3BD56D1DC8DB74125F67 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 323CA2471B47105D93E68D84 /* Pods-Blog-Mantle-Private.xcconfig */; - buildSettings = { - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_PREFIX_HEADER = "Target Support Files/Pods-Blog-Mantle/Pods-Blog-Mantle-prefix.pch"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - MTL_ENABLE_DEBUG_INFO = NO; - OTHER_LDFLAGS = ""; - OTHER_LIBTOOLFLAGS = ""; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - }; - name = Release; - }; - 8FE11EA04B4B29541EA3003C /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = EF398E993F646E7B6B07E3C1 /* Pods-Blog-MBProgressHUD-Private.xcconfig */; - buildSettings = { - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_PREFIX_HEADER = "Target Support Files/Pods-Blog-MBProgressHUD/Pods-Blog-MBProgressHUD-prefix.pch"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - MTL_ENABLE_DEBUG_INFO = YES; - OTHER_LDFLAGS = ""; - OTHER_LIBTOOLFLAGS = ""; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - }; - name = Debug; - }; - 9E735EFF5F0076D633E7B583 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = ADD71777011B1A546664623D /* Pods-samhuri.net-ObjectiveSugar-Private.xcconfig */; - buildSettings = { - APPLICATION_EXTENSION_API_ONLY = YES; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_PREFIX_HEADER = "Target Support Files/Pods-samhuri.net-ObjectiveSugar/Pods-samhuri.net-ObjectiveSugar-prefix.pch"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - MTL_ENABLE_DEBUG_INFO = YES; - OTHER_LDFLAGS = ""; - OTHER_LIBTOOLFLAGS = ""; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - }; - name = Debug; - }; - A2E36BF8FBDC31E3568FF2EA /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = AC56C2ACCD36D03A8E5E557F /* Pods-Blog-YapDatabase-Private.xcconfig */; - buildSettings = { - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_PREFIX_HEADER = "Target Support Files/Pods-Blog-YapDatabase/Pods-Blog-YapDatabase-prefix.pch"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - MTL_ENABLE_DEBUG_INFO = YES; - OTHER_LDFLAGS = ""; - OTHER_LIBTOOLFLAGS = ""; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - }; - name = Debug; - }; - A4CD0401091E683181CAE7FC /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = FF05D8A4D649AFD23AAEA2A1 /* Pods-samhuri.net.release.xcconfig */; - buildSettings = { - APPLICATION_EXTENSION_API_ONLY = YES; - ENABLE_STRICT_OBJC_MSGSEND = YES; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - MTL_ENABLE_DEBUG_INFO = NO; - OTHER_LDFLAGS = ""; - OTHER_LIBTOOLFLAGS = ""; - PODS_ROOT = "$(SRCROOT)"; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - }; - name = Release; - }; - A9C8D3A5904E9BD6C5D5AF7B /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = BEFC5A947D608500AEF8D4E5 /* Pods-Blog-CocoaLumberjack-Private.xcconfig */; - buildSettings = { - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_PREFIX_HEADER = "Target Support Files/Pods-Blog-CocoaLumberjack/Pods-Blog-CocoaLumberjack-prefix.pch"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - MTL_ENABLE_DEBUG_INFO = NO; - OTHER_LDFLAGS = ""; - OTHER_LIBTOOLFLAGS = ""; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - }; - name = Release; - }; - B1BFE4F7A9D4EA7E8517F440 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 456956BB07785CAB0362B287 /* Pods-samhuri.net-Mantle-Private.xcconfig */; + baseConfigurationReference = A7BABB824F1E7F02675025B9 /* Pods-samhuri.net-Mantle-Private.xcconfig */; buildSettings = { APPLICATION_EXTENSION_API_ONLY = YES; ENABLE_STRICT_OBJC_MSGSEND = YES; @@ -4167,58 +4571,9 @@ }; name = Release; }; - B29914EA263E796E796C178D /* Release */ = { + 592533A8B3BFF4253C3D65FD /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 02CD1F29FA92CC91297FE5B3 /* Pods-Blog-dyci-Private.xcconfig */; - buildSettings = { - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_PREFIX_HEADER = "Target Support Files/Pods-Blog-dyci/Pods-Blog-dyci-prefix.pch"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - MTL_ENABLE_DEBUG_INFO = NO; - OTHER_LDFLAGS = ""; - OTHER_LIBTOOLFLAGS = ""; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - }; - name = Release; - }; - B3EE481DD18620D2E174A47F /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 71E6616794A5B47538DFD8D9 /* Pods-samhuri.net-OMGHTTPURLRQ-Private.xcconfig */; - buildSettings = { - APPLICATION_EXTENSION_API_ONLY = YES; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_PREFIX_HEADER = "Target Support Files/Pods-samhuri.net-OMGHTTPURLRQ/Pods-samhuri.net-OMGHTTPURLRQ-prefix.pch"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - MTL_ENABLE_DEBUG_INFO = YES; - OTHER_LDFLAGS = ""; - OTHER_LIBTOOLFLAGS = ""; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - }; - name = Debug; - }; - B68C74761E2011CB7588DA76 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = BD4FB434FA87131CD9546E78 /* Pods-Blog-ObjectiveSugar-Private.xcconfig */; - buildSettings = { - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_PREFIX_HEADER = "Target Support Files/Pods-Blog-ObjectiveSugar/Pods-Blog-ObjectiveSugar-prefix.pch"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - MTL_ENABLE_DEBUG_INFO = YES; - OTHER_LDFLAGS = ""; - OTHER_LIBTOOLFLAGS = ""; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - }; - name = Debug; - }; - B74BDC312757BC992A13F1A0 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 93D295CC0D24F347BCBEB1A5 /* Pods-Blog-OMGHTTPURLRQ-Private.xcconfig */; + baseConfigurationReference = B44880E1FB59FC9E15DAA55A /* Pods-Blog-OMGHTTPURLRQ-Private.xcconfig */; buildSettings = { ENABLE_STRICT_OBJC_MSGSEND = YES; GCC_PREFIX_HEADER = "Target Support Files/Pods-Blog-OMGHTTPURLRQ/Pods-Blog-OMGHTTPURLRQ-prefix.pch"; @@ -4232,12 +4587,30 @@ }; name = Release; }; - C210A9BDA508EDE334CB33DF /* Debug */ = { + 5FD824BFC1C74F3B3DB84BAE /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 02CD1F29FA92CC91297FE5B3 /* Pods-Blog-dyci-Private.xcconfig */; + baseConfigurationReference = 48E5AE8E99CCA8F8D7154C5D /* Pods-samhuri.net.debug.xcconfig */; buildSettings = { + APPLICATION_EXTENSION_API_ONLY = YES; ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_PREFIX_HEADER = "Target Support Files/Pods-Blog-dyci/Pods-Blog-dyci-prefix.pch"; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + MTL_ENABLE_DEBUG_INFO = YES; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PODS_ROOT = "$(SRCROOT)"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + }; + name = Debug; + }; + 6DF9602AE913454DC49BABB4 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 2E4469E3AFC89F79AC80E56B /* Pods-samhuri.net-MBProgressHUD-Private.xcconfig */; + buildSettings = { + APPLICATION_EXTENSION_API_ONLY = YES; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_PREFIX_HEADER = "Target Support Files/Pods-samhuri.net-MBProgressHUD/Pods-samhuri.net-MBProgressHUD-prefix.pch"; IPHONEOS_DEPLOYMENT_TARGET = 8.0; MTL_ENABLE_DEBUG_INFO = YES; OTHER_LDFLAGS = ""; @@ -4248,9 +4621,25 @@ }; name = Debug; }; - C4D6B7406D79E4FF81EFCB3B /* Debug */ = { + 6F8BA60630464A521E438CB4 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 6C0A693A8FF3D2628E279152 /* Pods-samhuri.net-PromiseKit-Private.xcconfig */; + baseConfigurationReference = 655CF649A60EDB82EA45F6E9 /* Pods-Blog-Mantle-Private.xcconfig */; + buildSettings = { + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_PREFIX_HEADER = "Target Support Files/Pods-Blog-Mantle/Pods-Blog-Mantle-prefix.pch"; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + MTL_ENABLE_DEBUG_INFO = YES; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + }; + name = Debug; + }; + 72AC371D08B5BACA2071F92B /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 80B3F1DA0AAE9D640D2CFEC6 /* Pods-samhuri.net-PromiseKit-Private.xcconfig */; buildSettings = { APPLICATION_EXTENSION_API_ONLY = YES; ENABLE_STRICT_OBJC_MSGSEND = YES; @@ -4265,7 +4654,445 @@ }; name = Debug; }; - CFD5C6BC3DF6D9C33AE1FD1D /* Release */ = { + 766933A7A59A8F43A242C40F /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = AFDB6FB23854E1D150B8A1F0 /* Pods-Blog-PromiseKit-Private.xcconfig */; + buildSettings = { + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_PREFIX_HEADER = "Target Support Files/Pods-Blog-PromiseKit/Pods-Blog-PromiseKit-prefix.pch"; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + MTL_ENABLE_DEBUG_INFO = YES; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + }; + name = Debug; + }; + 799FB7B6883994AB9285242A /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 1FD1DBAB2B5CED8999A0E9C1 /* Pods-Blog-HockeySDK-Private.xcconfig */; + buildSettings = { + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_PREFIX_HEADER = "Target Support Files/Pods-Blog-HockeySDK/Pods-Blog-HockeySDK-prefix.pch"; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + MTL_ENABLE_DEBUG_INFO = NO; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + }; + name = Release; + }; + 7A6D7AB08D990B065CBB3A05 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 60E6683EC599ADFFDD043950 /* Pods-Blog-dyci-Private.xcconfig */; + buildSettings = { + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_PREFIX_HEADER = "Target Support Files/Pods-Blog-dyci/Pods-Blog-dyci-prefix.pch"; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + MTL_ENABLE_DEBUG_INFO = YES; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + }; + name = Debug; + }; + 8BE288A64C41E48D2DB704F5 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 3EFEA5BEFFFE131E1360E9B1 /* Pods-samhuri.net-ObjectiveSugar-Private.xcconfig */; + buildSettings = { + APPLICATION_EXTENSION_API_ONLY = YES; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_PREFIX_HEADER = "Target Support Files/Pods-samhuri.net-ObjectiveSugar/Pods-samhuri.net-ObjectiveSugar-prefix.pch"; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + MTL_ENABLE_DEBUG_INFO = NO; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + }; + name = Release; + }; + 8DE0D132772B46FC24052602 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 75E23EB4429317B9AB38151A /* Pods-Blog-YapDatabase-Private.xcconfig */; + buildSettings = { + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_PREFIX_HEADER = "Target Support Files/Pods-Blog-YapDatabase/Pods-Blog-YapDatabase-prefix.pch"; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + MTL_ENABLE_DEBUG_INFO = NO; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + }; + name = Release; + }; + 90140E78A825893EF6A01E9D /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = A7BABB824F1E7F02675025B9 /* Pods-samhuri.net-Mantle-Private.xcconfig */; + buildSettings = { + APPLICATION_EXTENSION_API_ONLY = YES; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_PREFIX_HEADER = "Target Support Files/Pods-samhuri.net-Mantle/Pods-samhuri.net-Mantle-prefix.pch"; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + MTL_ENABLE_DEBUG_INFO = YES; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + }; + name = Debug; + }; + 9030B83FDB8BDBFBB8F57B79 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 8E44FCD68DFA345E0C0DDE4B /* Pods-Blog-CocoaLumberjack-Private.xcconfig */; + buildSettings = { + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_PREFIX_HEADER = "Target Support Files/Pods-Blog-CocoaLumberjack/Pods-Blog-CocoaLumberjack-prefix.pch"; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + MTL_ENABLE_DEBUG_INFO = YES; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + }; + name = Debug; + }; + 92B5B2947F0D808324AB0A79 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 3BAE7A7DC628B2C527BC9476 /* Pods-samhuri.net-CocoaLumberjack-Private.xcconfig */; + buildSettings = { + APPLICATION_EXTENSION_API_ONLY = YES; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_PREFIX_HEADER = "Target Support Files/Pods-samhuri.net-CocoaLumberjack/Pods-samhuri.net-CocoaLumberjack-prefix.pch"; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + MTL_ENABLE_DEBUG_INFO = YES; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + }; + name = Debug; + }; + 98D1E0C9537D925DB5F57E9D /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 9F9EAB7FE149708F18679F88 /* Pods-Blog-ObjectiveSugar-Private.xcconfig */; + buildSettings = { + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_PREFIX_HEADER = "Target Support Files/Pods-Blog-ObjectiveSugar/Pods-Blog-ObjectiveSugar-prefix.pch"; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + MTL_ENABLE_DEBUG_INFO = YES; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + }; + name = Debug; + }; + 9AD2972A5B546634AC547CF8 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 80B3F1DA0AAE9D640D2CFEC6 /* Pods-samhuri.net-PromiseKit-Private.xcconfig */; + buildSettings = { + APPLICATION_EXTENSION_API_ONLY = YES; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_PREFIX_HEADER = "Target Support Files/Pods-samhuri.net-PromiseKit/Pods-samhuri.net-PromiseKit-prefix.pch"; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + MTL_ENABLE_DEBUG_INFO = NO; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + }; + name = Release; + }; + 9E24AB78F0471335A740C5EB /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 8E44FCD68DFA345E0C0DDE4B /* Pods-Blog-CocoaLumberjack-Private.xcconfig */; + buildSettings = { + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_PREFIX_HEADER = "Target Support Files/Pods-Blog-CocoaLumberjack/Pods-Blog-CocoaLumberjack-prefix.pch"; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + MTL_ENABLE_DEBUG_INFO = NO; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + }; + name = Release; + }; + A5029A7351F4B685927645E0 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = F0B9C4744873562D461901C5 /* Pods-Blog.debug.xcconfig */; + buildSettings = { + ENABLE_STRICT_OBJC_MSGSEND = YES; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + MTL_ENABLE_DEBUG_INFO = YES; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PODS_ROOT = "$(SRCROOT)"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + }; + name = Debug; + }; + A66EFE36D6C107BFB7F51D8F /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 1FD1DBAB2B5CED8999A0E9C1 /* Pods-Blog-HockeySDK-Private.xcconfig */; + buildSettings = { + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_PREFIX_HEADER = "Target Support Files/Pods-Blog-HockeySDK/Pods-Blog-HockeySDK-prefix.pch"; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + MTL_ENABLE_DEBUG_INFO = YES; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + }; + name = Debug; + }; + A73272AA4D1CC936CDD348B1 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 5411044706088463D1712EE7 /* Pods-Blog-FontAwesome+iOS-Private.xcconfig */; + buildSettings = { + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_PREFIX_HEADER = "Target Support Files/Pods-Blog-FontAwesome+iOS/Pods-Blog-FontAwesome+iOS-prefix.pch"; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + MTL_ENABLE_DEBUG_INFO = NO; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + }; + name = Release; + }; + AD1C41DD3BB3869BD7AA2F85 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = AFDB6FB23854E1D150B8A1F0 /* Pods-Blog-PromiseKit-Private.xcconfig */; + buildSettings = { + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_PREFIX_HEADER = "Target Support Files/Pods-Blog-PromiseKit/Pods-Blog-PromiseKit-prefix.pch"; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + MTL_ENABLE_DEBUG_INFO = NO; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + }; + name = Release; + }; + B3D1CC9FDED0118366F845A9 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 4CBFF2DBC92074B91C45992D /* Pods-samhuri.net-YapDatabase-Private.xcconfig */; + buildSettings = { + APPLICATION_EXTENSION_API_ONLY = YES; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_PREFIX_HEADER = "Target Support Files/Pods-samhuri.net-YapDatabase/Pods-samhuri.net-YapDatabase-prefix.pch"; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + MTL_ENABLE_DEBUG_INFO = YES; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + }; + name = Debug; + }; + B8CA34C496EEF3F6C294A0BD /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 3BAE7A7DC628B2C527BC9476 /* Pods-samhuri.net-CocoaLumberjack-Private.xcconfig */; + buildSettings = { + APPLICATION_EXTENSION_API_ONLY = YES; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_PREFIX_HEADER = "Target Support Files/Pods-samhuri.net-CocoaLumberjack/Pods-samhuri.net-CocoaLumberjack-prefix.pch"; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + MTL_ENABLE_DEBUG_INFO = NO; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + }; + name = Release; + }; + BFE6DF80E26E43DF0616070E /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 4CBFF2DBC92074B91C45992D /* Pods-samhuri.net-YapDatabase-Private.xcconfig */; + buildSettings = { + APPLICATION_EXTENSION_API_ONLY = YES; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_PREFIX_HEADER = "Target Support Files/Pods-samhuri.net-YapDatabase/Pods-samhuri.net-YapDatabase-prefix.pch"; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + MTL_ENABLE_DEBUG_INFO = NO; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + }; + name = Release; + }; + CAE15D4A04CFED59A0E34DBA /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 15850043CD4FB75D191E205A /* Pods-Blog-libextobjc-Private.xcconfig */; + buildSettings = { + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_PREFIX_HEADER = "Target Support Files/Pods-Blog-libextobjc/Pods-Blog-libextobjc-prefix.pch"; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + MTL_ENABLE_DEBUG_INFO = NO; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + }; + name = Release; + }; + CF4A8CACCFCA18C0207DC3FA /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 7F70F01E4CCF1D4E1905D714 /* Pods-Blog-MBProgressHUD-Private.xcconfig */; + buildSettings = { + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_PREFIX_HEADER = "Target Support Files/Pods-Blog-MBProgressHUD/Pods-Blog-MBProgressHUD-prefix.pch"; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + MTL_ENABLE_DEBUG_INFO = NO; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + }; + name = Release; + }; + CF52B9323446A32CB42DCE8F /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 2E4469E3AFC89F79AC80E56B /* Pods-samhuri.net-MBProgressHUD-Private.xcconfig */; + buildSettings = { + APPLICATION_EXTENSION_API_ONLY = YES; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_PREFIX_HEADER = "Target Support Files/Pods-samhuri.net-MBProgressHUD/Pods-samhuri.net-MBProgressHUD-prefix.pch"; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + MTL_ENABLE_DEBUG_INFO = NO; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + }; + name = Release; + }; + D7B612EC1D1EC9D90F7756A5 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 655CF649A60EDB82EA45F6E9 /* Pods-Blog-Mantle-Private.xcconfig */; + buildSettings = { + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_PREFIX_HEADER = "Target Support Files/Pods-Blog-Mantle/Pods-Blog-Mantle-prefix.pch"; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + MTL_ENABLE_DEBUG_INFO = NO; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + }; + name = Release; + }; + D7EA874DA6B4740ED1B68257 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 69CBA72F9B4A621FD149FF4B /* Pods-samhuri.net-OMGHTTPURLRQ-Private.xcconfig */; + buildSettings = { + APPLICATION_EXTENSION_API_ONLY = YES; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_PREFIX_HEADER = "Target Support Files/Pods-samhuri.net-OMGHTTPURLRQ/Pods-samhuri.net-OMGHTTPURLRQ-prefix.pch"; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + MTL_ENABLE_DEBUG_INFO = NO; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + }; + name = Release; + }; + D986CF0F024C0F07ED0B282C /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 9F9EAB7FE149708F18679F88 /* Pods-Blog-ObjectiveSugar-Private.xcconfig */; + buildSettings = { + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_PREFIX_HEADER = "Target Support Files/Pods-Blog-ObjectiveSugar/Pods-Blog-ObjectiveSugar-prefix.pch"; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + MTL_ENABLE_DEBUG_INFO = NO; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + }; + name = Release; + }; + DB3A15CACB46E667CA5F426D /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = B44880E1FB59FC9E15DAA55A /* Pods-Blog-OMGHTTPURLRQ-Private.xcconfig */; + buildSettings = { + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_PREFIX_HEADER = "Target Support Files/Pods-Blog-OMGHTTPURLRQ/Pods-Blog-OMGHTTPURLRQ-prefix.pch"; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + MTL_ENABLE_DEBUG_INFO = YES; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + }; + name = Debug; + }; + DCAF0618555A3306BAC7ABF4 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 3EFEA5BEFFFE131E1360E9B1 /* Pods-samhuri.net-ObjectiveSugar-Private.xcconfig */; + buildSettings = { + APPLICATION_EXTENSION_API_ONLY = YES; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_PREFIX_HEADER = "Target Support Files/Pods-samhuri.net-ObjectiveSugar/Pods-samhuri.net-ObjectiveSugar-prefix.pch"; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + MTL_ENABLE_DEBUG_INFO = YES; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + }; + name = Debug; + }; + E26A90B4BF790EF15C55262C /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 1FD1DBAB2B5CED8999A0E9C1 /* Pods-Blog-HockeySDK-Private.xcconfig */; + buildSettings = { + ENABLE_STRICT_OBJC_MSGSEND = YES; + PRODUCT_NAME = HockeySDKResources; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + WRAPPER_EXTENSION = bundle; + }; + name = Release; + }; + FAA34581F65A02F7C2DE77FF /* Release */ = { isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; @@ -4299,29 +5126,12 @@ }; name = Release; }; - D6ED7E88152678C371C1ED33 /* Debug */ = { + FBDE8545B99104929DE471B8 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = F72F2263FB89FD8EB4E6FF36 /* Pods-Blog-PromiseKit-Private.xcconfig */; + baseConfigurationReference = 75E23EB4429317B9AB38151A /* Pods-Blog-YapDatabase-Private.xcconfig */; buildSettings = { ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_PREFIX_HEADER = "Target Support Files/Pods-Blog-PromiseKit/Pods-Blog-PromiseKit-prefix.pch"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - MTL_ENABLE_DEBUG_INFO = YES; - OTHER_LDFLAGS = ""; - OTHER_LIBTOOLFLAGS = ""; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - }; - name = Debug; - }; - DEEBC5AF6F4EC41B44599D4F /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 412911EC4FA87AE1B39C9A43 /* Pods-samhuri.net-MBProgressHUD-Private.xcconfig */; - buildSettings = { - APPLICATION_EXTENSION_API_ONLY = YES; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_PREFIX_HEADER = "Target Support Files/Pods-samhuri.net-MBProgressHUD/Pods-samhuri.net-MBProgressHUD-prefix.pch"; + GCC_PREFIX_HEADER = "Target Support Files/Pods-Blog-YapDatabase/Pods-Blog-YapDatabase-prefix.pch"; IPHONEOS_DEPLOYMENT_TARGET = 8.0; MTL_ENABLE_DEBUG_INFO = YES; OTHER_LDFLAGS = ""; @@ -4335,187 +5145,205 @@ /* End XCBuildConfiguration section */ /* Begin XCConfigurationList section */ - 0C9EAE989ACA7027512CF269 /* Build configuration list for PBXNativeTarget "Pods-Blog-dyci" */ = { + 28353535BEB1BB5E45A1931B /* Build configuration list for PBXNativeTarget "Pods-samhuri.net-CocoaLumberjack" */ = { isa = XCConfigurationList; buildConfigurations = ( - C210A9BDA508EDE334CB33DF /* Debug */, - B29914EA263E796E796C178D /* Release */, + 92B5B2947F0D808324AB0A79 /* Debug */, + B8CA34C496EEF3F6C294A0BD /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 2873103480377AD12B35BBF1 /* Build configuration list for PBXProject "Pods" */ = { + 3004B9A5B57431A9E9BD9F6F /* Build configuration list for PBXNativeTarget "Pods-Blog-CocoaLumberjack" */ = { isa = XCConfigurationList; buildConfigurations = ( - 1C60EA13ADAD99EFE0BC8D1E /* Debug */, - CFD5C6BC3DF6D9C33AE1FD1D /* Release */, + 9030B83FDB8BDBFBB8F57B79 /* Debug */, + 9E24AB78F0471335A740C5EB /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 4A412637AAB76F5CBE4EA879 /* Build configuration list for PBXNativeTarget "Pods-samhuri.net-YapDatabase" */ = { + 4DFDE482EC5A464FD7C21688 /* Build configuration list for PBXNativeTarget "Pods-Blog-Mantle" */ = { isa = XCConfigurationList; buildConfigurations = ( - 40F853E20BF23F87D22FB569 /* Debug */, - 81E55FB4A8841BD2DDFBFE38 /* Release */, + 6F8BA60630464A521E438CB4 /* Debug */, + D7B612EC1D1EC9D90F7756A5 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 52A711C4F58A736A523A7052 /* Build configuration list for PBXNativeTarget "Pods-Blog-ObjectiveSugar" */ = { + 554A9FC9599AFACC0C49F7BF /* Build configuration list for PBXNativeTarget "Pods-Blog-libextobjc" */ = { isa = XCConfigurationList; buildConfigurations = ( - B68C74761E2011CB7588DA76 /* Debug */, - 7B2C4C7E1B3C0490A1F355B8 /* Release */, + 2DDD10E59156773D9CAD8B6C /* Debug */, + CAE15D4A04CFED59A0E34DBA /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 52C613B78299A642DA84F900 /* Build configuration list for PBXNativeTarget "Pods-Blog-Mantle" */ = { + 70BBF7D3729BA8616D8B2FD5 /* Build configuration list for PBXNativeTarget "Pods-samhuri.net" */ = { isa = XCConfigurationList; buildConfigurations = ( - 8CB745E429CCA7190C8B46DE /* Debug */, - 8E6C3BD56D1DC8DB74125F67 /* Release */, + 5FD824BFC1C74F3B3DB84BAE /* Debug */, + 5032B394B9678066E35818F7 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 5E28E1F2D420577545A9FA4E /* Build configuration list for PBXNativeTarget "Pods-samhuri.net-ObjectiveSugar" */ = { + 79F0341A2504B1F86B005E20 /* Build configuration list for PBXNativeTarget "Pods-Blog-MBProgressHUD" */ = { isa = XCConfigurationList; buildConfigurations = ( - 9E735EFF5F0076D633E7B583 /* Debug */, - 8491944B8E3F8BEFD0366BE8 /* Release */, + 36425B03E024CEB52E4239B0 /* Debug */, + CF4A8CACCFCA18C0207DC3FA /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 6058D413CA97B93DE2E858D5 /* Build configuration list for PBXNativeTarget "Pods-Blog-FontAwesome+iOS" */ = { + 7C25E69DFD815A6C89871A60 /* Build configuration list for PBXNativeTarget "Pods-Blog" */ = { isa = XCConfigurationList; buildConfigurations = ( - 420F50AB06EF4B6D6500E5BC /* Debug */, - 4438937B6571D9160166DB11 /* Release */, + A5029A7351F4B685927645E0 /* Debug */, + 37CB2076604AF115F25701FC /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - A00C0F5AEE4F93EA74E931D9 /* Build configuration list for PBXNativeTarget "Pods-Blog-OMGHTTPURLRQ" */ = { + 8A30BAD25CD9D6ACF3691A14 /* Build configuration list for PBXNativeTarget "Pods-Blog-PromiseKit" */ = { isa = XCConfigurationList; buildConfigurations = ( - 4BFF36A9A1B444A1E1DA7213 /* Debug */, - B74BDC312757BC992A13F1A0 /* Release */, + 766933A7A59A8F43A242C40F /* Debug */, + AD1C41DD3BB3869BD7AA2F85 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - A51BD2E1FF08BDEA468650E6 /* Build configuration list for PBXNativeTarget "Pods-samhuri.net" */ = { + 97A7AC948FCA53B8F0FF1A7C /* Build configuration list for PBXNativeTarget "Pods-samhuri.net-Mantle" */ = { isa = XCConfigurationList; buildConfigurations = ( - 2895A788E5015389F61AEE36 /* Debug */, - A4CD0401091E683181CAE7FC /* Release */, + 90140E78A825893EF6A01E9D /* Debug */, + 551CE701C85745BAE1BC02D5 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - AA3C714921D2D1EAD286C45F /* Build configuration list for PBXNativeTarget "Pods-samhuri.net-OMGHTTPURLRQ" */ = { + 9A3789981911518AD8EE497F /* Build configuration list for PBXNativeTarget "Pods-samhuri.net-YapDatabase" */ = { isa = XCConfigurationList; buildConfigurations = ( - B3EE481DD18620D2E174A47F /* Debug */, - 817483E2CA469A7729D7EB89 /* Release */, + B3D1CC9FDED0118366F845A9 /* Debug */, + BFE6DF80E26E43DF0616070E /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - AEFAAFF858B0A12530A0E43F /* Build configuration list for PBXNativeTarget "Pods-samhuri.net-Mantle" */ = { + B699A82D9D86CF9B9B7B861B /* Build configuration list for PBXNativeTarget "Pods-samhuri.net-MBProgressHUD" */ = { isa = XCConfigurationList; buildConfigurations = ( - 0D60E69A264730B65CC065E4 /* Debug */, - B1BFE4F7A9D4EA7E8517F440 /* Release */, + 6DF9602AE913454DC49BABB4 /* Debug */, + CF52B9323446A32CB42DCE8F /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - B0438ECC7C054C84E486C2D5 /* Build configuration list for PBXNativeTarget "Pods-samhuri.net-MBProgressHUD" */ = { + C7D9DBA985F63FC589B5384A /* Build configuration list for PBXNativeTarget "Pods-Blog-ObjectiveSugar" */ = { isa = XCConfigurationList; buildConfigurations = ( - DEEBC5AF6F4EC41B44599D4F /* Debug */, - 22AF40ACE47E737511F923C3 /* Release */, + 98D1E0C9537D925DB5F57E9D /* Debug */, + D986CF0F024C0F07ED0B282C /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - B72526DC157D53DCC9EBEC02 /* Build configuration list for PBXNativeTarget "Pods-Blog-MBProgressHUD" */ = { + CA73833601EBC26F94CD9ED5 /* Build configuration list for PBXNativeTarget "Pods-Blog-YapDatabase" */ = { isa = XCConfigurationList; buildConfigurations = ( - 8FE11EA04B4B29541EA3003C /* Debug */, - 3E440EF3EA8F69FCB359F115 /* Release */, + FBDE8545B99104929DE471B8 /* Debug */, + 8DE0D132772B46FC24052602 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - CAC4770AC10A76585FD9B415 /* Build configuration list for PBXNativeTarget "Pods-Blog-YapDatabase" */ = { + CBB13C5EE7C728683DDCE3EE /* Build configuration list for PBXNativeTarget "Pods-Blog-dyci" */ = { isa = XCConfigurationList; buildConfigurations = ( - A2E36BF8FBDC31E3568FF2EA /* Debug */, - 042BE819E2C5664553CFDA21 /* Release */, + 7A6D7AB08D990B065CBB3A05 /* Debug */, + 2DABB3AC5C001A52AE7BA074 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - CDCCF93963E8CAD941AD6ACB /* Build configuration list for PBXNativeTarget "Pods-samhuri.net-CocoaLumberjack" */ = { + D049D6491BD63896D9A1D2F7 /* Build configuration list for PBXProject "Pods" */ = { isa = XCConfigurationList; buildConfigurations = ( - 63D51B4E5108480BBD4024C8 /* Debug */, - 75DD6E66127058DF0456EBB8 /* Release */, + 3A849FFC2BB1037E8CDF6852 /* Debug */, + FAA34581F65A02F7C2DE77FF /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - DDCB4975909340406701ACB9 /* Build configuration list for PBXNativeTarget "Pods-Blog-PromiseKit" */ = { + D19E9045784D2E224D2D8179 /* Build configuration list for PBXNativeTarget "Pods-Blog-OMGHTTPURLRQ" */ = { isa = XCConfigurationList; buildConfigurations = ( - D6ED7E88152678C371C1ED33 /* Debug */, - 3181B61BE4C382F253005760 /* Release */, + DB3A15CACB46E667CA5F426D /* Debug */, + 592533A8B3BFF4253C3D65FD /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - DFF063EC28FE2A0E7BDFEEBF /* Build configuration list for PBXNativeTarget "Pods-Blog" */ = { + D873DB9A461ED64BB9ADFC6C /* Build configuration list for PBXNativeTarget "Pods-Blog-HockeySDK-HockeySDKResources" */ = { isa = XCConfigurationList; buildConfigurations = ( - 5F1077F3B831021D37253215 /* Debug */, - 54BD02D5F83271A83FD3472F /* Release */, + 3F954D7F9525E453A3568D82 /* Debug */, + E26A90B4BF790EF15C55262C /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - E681C78800F48859D569B38B /* Build configuration list for PBXNativeTarget "Pods-Blog-CocoaLumberjack" */ = { + E479DA08961544109E5191EF /* Build configuration list for PBXNativeTarget "Pods-samhuri.net-PromiseKit" */ = { isa = XCConfigurationList; buildConfigurations = ( - 11C1D66ED9FDC7D599C7509A /* Debug */, - A9C8D3A5904E9BD6C5D5AF7B /* Release */, + 72AC371D08B5BACA2071F92B /* Debug */, + 9AD2972A5B546634AC547CF8 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - EA78A9B0C73FE27B74EBD569 /* Build configuration list for PBXNativeTarget "Pods-samhuri.net-PromiseKit" */ = { + E4E6D06ED821910D5ED29DC3 /* Build configuration list for PBXNativeTarget "Pods-Blog-HockeySDK" */ = { isa = XCConfigurationList; buildConfigurations = ( - C4D6B7406D79E4FF81EFCB3B /* Debug */, - 0FD8C1875CC97E302346B514 /* Release */, + A66EFE36D6C107BFB7F51D8F /* Debug */, + 799FB7B6883994AB9285242A /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - EECD8A7F06A03367385E9225 /* Build configuration list for PBXNativeTarget "Pods-Blog-libextobjc" */ = { + E615E6F99D120BF3DE46E253 /* Build configuration list for PBXNativeTarget "Pods-Blog-FontAwesome+iOS" */ = { isa = XCConfigurationList; buildConfigurations = ( - 49B75DA8C6783836DE6F8647 /* Debug */, - 3164A9BC33FBEBFF32BB17D3 /* Release */, + 542B3C13756B16F539577E00 /* Debug */, + A73272AA4D1CC936CDD348B1 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + F2ED7DC722C611BD763BC578 /* Build configuration list for PBXNativeTarget "Pods-samhuri.net-ObjectiveSugar" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + DCAF0618555A3306BAC7ABF4 /* Debug */, + 8BE288A64C41E48D2DB704F5 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + FB5B643E8C2A2281C57B5244 /* Build configuration list for PBXNativeTarget "Pods-samhuri.net-OMGHTTPURLRQ" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 1861E6EBE10E3EE5D150C0F1 /* Debug */, + D7EA874DA6B4740ED1B68257 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; /* End XCConfigurationList section */ }; - rootObject = F48EAC7D00BA4A53AF0DA9EC /* Project object */; + rootObject = 0F1F25E390D54FDB68B253BB /* Project object */; } diff --git a/Pods/Pods.xcodeproj/xcshareddata/xcschemes/Pods-Blog-HockeySDK-HockeySDKResources.xcscheme b/Pods/Pods.xcodeproj/xcshareddata/xcschemes/Pods-Blog-HockeySDK-HockeySDKResources.xcscheme new file mode 100644 index 0000000..5b1866c --- /dev/null +++ b/Pods/Pods.xcodeproj/xcshareddata/xcschemes/Pods-Blog-HockeySDK-HockeySDKResources.xcscheme @@ -0,0 +1,68 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Pods/Pods.xcodeproj/xcshareddata/xcschemes/Pods-Blog-HockeySDK.xcscheme b/Pods/Pods.xcodeproj/xcshareddata/xcschemes/Pods-Blog-HockeySDK.xcscheme new file mode 100644 index 0000000..5c3fb60 --- /dev/null +++ b/Pods/Pods.xcodeproj/xcshareddata/xcschemes/Pods-Blog-HockeySDK.xcscheme @@ -0,0 +1,68 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Pods/Pods.xcodeproj/xcshareddata/xcschemes/Pods-Blog.xcscheme b/Pods/Pods.xcodeproj/xcshareddata/xcschemes/Pods-Blog.xcscheme index 3fd27ba..35baa2f 100644 --- a/Pods/Pods.xcodeproj/xcshareddata/xcschemes/Pods-Blog.xcscheme +++ b/Pods/Pods.xcodeproj/xcshareddata/xcschemes/Pods-Blog.xcscheme @@ -1,13 +1,20 @@ - + + buildForTesting = "YES" + buildForRunning = "YES" + buildForProfiling = "YES" + buildForArchiving = "YES" + buildForAnalyzing = "YES"> @@ -15,17 +22,47 @@ - - + + + + + + BlueprintIdentifier = "C9EB5C0B5F4617117D7E8FE4" + BuildableName = "libPods-Blog.a" + BlueprintName = "Pods-Blog" + ReferencedContainer = "container:Pods.xcodeproj"> - + + + + + + + + + diff --git a/Pods/Target Support Files/Pods-Blog-CocoaLumberjack/Pods-Blog-CocoaLumberjack-Private.xcconfig b/Pods/Target Support Files/Pods-Blog-CocoaLumberjack/Pods-Blog-CocoaLumberjack-Private.xcconfig index 5345711..d7a020c 100644 --- a/Pods/Target Support Files/Pods-Blog-CocoaLumberjack/Pods-Blog-CocoaLumberjack-Private.xcconfig +++ b/Pods/Target Support Files/Pods-Blog-CocoaLumberjack/Pods-Blog-CocoaLumberjack-Private.xcconfig @@ -1,6 +1,6 @@ #include "Pods-Blog-CocoaLumberjack.xcconfig" GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 -HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/CocoaLumberjack" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/CocoaLumberjack" "${PODS_ROOT}/Headers/Public/FontAwesome+iOS" "${PODS_ROOT}/Headers/Public/MBProgressHUD" "${PODS_ROOT}/Headers/Public/Mantle" "${PODS_ROOT}/Headers/Public/OMGHTTPURLRQ" "${PODS_ROOT}/Headers/Public/ObjectiveSugar" "${PODS_ROOT}/Headers/Public/PromiseKit" "${PODS_ROOT}/Headers/Public/YapDatabase" "${PODS_ROOT}/Headers/Public/dyci" "${PODS_ROOT}/Headers/Public/libextobjc" +HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/CocoaLumberjack" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/CocoaLumberjack" "${PODS_ROOT}/Headers/Public/FontAwesome+iOS" "${PODS_ROOT}/Headers/Public/HockeySDK" "${PODS_ROOT}/Headers/Public/MBProgressHUD" "${PODS_ROOT}/Headers/Public/Mantle" "${PODS_ROOT}/Headers/Public/OMGHTTPURLRQ" "${PODS_ROOT}/Headers/Public/ObjectiveSugar" "${PODS_ROOT}/Headers/Public/PromiseKit" "${PODS_ROOT}/Headers/Public/YapDatabase" "${PODS_ROOT}/Headers/Public/dyci" "${PODS_ROOT}/Headers/Public/libextobjc" OTHER_LDFLAGS = -ObjC PODS_ROOT = ${SRCROOT} SKIP_INSTALL = YES \ No newline at end of file diff --git a/Pods/Target Support Files/Pods-Blog-FontAwesome+iOS/Pods-Blog-FontAwesome+iOS-Private.xcconfig b/Pods/Target Support Files/Pods-Blog-FontAwesome+iOS/Pods-Blog-FontAwesome+iOS-Private.xcconfig index fad4fea..bd7d96b 100644 --- a/Pods/Target Support Files/Pods-Blog-FontAwesome+iOS/Pods-Blog-FontAwesome+iOS-Private.xcconfig +++ b/Pods/Target Support Files/Pods-Blog-FontAwesome+iOS/Pods-Blog-FontAwesome+iOS-Private.xcconfig @@ -1,6 +1,6 @@ #include "Pods-Blog-FontAwesome+iOS.xcconfig" GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 -HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/FontAwesome+iOS" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/CocoaLumberjack" "${PODS_ROOT}/Headers/Public/FontAwesome+iOS" "${PODS_ROOT}/Headers/Public/MBProgressHUD" "${PODS_ROOT}/Headers/Public/Mantle" "${PODS_ROOT}/Headers/Public/OMGHTTPURLRQ" "${PODS_ROOT}/Headers/Public/ObjectiveSugar" "${PODS_ROOT}/Headers/Public/PromiseKit" "${PODS_ROOT}/Headers/Public/YapDatabase" "${PODS_ROOT}/Headers/Public/dyci" "${PODS_ROOT}/Headers/Public/libextobjc" +HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/FontAwesome+iOS" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/CocoaLumberjack" "${PODS_ROOT}/Headers/Public/FontAwesome+iOS" "${PODS_ROOT}/Headers/Public/HockeySDK" "${PODS_ROOT}/Headers/Public/MBProgressHUD" "${PODS_ROOT}/Headers/Public/Mantle" "${PODS_ROOT}/Headers/Public/OMGHTTPURLRQ" "${PODS_ROOT}/Headers/Public/ObjectiveSugar" "${PODS_ROOT}/Headers/Public/PromiseKit" "${PODS_ROOT}/Headers/Public/YapDatabase" "${PODS_ROOT}/Headers/Public/dyci" "${PODS_ROOT}/Headers/Public/libextobjc" OTHER_LDFLAGS = ${PODS_BLOG_FONTAWESOME_IOS_OTHER_LDFLAGS} -ObjC PODS_ROOT = ${SRCROOT} SKIP_INSTALL = YES \ No newline at end of file diff --git a/Pods/Target Support Files/Pods-Blog-HockeySDK/Pods-Blog-HockeySDK-Private.xcconfig b/Pods/Target Support Files/Pods-Blog-HockeySDK/Pods-Blog-HockeySDK-Private.xcconfig new file mode 100644 index 0000000..83c62da --- /dev/null +++ b/Pods/Target Support Files/Pods-Blog-HockeySDK/Pods-Blog-HockeySDK-Private.xcconfig @@ -0,0 +1,7 @@ +#include "Pods-Blog-HockeySDK.xcconfig" +FRAMEWORK_SEARCH_PATHS = ${PODS_BLOG_HOCKEYSDK_FRAMEWORK_SEARCH_PATHS} +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 ${PODS_BLOG_HOCKEYSDK_GCC_PREPROCESSOR_DEFINITIONS} +HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/HockeySDK" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/CocoaLumberjack" "${PODS_ROOT}/Headers/Public/FontAwesome+iOS" "${PODS_ROOT}/Headers/Public/HockeySDK" "${PODS_ROOT}/Headers/Public/MBProgressHUD" "${PODS_ROOT}/Headers/Public/Mantle" "${PODS_ROOT}/Headers/Public/OMGHTTPURLRQ" "${PODS_ROOT}/Headers/Public/ObjectiveSugar" "${PODS_ROOT}/Headers/Public/PromiseKit" "${PODS_ROOT}/Headers/Public/YapDatabase" "${PODS_ROOT}/Headers/Public/dyci" "${PODS_ROOT}/Headers/Public/libextobjc" +OTHER_LDFLAGS = ${PODS_BLOG_HOCKEYSDK_OTHER_LDFLAGS} -ObjC +PODS_ROOT = ${SRCROOT} +SKIP_INSTALL = YES \ No newline at end of file diff --git a/Pods/Target Support Files/Pods-Blog-HockeySDK/Pods-Blog-HockeySDK-dummy.m b/Pods/Target Support Files/Pods-Blog-HockeySDK/Pods-Blog-HockeySDK-dummy.m new file mode 100644 index 0000000..fce6830 --- /dev/null +++ b/Pods/Target Support Files/Pods-Blog-HockeySDK/Pods-Blog-HockeySDK-dummy.m @@ -0,0 +1,5 @@ +#import +@interface PodsDummy_Pods_Blog_HockeySDK : NSObject +@end +@implementation PodsDummy_Pods_Blog_HockeySDK +@end diff --git a/Pods/Target Support Files/Pods-Blog-HockeySDK/Pods-Blog-HockeySDK-prefix.pch b/Pods/Target Support Files/Pods-Blog-HockeySDK/Pods-Blog-HockeySDK-prefix.pch new file mode 100644 index 0000000..36d0b4d --- /dev/null +++ b/Pods/Target Support Files/Pods-Blog-HockeySDK/Pods-Blog-HockeySDK-prefix.pch @@ -0,0 +1,5 @@ +#ifdef __OBJC__ +#import +#endif + +#import "Pods-Blog-environment.h" diff --git a/Pods/Target Support Files/Pods-Blog-HockeySDK/Pods-Blog-HockeySDK.xcconfig b/Pods/Target Support Files/Pods-Blog-HockeySDK/Pods-Blog-HockeySDK.xcconfig new file mode 100644 index 0000000..80b97cc --- /dev/null +++ b/Pods/Target Support Files/Pods-Blog-HockeySDK/Pods-Blog-HockeySDK.xcconfig @@ -0,0 +1,3 @@ +PODS_BLOG_HOCKEYSDK_FRAMEWORK_SEARCH_PATHS = "$(PODS_ROOT)/HockeySDK/Vendor" +PODS_BLOG_HOCKEYSDK_GCC_PREPROCESSOR_DEFINITIONS = $(inherited) BITHOCKEY_VERSION="@\"3.6.4\"" BITHOCKEY_C_VERSION="\"3.6.4\"" BITHOCKEY_BUILD="@\"38\"" BITHOCKEY_C_BUILD="\"38\"" +PODS_BLOG_HOCKEYSDK_OTHER_LDFLAGS = -framework "AssetsLibrary" -framework "CoreGraphics" -framework "CoreText" -framework "CrashReporter" -framework "MobileCoreServices" -framework "QuartzCore" -framework "QuickLook" -framework "Security" -framework "SystemConfiguration" -framework "UIKit" \ No newline at end of file diff --git a/Pods/Target Support Files/Pods-Blog-MBProgressHUD/Pods-Blog-MBProgressHUD-Private.xcconfig b/Pods/Target Support Files/Pods-Blog-MBProgressHUD/Pods-Blog-MBProgressHUD-Private.xcconfig index 9e83fa4..ac35e19 100644 --- a/Pods/Target Support Files/Pods-Blog-MBProgressHUD/Pods-Blog-MBProgressHUD-Private.xcconfig +++ b/Pods/Target Support Files/Pods-Blog-MBProgressHUD/Pods-Blog-MBProgressHUD-Private.xcconfig @@ -1,6 +1,6 @@ #include "Pods-Blog-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/CocoaLumberjack" "${PODS_ROOT}/Headers/Public/FontAwesome+iOS" "${PODS_ROOT}/Headers/Public/MBProgressHUD" "${PODS_ROOT}/Headers/Public/Mantle" "${PODS_ROOT}/Headers/Public/OMGHTTPURLRQ" "${PODS_ROOT}/Headers/Public/ObjectiveSugar" "${PODS_ROOT}/Headers/Public/PromiseKit" "${PODS_ROOT}/Headers/Public/YapDatabase" "${PODS_ROOT}/Headers/Public/dyci" "${PODS_ROOT}/Headers/Public/libextobjc" +HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/MBProgressHUD" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/CocoaLumberjack" "${PODS_ROOT}/Headers/Public/FontAwesome+iOS" "${PODS_ROOT}/Headers/Public/HockeySDK" "${PODS_ROOT}/Headers/Public/MBProgressHUD" "${PODS_ROOT}/Headers/Public/Mantle" "${PODS_ROOT}/Headers/Public/OMGHTTPURLRQ" "${PODS_ROOT}/Headers/Public/ObjectiveSugar" "${PODS_ROOT}/Headers/Public/PromiseKit" "${PODS_ROOT}/Headers/Public/YapDatabase" "${PODS_ROOT}/Headers/Public/dyci" "${PODS_ROOT}/Headers/Public/libextobjc" OTHER_LDFLAGS = ${PODS_BLOG_MBPROGRESSHUD_OTHER_LDFLAGS} -ObjC PODS_ROOT = ${SRCROOT} SKIP_INSTALL = YES \ No newline at end of file diff --git a/Pods/Target Support Files/Pods-Blog-Mantle/Pods-Blog-Mantle-Private.xcconfig b/Pods/Target Support Files/Pods-Blog-Mantle/Pods-Blog-Mantle-Private.xcconfig index bcd4654..3ccdb26 100644 --- a/Pods/Target Support Files/Pods-Blog-Mantle/Pods-Blog-Mantle-Private.xcconfig +++ b/Pods/Target Support Files/Pods-Blog-Mantle/Pods-Blog-Mantle-Private.xcconfig @@ -1,6 +1,6 @@ #include "Pods-Blog-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/CocoaLumberjack" "${PODS_ROOT}/Headers/Public/FontAwesome+iOS" "${PODS_ROOT}/Headers/Public/MBProgressHUD" "${PODS_ROOT}/Headers/Public/Mantle" "${PODS_ROOT}/Headers/Public/OMGHTTPURLRQ" "${PODS_ROOT}/Headers/Public/ObjectiveSugar" "${PODS_ROOT}/Headers/Public/PromiseKit" "${PODS_ROOT}/Headers/Public/YapDatabase" "${PODS_ROOT}/Headers/Public/dyci" "${PODS_ROOT}/Headers/Public/libextobjc" +HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/Mantle" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/CocoaLumberjack" "${PODS_ROOT}/Headers/Public/FontAwesome+iOS" "${PODS_ROOT}/Headers/Public/HockeySDK" "${PODS_ROOT}/Headers/Public/MBProgressHUD" "${PODS_ROOT}/Headers/Public/Mantle" "${PODS_ROOT}/Headers/Public/OMGHTTPURLRQ" "${PODS_ROOT}/Headers/Public/ObjectiveSugar" "${PODS_ROOT}/Headers/Public/PromiseKit" "${PODS_ROOT}/Headers/Public/YapDatabase" "${PODS_ROOT}/Headers/Public/dyci" "${PODS_ROOT}/Headers/Public/libextobjc" OTHER_LDFLAGS = ${PODS_BLOG_MANTLE_OTHER_LDFLAGS} -ObjC PODS_ROOT = ${SRCROOT} SKIP_INSTALL = YES \ No newline at end of file diff --git a/Pods/Target Support Files/Pods-Blog-OMGHTTPURLRQ/Pods-Blog-OMGHTTPURLRQ-Private.xcconfig b/Pods/Target Support Files/Pods-Blog-OMGHTTPURLRQ/Pods-Blog-OMGHTTPURLRQ-Private.xcconfig index 50d8115..d4eb5b7 100644 --- a/Pods/Target Support Files/Pods-Blog-OMGHTTPURLRQ/Pods-Blog-OMGHTTPURLRQ-Private.xcconfig +++ b/Pods/Target Support Files/Pods-Blog-OMGHTTPURLRQ/Pods-Blog-OMGHTTPURLRQ-Private.xcconfig @@ -1,6 +1,6 @@ #include "Pods-Blog-OMGHTTPURLRQ.xcconfig" GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 -HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/OMGHTTPURLRQ" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/CocoaLumberjack" "${PODS_ROOT}/Headers/Public/FontAwesome+iOS" "${PODS_ROOT}/Headers/Public/MBProgressHUD" "${PODS_ROOT}/Headers/Public/Mantle" "${PODS_ROOT}/Headers/Public/OMGHTTPURLRQ" "${PODS_ROOT}/Headers/Public/ObjectiveSugar" "${PODS_ROOT}/Headers/Public/PromiseKit" "${PODS_ROOT}/Headers/Public/YapDatabase" "${PODS_ROOT}/Headers/Public/dyci" "${PODS_ROOT}/Headers/Public/libextobjc" +HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/OMGHTTPURLRQ" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/CocoaLumberjack" "${PODS_ROOT}/Headers/Public/FontAwesome+iOS" "${PODS_ROOT}/Headers/Public/HockeySDK" "${PODS_ROOT}/Headers/Public/MBProgressHUD" "${PODS_ROOT}/Headers/Public/Mantle" "${PODS_ROOT}/Headers/Public/OMGHTTPURLRQ" "${PODS_ROOT}/Headers/Public/ObjectiveSugar" "${PODS_ROOT}/Headers/Public/PromiseKit" "${PODS_ROOT}/Headers/Public/YapDatabase" "${PODS_ROOT}/Headers/Public/dyci" "${PODS_ROOT}/Headers/Public/libextobjc" OTHER_LDFLAGS = -ObjC PODS_ROOT = ${SRCROOT} SKIP_INSTALL = YES \ No newline at end of file diff --git a/Pods/Target Support Files/Pods-Blog-ObjectiveSugar/Pods-Blog-ObjectiveSugar-Private.xcconfig b/Pods/Target Support Files/Pods-Blog-ObjectiveSugar/Pods-Blog-ObjectiveSugar-Private.xcconfig index 3b1d4a9..23e7930 100644 --- a/Pods/Target Support Files/Pods-Blog-ObjectiveSugar/Pods-Blog-ObjectiveSugar-Private.xcconfig +++ b/Pods/Target Support Files/Pods-Blog-ObjectiveSugar/Pods-Blog-ObjectiveSugar-Private.xcconfig @@ -1,6 +1,6 @@ #include "Pods-Blog-ObjectiveSugar.xcconfig" GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 -HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/ObjectiveSugar" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/CocoaLumberjack" "${PODS_ROOT}/Headers/Public/FontAwesome+iOS" "${PODS_ROOT}/Headers/Public/MBProgressHUD" "${PODS_ROOT}/Headers/Public/Mantle" "${PODS_ROOT}/Headers/Public/OMGHTTPURLRQ" "${PODS_ROOT}/Headers/Public/ObjectiveSugar" "${PODS_ROOT}/Headers/Public/PromiseKit" "${PODS_ROOT}/Headers/Public/YapDatabase" "${PODS_ROOT}/Headers/Public/dyci" "${PODS_ROOT}/Headers/Public/libextobjc" +HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/ObjectiveSugar" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/CocoaLumberjack" "${PODS_ROOT}/Headers/Public/FontAwesome+iOS" "${PODS_ROOT}/Headers/Public/HockeySDK" "${PODS_ROOT}/Headers/Public/MBProgressHUD" "${PODS_ROOT}/Headers/Public/Mantle" "${PODS_ROOT}/Headers/Public/OMGHTTPURLRQ" "${PODS_ROOT}/Headers/Public/ObjectiveSugar" "${PODS_ROOT}/Headers/Public/PromiseKit" "${PODS_ROOT}/Headers/Public/YapDatabase" "${PODS_ROOT}/Headers/Public/dyci" "${PODS_ROOT}/Headers/Public/libextobjc" OTHER_LDFLAGS = -ObjC PODS_ROOT = ${SRCROOT} SKIP_INSTALL = YES \ No newline at end of file diff --git a/Pods/Target Support Files/Pods-Blog-PromiseKit/Pods-Blog-PromiseKit-Private.xcconfig b/Pods/Target Support Files/Pods-Blog-PromiseKit/Pods-Blog-PromiseKit-Private.xcconfig index 846101a..29435aa 100644 --- a/Pods/Target Support Files/Pods-Blog-PromiseKit/Pods-Blog-PromiseKit-Private.xcconfig +++ b/Pods/Target Support Files/Pods-Blog-PromiseKit/Pods-Blog-PromiseKit-Private.xcconfig @@ -1,6 +1,6 @@ #include "Pods-Blog-PromiseKit.xcconfig" GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 ${PODS_BLOG_PROMISEKIT_GCC_PREPROCESSOR_DEFINITIONS} -HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/PromiseKit" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/CocoaLumberjack" "${PODS_ROOT}/Headers/Public/FontAwesome+iOS" "${PODS_ROOT}/Headers/Public/MBProgressHUD" "${PODS_ROOT}/Headers/Public/Mantle" "${PODS_ROOT}/Headers/Public/OMGHTTPURLRQ" "${PODS_ROOT}/Headers/Public/ObjectiveSugar" "${PODS_ROOT}/Headers/Public/PromiseKit" "${PODS_ROOT}/Headers/Public/YapDatabase" "${PODS_ROOT}/Headers/Public/dyci" "${PODS_ROOT}/Headers/Public/libextobjc" +HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/PromiseKit" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/CocoaLumberjack" "${PODS_ROOT}/Headers/Public/FontAwesome+iOS" "${PODS_ROOT}/Headers/Public/HockeySDK" "${PODS_ROOT}/Headers/Public/MBProgressHUD" "${PODS_ROOT}/Headers/Public/Mantle" "${PODS_ROOT}/Headers/Public/OMGHTTPURLRQ" "${PODS_ROOT}/Headers/Public/ObjectiveSugar" "${PODS_ROOT}/Headers/Public/PromiseKit" "${PODS_ROOT}/Headers/Public/YapDatabase" "${PODS_ROOT}/Headers/Public/dyci" "${PODS_ROOT}/Headers/Public/libextobjc" OTHER_LDFLAGS = ${PODS_BLOG_PROMISEKIT_OTHER_LDFLAGS} -ObjC PODS_ROOT = ${SRCROOT} SKIP_INSTALL = YES \ No newline at end of file diff --git a/Pods/Target Support Files/Pods-Blog-YapDatabase/Pods-Blog-YapDatabase-Private.xcconfig b/Pods/Target Support Files/Pods-Blog-YapDatabase/Pods-Blog-YapDatabase-Private.xcconfig index febbb8e..3b9ed9b 100644 --- a/Pods/Target Support Files/Pods-Blog-YapDatabase/Pods-Blog-YapDatabase-Private.xcconfig +++ b/Pods/Target Support Files/Pods-Blog-YapDatabase/Pods-Blog-YapDatabase-Private.xcconfig @@ -1,6 +1,6 @@ #include "Pods-Blog-YapDatabase.xcconfig" GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 -HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/YapDatabase" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/CocoaLumberjack" "${PODS_ROOT}/Headers/Public/FontAwesome+iOS" "${PODS_ROOT}/Headers/Public/MBProgressHUD" "${PODS_ROOT}/Headers/Public/Mantle" "${PODS_ROOT}/Headers/Public/OMGHTTPURLRQ" "${PODS_ROOT}/Headers/Public/ObjectiveSugar" "${PODS_ROOT}/Headers/Public/PromiseKit" "${PODS_ROOT}/Headers/Public/YapDatabase" "${PODS_ROOT}/Headers/Public/dyci" "${PODS_ROOT}/Headers/Public/libextobjc" +HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/YapDatabase" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/CocoaLumberjack" "${PODS_ROOT}/Headers/Public/FontAwesome+iOS" "${PODS_ROOT}/Headers/Public/HockeySDK" "${PODS_ROOT}/Headers/Public/MBProgressHUD" "${PODS_ROOT}/Headers/Public/Mantle" "${PODS_ROOT}/Headers/Public/OMGHTTPURLRQ" "${PODS_ROOT}/Headers/Public/ObjectiveSugar" "${PODS_ROOT}/Headers/Public/PromiseKit" "${PODS_ROOT}/Headers/Public/YapDatabase" "${PODS_ROOT}/Headers/Public/dyci" "${PODS_ROOT}/Headers/Public/libextobjc" OTHER_LDFLAGS = ${PODS_BLOG_YAPDATABASE_OTHER_LDFLAGS} -ObjC PODS_ROOT = ${SRCROOT} SKIP_INSTALL = YES \ No newline at end of file diff --git a/Pods/Target Support Files/Pods-Blog-dyci/Pods-Blog-dyci-Private.xcconfig b/Pods/Target Support Files/Pods-Blog-dyci/Pods-Blog-dyci-Private.xcconfig index ce331fd..6e76cf9 100644 --- a/Pods/Target Support Files/Pods-Blog-dyci/Pods-Blog-dyci-Private.xcconfig +++ b/Pods/Target Support Files/Pods-Blog-dyci/Pods-Blog-dyci-Private.xcconfig @@ -1,6 +1,6 @@ #include "Pods-Blog-dyci.xcconfig" GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 -HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/dyci" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/CocoaLumberjack" "${PODS_ROOT}/Headers/Public/FontAwesome+iOS" "${PODS_ROOT}/Headers/Public/MBProgressHUD" "${PODS_ROOT}/Headers/Public/Mantle" "${PODS_ROOT}/Headers/Public/OMGHTTPURLRQ" "${PODS_ROOT}/Headers/Public/ObjectiveSugar" "${PODS_ROOT}/Headers/Public/PromiseKit" "${PODS_ROOT}/Headers/Public/YapDatabase" "${PODS_ROOT}/Headers/Public/dyci" "${PODS_ROOT}/Headers/Public/libextobjc" +HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/dyci" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/CocoaLumberjack" "${PODS_ROOT}/Headers/Public/FontAwesome+iOS" "${PODS_ROOT}/Headers/Public/HockeySDK" "${PODS_ROOT}/Headers/Public/MBProgressHUD" "${PODS_ROOT}/Headers/Public/Mantle" "${PODS_ROOT}/Headers/Public/OMGHTTPURLRQ" "${PODS_ROOT}/Headers/Public/ObjectiveSugar" "${PODS_ROOT}/Headers/Public/PromiseKit" "${PODS_ROOT}/Headers/Public/YapDatabase" "${PODS_ROOT}/Headers/Public/dyci" "${PODS_ROOT}/Headers/Public/libextobjc" OTHER_LDFLAGS = -ObjC PODS_ROOT = ${SRCROOT} SKIP_INSTALL = YES \ No newline at end of file diff --git a/Pods/Target Support Files/Pods-Blog-libextobjc/Pods-Blog-libextobjc-Private.xcconfig b/Pods/Target Support Files/Pods-Blog-libextobjc/Pods-Blog-libextobjc-Private.xcconfig index e7e6935..2ef3c50 100644 --- a/Pods/Target Support Files/Pods-Blog-libextobjc/Pods-Blog-libextobjc-Private.xcconfig +++ b/Pods/Target Support Files/Pods-Blog-libextobjc/Pods-Blog-libextobjc-Private.xcconfig @@ -1,6 +1,6 @@ #include "Pods-Blog-libextobjc.xcconfig" GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 -HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/libextobjc" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/CocoaLumberjack" "${PODS_ROOT}/Headers/Public/FontAwesome+iOS" "${PODS_ROOT}/Headers/Public/MBProgressHUD" "${PODS_ROOT}/Headers/Public/Mantle" "${PODS_ROOT}/Headers/Public/OMGHTTPURLRQ" "${PODS_ROOT}/Headers/Public/ObjectiveSugar" "${PODS_ROOT}/Headers/Public/PromiseKit" "${PODS_ROOT}/Headers/Public/YapDatabase" "${PODS_ROOT}/Headers/Public/dyci" "${PODS_ROOT}/Headers/Public/libextobjc" +HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/libextobjc" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/CocoaLumberjack" "${PODS_ROOT}/Headers/Public/FontAwesome+iOS" "${PODS_ROOT}/Headers/Public/HockeySDK" "${PODS_ROOT}/Headers/Public/MBProgressHUD" "${PODS_ROOT}/Headers/Public/Mantle" "${PODS_ROOT}/Headers/Public/OMGHTTPURLRQ" "${PODS_ROOT}/Headers/Public/ObjectiveSugar" "${PODS_ROOT}/Headers/Public/PromiseKit" "${PODS_ROOT}/Headers/Public/YapDatabase" "${PODS_ROOT}/Headers/Public/dyci" "${PODS_ROOT}/Headers/Public/libextobjc" OTHER_LDFLAGS = -ObjC PODS_ROOT = ${SRCROOT} SKIP_INSTALL = YES \ No newline at end of file diff --git a/Pods/Target Support Files/Pods-Blog/Pods-Blog-acknowledgements.markdown b/Pods/Target Support Files/Pods-Blog/Pods-Blog-acknowledgements.markdown index 8b53122..a37d006 100644 --- a/Pods/Target Support Files/Pods-Blog/Pods-Blog-acknowledgements.markdown +++ b/Pods/Target Support Files/Pods-Blog/Pods-Blog-acknowledgements.markdown @@ -27,6 +27,134 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND This project uses the FontAwesome fix made by Pit Garbe that you can find at https://github.com/leberwurstsaft/FontAwesome-for-iOS Version 2.0 of the Font Awesome font, CSS, and LESS files are licensed under CC BY 3.0: http://creativecommons.org/licenses/by/3.0/ A mention of 'Font Awesome - http://fortawesome.github.com/Font-Awesome' in human-readable source code is considered acceptable attribution (most common on the web). If human readable source code is not available to the end user, a mention in an 'About' or 'Credits' screen is considered acceptable (most common in desktop or mobile software) +## HockeySDK + +## Licenses + +The Hockey SDK is provided under the following license: + + The MIT License + Copyright (c) 2012-2015 HockeyApp, Bit Stadium GmbH. + All rights reserved. + + Permission is hereby granted, free of charge, to any person + obtaining a copy of this software and associated documentation + files (the "Software"), to deal in the Software without + restriction, including without limitation the rights to use, + copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the + Software is furnished to do so, subject to the following + conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES + OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT + HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + OTHER DEALINGS IN THE SOFTWARE. + +Except as noted below, PLCrashReporter +is provided under the following license: + + Copyright (c) 2008 - 2015 Plausible Labs Cooperative, Inc. + Copyright (c) 2012 - 2015 HockeyApp, Bit Stadium GmbH. + All rights reserved. + + Permission is hereby granted, free of charge, to any person + obtaining a copy of this software and associated documentation + files (the "Software"), to deal in the Software without + restriction, including without limitation the rights to use, + copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the + Software is furnished to do so, subject to the following + conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES + OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT + HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + OTHER DEALINGS IN THE SOFTWARE. + +The protobuf-c library, as well as the PLCrashLogWriterEncoding.c +file are licensed as follows: + + Copyright 2008, Dave Benson. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with + the License. You may obtain a copy of the License + at http://www.apache.org/licenses/LICENSE-2.0 Unless + required by applicable law or agreed to in writing, + software distributed under the License is distributed on + an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + KIND, either express or implied. See the License for the + specific language governing permissions and limitations + under the License. + +TTTAttributedLabel is licensed as follows: + + Copyright (c) 2011 Mattt Thompson (http://mattt.me/) + + 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. + +SFHFKeychainUtils is licensed as follows: + + Created by Buzz Andersen on 10/20/08. + Based partly on code by Jonathan Wight, Jon Crosby, and Mike Malone. + Copyright 2008 Sci-Fi Hi-Fi. All rights reserved. + + Permission is hereby granted, free of charge, to any person + obtaining a copy of this software and associated documentation + files (the "Software"), to deal in the Software without + restriction, including without limitation the rights to use, + copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the + Software is furnished to do so, subject to the following + conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES + OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT + HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + OTHER DEALINGS IN THE SOFTWARE. + + ## MBProgressHUD Copyright (c) 2009-2015 Matej Bukovinski diff --git a/Pods/Target Support Files/Pods-Blog/Pods-Blog-acknowledgements.plist b/Pods/Target Support Files/Pods-Blog/Pods-Blog-acknowledgements.plist index cef9831..debe3fb 100644 --- a/Pods/Target Support Files/Pods-Blog/Pods-Blog-acknowledgements.plist +++ b/Pods/Target Support Files/Pods-Blog/Pods-Blog-acknowledgements.plist @@ -46,6 +46,138 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND Type PSGroupSpecifier + + FooterText + ## Licenses + +The Hockey SDK is provided under the following license: + + The MIT License + Copyright (c) 2012-2015 HockeyApp, Bit Stadium GmbH. + All rights reserved. + + Permission is hereby granted, free of charge, to any person + obtaining a copy of this software and associated documentation + files (the "Software"), to deal in the Software without + restriction, including without limitation the rights to use, + copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the + Software is furnished to do so, subject to the following + conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES + OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT + HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + OTHER DEALINGS IN THE SOFTWARE. + +Except as noted below, PLCrashReporter +is provided under the following license: + + Copyright (c) 2008 - 2015 Plausible Labs Cooperative, Inc. + Copyright (c) 2012 - 2015 HockeyApp, Bit Stadium GmbH. + All rights reserved. + + Permission is hereby granted, free of charge, to any person + obtaining a copy of this software and associated documentation + files (the "Software"), to deal in the Software without + restriction, including without limitation the rights to use, + copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the + Software is furnished to do so, subject to the following + conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES + OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT + HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + OTHER DEALINGS IN THE SOFTWARE. + +The protobuf-c library, as well as the PLCrashLogWriterEncoding.c +file are licensed as follows: + + Copyright 2008, Dave Benson. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with + the License. You may obtain a copy of the License + at http://www.apache.org/licenses/LICENSE-2.0 Unless + required by applicable law or agreed to in writing, + software distributed under the License is distributed on + an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + KIND, either express or implied. See the License for the + specific language governing permissions and limitations + under the License. + +TTTAttributedLabel is licensed as follows: + + Copyright (c) 2011 Mattt Thompson (http://mattt.me/) + + 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. + +SFHFKeychainUtils is licensed as follows: + + Created by Buzz Andersen on 10/20/08. + Based partly on code by Jonathan Wight, Jon Crosby, and Mike Malone. + Copyright 2008 Sci-Fi Hi-Fi. All rights reserved. + + Permission is hereby granted, free of charge, to any person + obtaining a copy of this software and associated documentation + files (the "Software"), to deal in the Software without + restriction, including without limitation the rights to use, + copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the + Software is furnished to do so, subject to the following + conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES + OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT + HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + OTHER DEALINGS IN THE SOFTWARE. + + Title + HockeySDK + Type + PSGroupSpecifier + FooterText Copyright (c) 2009-2015 Matej Bukovinski diff --git a/Pods/Target Support Files/Pods-Blog/Pods-Blog-environment.h b/Pods/Target Support Files/Pods-Blog/Pods-Blog-environment.h index b60356d..aea7e6b 100644 --- a/Pods/Target Support Files/Pods-Blog/Pods-Blog-environment.h +++ b/Pods/Target Support Files/Pods-Blog/Pods-Blog-environment.h @@ -30,6 +30,12 @@ #define COCOAPODS_VERSION_MINOR_FontAwesome_iOS 0 #define COCOAPODS_VERSION_PATCH_FontAwesome_iOS 1 +// HockeySDK +#define COCOAPODS_POD_AVAILABLE_HockeySDK +#define COCOAPODS_VERSION_MAJOR_HockeySDK 3 +#define COCOAPODS_VERSION_MINOR_HockeySDK 6 +#define COCOAPODS_VERSION_PATCH_HockeySDK 4 + // MBProgressHUD #define COCOAPODS_POD_AVAILABLE_MBProgressHUD #define COCOAPODS_VERSION_MAJOR_MBProgressHUD 0 diff --git a/Pods/Target Support Files/Pods-Blog/Pods-Blog-resources.sh b/Pods/Target Support Files/Pods-Blog/Pods-Blog-resources.sh index 6aa9feb..c592651 100755 --- a/Pods/Target Support Files/Pods-Blog/Pods-Blog-resources.sh +++ b/Pods/Target Support Files/Pods-Blog/Pods-Blog-resources.sh @@ -59,9 +59,11 @@ install_resource() } if [[ "$CONFIGURATION" == "Debug" ]]; then install_resource "FontAwesome+iOS/Resources/FontAwesome.ttf" + install_resource "${BUILT_PRODUCTS_DIR}/HockeySDKResources.bundle" fi if [[ "$CONFIGURATION" == "Release" ]]; then install_resource "FontAwesome+iOS/Resources/FontAwesome.ttf" + install_resource "${BUILT_PRODUCTS_DIR}/HockeySDKResources.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-Blog/Pods-Blog.debug.xcconfig b/Pods/Target Support Files/Pods-Blog/Pods-Blog.debug.xcconfig index 42ca7de..3cc8473 100644 --- a/Pods/Target Support Files/Pods-Blog/Pods-Blog.debug.xcconfig +++ b/Pods/Target Support Files/Pods-Blog/Pods-Blog.debug.xcconfig @@ -1,6 +1,7 @@ -GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 $(inherited) PMK_CALAYER=1 $(inherited) PMK_NSNOTIFICATIONCENTER=1 $(inherited) PMK_NSURLCONNECTION=1 $(inherited) PMK_PAUSE=1 $(inherited) PMK_UIACTIONSHEET=1 $(inherited) PMK_UIALERTVIEW=1 $(inherited) PMK_UIVIEW=1 $(inherited) PMK_UIVIEWCONTROLLER=1 $(inherited) PMK_UNTIL=1 $(inherited) PMK_WHEN=1 -HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/CocoaLumberjack" "${PODS_ROOT}/Headers/Public/FontAwesome+iOS" "${PODS_ROOT}/Headers/Public/MBProgressHUD" "${PODS_ROOT}/Headers/Public/Mantle" "${PODS_ROOT}/Headers/Public/OMGHTTPURLRQ" "${PODS_ROOT}/Headers/Public/ObjectiveSugar" "${PODS_ROOT}/Headers/Public/PromiseKit" "${PODS_ROOT}/Headers/Public/YapDatabase" "${PODS_ROOT}/Headers/Public/dyci" "${PODS_ROOT}/Headers/Public/libextobjc" -OTHER_CFLAGS = $(inherited) -isystem "${PODS_ROOT}/Headers/Public" -isystem "${PODS_ROOT}/Headers/Public/CocoaLumberjack" -isystem "${PODS_ROOT}/Headers/Public/FontAwesome+iOS" -isystem "${PODS_ROOT}/Headers/Public/MBProgressHUD" -isystem "${PODS_ROOT}/Headers/Public/Mantle" -isystem "${PODS_ROOT}/Headers/Public/OMGHTTPURLRQ" -isystem "${PODS_ROOT}/Headers/Public/ObjectiveSugar" -isystem "${PODS_ROOT}/Headers/Public/PromiseKit" -isystem "${PODS_ROOT}/Headers/Public/YapDatabase" -isystem "${PODS_ROOT}/Headers/Public/dyci" -isystem "${PODS_ROOT}/Headers/Public/libextobjc" -OTHER_LDFLAGS = $(inherited) -ObjC -weak_library /usr/lib/libc++.dylib -l"Pods-Blog-CocoaLumberjack" -l"Pods-Blog-FontAwesome+iOS" -l"Pods-Blog-MBProgressHUD" -l"Pods-Blog-Mantle" -l"Pods-Blog-OMGHTTPURLRQ" -l"Pods-Blog-ObjectiveSugar" -l"Pods-Blog-PromiseKit" -l"Pods-Blog-YapDatabase" -l"Pods-Blog-dyci" -l"Pods-Blog-libextobjc" -l"sqlite3" -framework "CoreGraphics" -framework "Foundation" -framework "QuartzCore" -framework "UIKit" -weak_framework "AssetsLibrary" +FRAMEWORK_SEARCH_PATHS = "$(PODS_ROOT)/HockeySDK/Vendor" +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 $(inherited) BITHOCKEY_VERSION="@\"3.6.4\"" BITHOCKEY_C_VERSION="\"3.6.4\"" BITHOCKEY_BUILD="@\"38\"" BITHOCKEY_C_BUILD="\"38\"" $(inherited) PMK_CALAYER=1 $(inherited) PMK_NSNOTIFICATIONCENTER=1 $(inherited) PMK_NSURLCONNECTION=1 $(inherited) PMK_PAUSE=1 $(inherited) PMK_UIACTIONSHEET=1 $(inherited) PMK_UIALERTVIEW=1 $(inherited) PMK_UIVIEW=1 $(inherited) PMK_UIVIEWCONTROLLER=1 $(inherited) PMK_UNTIL=1 $(inherited) PMK_WHEN=1 +HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/CocoaLumberjack" "${PODS_ROOT}/Headers/Public/FontAwesome+iOS" "${PODS_ROOT}/Headers/Public/HockeySDK" "${PODS_ROOT}/Headers/Public/MBProgressHUD" "${PODS_ROOT}/Headers/Public/Mantle" "${PODS_ROOT}/Headers/Public/OMGHTTPURLRQ" "${PODS_ROOT}/Headers/Public/ObjectiveSugar" "${PODS_ROOT}/Headers/Public/PromiseKit" "${PODS_ROOT}/Headers/Public/YapDatabase" "${PODS_ROOT}/Headers/Public/dyci" "${PODS_ROOT}/Headers/Public/libextobjc" +OTHER_CFLAGS = $(inherited) -isystem "${PODS_ROOT}/Headers/Public" -isystem "${PODS_ROOT}/Headers/Public/CocoaLumberjack" -isystem "${PODS_ROOT}/Headers/Public/FontAwesome+iOS" -isystem "${PODS_ROOT}/Headers/Public/HockeySDK" -isystem "${PODS_ROOT}/Headers/Public/MBProgressHUD" -isystem "${PODS_ROOT}/Headers/Public/Mantle" -isystem "${PODS_ROOT}/Headers/Public/OMGHTTPURLRQ" -isystem "${PODS_ROOT}/Headers/Public/ObjectiveSugar" -isystem "${PODS_ROOT}/Headers/Public/PromiseKit" -isystem "${PODS_ROOT}/Headers/Public/YapDatabase" -isystem "${PODS_ROOT}/Headers/Public/dyci" -isystem "${PODS_ROOT}/Headers/Public/libextobjc" +OTHER_LDFLAGS = $(inherited) -ObjC -weak_library /usr/lib/libc++.dylib -l"Pods-Blog-CocoaLumberjack" -l"Pods-Blog-FontAwesome+iOS" -l"Pods-Blog-HockeySDK" -l"Pods-Blog-MBProgressHUD" -l"Pods-Blog-Mantle" -l"Pods-Blog-OMGHTTPURLRQ" -l"Pods-Blog-ObjectiveSugar" -l"Pods-Blog-PromiseKit" -l"Pods-Blog-YapDatabase" -l"Pods-Blog-dyci" -l"Pods-Blog-libextobjc" -l"sqlite3" -framework "AssetsLibrary" -framework "CoreGraphics" -framework "CoreText" -framework "CrashReporter" -framework "Foundation" -framework "MobileCoreServices" -framework "QuartzCore" -framework "QuickLook" -framework "Security" -framework "SystemConfiguration" -framework "UIKit" -weak_framework "AssetsLibrary" OTHER_LIBTOOLFLAGS = $(OTHER_LDFLAGS) PODS_ROOT = ${SRCROOT}/Pods \ No newline at end of file diff --git a/Pods/Target Support Files/Pods-Blog/Pods-Blog.release.xcconfig b/Pods/Target Support Files/Pods-Blog/Pods-Blog.release.xcconfig index 42ca7de..3cc8473 100644 --- a/Pods/Target Support Files/Pods-Blog/Pods-Blog.release.xcconfig +++ b/Pods/Target Support Files/Pods-Blog/Pods-Blog.release.xcconfig @@ -1,6 +1,7 @@ -GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 $(inherited) PMK_CALAYER=1 $(inherited) PMK_NSNOTIFICATIONCENTER=1 $(inherited) PMK_NSURLCONNECTION=1 $(inherited) PMK_PAUSE=1 $(inherited) PMK_UIACTIONSHEET=1 $(inherited) PMK_UIALERTVIEW=1 $(inherited) PMK_UIVIEW=1 $(inherited) PMK_UIVIEWCONTROLLER=1 $(inherited) PMK_UNTIL=1 $(inherited) PMK_WHEN=1 -HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/CocoaLumberjack" "${PODS_ROOT}/Headers/Public/FontAwesome+iOS" "${PODS_ROOT}/Headers/Public/MBProgressHUD" "${PODS_ROOT}/Headers/Public/Mantle" "${PODS_ROOT}/Headers/Public/OMGHTTPURLRQ" "${PODS_ROOT}/Headers/Public/ObjectiveSugar" "${PODS_ROOT}/Headers/Public/PromiseKit" "${PODS_ROOT}/Headers/Public/YapDatabase" "${PODS_ROOT}/Headers/Public/dyci" "${PODS_ROOT}/Headers/Public/libextobjc" -OTHER_CFLAGS = $(inherited) -isystem "${PODS_ROOT}/Headers/Public" -isystem "${PODS_ROOT}/Headers/Public/CocoaLumberjack" -isystem "${PODS_ROOT}/Headers/Public/FontAwesome+iOS" -isystem "${PODS_ROOT}/Headers/Public/MBProgressHUD" -isystem "${PODS_ROOT}/Headers/Public/Mantle" -isystem "${PODS_ROOT}/Headers/Public/OMGHTTPURLRQ" -isystem "${PODS_ROOT}/Headers/Public/ObjectiveSugar" -isystem "${PODS_ROOT}/Headers/Public/PromiseKit" -isystem "${PODS_ROOT}/Headers/Public/YapDatabase" -isystem "${PODS_ROOT}/Headers/Public/dyci" -isystem "${PODS_ROOT}/Headers/Public/libextobjc" -OTHER_LDFLAGS = $(inherited) -ObjC -weak_library /usr/lib/libc++.dylib -l"Pods-Blog-CocoaLumberjack" -l"Pods-Blog-FontAwesome+iOS" -l"Pods-Blog-MBProgressHUD" -l"Pods-Blog-Mantle" -l"Pods-Blog-OMGHTTPURLRQ" -l"Pods-Blog-ObjectiveSugar" -l"Pods-Blog-PromiseKit" -l"Pods-Blog-YapDatabase" -l"Pods-Blog-dyci" -l"Pods-Blog-libextobjc" -l"sqlite3" -framework "CoreGraphics" -framework "Foundation" -framework "QuartzCore" -framework "UIKit" -weak_framework "AssetsLibrary" +FRAMEWORK_SEARCH_PATHS = "$(PODS_ROOT)/HockeySDK/Vendor" +GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 $(inherited) BITHOCKEY_VERSION="@\"3.6.4\"" BITHOCKEY_C_VERSION="\"3.6.4\"" BITHOCKEY_BUILD="@\"38\"" BITHOCKEY_C_BUILD="\"38\"" $(inherited) PMK_CALAYER=1 $(inherited) PMK_NSNOTIFICATIONCENTER=1 $(inherited) PMK_NSURLCONNECTION=1 $(inherited) PMK_PAUSE=1 $(inherited) PMK_UIACTIONSHEET=1 $(inherited) PMK_UIALERTVIEW=1 $(inherited) PMK_UIVIEW=1 $(inherited) PMK_UIVIEWCONTROLLER=1 $(inherited) PMK_UNTIL=1 $(inherited) PMK_WHEN=1 +HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/CocoaLumberjack" "${PODS_ROOT}/Headers/Public/FontAwesome+iOS" "${PODS_ROOT}/Headers/Public/HockeySDK" "${PODS_ROOT}/Headers/Public/MBProgressHUD" "${PODS_ROOT}/Headers/Public/Mantle" "${PODS_ROOT}/Headers/Public/OMGHTTPURLRQ" "${PODS_ROOT}/Headers/Public/ObjectiveSugar" "${PODS_ROOT}/Headers/Public/PromiseKit" "${PODS_ROOT}/Headers/Public/YapDatabase" "${PODS_ROOT}/Headers/Public/dyci" "${PODS_ROOT}/Headers/Public/libextobjc" +OTHER_CFLAGS = $(inherited) -isystem "${PODS_ROOT}/Headers/Public" -isystem "${PODS_ROOT}/Headers/Public/CocoaLumberjack" -isystem "${PODS_ROOT}/Headers/Public/FontAwesome+iOS" -isystem "${PODS_ROOT}/Headers/Public/HockeySDK" -isystem "${PODS_ROOT}/Headers/Public/MBProgressHUD" -isystem "${PODS_ROOT}/Headers/Public/Mantle" -isystem "${PODS_ROOT}/Headers/Public/OMGHTTPURLRQ" -isystem "${PODS_ROOT}/Headers/Public/ObjectiveSugar" -isystem "${PODS_ROOT}/Headers/Public/PromiseKit" -isystem "${PODS_ROOT}/Headers/Public/YapDatabase" -isystem "${PODS_ROOT}/Headers/Public/dyci" -isystem "${PODS_ROOT}/Headers/Public/libextobjc" +OTHER_LDFLAGS = $(inherited) -ObjC -weak_library /usr/lib/libc++.dylib -l"Pods-Blog-CocoaLumberjack" -l"Pods-Blog-FontAwesome+iOS" -l"Pods-Blog-HockeySDK" -l"Pods-Blog-MBProgressHUD" -l"Pods-Blog-Mantle" -l"Pods-Blog-OMGHTTPURLRQ" -l"Pods-Blog-ObjectiveSugar" -l"Pods-Blog-PromiseKit" -l"Pods-Blog-YapDatabase" -l"Pods-Blog-dyci" -l"Pods-Blog-libextobjc" -l"sqlite3" -framework "AssetsLibrary" -framework "CoreGraphics" -framework "CoreText" -framework "CrashReporter" -framework "Foundation" -framework "MobileCoreServices" -framework "QuartzCore" -framework "QuickLook" -framework "Security" -framework "SystemConfiguration" -framework "UIKit" -weak_framework "AssetsLibrary" OTHER_LIBTOOLFLAGS = $(OTHER_LDFLAGS) PODS_ROOT = ${SRCROOT}/Pods \ No newline at end of file diff --git a/Pods/Target Support Files/Pods-samhuri.net-CocoaLumberjack/Pods-samhuri.net-CocoaLumberjack-Private.xcconfig b/Pods/Target Support Files/Pods-samhuri.net-CocoaLumberjack/Pods-samhuri.net-CocoaLumberjack-Private.xcconfig index acf7618..6726b65 100644 --- a/Pods/Target Support Files/Pods-samhuri.net-CocoaLumberjack/Pods-samhuri.net-CocoaLumberjack-Private.xcconfig +++ b/Pods/Target Support Files/Pods-samhuri.net-CocoaLumberjack/Pods-samhuri.net-CocoaLumberjack-Private.xcconfig @@ -1,6 +1,6 @@ #include "Pods-samhuri.net-CocoaLumberjack.xcconfig" GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 -HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/CocoaLumberjack" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/CocoaLumberjack" "${PODS_ROOT}/Headers/Public/FontAwesome+iOS" "${PODS_ROOT}/Headers/Public/MBProgressHUD" "${PODS_ROOT}/Headers/Public/Mantle" "${PODS_ROOT}/Headers/Public/OMGHTTPURLRQ" "${PODS_ROOT}/Headers/Public/ObjectiveSugar" "${PODS_ROOT}/Headers/Public/PromiseKit" "${PODS_ROOT}/Headers/Public/YapDatabase" "${PODS_ROOT}/Headers/Public/dyci" "${PODS_ROOT}/Headers/Public/libextobjc" +HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/CocoaLumberjack" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/CocoaLumberjack" "${PODS_ROOT}/Headers/Public/FontAwesome+iOS" "${PODS_ROOT}/Headers/Public/HockeySDK" "${PODS_ROOT}/Headers/Public/MBProgressHUD" "${PODS_ROOT}/Headers/Public/Mantle" "${PODS_ROOT}/Headers/Public/OMGHTTPURLRQ" "${PODS_ROOT}/Headers/Public/ObjectiveSugar" "${PODS_ROOT}/Headers/Public/PromiseKit" "${PODS_ROOT}/Headers/Public/YapDatabase" "${PODS_ROOT}/Headers/Public/dyci" "${PODS_ROOT}/Headers/Public/libextobjc" OTHER_LDFLAGS = -ObjC PODS_ROOT = ${SRCROOT} SKIP_INSTALL = YES \ No newline at end of file diff --git a/Pods/Target Support Files/Pods-samhuri.net-MBProgressHUD/Pods-samhuri.net-MBProgressHUD-Private.xcconfig b/Pods/Target Support Files/Pods-samhuri.net-MBProgressHUD/Pods-samhuri.net-MBProgressHUD-Private.xcconfig index 084af9c..277cba6 100644 --- a/Pods/Target Support Files/Pods-samhuri.net-MBProgressHUD/Pods-samhuri.net-MBProgressHUD-Private.xcconfig +++ b/Pods/Target Support Files/Pods-samhuri.net-MBProgressHUD/Pods-samhuri.net-MBProgressHUD-Private.xcconfig @@ -1,6 +1,6 @@ #include "Pods-samhuri.net-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/CocoaLumberjack" "${PODS_ROOT}/Headers/Public/FontAwesome+iOS" "${PODS_ROOT}/Headers/Public/MBProgressHUD" "${PODS_ROOT}/Headers/Public/Mantle" "${PODS_ROOT}/Headers/Public/OMGHTTPURLRQ" "${PODS_ROOT}/Headers/Public/ObjectiveSugar" "${PODS_ROOT}/Headers/Public/PromiseKit" "${PODS_ROOT}/Headers/Public/YapDatabase" "${PODS_ROOT}/Headers/Public/dyci" "${PODS_ROOT}/Headers/Public/libextobjc" +HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/MBProgressHUD" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/CocoaLumberjack" "${PODS_ROOT}/Headers/Public/FontAwesome+iOS" "${PODS_ROOT}/Headers/Public/HockeySDK" "${PODS_ROOT}/Headers/Public/MBProgressHUD" "${PODS_ROOT}/Headers/Public/Mantle" "${PODS_ROOT}/Headers/Public/OMGHTTPURLRQ" "${PODS_ROOT}/Headers/Public/ObjectiveSugar" "${PODS_ROOT}/Headers/Public/PromiseKit" "${PODS_ROOT}/Headers/Public/YapDatabase" "${PODS_ROOT}/Headers/Public/dyci" "${PODS_ROOT}/Headers/Public/libextobjc" OTHER_LDFLAGS = ${PODS_SAMHURI_NET_MBPROGRESSHUD_OTHER_LDFLAGS} -ObjC PODS_ROOT = ${SRCROOT} SKIP_INSTALL = YES \ No newline at end of file diff --git a/Pods/Target Support Files/Pods-samhuri.net-Mantle/Pods-samhuri.net-Mantle-Private.xcconfig b/Pods/Target Support Files/Pods-samhuri.net-Mantle/Pods-samhuri.net-Mantle-Private.xcconfig index b0f8bd1..eb606ad 100644 --- a/Pods/Target Support Files/Pods-samhuri.net-Mantle/Pods-samhuri.net-Mantle-Private.xcconfig +++ b/Pods/Target Support Files/Pods-samhuri.net-Mantle/Pods-samhuri.net-Mantle-Private.xcconfig @@ -1,6 +1,6 @@ #include "Pods-samhuri.net-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/CocoaLumberjack" "${PODS_ROOT}/Headers/Public/FontAwesome+iOS" "${PODS_ROOT}/Headers/Public/MBProgressHUD" "${PODS_ROOT}/Headers/Public/Mantle" "${PODS_ROOT}/Headers/Public/OMGHTTPURLRQ" "${PODS_ROOT}/Headers/Public/ObjectiveSugar" "${PODS_ROOT}/Headers/Public/PromiseKit" "${PODS_ROOT}/Headers/Public/YapDatabase" "${PODS_ROOT}/Headers/Public/dyci" "${PODS_ROOT}/Headers/Public/libextobjc" +HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/Mantle" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/CocoaLumberjack" "${PODS_ROOT}/Headers/Public/FontAwesome+iOS" "${PODS_ROOT}/Headers/Public/HockeySDK" "${PODS_ROOT}/Headers/Public/MBProgressHUD" "${PODS_ROOT}/Headers/Public/Mantle" "${PODS_ROOT}/Headers/Public/OMGHTTPURLRQ" "${PODS_ROOT}/Headers/Public/ObjectiveSugar" "${PODS_ROOT}/Headers/Public/PromiseKit" "${PODS_ROOT}/Headers/Public/YapDatabase" "${PODS_ROOT}/Headers/Public/dyci" "${PODS_ROOT}/Headers/Public/libextobjc" OTHER_LDFLAGS = ${PODS_SAMHURI_NET_MANTLE_OTHER_LDFLAGS} -ObjC PODS_ROOT = ${SRCROOT} SKIP_INSTALL = YES \ No newline at end of file diff --git a/Pods/Target Support Files/Pods-samhuri.net-OMGHTTPURLRQ/Pods-samhuri.net-OMGHTTPURLRQ-Private.xcconfig b/Pods/Target Support Files/Pods-samhuri.net-OMGHTTPURLRQ/Pods-samhuri.net-OMGHTTPURLRQ-Private.xcconfig index 8422b0e..70740f8 100644 --- a/Pods/Target Support Files/Pods-samhuri.net-OMGHTTPURLRQ/Pods-samhuri.net-OMGHTTPURLRQ-Private.xcconfig +++ b/Pods/Target Support Files/Pods-samhuri.net-OMGHTTPURLRQ/Pods-samhuri.net-OMGHTTPURLRQ-Private.xcconfig @@ -1,6 +1,6 @@ #include "Pods-samhuri.net-OMGHTTPURLRQ.xcconfig" GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 -HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/OMGHTTPURLRQ" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/CocoaLumberjack" "${PODS_ROOT}/Headers/Public/FontAwesome+iOS" "${PODS_ROOT}/Headers/Public/MBProgressHUD" "${PODS_ROOT}/Headers/Public/Mantle" "${PODS_ROOT}/Headers/Public/OMGHTTPURLRQ" "${PODS_ROOT}/Headers/Public/ObjectiveSugar" "${PODS_ROOT}/Headers/Public/PromiseKit" "${PODS_ROOT}/Headers/Public/YapDatabase" "${PODS_ROOT}/Headers/Public/dyci" "${PODS_ROOT}/Headers/Public/libextobjc" +HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/OMGHTTPURLRQ" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/CocoaLumberjack" "${PODS_ROOT}/Headers/Public/FontAwesome+iOS" "${PODS_ROOT}/Headers/Public/HockeySDK" "${PODS_ROOT}/Headers/Public/MBProgressHUD" "${PODS_ROOT}/Headers/Public/Mantle" "${PODS_ROOT}/Headers/Public/OMGHTTPURLRQ" "${PODS_ROOT}/Headers/Public/ObjectiveSugar" "${PODS_ROOT}/Headers/Public/PromiseKit" "${PODS_ROOT}/Headers/Public/YapDatabase" "${PODS_ROOT}/Headers/Public/dyci" "${PODS_ROOT}/Headers/Public/libextobjc" OTHER_LDFLAGS = -ObjC PODS_ROOT = ${SRCROOT} SKIP_INSTALL = YES \ No newline at end of file diff --git a/Pods/Target Support Files/Pods-samhuri.net-ObjectiveSugar/Pods-samhuri.net-ObjectiveSugar-Private.xcconfig b/Pods/Target Support Files/Pods-samhuri.net-ObjectiveSugar/Pods-samhuri.net-ObjectiveSugar-Private.xcconfig index 12151f6..4e6bbfd 100644 --- a/Pods/Target Support Files/Pods-samhuri.net-ObjectiveSugar/Pods-samhuri.net-ObjectiveSugar-Private.xcconfig +++ b/Pods/Target Support Files/Pods-samhuri.net-ObjectiveSugar/Pods-samhuri.net-ObjectiveSugar-Private.xcconfig @@ -1,6 +1,6 @@ #include "Pods-samhuri.net-ObjectiveSugar.xcconfig" GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 -HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/ObjectiveSugar" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/CocoaLumberjack" "${PODS_ROOT}/Headers/Public/FontAwesome+iOS" "${PODS_ROOT}/Headers/Public/MBProgressHUD" "${PODS_ROOT}/Headers/Public/Mantle" "${PODS_ROOT}/Headers/Public/OMGHTTPURLRQ" "${PODS_ROOT}/Headers/Public/ObjectiveSugar" "${PODS_ROOT}/Headers/Public/PromiseKit" "${PODS_ROOT}/Headers/Public/YapDatabase" "${PODS_ROOT}/Headers/Public/dyci" "${PODS_ROOT}/Headers/Public/libextobjc" +HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/ObjectiveSugar" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/CocoaLumberjack" "${PODS_ROOT}/Headers/Public/FontAwesome+iOS" "${PODS_ROOT}/Headers/Public/HockeySDK" "${PODS_ROOT}/Headers/Public/MBProgressHUD" "${PODS_ROOT}/Headers/Public/Mantle" "${PODS_ROOT}/Headers/Public/OMGHTTPURLRQ" "${PODS_ROOT}/Headers/Public/ObjectiveSugar" "${PODS_ROOT}/Headers/Public/PromiseKit" "${PODS_ROOT}/Headers/Public/YapDatabase" "${PODS_ROOT}/Headers/Public/dyci" "${PODS_ROOT}/Headers/Public/libextobjc" OTHER_LDFLAGS = -ObjC PODS_ROOT = ${SRCROOT} SKIP_INSTALL = YES \ No newline at end of file diff --git a/Pods/Target Support Files/Pods-samhuri.net-PromiseKit/Pods-samhuri.net-PromiseKit-Private.xcconfig b/Pods/Target Support Files/Pods-samhuri.net-PromiseKit/Pods-samhuri.net-PromiseKit-Private.xcconfig index 1d92b3c..11da95a 100644 --- a/Pods/Target Support Files/Pods-samhuri.net-PromiseKit/Pods-samhuri.net-PromiseKit-Private.xcconfig +++ b/Pods/Target Support Files/Pods-samhuri.net-PromiseKit/Pods-samhuri.net-PromiseKit-Private.xcconfig @@ -1,6 +1,6 @@ #include "Pods-samhuri.net-PromiseKit.xcconfig" GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 ${PODS_SAMHURI_NET_PROMISEKIT_GCC_PREPROCESSOR_DEFINITIONS} -HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/PromiseKit" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/CocoaLumberjack" "${PODS_ROOT}/Headers/Public/FontAwesome+iOS" "${PODS_ROOT}/Headers/Public/MBProgressHUD" "${PODS_ROOT}/Headers/Public/Mantle" "${PODS_ROOT}/Headers/Public/OMGHTTPURLRQ" "${PODS_ROOT}/Headers/Public/ObjectiveSugar" "${PODS_ROOT}/Headers/Public/PromiseKit" "${PODS_ROOT}/Headers/Public/YapDatabase" "${PODS_ROOT}/Headers/Public/dyci" "${PODS_ROOT}/Headers/Public/libextobjc" +HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/PromiseKit" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/CocoaLumberjack" "${PODS_ROOT}/Headers/Public/FontAwesome+iOS" "${PODS_ROOT}/Headers/Public/HockeySDK" "${PODS_ROOT}/Headers/Public/MBProgressHUD" "${PODS_ROOT}/Headers/Public/Mantle" "${PODS_ROOT}/Headers/Public/OMGHTTPURLRQ" "${PODS_ROOT}/Headers/Public/ObjectiveSugar" "${PODS_ROOT}/Headers/Public/PromiseKit" "${PODS_ROOT}/Headers/Public/YapDatabase" "${PODS_ROOT}/Headers/Public/dyci" "${PODS_ROOT}/Headers/Public/libextobjc" OTHER_LDFLAGS = ${PODS_SAMHURI_NET_PROMISEKIT_OTHER_LDFLAGS} -ObjC PODS_ROOT = ${SRCROOT} SKIP_INSTALL = YES \ No newline at end of file diff --git a/Pods/Target Support Files/Pods-samhuri.net-YapDatabase/Pods-samhuri.net-YapDatabase-Private.xcconfig b/Pods/Target Support Files/Pods-samhuri.net-YapDatabase/Pods-samhuri.net-YapDatabase-Private.xcconfig index 31572cd..0e6dd2a 100644 --- a/Pods/Target Support Files/Pods-samhuri.net-YapDatabase/Pods-samhuri.net-YapDatabase-Private.xcconfig +++ b/Pods/Target Support Files/Pods-samhuri.net-YapDatabase/Pods-samhuri.net-YapDatabase-Private.xcconfig @@ -1,6 +1,6 @@ #include "Pods-samhuri.net-YapDatabase.xcconfig" GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 -HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/YapDatabase" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/CocoaLumberjack" "${PODS_ROOT}/Headers/Public/FontAwesome+iOS" "${PODS_ROOT}/Headers/Public/MBProgressHUD" "${PODS_ROOT}/Headers/Public/Mantle" "${PODS_ROOT}/Headers/Public/OMGHTTPURLRQ" "${PODS_ROOT}/Headers/Public/ObjectiveSugar" "${PODS_ROOT}/Headers/Public/PromiseKit" "${PODS_ROOT}/Headers/Public/YapDatabase" "${PODS_ROOT}/Headers/Public/dyci" "${PODS_ROOT}/Headers/Public/libextobjc" +HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/YapDatabase" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/CocoaLumberjack" "${PODS_ROOT}/Headers/Public/FontAwesome+iOS" "${PODS_ROOT}/Headers/Public/HockeySDK" "${PODS_ROOT}/Headers/Public/MBProgressHUD" "${PODS_ROOT}/Headers/Public/Mantle" "${PODS_ROOT}/Headers/Public/OMGHTTPURLRQ" "${PODS_ROOT}/Headers/Public/ObjectiveSugar" "${PODS_ROOT}/Headers/Public/PromiseKit" "${PODS_ROOT}/Headers/Public/YapDatabase" "${PODS_ROOT}/Headers/Public/dyci" "${PODS_ROOT}/Headers/Public/libextobjc" OTHER_LDFLAGS = ${PODS_SAMHURI_NET_YAPDATABASE_OTHER_LDFLAGS} -ObjC PODS_ROOT = ${SRCROOT} SKIP_INSTALL = YES \ No newline at end of file diff --git a/Pods/Target Support Files/Pods-samhuri.net/Pods-samhuri.net.debug.xcconfig b/Pods/Target Support Files/Pods-samhuri.net/Pods-samhuri.net.debug.xcconfig index 64feb20..0a04558 100644 --- a/Pods/Target Support Files/Pods-samhuri.net/Pods-samhuri.net.debug.xcconfig +++ b/Pods/Target Support Files/Pods-samhuri.net/Pods-samhuri.net.debug.xcconfig @@ -1,6 +1,6 @@ GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 $(inherited) PMK_CALAYER=1 $(inherited) PMK_NSNOTIFICATIONCENTER=1 $(inherited) PMK_NSURLCONNECTION=1 $(inherited) PMK_PAUSE=1 $(inherited) PMK_UIACTIONSHEET=1 $(inherited) PMK_UIALERTVIEW=1 $(inherited) PMK_UIVIEW=1 $(inherited) PMK_UIVIEWCONTROLLER=1 $(inherited) PMK_UNTIL=1 $(inherited) PMK_WHEN=1 -HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/CocoaLumberjack" "${PODS_ROOT}/Headers/Public/FontAwesome+iOS" "${PODS_ROOT}/Headers/Public/MBProgressHUD" "${PODS_ROOT}/Headers/Public/Mantle" "${PODS_ROOT}/Headers/Public/OMGHTTPURLRQ" "${PODS_ROOT}/Headers/Public/ObjectiveSugar" "${PODS_ROOT}/Headers/Public/PromiseKit" "${PODS_ROOT}/Headers/Public/YapDatabase" "${PODS_ROOT}/Headers/Public/dyci" "${PODS_ROOT}/Headers/Public/libextobjc" -OTHER_CFLAGS = $(inherited) -isystem "${PODS_ROOT}/Headers/Public" -isystem "${PODS_ROOT}/Headers/Public/CocoaLumberjack" -isystem "${PODS_ROOT}/Headers/Public/FontAwesome+iOS" -isystem "${PODS_ROOT}/Headers/Public/MBProgressHUD" -isystem "${PODS_ROOT}/Headers/Public/Mantle" -isystem "${PODS_ROOT}/Headers/Public/OMGHTTPURLRQ" -isystem "${PODS_ROOT}/Headers/Public/ObjectiveSugar" -isystem "${PODS_ROOT}/Headers/Public/PromiseKit" -isystem "${PODS_ROOT}/Headers/Public/YapDatabase" -isystem "${PODS_ROOT}/Headers/Public/dyci" -isystem "${PODS_ROOT}/Headers/Public/libextobjc" +HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/CocoaLumberjack" "${PODS_ROOT}/Headers/Public/FontAwesome+iOS" "${PODS_ROOT}/Headers/Public/HockeySDK" "${PODS_ROOT}/Headers/Public/MBProgressHUD" "${PODS_ROOT}/Headers/Public/Mantle" "${PODS_ROOT}/Headers/Public/OMGHTTPURLRQ" "${PODS_ROOT}/Headers/Public/ObjectiveSugar" "${PODS_ROOT}/Headers/Public/PromiseKit" "${PODS_ROOT}/Headers/Public/YapDatabase" "${PODS_ROOT}/Headers/Public/dyci" "${PODS_ROOT}/Headers/Public/libextobjc" +OTHER_CFLAGS = $(inherited) -isystem "${PODS_ROOT}/Headers/Public" -isystem "${PODS_ROOT}/Headers/Public/CocoaLumberjack" -isystem "${PODS_ROOT}/Headers/Public/FontAwesome+iOS" -isystem "${PODS_ROOT}/Headers/Public/HockeySDK" -isystem "${PODS_ROOT}/Headers/Public/MBProgressHUD" -isystem "${PODS_ROOT}/Headers/Public/Mantle" -isystem "${PODS_ROOT}/Headers/Public/OMGHTTPURLRQ" -isystem "${PODS_ROOT}/Headers/Public/ObjectiveSugar" -isystem "${PODS_ROOT}/Headers/Public/PromiseKit" -isystem "${PODS_ROOT}/Headers/Public/YapDatabase" -isystem "${PODS_ROOT}/Headers/Public/dyci" -isystem "${PODS_ROOT}/Headers/Public/libextobjc" OTHER_LDFLAGS = $(inherited) -ObjC -weak_library /usr/lib/libc++.dylib -l"Pods-samhuri.net-CocoaLumberjack" -l"Pods-samhuri.net-MBProgressHUD" -l"Pods-samhuri.net-Mantle" -l"Pods-samhuri.net-OMGHTTPURLRQ" -l"Pods-samhuri.net-ObjectiveSugar" -l"Pods-samhuri.net-PromiseKit" -l"Pods-samhuri.net-YapDatabase" -l"sqlite3" -framework "CoreGraphics" -framework "Foundation" -framework "QuartzCore" -framework "UIKit" -weak_framework "AssetsLibrary" OTHER_LIBTOOLFLAGS = $(OTHER_LDFLAGS) PODS_ROOT = ${SRCROOT}/Pods \ No newline at end of file diff --git a/Pods/Target Support Files/Pods-samhuri.net/Pods-samhuri.net.release.xcconfig b/Pods/Target Support Files/Pods-samhuri.net/Pods-samhuri.net.release.xcconfig index 64feb20..0a04558 100644 --- a/Pods/Target Support Files/Pods-samhuri.net/Pods-samhuri.net.release.xcconfig +++ b/Pods/Target Support Files/Pods-samhuri.net/Pods-samhuri.net.release.xcconfig @@ -1,6 +1,6 @@ GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 $(inherited) PMK_CALAYER=1 $(inherited) PMK_NSNOTIFICATIONCENTER=1 $(inherited) PMK_NSURLCONNECTION=1 $(inherited) PMK_PAUSE=1 $(inherited) PMK_UIACTIONSHEET=1 $(inherited) PMK_UIALERTVIEW=1 $(inherited) PMK_UIVIEW=1 $(inherited) PMK_UIVIEWCONTROLLER=1 $(inherited) PMK_UNTIL=1 $(inherited) PMK_WHEN=1 -HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/CocoaLumberjack" "${PODS_ROOT}/Headers/Public/FontAwesome+iOS" "${PODS_ROOT}/Headers/Public/MBProgressHUD" "${PODS_ROOT}/Headers/Public/Mantle" "${PODS_ROOT}/Headers/Public/OMGHTTPURLRQ" "${PODS_ROOT}/Headers/Public/ObjectiveSugar" "${PODS_ROOT}/Headers/Public/PromiseKit" "${PODS_ROOT}/Headers/Public/YapDatabase" "${PODS_ROOT}/Headers/Public/dyci" "${PODS_ROOT}/Headers/Public/libextobjc" -OTHER_CFLAGS = $(inherited) -isystem "${PODS_ROOT}/Headers/Public" -isystem "${PODS_ROOT}/Headers/Public/CocoaLumberjack" -isystem "${PODS_ROOT}/Headers/Public/FontAwesome+iOS" -isystem "${PODS_ROOT}/Headers/Public/MBProgressHUD" -isystem "${PODS_ROOT}/Headers/Public/Mantle" -isystem "${PODS_ROOT}/Headers/Public/OMGHTTPURLRQ" -isystem "${PODS_ROOT}/Headers/Public/ObjectiveSugar" -isystem "${PODS_ROOT}/Headers/Public/PromiseKit" -isystem "${PODS_ROOT}/Headers/Public/YapDatabase" -isystem "${PODS_ROOT}/Headers/Public/dyci" -isystem "${PODS_ROOT}/Headers/Public/libextobjc" +HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/CocoaLumberjack" "${PODS_ROOT}/Headers/Public/FontAwesome+iOS" "${PODS_ROOT}/Headers/Public/HockeySDK" "${PODS_ROOT}/Headers/Public/MBProgressHUD" "${PODS_ROOT}/Headers/Public/Mantle" "${PODS_ROOT}/Headers/Public/OMGHTTPURLRQ" "${PODS_ROOT}/Headers/Public/ObjectiveSugar" "${PODS_ROOT}/Headers/Public/PromiseKit" "${PODS_ROOT}/Headers/Public/YapDatabase" "${PODS_ROOT}/Headers/Public/dyci" "${PODS_ROOT}/Headers/Public/libextobjc" +OTHER_CFLAGS = $(inherited) -isystem "${PODS_ROOT}/Headers/Public" -isystem "${PODS_ROOT}/Headers/Public/CocoaLumberjack" -isystem "${PODS_ROOT}/Headers/Public/FontAwesome+iOS" -isystem "${PODS_ROOT}/Headers/Public/HockeySDK" -isystem "${PODS_ROOT}/Headers/Public/MBProgressHUD" -isystem "${PODS_ROOT}/Headers/Public/Mantle" -isystem "${PODS_ROOT}/Headers/Public/OMGHTTPURLRQ" -isystem "${PODS_ROOT}/Headers/Public/ObjectiveSugar" -isystem "${PODS_ROOT}/Headers/Public/PromiseKit" -isystem "${PODS_ROOT}/Headers/Public/YapDatabase" -isystem "${PODS_ROOT}/Headers/Public/dyci" -isystem "${PODS_ROOT}/Headers/Public/libextobjc" OTHER_LDFLAGS = $(inherited) -ObjC -weak_library /usr/lib/libc++.dylib -l"Pods-samhuri.net-CocoaLumberjack" -l"Pods-samhuri.net-MBProgressHUD" -l"Pods-samhuri.net-Mantle" -l"Pods-samhuri.net-OMGHTTPURLRQ" -l"Pods-samhuri.net-ObjectiveSugar" -l"Pods-samhuri.net-PromiseKit" -l"Pods-samhuri.net-YapDatabase" -l"sqlite3" -framework "CoreGraphics" -framework "Foundation" -framework "QuartzCore" -framework "UIKit" -weak_framework "AssetsLibrary" OTHER_LIBTOOLFLAGS = $(OTHER_LDFLAGS) PODS_ROOT = ${SRCROOT}/Pods \ No newline at end of file

      VCvCQVM$N;IuxlTxN>Wu@dct$foeNU7em8e*$ywZ-6W zE3_M*vl9E5u)fb~ z>|=Wy`z>!j8Jqi=iqP6`wPi7QzzQ9(!UtH)9I&zntlR-6DDJmP`x%&PS@{-Cm6la) zS+y2(P;#Y2z0k6XvKTsOg%4VhgRjE9kS|&xNhA;R=(Tyu$4Sam-b<+bJ()mjA|aXyu)Jh6Z zi}8--bgV>&iPJ}{jPx#ctWpQ79jhibJC-MQI+pz|D~=qsVn;D`)XE%X3VvjdS~*#) z9<^#mt@=@V(<>?^y2g)Mj+7XX77OoM#dm2cziUr1Q0Y?@Sb|7g7QnDC%&x*ch#ol8~;yo+*9@7-wvx@IoC0VrXK+q0^ z>;NYlW(A_N_|&|6)XE=aN4=v~>nK-M=3Of*JCvOraAya2w3r>J&JJ)NoE-?wW(5@U zvjYVw(NvKV?X}r~x-52P2kc-V7^F253}k~cAQ;F80|i;E1q1b9pdpLRV89CoTC&&< z20FojJ%`1}>_BvOASRQu{+yVc8%WKSJU5V=OPA=}Kx}RxK9@}o&IyF(U?dob2C+RS z(2?Aj9ca#G7o&3mu{jKl%nL;4F*H6e;LHmo=21$|3uL5}n-_5B1@cm=%?s3})SMUa z<^@_(3Wfrq5GF!_WQd95*9DyG(7rwpydI08Kq(~KG(QlVABfLqF)=@ooF7QZVrG6I zJ3o+<#nSvhd48ZWpSe2o19q5FC>#if1CcN#CmcwKsc;}ImcoIuSPKX0Vq`%ex_}|^ z1p#M4AhCc_c0nK~rTl_GVL_lMrOJXpRg5hR#23<(SQtny45SuH?}dS!l=2G$g@u8l zlo|^IO|iW&&{@c?6mAF{+ToMRi?6Nv92 zCw2ysJIS4Tziu-Hhb^*@x3Ft{K@2gzDFdNu*nl9 z^PS^vfBF8WTwIgo-%F7Te|xywF5g3v3xDIbyL}elE0T-+y$jjC_wz?MZj$@>UXNV< zx5>jF>E$1qEdTC;TrPOOKmRU)Tx_yjUsL|3mzSDcH+hT6@^{kZ(lA;6&bV9xTu(Ay z{*JX=22GZ~_biv`Cg=GQpi=As>$Crxn}au$Z~w^Ci6FWy4f?C zzX8+D9h29XJn-q>{QPa@Zu_vw{7ukqj+)%Z?O5h7n*3>#&p53&{+lNM+T?RgPMbW- zWa~4%{!2|BF*$2;(B!90E}HzN$xV}wm@Iz>RxTgmej(czF`2*p(any@r<*+ScfI~+ zn(Uf9L6+-Bz62_lYfSt5`DW8z`1@YFV{+?@y?plv@>Y|>U+T5#=S(h|+%fsYFZafOj{Cjr-&B(?G}$rv zMw2rpKW_3RU+s;5!{m{F>gA5f$!Wbjg~tJzzi9FgOs<(c*W~_x>-Aq^@~=&P+~jeS zHIE}QU&`dqn>_rr-uUZGcD~-rPnz8PMlZ|1e}}t3CjYg`2TeZBdOx3Ia@n+BZ}Ms9^!ndp@?|DJWpdu+ z-6l6o{@DNOt#8`7z40e}Apfh$=b85JnH)9w7i8JKgvoz0dHlTIe7Bqa!Hau&ooR3V zrkBg6{j%|1-eKBD{@BaMf4sMS))5;UY38CM%we&_wsx*{wwo) zd6{XCn!Lf}xXHUs9t-#Se~i}!GT+dGUOwGq-@;!0jmc$`7n9}sb8hIhuQ9oNQ!nRD zj@;bKPnrCcXfMBF^5`wS{MrZdcc%2_51Mw@M41O%9v<_y_WdpX|*y za%*q=H%%^^{2P<&CjZ&wmdTHpY~9uy|E9@*ZSt-UZ!-A| zlOHwtJd+QYe3{7u@<${%-a(UxO^%v;waE#SXMZ4XGC6D7|BBaz#89y0kca`*OZ@^+IWCI?RGt*>D6aUaOvH#xYtxBhXHeNHdmY;wQJ zYfK(6xoYxMlVATpzF?rY{xg>Nx|anew@uEP+_$vX{+h{COg{coz43!4|C`CvO#Y3@ z(@l<>JYw=DlgCUhd?0`9RP*?g?XCYba`*Z%dCX+b*aUJa(%p? zPx^E(kK}soUo*L5@>wR2J<@BRX>!fvdrWSa{ItoZukZEWLzeALn%w$8p2q8JX`i~G z*Z%^OhfEHeJZ$o6lSfTn_kldX>uj0t3vO?|@0y%6dEDfz$#3SD<=DR9WL`V zOg@Gz$M5}olF6x!zV788Os<>!3zPGkdhLHAPgVoIrpZ@#+yCFZq}$Hl9^2gOe~%ge zelD5zmT7;%w7;MCn4He{#vjM;39`M%Z|UXFl4XC!O#YH-e?NcUn4G{7aLqXM1_B$)hH(FnP@67frszh+g@2SIKhw#m1f?3uilEZaZz#>P({J?J<=-!m@gul+A3w@fa4vDZKUX0LtmmwGwA zy_df*wU_&M^zw+wX_LSC554x_&R+WoU+(3RW-o_L9^2E)H<9J|y`NW^e2Hl=pv zUNhd_+Z%t(|L)CSGx`=|b~H-G=Z-uNGxJYe!w zCQmha)(3LYPLfHJHXD;kn<7F*#EO+~QN#!c1raJDR>T?sp=u>U^ib6$6rJ9n1!>+kpY|ND3l<~iq_yPW%;yUo3KaKFnN@I!Cd z;r-6>Th{O3%ip#>A!5fDe8>9BcukdrLjK)~r;f4SjPJq^iOuqL{45^7yRAPq%JRVG zfz+n{<@nQ-?|8qhAE4ZEBTnyO%P+v^;UC~({1|TB)7F0-FT@AO?D)^a)9@fZ2d~9f ziOuJC9lp-xo2c)UKZqB}!==o>m+*NXwmxtQ^N*+F9sAkxlvDl@>ud1{en@PlXW@8T z{s`rcU!#2N{HYBw|Lx<*8dWl{uqz{O}XR1XYBZIr~E5;)ls(nukoZ$ zS%2(!JG@8n$HgYEj=zqdr2KWf9WVH-X5$7zWT|P!^>O1A9P<}{I-jsi*yZj~G zOZks+RoK?wid*q3IE|~P+v&LoPs5kv7JLJ~7!TpqF5iY(^b5 z&al%nO!?>WEmLg$U*R>!T0e&mInKIvrfnbmjP(GXd%X4c@Iw3m?!+(Q^YBOO?C@6O zgIzumH%+s{|2jU;e9uU1#fG>GFek z3+2z_Z8&y<9e@2S+kP=#gujD(@wG00-{l{=ydCd;f*t<8v+elW@v(RSw;7L-XCdNF z@q{reGyXT_i)P#5y-vB~)92XwN6)e48}JAod!j90d!j8r3oks$`c^zv9!hBb{Tnyo z&`Eas*5PBtX8Ig|5pSaWLEJvi4)5@}wtjHF_26@$55#8tvv0BfG3Ac`jOS9m z=jpb+JSaljw_tf7gnBcsztwuTCR=~pkF7t8Yw&saIJ^-z;rDPFN6xUryBv36dDMfB z|2kZ49uP18cH&9+vuE1&QG6}lfgi-rcNE@U8fW4R(09;n{ctJ_X-_6h z-iq(Rf5cny6ZjwauXrckj^D!1;t%}X&d-bZ5c~?Bj7RV^{0^?iW8$_y&%t}*U*f&- zOL$-W2Hqddc^k0wV87AtR@EiCRJV_qHYySNNpN%)*6uuLG5pTpd z;`{Nv_%~Rdj-tc=9ex!*iVypxEq@#zji15`@!#=MyaT833;2BeGG32g#~bn6_)Waq zBKvvyz}AQY zUle}=e+CEeblibYz~|t(_!4{y{xLocKaS7BA2ts-mw$`!bezQfcnSUq?!oeSmMZfv zjmO_>y#mk0=i|%pm+&9(D!k`?w*95pk1xl~_)7duycXYyZ^ZI&nJV+|7X0B~S>J|F z!b4adJ0rE_+0}RmZ^AF)-{6Bc+4@`YiTE-61^gtw2|ta0k9Xj`@3+Hy5l_Xh;>Gw) zr~YPJzbaw#eiGgTFUEW0ujBpjZMYh5!4vR@AK0zR{F{gm$4B8dT#GNmVSEif4nKsa zD-#UC0z7r_Y51_;+UZ@0r{QKi54YnU+>I~A z<~kv>Km8qiF1`b=#1G?(@e_D8ehGgAzlI0#_=oNEUV{(DH{ck)8Gjb9#|!ZWya?Zg zKacOjU&LGRHTYqC1AY|Wi=V)c;ca-#@9gwHgAc&ZOiI^Mm-_J0!Z zg?sQgybSM;zl0CLYw+RtYCH-55KqSIaS(67Q}9MS6>r6}@D4l|{|7I?=10TLzb5=4 zd^SD|o9oI<{sMRjo`QRE9bSe{#OL9Y@rC$wyb8DBOYu@{u46OfKL=ll2k=^a0lpEh z#<$?h@NM`iJcNIM@5VpDoA90ZH~3z>6>q|i;Ro@P_;LI+{s-QHcj6cE2!0iR;P-ZU zy@|);s#e=Shv7Z&r|{l5i1)*v!PU49Pr&VXB7OiLg+KI&ot|3!2^_{J;Nx%tPsdl_ z+4yceAO96M;t&48j_*u7885d_BGk58?apeRvE0 zD}ETifFH&0AGXu~1pX-AhL6F|;4pq3e+Ivd>+lGki{HhKc=tBDd>7)qa0?!Xm*D;J zIrtE~0w0c7;z@WFo{awo2l2P@6nrh7if_WR@U3_*-hdb2yKxiVjL*go<5v6_UV@*( zy?8rbhM&jh;aBm6_+7jT@A0@@zL(+;sCz6OuSKg9>(t+)n1gO9*(;iK_Ef3ef=$F(?$8}RY?TX-g3k59z+ z<9hrEJ`KN(7vjC2vg2>Y2jg~pDDK9G<23f;b8!@}#K+@{aUEWbPr={7r{h8VIeZOX zif_QZ_-4Euug4eQ4fu=rF8n2YAHE51!4Kkx@d$ntkNKyz;Hz;jeh4qakK^<38~8%J=ilu7uEG=WrT9pE zIX(eji5u}+yaeBf`|&OKtN1qjeLRHk$9LnMcoUxZw4L7H;7+_1UxgpT58@~Bn7`Zh zPvePr2cCyt#NWfO;ydu0_|Mq<=&4y>9=6>Me-Atv?~OxvKfDlE<1gb0_*-})9>hoC zt8gv828Z!=_&9t6o{n$Av+>P%KK>DI#Ov{y_@{Ug{yA>Lcj8WbH%{Su@c`b8&&R*U z<~~BxzYpO{@bB;%{0P1R{}Eq}hw=6J&v+ev3g3$VhHuB)@f~;v-iV*aoAFNk5PlUu zf=BQ$ej7i9tNvm0v>oq`pTlGEPP{jM4UfZbPY9L00-@wgGs#Lf6b+>h(=rT8>Fh!^4wxEcQvx8pzIZu|^R0Pk`|t^P z3!aZ3#%JS4@z3xR`0scd-e-rMzGv`E{5+nGU&hUN1fPrF#lOe9ciO!E9q)zT#pCe! zXYKg+#{qnZ@%!bs%JJd&6g&x^jwj=VIEY*E6#Qj86|cdw@HKcYz6CG9f5A=od3-j0 z6}RH|@DjY=b9R1v@gaB_o`lcCetaRGj#uGR@ufI{FULLjO8f=97GH>O#9zg?;Op^i zcpVZJ$@5!!Bt&0 zUoYW3@Se}x>De0}h4;fzT#Z}t1bi-@h_Av&;UD2z{4x&XH}G+I-xuukOvfQS8=s2j z<8IuDFT-czoA4rh4{pPM!<~31PT@UXw9_+y55wo<7`_P4!fSL5&C z>+$t?9ljOcitoj@<6(RUejabcV_vfJvl$2QLwGuV1UKMe+>D>Xy?8s8U&Yby*Pg>e zcqiVBU&GJfxAFUS+V*3*ZC;PUW3eCagHOcc@nU=sJ`dO6jra)sXM8k%8T;`E|81uy zia&vm$20Iu{5gCgUWV)O75Fs#W4sVQfSd8(aXWqvcjLEk8o&Q#JH6-P1My0H6uub8 z@M=68e*>R^2XQOD2KV9{@Jf6$UX9n|Z{rR42ly`h6MP@O2XDa-;D_;6{3w1BKY^dc z+whzC8NBB!w!faoAHgrwckwJd=0CRmTs#>sz$f4)+>Ou1U&O8W8oUJm0QchG;$?WZ z*X;Pu!w29C@l3o5H{(n3YJ55V5xx@t8n4BF!8hW!@GbbD*X{J&h7))QpM&qltMDfL zUHlt-Gv11C$B*Ir@soHfei}cHci?~G7xByZRXldYPXC+uU|iK}^EnCcfrEH&d>q~n z&%)KX5l_GgJP|L!N8x^4i*LeVydEEi@4(aX19&$6J)V!Z;YR!dJ`<1NMfiPh*#2q5 z`{GV~2u|Un@Bp5I&&N~oMR+#81kb~3@TvF;d=|bMx8mz@FJ6bgh;PN;#JA%s@g4Xk zyb<4qH{*NoL-_aj5xgA_XIe08S z74L&v@OZo$AB4YyYw%6@2>dgAH2xFz+!kxG<-2$ zh_ArS_y@Qh-;TTSJvfaY#^>Uv@k;y>z8Js%Z9Dy|@kj7C@PT*`AC9lVK70c{0pE-l z;Pto}Z@???UHEJGK71|Sf`5n~#=pRi;w|_I{0F=Z{}n%jU%=1fH}K1N>^ru9M(}j} zE?$avPuaX)j`zaX;c<99-XH%CAA*PR;rQ=(68;ySjNimT{GoU4^iIJC;i=e%XW<2S zE>7bGcn~+?d-2)$x40EQf|uYw<6itUUWRwz^YDxKLM*=`smBwmaMgR(m*Rc#<#+!GJX~J;5YHtaaEt4zIAvHyb14(pT_&)H*hsRV7D>4JSN}(o`@IVqi_$d z#h2hPmLCGw;T?zNM|;)N@$d0$`~sej_a0;GH{uESOdP?B@R_*Hcu#qL67Iwo;S^qt z2k=$+e0&?e2=Bm`;8*Y({1(0f@A*DE{a53U;Op@OybgaF--?^??Kq9^z{~JP{B67$ z{{laR@5hhe$M7)Tj-SHv<0QJgw&Oi_w|)-qk9Xq3@M}1T-^OitOxi9V`Oy;{{#g7y zybs=t$K!wCgYf&_Z`;@4N%#mHz(?ao?8gZl#fR@{hj%=_70<*G9?*Rv-j3_>IUlg? zPs3GvSueyF<7OQCpe=95ukCH!jeqzd>oks=o08?C;fo`UxtZ~JQ*uE96sTKso>93FqJ9o}4g zCT_%oxD`K))A((C5srS|4sR{)#Ov`oyb(W%x8eiNv+alRiFgMdzi}JG@#v2M6&*IEpWE`TMw$^84^g{0GPT+v$16_yh8MylU&6co2^m?^RPZjNdc< zU{%#NyvOaWCq!dvlQTz>xrc6d_{ zvg4bChj1_6fj8i>2iy9uh|T=2#FJJsyhCjHX?O^K4_AN8mcNLbaP1fE@V4T`Vl%(v z4z=~aP5CPP2g=9R*z&O#GCg>T*tDN|m@Q9IK7??#Davd3XeW30Fnz z@Gik)@nv`%9>mr7T3mx~#FOxka4o(aNAaC_D!vcT#=pk(cq?wg!*~(?D{jZn;9mR! z9>A~SmG~{Z3h%bc_V*e**7!p;RfG6LcrD%!ufqoz?^9E?9#0TY*k^6V^C%ypypeLp z=bQ3zRaILk|FX-sGssk7whZIEAAz+x}daZ@|5j{}vD7H}SY*ZTllH zvEv)T^YPTqCpkB2BTFy77G8xX{f`~~R(y=hNnAb0w!ao{!+*x> zPPFCwtg*uzcarr~+=NeX`SW-!K5TZS}VNL6ucHUx%_p!k@5%d zHvA6Wfz9t6nDt530z3S6JR7gYEAbO}3*PHnw*9yU+x`q(i?76s@O3W#5wD~CLsu}o zMmxL{@Bkjb>+w1~f`9Dt-|*B^?eGrxwjKU3J{d1M&6b~!*Wp|6PW)4sci`yhw*6s) zcKB=YLc9ZCipMqC`uE@_yxHY9@LI}izhj3#_6*y;1J~p4-~qe^Z^XZIx#~)WccvX) z2(QAOcqhIRPddxie*pL5hg}|Xl^y;N3bWi}3gH0RAK1h@W)%16SMOZ=*bf zCwo#^YLT`C1&szsD=_u*+kwv%_0Uc?9pkOK^SC4*yy_h#$lo@oRW&o2~!0 z%c1M-`06QNf(P+AF8=^;qx>Iu_Tn*B=HJJ^XNR{2H{l_?T0CLj8hJpvt$!IFi?6`r z@Kv}Puf;X^`*;$*8Q0<;<0!rzPsP8$v+>=y9{&nA;VpO({w;3DkKkVXCp>_k#4GXN z@GAUIyavC32k|R-Eq(*9!|&ns`29E7{vN^~#2fLxcndxNZ^a+O!}#NP8$J^6z{lX7 zID|*=vAC+kF8^tGEIt8`!}D-8ZooD83_J+ zcnE(DZ^W13E%@7bEB-DX#^1x+@DK0~{A0Wm{|t}dJ8{)gyZrCPWAOuc9R4k?#(%&y z_;EZ5{}tEbf8Z$o7oLj$jc4Q6aXo$qH{ti)X!E)Ve*m}R5940^Q9OVT#w+n*coqI6 zUV}f42XO$e#WB1Ne-^LDb$AG$gg4?-@D_YJ-ikkmhj9zuhCA>M+=F-GemsIdkE=TE z^8X?pi@$=$;jiOr{7qbgzk?^?YjG|9K91ra;;Hy2csBkyuE)Q`P54)M5&ku9$G^k9 z_>Xu1{~52uf5WTrKk*v;0v^P#;I;S-ybiyI*W>r!#P%P55O2i$;w|_9ycK^8595#H zZTLvM10RET;t(Fe$Kt9kw*Po6J^_!z^Kdn8z%}>`JPF5fEl%PnUW%vUbMS1u9M|J7 z;3oVfya<04x8wi8z4%*r0AGby;_L7#d=p-Se}o6|Pw`s(3%m~BW4xc7Z^ifHA^afT zh<}f_;6LH5_%C=E{~d3`&*B~UCA<^=2an*la8)OVf;PuJ|C&6+JH}F(k^#eOUv++zVI?f8fB2gGLlRp;2@A4~ZpJe~4-+(Y>QUPk#^ypHlM_{Ws*#DAr{I%UWA4CPbt zM}BChuN@yGHq*BT&!&6`pG^5Sd;#TS`|R*9ro0w!pu7qHlJb@KUzD%IFH^o1fBY6Z zeIxiNv6;S_v>o3Wl+VVCDDTBzr+g4!PWeW>iSixzLCVMV+u^@Lc@)1%`67JikL>iV z!bgbB^sUE@ln>*xD6d*(hrgQgN%)(T*WAHbU^cl-wBTPUx()sBBB4jO;7s;YXq z9p4lj#Zz$;o`nbSTs(*u;33?Ehw<5X1h?Yq0XzOBIEs656JCY~@OgL;Ux9C!LA)Ox!qs>fPrxI1BCbBqj{hhe z#kIHzhw%VD4iDn#cnHtN!+1U(!Hu~33wHcx;wWB(n{XQ*z@2yyr|=LSz{B`_Jc2L6 z)#uysUxK4}4Q|3$-~oI!9>mwinT+q@3pv3MBogGcaqT>V8m{)2E7*Wf06 z1RlUg<3a4lLpX|u@$q;B&&1Ui+VP)=qqrV7;nVN{UWf;AGakb2co=u%5uC==U$Wyr z7f10*+=MU219&wa#NWU}cn}ZcYw!rZ0assS$A2@9;`O)*Z@>fiEx#j z5&S5w{<0na6F7>u;U@eH9>CAzLHsfv!XtPXzl%rk?muDsd$Aq=UO0-!;U>I49>9m- zL3}tK!jteYo{UFu5LbW2j(>`HpZ(=`MetNS8=v6v)p!-<*NZ1ed&hU-HIzSrhw$sP z--h2+%kNR*-ET9)%lc#DeGZV{)uMc&DbMjKl)p;(8I(J|5RXv)3;Z^I0avZE{qfPC z+TrhxXXCLrjrYbki_P?n!?#iH_;Ea*@^^4G{^ad;e23r#xCVa_PsF$2N%%2*G~V-P zc6haTG7jQK9K~N0o9RCeucF-Xy?83+ui}~b6C3RKX5+K)Tzsk648Ih#H;Wtv|o+iq}=hOJM8$@P<|S|9DhY@#y^NJrQGo*d^P1G zcrBiMryc$cxC5`l-^aJ$zvA_H++BA3x8noEX8AdukB2D#D)sNeYbba8YrK*2H}NJs z`ImNlTX0Bh#^<;LKScR;cq@JaKZ*~!+YWCSA0{@#bDY3WQvMz4Z^LUTcRY-@Q@-y# zcKADRwb%^b@m%~o5c@1)%Eq4(PIag-k+HuLBBR6L&Yi*PmmIX(pM5S#JU;Fl&HuC=49`l<1FDd&8|qu4or@h*1GSA6PzTi-c-X3>Kldhf&KDlM#SY&&e={9B=NsGcTF%FOM=Xmc^X~?iZ*%##F8|Ht|G2!{ zuk(k0pvys*k9B#z%gru-#pN4azRTrDTzMPmx%`C7 z|8e;v59UwbQ7%t&`3#qPUH*#8*SkFA^5ZVQCuOrps+Er(M3#LI@XrxxCcnRW4uS@=sje?DFF-KkM@AE`NAy{`?)`@)VcnyWHw>m&<9F zFK~Ia%a^-+waYiUe5=bFT;AmJQ!c;Z@}9rX?~jkW9CCT4%Z)CdT*q0XS%DmmcQ}%ne!vPoh_+EUwbIgx1zhn7j0dhNVUb=Qi-l)Je5qe zCR4$V?v8X_z28U8xYmq!^)xR@wxsJ%@(1z@npdQgJt=9}++0=J7@}<*-L3Jq)?{60 zSN;5k+PFWOKS(C3H5u>dZtJPbnf$=ScTpG^}a|v-kL})@92*AxAaJxfpq<{s!yFYeNJQj+!>}j8afus zU}h(}TRW4f8q)(EiO!C5lb5PU!Qx`?cgrWTSXoO?zdU&)Gxtn*TPm5%c9nk0@`_2LoKM$(%I9e6H`#4VbG4aF|BBJGx$?4ByOxSpgNVL8dg*MFx^v zMY^r4xkpxYvYK_4QQqXxBO2khp4=qF`<5qqePP>95%A|A90c8Y^;DUPDyOEbG1)9+ z*8cI%j&!;+8Bcb%b|i9QWVasKYRw&si`2>eSlgi4w)&|~w92#1GV^T<%zGvRiQeAM z74e?7Hc7In6W6|{@A{IRZSIEYMBmbQSF)?6cZFw>j7txmMAhC+ZjFGZ5@mIWd}pnl(MzW-GXI?)1K(7Hy?uT#WT#F zg?+zB-OipwYhmS?iF9Jr4W@OsE=Z>PQ{8p!3V2RjZ+~iWvT%$=##W?uWur=VCz?Bx zIem~!6&a03&4N*|Dvh_>U9{{1w;%S*sye5jzq=*TzqmbT(j-ew3W1G~U^X^jt`V11-{Vg%u0>&2t2@e$eIO?AG-a znY~H%sg7mRBlD8!_MXqw@i$a?s+WU9}6He~0m z>?ft@(5LsC-SAx-hRxDE+4$BuyEF~S)UssCOm;o{#r3j^X-K9k+ckAQ*aef@nv}ib zo)+(AQ&77r(c9QF%^Y+!=ysg$Ye<{OEnZRS66o#e?eCNpIiIVU9Vt05>q)JsXyF%3 zSW9*-l^Ifn^K?#svOn4CH7OMiAZOh5iFCUhzv!mB@Y8HRJq5cye4g0XDa?8%ux6E- zIq--(ofz-#vj-9$ElVuj8r^A>Bb;e=2gGyP)yQ_h#87r)=g2XrSBID?^>#P5RFzDS zi&nBb)J2O;pO%^ov;X9Lnu|>;JC{YrVfS>47Mn>ZKOc6N&2@-uKYzB*y^At&DLVT8 z{tnqXws|dtg3m*1vZbfhe!lWjQ<#y0rgE5?rLLmv_H$7%G$*N*lqnTHlAaSBzLiG-bZ5>7MnfQvWp`(iSeEQ z*KT}VSJ%!yjO)0;RcOv`m|gs&oRE?8XxU>0S3P@7;2h6-6vop%@#g-vwq(xXpQ~Db zcgdlca};q~C)t`gEKc>Ldt|urmUvHpS`Hq~@t|x&PEY*LqXw3r#TyVI=%#d+Us3ZzWlUDmVI1S30er%J1w z&P(-}WAkiTvb(=a7EWJFs-stScC^2iB|7_)@#YnAPL@?rJ8ziIvT+U8E)cK5mTHhU z+^ z4oGd;l%9M$`|OF7>?WjTSF%5qoRaR4c}*v}dOde;c6}tSaZm5>=xm*`Yhy04hn6#a zt`U0e0u--J*Nm=_&QqBtxpQ2mYGz3|=fMk?xofMPS@5~<=N+awyL--}_nL&<#vnXb1Rp~9KYZmcu&Yu}pRZ$3p+^xVJh4fIXX4Og;tit{Cf z_W^It5KGK#POY?_8?fW^n!TK=Ia5=nCevD`R%T9$r((LE;m+)qWO`|a?A|u6=uJ*( zPV^<6Lm0D>o?=#`Q_Q}y=ZD@syb^unu4?wE%_zNQ%3W6vuBK-vt>QKf`h8ttP&`L4 zUuLzEA=gdm6PApP=fzFgyFXlJMnQSNBnN!L3%)dR_H0K0OvSiE4cUJCF6X>ER z2eLcOnO?MS=@Kvlp29Z_o}HJ|yhP9C)G`y}HS;-D%t*^rVUnDVDU5r4_KZSizIab( zO!leF7iV*3PT`d~^Wwa2NGDS1M%ngH>6I_HyVH3MbKjBX-Lg-yEa}-dG}DBZ=$zbY zOpKXCuO9HI>ivQAsAx|umF_7 zOI&5No(aewMw?ElJ(H6;ye%_R1!q_6Kx7GVkUvGgIi1tpnjDbzrTN-uN@s64D3jwl zZtb?K1zk1EiA1?nApa|`!t(sDwF}E-KgAyBvEC`HVZWDhubFZtLC(R;j(@^*pm!~E zxkN%Hw0p7n;>&!|>0M7}NUty`w!z^eVNWS#)(K{NoLPivvp>++->m;Hk$r|?syS^d zt6jbpV|SKb;m0-S%vNS5=E(}PGk3Mdc{4uF@>wvKN=%W zuH0%}&NP%8US^`qda>flI<4hud(NQKm6^?B--^DLbZ6Xte6wldZTVid;5|9Q?r4qo zr`w`(&?=YI$oct!vX$JQKl|~sJIgY1`Sv0%m#mo0OXW4CU4OH?dgeTS=5io=hAQ*E zIoA*`R@mFq*D*k;_Zq`A?{Tdx?9A8_z4E7}r>jf8l#H9tM7C>kt7R^J@GfrG%kD~* zxlWolox?dPN^SQKCj)a&ea|_IOK|IZ2kc z(`F}Bz9oxOsZ<5Mtj)WEP6?OFWKZFEj7sXH6V18~F1R`>w}I%` z)N@YrtLJZUaz`&c(rZql(sRWtx@Nq$#e2M3t=U{JXD2aRi;b9F5IP>$r-I3{7lL|! zEGRQamPHduoz7(U;&j19BwS`HC%yXQS`k-7Xt^wz>S$Xb*S5(jUB1iHi$IIjmF=)Z zs@R8v0h)!XC)WzD_i-jCQ={;bpMoldSN#-JDZKE9)& zxu~x%;huA?*CJ~!?<;$9ifxw6g|xNirL5bDntr_c>ixm|{?9h`9H%DBp5b(^L(Tix zX>&QO=u6i7V);YX%#|2l{j6op_5QF&BQ|CY!FX5wvbu&)Tt^+0iRcD?MmGr?|B@y%6U1-rp=Rz7ypb9Q^|)k8g*3#FZ#7Icye-u0XwyYpiYki7SB z^pJoG<~!XYyD_=dO6)W0c^muPZ;}0&+yUk6926cNXHSgeofw|OT@-RvUcDW~6x*k! zmglJ(*MLeK1-oi?6pYI2u+`NlJ2B4TYT>Lc;J%l<8FSv$qkre?5IqIvIaf|~9Y%?H z%B$xLw%7?i&&oOt#b>5LFaOJ%75kRXNS`?YJB{ngP6xmrb*KTraPu{6YuOZvo z_FK37$@Z$<($l-5K_-7ehg>8qr%mnTWiFzW6K{1Mmr{ETDf5Mhxv84Mk3nnH$r%4Ka5ynE}{Ruak}0Qk%-`4N>01u(cAc zOZxlL=B!-tX-VmgCC*tCvo!QJ)KU%T2+y=-C)62|ek)UaaOSd*f=_jJC^@@Dg*PAv zoI9R5$g-KzRiECh)z_J9_W7fAOS(Gi2kQ0E#&wf)z@NXznKJ~Zak0Clix0ERRQ2af z)r!$hmD9MyRGDG&fhxEuJXrE>Yze09{mN~*vbyWzrn|a|?&2<7HlrDn-Ot|DF$G*V zt=nZNx1h`HwDrjS@5y9kgQnB$nnrIjmJ9ZZ^<>C(#>$ShrGv4WkGR}sKH462+Si%G za937$WsK!}w$vECd)8@Dwr8D+&Q1QdD|7!A&ZIABJF=%&l9)_%?eY@~x;mXt0ZY)i zpFDR5$&M>;(~|qmHQy=f{yg7m<-C=@7n)O$*$Z~wo9Q}gao#r<`DFGGb9W_kEA%?o zbQB*SRSI|h^M+IEB8A+F9es^*r$e%}`1tfd##~9_92Vqu+U%abbZ(D1&L5ofuJ%=t zBKuee*TsUlqsrUkHv8u_d3)=9vg6-q_SU;{ciBff0DF&M-XL-pRpB(4kG?rju*V!` zvg`yjC)*S9=!Vpkw$8*deWF9@;dmyaaCFXg)|px70TE`z=0-R@kLwCx>7m#;-nHRy zP}eIX&tIyAqcmMwu8z}ZdjEU!_knA5hajWd@yFeVX3lmuNG$keUa7$VD6; zcMBKHsTo9N3)9rp-Kyy;>g1YuF74JZnXlHT$XR5$hFh+A)hiz=m~uT-X(*WD3R?Ch zb05x;yO-Hzj@dFFG(Ex9XCKDG#xnO4X0HoM%C#Eircvnzy#vFFo2~OF#?`=ln95er z4$6JXOQT-$GKzaKnLL?~?4x4LKuV6~Ic8Ob|eq?2xrFubp0 zE^O$TtYTv^#};1mR5)0j1UobGJc)vxk$~&_L%Su_U2k)5gIr1y4$fIo=W$kl^ba5E z>TIuXjBB{OCdF5456I0|DRcapZy)WlbZ!ghaXEFqC|`y1aDi^=X|s12hzIqh$E@ZL zKeGeP@cU(rm-%|||N7tqOufBGt**hZUo^RP6!RyzT!-w!Aj|YYkcpIaq`8!?qNyxB z$eDioSg8NajOsAVr?PB@3cexHOZ)14K3ONq0kU4#SLgXatlT6P8;ZNX17#Osu^|PkF1%*VSxELYQlD%q zhwHK=1hT|{84ta)A+wX`DPjTJQD2- zah|O$VXroxv!tWW=TFMD%;tvT#qxlFq7$=ZNr_XL*;z5U^5|CioRnA?=4_M4s>pL{ zeR|5jju8^~b9X6230dq#cJRd1;!l<##RCF$-D{|nsCa!7&6_$sbyRsD`@&{txJ6dC*)dl< z)qdTR&TVXN>+DXp)-CC%eDa+M$bQ7?>}86TWW?t;bFY&iOLY|UUE3>R)^IrKVcJcFWrf%0i@20iK=e^>oF7bJn zJIe}>)I2*ky6c~JUGBT^c{lAw|9O{IyZ(8X#>GGHQaH-byBS>3&-*S7ZZx0wdV3vP zNS5&lb5EW=ZEie1C!VO9JHsdc`Q^WW{1=q}Lh@f&{)@|M_aoA5+t3s`^Y_ zpQ-FKwdI~1`D5z)Oaq^3;WsV(I&9OzZ(8_G3%_aMH!b|8h2OOBn-&4nB4Ap`4LtJ4 zvPT4H7%m1Mbxy2nif&hB4%2|OpBOl z5i>1frbW!Oh?y2K(;{YC#7qlct!d(`HEn#grjf7KwDQ%OX1-d}&R1(1`f5!}U#)5C ztJStFer;<5U=v^?U^8GtU{hdYpgHhq5PX^hpI^tTS@3BXe3}NI#=)m~kV}Egcr_6| zjf77#;nPs~G!;ILg->(g(_r{C89t4MPqX3EaQHMGK8=S@^Wh8X{Axmc8WEpn#HS(g zX-a$=6QAb9r$O;)QhXW}pJv6UVex5Nd>R*@=EbLh@o8dw8X2Ev#;2k2X=;2L8=vOJ zr@`@Qa(o&cpJvCW;qhsDd>S90=EtW2@@ay68X=!%$fqIlX^MOrBcJBTr$O>*l6)E^ zpJvIYVe)C3d>SX8=EFb&Orf z*tLvZ&DiyfUD0T+{F*Dj=E|?R@@uaAnk&EN%CEWdYp(p7E5GK-uetJTuKb!SzvjxX zx$1~jVy&1yii8qll; zG^+v4YCy9Z(5wbDs{zewK(iXqtOhiz0nKVavl`H>1~jX3XP-<}K(iXqtOhiz0nKVa zvl`H>2JBYRZWir!kqx6+ZwKtA(QX^<#?fva?dDOl8qll;G^+v4YCy9Z(5wbDs{zew zK(iXqtOhiz0nKVavl`H>1~jVy&1yii8qll;G^+v4YCy9Z(5wbDs{zewK(iXqtOhiz z0nKVavl`H>1~jVy&1yii8qll;G^+v4YCy9Z(5wbDs{zewK(iXqtOhiz0nKVavl`H> z1~jVy&1yii8qll;G^+v4YCy9Z(5wbDs{zewK(iXqtOj%)7|>h=G*>~*RZw#k)LaEM zS3%8HP;(X3Tm>~(LCsZAa~0HF1vOVe%~eoy71Ue>HCI8+RZw#k)LaEMS3%8HP;(X3 zTm>~(LCuxi<|a7_YOaEstDxp8sJRMiu7aAYpyn#5>%gGqDyX>%YOaEstDxp8X!pD9 zj+fo@vb$dFdzo!((C&TN-7mZUWp}_dS3%8HP;(X3Tm>~(LCsZAa~0HF1vOVe%~eoy z71Ue>HCI8+RZw#k)LaEMS3%8HP;(X3Tm>~(LCsZAa~0HF1vOVe%~eoy71Ue>HCI8+ zRZw#k)LaEMS3%8HP;(X3Tm>~(LCsZAa~0HF1vOVe%~eoy71Ue>HCI8+RZw#k)LaEM zS3%8HP;(X1T!l1OA`xr%A7Vw$U%<|?MSifOK5nyZ-RDyF%LX|7_LtC;30rn!n~u40<2nC2>` zxr%A7Vw$U%<|?MSifOK5nyZ-RDyF%LX|7_LtC;30rn!n~u40<2nC2>`xr%A7Vw$U% z<|?MSifOK5nyZ-RDyF%LX|7_LtC;30rn!n~u40<2nC2>`xr%A7Vw$U%<|?MSifOK5 znyZ-RDyF%LX|7_LtC;30rn!n~u40<2nC2=bxzew+rJek8s+>3IF;Dupmjm}{kz76G z+*auNIRoz0ksGx2nQiuFQu7$d_%eOoeJattIGJ;&ZSm&zLH2S>tUQmuFXyTA+!$ND zq1;y>kI;^n8IwFW(D@z5cs%o*b?1i@Dx2E8VT^8i^O{yR#pbFSuEn=E{_*1rm3C2K z`^v^^?*fRAa%@hk%ErOvAm&SBxh36R-8#wxb3Y)ss%;Qj@!QI59QP)0Wmqg#T`I4c_mtJhun z{O7l=Y<%WcDCf6qN4o~dZ(G^;mx9TLT#DoeQHvKk z&%rRir|HzT*NVvlOyw=Pa(|Zj)hl0>xs-fzvfb``*q?ouJ;6@7tm4d2EcXkJhTNOj zYMj+=(ccxX^UHH4&5VR)V6K~_%{4!h?R_4yXCuEZ+>vf+pKPbhG?AUq%$|U9xdAe!w3iin=UW1i8bc*ahnM>9un?Ge1e)d;?iViAg@tV8ha(2b^=ZJKF%oKXPKyc#?(A53?2u+#7tfw&^K8SSDRkO7E4BPR(d+=q zkJ&whY}>LUue?K@$*o}E`TLKRk0QTa1tZGYcdUFYIgKh9g|p9Q_Hc4;6lZTUJAmR# zsn`&*ZHq1?r)lLg=d`F`;Q9NAm5(C7T?He`-#M&&MEUJ17*XDCVddk=YgWN%N)0)G z->lr0q;&24O+|j)oXIr%E&=)BN8MAB$EHb9M&{9I_B4*1P%{5^x$%kd`nfZ*zaS%z4C&Gz znX$u{St!zKe#5LpUpn(hik@z5Ag3K^Ffl%3?zD!6_`JHt*(c9zh)$cP$pcSfD+ zQf-=Tu;65wrZTlB#^=m$Xq+~GMqQ=D&uMYmv;}jfO`ls=cA6@g9|iSI%3bM5k2cbc za(ce9&^2U!$l7U8LHJ5GD&DhR&5HMNVeJyVom*Kyp3dBq3DLCd*<$nf6{l4NeNet- z@s23kws>z8X;Pv~3R;+0WVQ%p`lV4H{xr%iDcPuaZ+JB;-VuehOY}i*Wi$KcM2T(? z%gp}t><_4ovJc9)EZz}C+ZOMQB27wkNkI$KFS3JCQNPqVKMOg^UMbhEc%Kw$S-eL) z897jc zo26S7?*Pws#e2Y`dWkN`t1W#X-wP9g;=8nVPay9{5VMVB!tAbg!M;hcJ#U*h*^_cw zO7F`~biDD5df96&-OA3H)3PCNU%JF(mRY_Yb{`~fzopDRt4H0ET~@ljS66wq@aiIuik@AQS5LY`E=DZdC9`?%v{SR_ zTGm~$WM`D9?9~&6)xEmGUCXl%vX!I*%r%FZ-I5}wTJ!Q`p8o7KDcTc7Ta@gQN?LjK zO^J41om8~CXK#7bmTr?vM>E|f<0!Ic?s0b8>FZ1*yD!O3dC>-T(ws*5`{M;u*pS?X zC6v=>bPLJ5VMWU+uW3b#DyKzdOG_Kb0?Y0sl{@}&9x3fC;G!Y7`~2?eB|EQd6R&P7 z*2t^Fyz6>)mAk6xq_XpTYIjSbUw-*2v&H1$X{tBf2EcDm1go++R0yOD1W7; z{FSEiSKG=>1oB#LA~1iot=vRlUTa%(>6pCMwsI4Jd97{Dcb@VL4{d9{@08ct)_i#> zueGh*L||TPTl0aH*V@{m7566Yi%nx5t!H7R&F9N zueGiDI#ph4Te*oqUdv4c=C8Jun+VKnZ7VksnAh4?ZXz(RwXHc>Bu_Naw&p8Wd97{b zCIa(X+saJ@=C!t!n+VKnZEH5@@*EUxYreXb*V@+PNM37OlO%bqZB3TswYD{BlBcI= zTazbwt!+)B^IFHNxiSxIG4JSjHCN_= zE#@5^uja};utna{T$u;9nAbYZnk)0b7W0lyv*yY?utna{T$u;9nAbX9&6Rmzi+M-K ztGO}{Y%%ZXcr{n%fi3cm=E^*<#k|(>YOc%!Tg*E;Ud@$xV2gQ2$E&$A4{VWlG*{+< zE#|e3S94_^*kaz%@oKKj16$-B&6Rmzi+Qc%)m)hewwQNxyqYWXz!vk4j#qPK9@rx9 zXs*lyTg+=6uja};u*JNinAE8~?7hlz`BKV+ol|0X!{f3A=)Au#XC@XY^YGE5mwYzu0d&XO{d zubc)n=YKMtQf6kr3`M5S)U*vue~HXOHgDRRj9q>i-u2y3iE9!}YguHaS~#0*J1Xgb z@|Cr!q`G`f_ZOaW6H= zWoOR)Ek-4s=sv!b&tv%!xlTIE^vNo(d^5)7oIN$ORY}*Ioea6PAlny}ENHKDY?ZVt zJRwy{FS^d+$m*k1Z{+PYIcIRBH)Ne%s+oIHmB~c@QFH0#lQ%{7fLW$Twg#o9r=U^h z(4~?t%N~Z9IWIY)(!1l8EY-Y8wLy~AvRRp%Cuo_!vQm`4W@T=kpk@A=4S{)rmi*NX zy{@n2wX9*~ueQ|C-aJ7|>g$HyuN!*5Zs`5G zq4(>C-me>a^8_uasT+Fp1TFJg+vLy?KI`c}K^q8+!8uEqO;b^yUd# z=C#hRZs^Suw9Gp?zq+9}PtcNgbVF~Rpk-d`cy&W>o}gvk(edhr-aJ9eyrbjQ4ZV4S zmb{}Idh-M=^IFHN8+!8uE%T0!S2y(L30meI9j|Wa%@efb9o^8ICuo`1I$qt->m`Wt zj*eG1^yUd#Qb#xR<_TKnwT@Re^yUd#<{cfcZs^Suw9Gp?Ufs}}Cuqq#x}i5u&@!)e zyt<(`PtY>&=rrqw-aPHfyko{|o_1yan(>;aU75e8t$Es&`D@ymr(K!9X1wNUSLUy_ z)m)jUUCBF|EAzA~^IF?#uFTV}%sbjvcOcEvuH+rfm3i8gd9CBsT$!g`nRj%&nk)0P zEAx(yS92B6Tm?+7^s{IF%IN?1_s{skDZZZID7#O`AbS`y89x1VWz%{U&ZCOD&z9Y-sb729lf^LSx3x~ zW9GcChV3Skshw;tgY8Q%)i&mFZg%Zg(8$@VnJjn8m|K(N&K})1m#CP?xyY(jel4v- zE(1=Dsu@52SH6w>;y((K*e<#iM)J*;1XtT6+ zkx8OUww@ffzZzVoeeKf6{*O*6Uq`-x=+o!0Bw$}Hu{_MYFewUYT)L7CNvvxiaSQ;^+TpPapm-o9D7 z|MD94RrE2)Z!*2Vqq9s-avS7cDqs1OrR6t3`_hRnyTZxr*B0pv*I~%ycy6L9TtAc= zhSN)|B1(5E?6w6Vz)ZaX7=r~vIN-fnR1!L59=9g$k*^bo(he@LwXM3V=PFG@a^3+r3 z%pB!tb#k?xNlm%_&0F&Yi1CZp<{;&e@70AF}M>a3#~1 zTie_QQ+m>JYbRP;%@3aF#w~LQS7e&%vzvm+X4l7T7s^M(t5vz>>(!<{k!~+NUtX=` zP&$=1zi~X8rnx_{JlYw|Z9A&j?3N#)U6#}ZkvTC{WI^Pe!jKi8+}>^P0V+L{u4eMf z+;T5`UAF{A{;wmJee{x{ribmPTShE5TxZ&kw&AG8)Yso^MrQZHoD&p9ddKV&vM)4Q zp6t__>@2?w^V;;?C(J_f)Wm^V*oTLPZqPp`#=A&q0f74tSxSWovbjsv(q(nx4 zT&PbjFd0=deS}BhuZ7!BR+%Fm=gg*zJolE*MziuQG7-)h1^eUM&Ii)Pne(bhCC4KExQbqm z)Xbi)M2GC3dK5c{zPW{Ve~|M?xs&KTy~Res`3-JzV6Uvm{ff=`3>U4C*B5%G-u89j zpbBc5)AJQo&O60ZIN+R>Q_*t>- zDmLWGyNa55J50rfn!D*Q(+%0|~uV`k~G zXZGBRb)>VVE;_=zk9E;nMZcel&zQ9!*(pc5vND=6%N$$JkmKI8OS4ivU8ZdMinMw7 zLT<$dJ-%?>J0Y3QsW*S-0@+<`=`rgKsjd$F`Ar$t{D!$bvR5qU zE?Q?M`&v>Rz2;}YPfE&pcT*&1iRU+H`g2!#^Bd|^3&>|u68pM>4evt9yL33k6)&(puSF3;k((*fNP{?QOrwp z%UKxb40d)#=Jo3%!=|NDiNX<4IJ5YqP@`~7E{o9)*-4CRn(|KRWhdw4<|VSRESR^3 zmPB{A$JBccT#}nyCXZfaDA|i5CrY?7BWReG?&<1ik)8j5e|jR7vR{Aj?u?$UUfD68 z*4^5$JRz63m#I*nPUX~?r(Y!HywT9x(JirGYW|anYH)mNcc;E1lO>;|x`AYi?J|2- zBrYF3+5M9J#qPA7&l#PGzP<&?wq!~kdMC3NkBcRS@l;xN4C3*Yfka$B%mW?Lf$?~2 zUk_V%qohf)c_CkOwe+rtx3tTo#N&P4y>h}JEnkCSv(`0;w z^f#ZIOv(2dvd)mclK*%1m~~fcr;I{oC+TEfo|)TW3S4j4z3n1z$2;`Ic3N`ZW_v+i zq>?g}w&f|=X{(CMH+H?|8y)k1`3384J*T*I#w`2c=5R(=4_z|R@(9nRNxnvuFXGav z6>)R%iY@AsRhzyt$1-ugGn7$e-)l{Jy()-W(rjhf*qFM8{lqiR z3C)3Fz-H{^IbD}4v%wI}UH75N58mr)VR&#iEj-?PGsJ-F1LzSkB<4B_pRgl9`X1c# zT+K3=c)9He^u=?|XoehD_WFMA4=)~`o%q8hR(zHU-ys>9osIAIAVDW%GcP_ilAVo> zsy6!UUS(w$U4LUqVX!Fs`bpPK2^M)y~kH{&}N7u|f}UHFROg_zvN3eZLOv%IaxzWlZau5h&;xN{F& zspmF7e(=ZVHYRrQ_owGmJii8B)~{1MMB)G0HXgoy!L^L|Us>6d;Pff+N4Z%()hqeY zC3x2SF2&QcFK&FEN=d|zrg7{2H{Vl+H8VaZ)A%*=Z(8i}6wLB^NW+(#>Y1S{P>DzR zD=WL6vE!{180F!wGmQrhcsSK>N$&uNqpRj7>5g?`mZyM9{=!q=3e6Q zyaXEVKl0@K*<+J?Z?Cvh$3>m$vLG|XbL#+)XD~Zb*Pr{zrg1CBZzR&0k54a3@oYtg zg(Ka$JR%#1q>B$df8L3Y*K$)lh3Ov8{;)D%;_K z*RryEFg7Z``5x?=)6dDeeJz;c8IFX>*QAJE1PMQVoEuy*9KBP2DnkQ1^U(?#GhtJe zph4UI)96%BTe6BkL&lDB;6AC8i67VW_&fTB6c3xi{<4$m0x9XgGOR4gg6bUSc|yr# zL}gBTA!roi;Xo%E2-D(!7*S&=#^7DXzu=>A%#<d*)$4oNEQ76)R_jO>HE9lV+v?cFW=ZSW`aht#j;$@hhwar z`IrqFm2B+g+CJ_94aS-7Kbr;yw=zsVsV=S6DW2UZxYE?}czSNCXC(-9JGm|*Q&Q>7 z$LiV?&ojs~{c%mB5W(`FIsH z8qiRRpU`{^t4#GY2xj63Hg<>G8Fr>|&toZ`bSNfmiA|#hdO69);w%W^&NSvdo#MF- zDOt~I8lxAdO5c*;BCgxJ9>maU6Xunq6(a-u2K)31w!p@7k_SsT+aGPHR{o#fT!ty3y+i zZ}OK$`{70sGm)rD($v&+V@i(SD9-T#uemUXUdCeu@DtvYS=~^PQo6A;`iG8=4&=K2 zhH2rpVHPpURB48}>W2`sQIX?o_T^C6Rs?vFedgFSv;GH23Itn}H_}jXnJP_JQ`5q8 z(>xVdn(Ge&%b0H&!8SG5XO>tfJl&X=lV;2WBU5sGs>E-k<-~Gr%E0chF2GOjzF4jr z?*n=#RIn|rz9YSEqdU`~Z#y~yD>sHW4VzUqqjV!`zzU?J=3r{DD#<|YRVWQyNb$wG zcwIdA5u0VAAfrju&ZtSi9tJG0DRiN# zttDn5>J{`;7qgL|>J@=n>ee;PUONfxKfEc;VO5Hnt|||pStdBh67Vb|)Na=N87UAV zNjnPgk@j zDxA9zH>jW)v?#kAWHp*|8zLPQW7L~NpG@&I7mh@`^LiiwUaS;gL>dg=NF?}asTDrs zNGwBzFSRKdkig$gz?z`kWFCsOY-!o+CcvQ+^G#r?niuhuD%yjop*WcOFOU#vnEPX6 z{w7%W!9aS=?Nd@b2LpY{Y|VtHkRANq23eTv?&8zDgqCKp_|0a`&45QXn-idj7S%Jd zx#E(%GeZBgF+~$2fEi`yXq`_+Jm%tS4bY;cq8uYDCpOcK-VI32!S*r8&>U>{m#;x{gT*W<};h!q;8Eh^Y*1V2DUgS%17 z;CsAl!B5FHJfcZDRWG%xeh#Xxf}1FX`%u7ZUTIFnU1)ul3TA2#q2{w?p4q99Lk}J4 zZ+fd6LbsXE9j0Q?>>P_f9kg>B%*Fo#JknqmK$eXPcNIB#qae$V4i%&oz|U2TaCF|u61Q0EXh(O zRXJ&LibqjNPH)F<3j_tnYC6)?co2guums_S7A4HF3jq8 z8aru6B5;dUZ6{DTl&;30T?DER%~+Dg-mn9vxf&2pVB7{Hk^#^_Q zZ;BiWL>RW1YbATaFxD{uvIc{382N2(i&+HN6<&19fhQXxJ1WqfqWxZ_R!CWpu8Ob{ zTAf;xL2zS)?PJ z=+__@+>a8zM>2cyXfzrnn`|_iWRsw5GR79G+JBQSx^J85SBO4#x>MopOtmZgIFo`6 z?CWjhM@gstsOC((iV7km%du{kg#WlQU(d|+G^17UJtzN_0D@0+nsLwt%$X2I7PEn1 z2CrkMn6>@)qwN9k`a1Z%vDs#5x0pd~whbS@-a{9K9&WcWHmC8(U}NkMjd6jEah@Av zm|zUo7M;Hl`|G_A|kc2e);E|Q@&g)Wq%=jsl&s@i_V zCPKrQ!5$@i!32~Lxd)yD9b&M(^5NN@K%^(Fb!uAEnAu(x?ttxzN-}bcUB*`HC6HBW z7ojE9j`p7fkYz98wdgh#PJPJEgUV*f&-`2cHL z)qfA#3dvV3+bwrKv+6^v69;}qv{q&#Lik3-}!%XvIQ9- z)gy(2=Z)rApAqqqJ~YgjfSo+9KB75&!4h=qMpJXpqIH`yx*4U2j4USyCx4iOv7M9S zR^;%u8_|t&X(}S1#>S(AV||+C0YxK1&)sY*D0egL&^TzV@u8-XA;L9(g=-lU`5mrB zeqqWlLDi;W>;Z{~K>~CSTDPD_HzGMgi@#ma@>2pMK}&MxA_Lljx~9M|-74XVOlOs( zFjI3va7gz%cy2}P9RNifF(TQ*27kL?gBh&XfXUJyEpTBtB&E`efq`fv&6d2ACb`Qc zccHc=RW#m+cuq8^>DW=#&PESibXHv`o5^c@}N6gnwl!n~n_C9JlUBZAAq ztr_7j`Oy;$tfiv|vGC*l$@G7xSWMHLvSeeAUGmG&9b0Cg`YhBqx1(7M6Vma-{2&lL zjyq|wtF4Jx<}volvZ-QZFh9#vu{FOWE%0=MVTvS{h-)|R^ z1Sjwcb22Fo6-*btDo{tK8R(H!1|@AI>1kMix)Z@-lZIBX9C1=F$Tw zUJRJyv-EmK7%^u_o0^o3+1||+gK5y5rq(fv!?(DxX0}`i;)WbmHbhMtrZC9`(-+BS z(TYC7atuOTGuX~*sZbk+VQ$YO4zG$-zA`qZmRf3Dj?f#T#>I(&StBDyO|`72NUaGq z8aG17#hIcBu~Jg+i%AZG3OA3Ui%qcZU`f@}faTronnkmfy%j<1qF`q3zQ~Tc;MWy{ zI8S3UomBPr;342G=Eqg9E9R6T75g1=n!O)maEpj#kZ4w;Ii!T)Dxi6r;S}M(PJt&Z z-za!S=_!g7E4ftI@}g(g#-@vNf&gi1r^mUQH-j=)vdzzDW33TD>@Kjut8qD?r05xc1eMWe|Ke(XYUcodP` zM}%hYVXUQOagxW3jAudG1b2fu>*)g>9kKqLHh|va$<~CU>{c>K*9M}E)AbW;MK=92 zCIZIA7()gk+gJxYUxe_6&#Una&-E;875zO}Rc0n`$5b8VdVOHwQh=hEW%n2YXV%ro z3eOCzT#$GNtf9-B4LoD*Z~(Pf^#m5M2TMT}ee5*?#A3`K(^yEoT4)VJHWjke{5IBt zt;Mkx%FYQ3ivdJ<1zcloF@IN3Lh(9FK1YjSIG!&9`BHVhxZ6@Is6JcuuntkZnA~S@ zWr&Sn8DZ-T?1Z>Pf^(GrMS+rhbF2PWOZA8eS(xr+f6MQ1S)(b1@X4v`(sHBPz zQ`fRIZ}Zr^XDR4F6Q4y;M6)=uq znihp6bz;TFPP9_YT8+(66KA6xbzJK+Fd`nC>3ZCz#$x@#a@MbGhoHNSB+YCSuf9oP zz!Pk34j!QJl3TljF6QvOxb4&sGO)Eey`*E+(%|P42X)jzjgK2$tYIrWTu!>AIk=lf z8E(J|<$k@IhOVT=wmf)>guPw{GT!D`Dv~i9fWmwA zSQa9iad&osA%;^*4D^r(!V4aNgINxGM#x%6`KodEsN&a77zldA8=}XfyW>he`$S-H z5OvIY3xr&KG1RNwsZ(pw!@n8!=`M?`*rX73X=I_MN-Q1P5g%*ilozQI<1@SU#BC=EiRZD<34Eck5Q zgo2FF8f5Zgl@ZvoDDZF<2r@{{GZBXM&?)GV*O--YqN2I3iFN}~=7NcCYYu)up~I`E zvB}ME&|!Cy8@C<Q>Jg7Y>tAdJS)Sdtg{(MEpCFwrN^2Mtcd zknA9&#s3j;gRwFEsNYjD+L*r|VS5pm0(?if6x3?F3QURH`giIjRiA^r-i_n(AN7}S zPS}v1CknTXMl}Ae1(rQ+ZI!WZ z>26$fv0Oi-6{FboSbdB%gdR%`9f;LBGRuNrpri(4t`m`-?cb5b8A3XqSakO_oEl>@ z%Z1>GQWUg9yq+=6*H!S0lCUO^d0=?JsTO>a^bnY7XAi+u5y#gijgc0x%x0%d?I4rN zoJ9oq8mE^@MiC9?ldZVVLEZ0wY24A+;18_Q6QpjAcNnQGK6x9`e}k0x(DxWyHYuTWgYW;65(Qx`v?*bO zfDD?!+6{i=`jcqNenEd=<(Yw%-ccJvy~bRHRsDUTf5v=6HyXS34m%8BDFp1Qn-9!^ zft7e4pi2#`Y{W&DReSEzw&d0dw>Rc)Mz55o8AANYJ%;v-)UFR{ z9t-+eTXADFVt+@T?=9%3Bh(AdZtu_y#-7k$jFxa>Pac|rv$F)V%LAH=Fwuq1u!tTL z7Y-gh#x;JUD6yyzZbOtvU!=->3R2zOb6dp^)VOptDb4#;c$+8h-N2I@^R@++Z>UJA z+gZJ@!k4=__OLN2%^*&O>C3&s3!5wdp6X%VkO}qZxgs*37?3c~3XQH#|{dk3a5o7NfP>P|Ft%gTF}SekKTUYFZVxQ*{h}=w8#u4KAK5 zD)Cc3*FZ46vFcqu7~318zAHQh*lu6Czx>q!{EhJ5S9mdGadLxgr5$$ zC%t@{1N^x0i!;KX28?ZQvz^5znrTv4;}>VM^MK_0upihE8wuBU(c5$gRiA(@uh9b9 zv8=b*&o7`lD^2#ghEShltnA!b|r@{|gLS@9sq8NDg2Hb>{s3WPeI-ht%I_EdPnIp=wJd_%RwAqjv2f?)9vFd5IPb z>s>s+OAKA_^`Pk~|DkPE#RF29r0cw%buQ0{C#5neYdvdhW{j+ZV9j|Wy_)q4(Luu- zCYZN=iye<_yQn06A9@|yDa-m)~dXv9-9n(dtok z+*5$I;i$2E@@azhA!|~IngFK{a6H)_QDON-l8&SlCiQ2MCtcK6-p@%&Ws=sNaS%qC zkxMO@^K$LlT)^5S>Vo0vhiK8{6=NW}X4{!J0E!vQ()Xg{AY@j9I2b|d7XLHjqwg@t z@=4!qjOCZ=^ezms{LFY#+z4ZE+Q!$h?)){5B~>a~Pr=$vgOU^jarD~%Z(J@(s8@6Zc$y zNP|5(Fh291*F2;%?Ot5-V9E4P^xM5qX zC4_NJYWP@>Ky4T$)D`(;=T!7fJmfZ19j(MQu<&{O+JucQjbHS@TxbE1yRQaANUp@M zZlZP5yhP{&1W&eyQ>mWv+nuBoCiQ2MCw;Xv!mFL6RJ6d=Y=N;nn@eBg7pYapDghFP z$_E=eZM#CB(E~lvkHA1yce4NmKJ@okim|;et$Tsp@5wyA^SZ$DDc57}029b|Tb;EP zZ56@rsA(EZyRg;b|EcgaF6&@lf&$v>)c@I)mzaoT# zKDttn!!~CMY!?!ZFiRy5n~5qS8Q$ykwwgb?>I&5u@n@YG%?>MC*Rb{$ELB}H0kM$h#B<(P@-%7D3LY^xl zKZ|!^ueBqkdsz13zZ1gorc*bWZ{S8Qk9D=sjMp)liKm#6U4x5>GaSZUJ6$y&-07-n zcS7l^exi$s&$noya1*#t%gV8K0;cM31w_9ekdQk}VkHtqHm6|A=MZwSwb02EXRE5M z7&R2_m#O8i<85ULX!Ulq7HmgbZEx7b3^TgllN3(+GX_D+-U#=P!u=c@Kbsn9l-;_I&J_qfPLTUgNFbkTA1-w7yKkr&GB+R(?7$I7UdU@Mb{g))$iNZ@9jc^9XX;qNwiDr6rRev+(;p-Eq zK88xD-veB%@w;L za4ItbWbC(&9sy2nL-Zo>jx3Q>se_0_DCO=mSCytwuM~=*#i|8o()1ilxQu0EHh>dU zrxF@=xKJxjmQ-Xx3+Xd9+~f-%@AlyDqBWWqZiUp0>W23W8eUyssBF>1C_faS#Xrm*R=D zMJAhGlh5yc&8u|V=$&8E9_oWlMOB;VHSGCs$$ZzF(gCNLwS)8>%=8~`#FsCwLW{6` zf?50Bm}7~#_s`CpdQ}^vI`L1_jYu0f!s~)PQatNvhvu{GtXkw7{IYh<5kBiXil8&h z!NV|L8xswhNY-5_5K5U8dV~GnSne>vS~!JD%ei|GtO`?TJ?wpEpe{DVg`DslKQC1zm@Xsu!=L3$@(c{51x_1 zd8MOc8zRlln{FT%_!LJjM=)SiC0QzjSJg69<xct;;;8hWZ{-pgn-FLI^%h@FS~^TXQfa71hjqL^Uo8n#vo}!K35*qn;N#r96Z|#i zvAOh!Y4Q0job?D{s-T50(qhw^m@?*ojL1AtVTc#3H1!r_h*~|%8kpgmAQ^J=<0mMg zwV5p=~dVa|eEswGV$YIH8Mhi3mfoqe`-zesJa!~orjUWjA z&)W`3^>?sb5er`Ft^CD!AYsT)8`Cj^bc@zMHY5cuRc&pK<0ak-O4amwA?1<2JK3ns;3q$!H>q`Vo zh`!M1_y)38p%X2jiTXU&nP^PSk;zDjt5f`jmUW1H%E%`i&T%5 zZlN9}>3J=I$jf-Pi;j#!y0K!kIpskE1Z?r4>oJ9nr-Q z3O0a{FJxj|V}=*dxNHHt1t`<2)`u`TtPklX1%loA41znq(AU!-KCIjoaS80M&x9`O z_%1mF_FX8}4DaI;6(u}@T}K1DiM>S$X$Hh2 z>yhT-tr!i8kEauWN(OFY<3B|xKfh4)k~G3twJyn9IOA3s36`c?XR_$UBbc$%c5EiN0p2uFiyQjmx2IaV4c)W(T+T$BtZTym2OxV#_(z`5 znQENRsF{n|1BHIFW*%;wikUUP{hb{q)SUg2Gh%;)FuluxbGz2x)+WR`OnSKZoA=-6 zYY*s9!mAKaK=bh0+@fK!P7QFBTF)Vbua9nd z9FpSt{dVFK$kPGbgfko1%vGb9uFNZ6+ zRyQHIfLtZQX(V{8*c!0*&aG0yD-K|#ANA<2<0j${REhWho zIfFq!xWE=0E$%^N!#q#8&;`3iNVWA7Wj{5ZDJ~TkGDkD^f8<+vk{PQwbK#rNVvbCp zSn>W7354&2*(o)Q*%?9DolrN)gAfRfKhq5R;X0578;9H80o|kKJ99xqg^P8mde=U) zLyY#+)J7mWwxq(hNht?xW_d`J`KCoaI0|&JZ6cQn&qcb6)LZ~@cEIb7l(eChapAVM z2#Qek=QD%N`qjY3&c*wnEWE-~f00ho;|pzpL&#d2FFfB$TYVqAyx<1L?N+r{3$?2Y z64Xw-4TkD3Cd1fZ4VR$z%q6XI?-rZ~UAdY7k(Uu?tJ=$$SKjy0hmFvQz)!sZ6gahO z)Ur2DM-@(2%P)^3Vrek36=J4t5_5o$7oQ8ccL~nktUVp#i(xN>{df?*8|&xJV+w^U z?ludGbIjZNMIE{Yd8xQ7!_!k!sqm=E*F!zmaV2Qj#eakKOjXlcCpo~61=u4QxJ7`0 zWZ((`9_KsNz8+5YUkk7!8K?lnnJ%j4$Fwc@kDAzzq$-a8_z4gk!-7SiJ%?LU6H|hY z7Yd&NaVqr$>tI{PaFT9TZ{{*3e5s_LOX7(p&dCMKPrlTP>A>o#o*Jq#^r)B-IF$F< zYES}iZ(hhmv?|-^w*s!z&sio8Xn^>IG#c;FSe<8u@=vRBv6B&vk@E+*I@sMrQNACXL->H~ebxsw?6mwbrhJKo#YVWIJTp)s)&jnd9E z$N{zt^ik7%>Os9g4_C(lXuK%&qE&69Ay;F`2MmMs+YmFE9T4=xVh&;e&gpbBvYTa~5{E%a3RhBW>{8>fohYM(rAWr9MX=7TxU1gh zLapdkZL=MGUv-ZUk|+Zm6%9bm9Pc_>R2lEaXVaM3jkjMe3_H#6?<>e@v!gxmgUea2_>&1lC}ug&$7$R7?&(oRJ=g?8mS|jmgArJes@BvZ;v|q$za*jH>w=i<_ks-{fRYtoV7^2 zEd2?9m>N^*tSG0(?jSFkRUEW29NG&i%r;DLsnjwD|ga#xN>R}VgatJ*}LT-kJD3#U)ovm*sRct*TDWPnK zPGN!}D02vuS*#{x;SyBgbcY_p0X7H7{n2E4_uKR&rlrKcp>f3dg1gUfh`5xOmrUe* zo5&D{sXw|cOl5XK;qV(t)w1x&Y7NsADt;Qb&w?Dt_(7$zx*+mKGLaW-BEvP2P(kc` zGwkCS0Pi~<%H3gI2DS*x&@kByg2rYIk~)85w?;~7I!NhGeY7-ZrzLZjzuvYz1JU2j zN_`KR)KkCdiQm&zc*7_ZhUs2zlA>Ft%w_#S4}4R|uew9BJg2k#vWZ#f!q`5ThtUCc z{e1X3T2psdubezm!FpE{hb9avUcL+@?4V*fvZ`Yp65!TkU`T*Fl7X`Y_+c_| zq5$_M11}TcN6El*1o&w(Fin7;B?Aw?Mm{%aAT%udBt9kZxpe{@4B&9Z4I*c$n)4wn zTbS0l*qWkhG*S;b@mGQO?qlI+s04ss>)NJgeGXMJ931W$fkZ z-^A3aVcyvRHhLo5aGy$0AEuP;uqO|s>^Z&qWtTF~J;-BDt)ueIsV$<&cnGA=Dd@&L z!D_rVhUvpEX>ra`1*>XFdPN0`tyR32sk*L@D_HkOVBx)ttkn#Bu#4S#6_C7OI?nRR zpPCU^)`-1oEeMRpJL!)h9Ub73d899tMU=={judZuKS?>6f)b8GLA;1s9a#7PE7Rs! zx*X`{Q;XQ5XxUG_js7||$qets0iL3HS*>Se#vQ!YImm=|JG(1_-MS>Wg#kb!f(0e* zDtEmKhJ872%M>SE^drYOV0D@=HVIVD?cojG;#B2#Ko2(@Q6=r+Mur&TdR4erH&BO* zSYISd4h>!LbuY4>T+uJUSM*jI?wdcOY`T!ph%PhkJw=7O6B{mN<%AyUsV&q3-v?ly zss})_naJs8big=^s~PjtF-u*|ZKL4@8HnUKU#-e=>}Bc5zSWSsry@%&eiJm+(uZlzz+ZmGCfEp2A;7`T_TeSEL=w^AOz6l_&BJ*a*fOh%4G zc7E$x$-Q6Iyi4MX-x)4!%Y4#hlJtS9k#ftpAJ#72HTTdLNNQ51TG|_=)%^WX7q`h~ zsFK~daIZn)v``$&15JJWGIA{b+*QzD0EyP3lB#C8a1me?Z7Y3E(B}YRF5PH%zUI